diff --git a/demo/preview.png b/demo/preview.png index 9f2d051..6555a5a 100644 Binary files a/demo/preview.png and b/demo/preview.png differ diff --git a/dist/css/app.41ef781b.css b/dist/css/app.41ef781b.css new file mode 100644 index 0000000..140fb5b --- /dev/null +++ b/dist/css/app.41ef781b.css @@ -0,0 +1 @@ +@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;700&display=swap);.nav[data-v-317ef896]{background-color:hsla(0,0%,100%,.9)}.nav__md .row[data-v-317ef896]{flex-direction:row;background:hsla(0,0%,100%,.9);justify-content:start;padding:2em 2em 2em 4em}.nav__lg .wrapper[data-v-317ef896]{padding:2em 2em 2em 10em}.wrapper a[data-v-317ef896]{display:block;padding:0 1em;color:#fff}.row[data-v-317ef896]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2em}.row .app-title[data-v-317ef896]{margin:1rem 0 1rem 0;font-size:2rem;letter-spacing:.13rem;font-weight:700;color:#454a54}.row .logo[data-v-317ef896]{background:url(../img/logo-sciencemesh.59cc7159.svg) no-repeat;width:190px;height:70px}h1[data-v-4342b242]{font-size:8rem}h3[data-v-4342b242]{font-size:2rem}.not-found[data-v-4342b242]{display:flex;flex-direction:column;justify-content:center;height:100%}.not-found .wrapper[data-v-4342b242]{letter-spacing:.3rem;padding-top:10rem;padding-bottom:10rem}svg[data-v-73fce820]{display:none}.provider-details[data-v-73fce820]{background:#23252a;width:100%;height:100%;max-height:0;display:flex;flex-direction:column;justify-content:space-between;position:absolute;top:0;left:0;overflow:hidden;z-index:999;transition:max-height .3s ease-out;border-radius:3px}.provider-details .provider-title[data-v-73fce820]{padding-top:0}.provider-details .provider-detail-label[data-v-73fce820]{padding:1rem 0 0 0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05rem;opacity:.6}.provider-details .provider-detail-home[data-v-73fce820]{color:#1f91cc}.provider-details .close-btn[data-v-73fce820]{padding:0 .5rem .2rem .5rem;position:absolute;top:10px;right:20px;font-weight:700;font-size:2rem;color:#686f7e}.provider-details .close-btn[data-v-73fce820]:hover{background:#fff;border-radius:150px;transition:all .4s ease-in-out}.provider-details .text-description[data-v-73fce820]{padding:1em 1em 1em 1em}.provider-details .accept-btn[data-v-73fce820]{font-size:1.2em;font-weight:700;letter-spacing:.2em;padding:2rem 0 2rem 0;background:#df810a;color:#f5f5f5}.provider-details .accept-btn[data-v-73fce820]:hover{background:#965707}.provider-details__open[data-v-73fce820]{padding:2rem 0 0 0;max-height:100%}.provider-details__md[data-v-73fce820]{background:#0b3347}.provider-details__md .close-btn[data-v-73fce820]{color:#686f7e}#scroll-container[data-v-73fce820]{overflow:hidden;max-width:100%;margin:auto;position:relative;min-height:200px;z-index:0}#scroll-container .scroll-icon[data-v-73fce820]{display:inline-block;position:absolute;left:49%;transform:scaleX(1.3)}#scroll-container .scroll-icon__top[data-v-73fce820]{top:25px}#scroll-container .scroll-icon__bottom[data-v-73fce820]{bottom:25px}.wrap-container[data-v-73fce820]{width:100%;height:100%;top:0;left:0;position:relative;max-height:300px;max-width:100%;margin:auto;overflow:auto;-webkit-mask:url(#masking);mask:url(#masking);-webkit-mask-image:-webkit-gradient(linear,left bottom,left top,color-stop(.1,transparent),color-stop(.5,#000),color-stop(.9,transparent))}.wrap-container.provider-details__open[data-v-73fce820]{-webkit-mask:unset;mask:unset;-webkit-mask-image:unset}#scroll-container[data-v-73fce820]::-webkit-scrollbar,.ul-scroll[data-v-73fce820]::-webkit-scrollbar,.wrap-container[data-v-73fce820]::-webkit-scrollbar{display:none}#scroll-container[data-v-73fce820],.ul-scroll[data-v-73fce820],.wrap-container[data-v-73fce820]{-ms-overflow-style:none;scrollbar-width:none;height:100%}.wrap-container ul[data-v-73fce820]{list-style:none;position:relative;transition:transform .3s;top:50px}.wrap-container ul[data-v-73fce820],.wrap-container ul li[data-v-73fce820]{margin:0;padding:0;text-align:center}.wrap-container ul li[data-v-73fce820]{height:50px;line-height:50px;transition:transform .3s;overflow:hidden;font-size:.9em;cursor:pointer}.wrap-container ul li.provider-details__open[data-v-73fce820]{cursor:none;height:100%}.wrap-container ul li[data-v-73fce820]:first-of-type{margin-top:150px}.wrap-container ul li:first-of-type.provider-details__open[data-v-73fce820]{margin-top:0}.wrap-container ul li[data-v-73fce820]:last-of-type{padding-bottom:150px}.wrap-container ul li:last-of-type.provider-details__open[data-v-73fce820]{padding-bottom:0}.wrap-container ul li.active .item[data-v-73fce820]{transform:scale(1.9)}.active[data-v-73fce820]{opacity:1;color:#fff;border-bottom:1px solid #072331;border-radius:10px;font-weight:700}.wrap-container ul li .item[data-v-73fce820]{position:relative;text-wrap:normal;transition:transform .2s;display:inline-block}.bg-primary-blue[data-v-258d5688]{background-color:#1f91cc}.bg-primary-grey[data-v-258d5688]{background-color:#454a54}.text-title[data-v-258d5688]{font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.text-description[data-v-258d5688]{font-family:Calibri,Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.provider-title[data-v-258d5688]{padding:2rem 0 2rem 0;font-size:2rem;letter-spacing:.05rem;opacity:.6}body[data-v-258d5688]{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;width:100vw;font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;font-style:normal;font-size:1rem}ul[data-v-258d5688]{list-style-type:none}a[data-v-258d5688]{text-decoration:none}img[data-v-258d5688]{width:100%}#app[data-v-258d5688]{height:100%}.center-align[data-v-258d5688]{margin:auto}.container[data-v-258d5688]{background:#2e3138;color:#abb0ba;text-align:center;padding:2.5em;opacity:.6}.container .footer-logo[data-v-258d5688]{filter:drop-shadow(2px 2px 6px black);background:url(../img/project-logo.f710a49c.svg) no-repeat;width:300px;height:160px}.container .footer-resource-links[data-v-258d5688]{color:#fff;padding-bottom:1.2em}.container .footer-resource-links h4[data-v-258d5688]{font-weight:700;letter-spacing:.1em;padding:.3em 0 .7em 0;font-size:1.1em}.container .footer-resource-links a[data-v-258d5688]{color:unset;text-decoration:underline}.container .footer-resource-links ul li[data-v-258d5688]{justify-content:flex-start;padding:.4em 0 .4em 0}.container .footer-resource-links ul li .link-icon[data-v-258d5688]{margin-right:.7em}.container .funding a[data-v-258d5688]{color:#fff;text-decoration:underline}.container__md .row[data-v-258d5688]{display:flex;flex-direction:row;justify-content:space-around}.container__md .footer-resource-links[data-v-258d5688]{text-align:left}.container__md .footer-resource-links ul li[data-v-258d5688]{display:grid;grid-template-columns:25% auto}.container__md .col[data-v-258d5688]{display:flex;flex-direction:column}.links-header[data-v-77527f7a]{display:none}.links-header__md[data-v-77527f7a]{background:#e9e7e3;padding:2em 4em 2em 2em;display:flex;flex-direction:row;align-items:center}.links-header__md .row[data-v-77527f7a]{width:100%;display:flex;flex-direction:row;justify-content:flex-end}.links-header__md ul[data-v-77527f7a]{display:flex;justify-content:space-between;width:7em;float:right}.links-header__md ul li[data-v-77527f7a]{cursor:pointer;color:#fff;background:#c77309;margin:0 .3em 0 1em;padding:.5em .2em .5em .2em;border-radius:25px;display:inline-block;opacity:.7;height:100%}.links-header__md ul li[data-v-77527f7a]:hover{background:#2b2823}.links-header__md ul li.outlined[data-v-77527f7a]{background:#554f45}.links-header__md ul li.outlined[data-v-77527f7a]:hover{background:#1c1001}.links-header__md ul a[data-v-77527f7a]{color:#fff;line-height:1;height:100%;padding:.6rem 1.2rem .4rem .9rem;display:block}.links-header__md ul .link-label[data-v-77527f7a]{display:inline-block;align-self:center;font-weight:700;font-size:.8rem;padding-left:.8rem;vertical-align:super;letter-spacing:.11rem}.bg-primary-blue{background-color:#1f91cc}.bg-primary-grey{background-color:#454a54}.text-title{font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.text-description{font-family:Calibri,Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.provider-title{padding:2rem 0 2rem 0;font-size:2rem;letter-spacing:.05rem;opacity:.6}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;width:100vw;font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;font-style:normal;font-size:1rem}ul{list-style-type:none}a{text-decoration:none}img{width:100%}#app{height:100%}.main{background:#454a54;overflow:hidden;transition:background-color 1s}.main .subtitle{padding:3rem 0 1rem 0;font-size:1.1rem}.main .hero{padding-bottom:5rem;filter:drop-shadow(0 5px 5px #23252a)}.main__md{background:#3a3e46}.main__md .nav-container{filter:drop-shadow(0 0 5px #0c0c0e)}.main__md .hero,.main__md .nav-container{display:grid;grid-template-columns:66% auto}.main__md .hero{background:#1c81b6;padding:0}.main__md .hero .meshselect{background:#15628a;padding:0 2em 0 2em}.hero{display:grid}.full,.hero{color:#fff;text-align:center;height:100%} \ No newline at end of file diff --git a/dist/css/app.b95793a8.css b/dist/css/app.b95793a8.css deleted file mode 100644 index daef0b2..0000000 --- a/dist/css/app.b95793a8.css +++ /dev/null @@ -1 +0,0 @@ -@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;700&display=swap);.nav[data-v-317ef896]{background-color:hsla(0,0%,100%,.9)}.nav__md .row[data-v-317ef896]{flex-direction:row;background:hsla(0,0%,100%,.9);justify-content:start;padding:2em 2em 2em 4em}.nav__lg .wrapper[data-v-317ef896]{padding:2em 2em 2em 10em}.wrapper a[data-v-317ef896]{display:block;padding:0 1em;color:#fff}.row[data-v-317ef896]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2em}.row .app-title[data-v-317ef896]{margin:1rem 0 1rem 0;font-size:2rem;letter-spacing:.13rem;font-weight:700;color:#454a54}.row .logo[data-v-317ef896]{background:url(../img/logo-sciencemesh.59cc7159.svg) no-repeat;width:190px;height:70px}h1[data-v-4342b242]{font-size:8rem}h3[data-v-4342b242]{font-size:2rem}.not-found[data-v-4342b242]{display:flex;flex-direction:column;justify-content:center;height:100%}.not-found .wrapper[data-v-4342b242]{letter-spacing:.3rem;padding-top:10rem;padding-bottom:10rem}svg[data-v-3f950430]{display:none}.provider-details[data-v-3f950430]{background:#23252a;width:100%;height:100%;max-height:0;display:flex;flex-direction:column;justify-content:space-between;position:absolute;top:0;left:0;overflow:hidden;z-index:999;transition:max-height .3s ease-out;border-radius:3px}.provider-details .provider-title[data-v-3f950430]{padding-top:0}.provider-details .provider-detail-label[data-v-3f950430]{padding:1rem 0 0 0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05rem;opacity:.6}.provider-details .provider-detail-home[data-v-3f950430]{color:#1f91cc}.provider-details .close-btn[data-v-3f950430]{padding:0 .5rem .2rem .5rem;position:absolute;top:10px;right:20px;font-weight:700;font-size:2rem;color:#686f7e}.provider-details .close-btn[data-v-3f950430]:hover{background:#fff;border-radius:150px;transition:all .4s ease-in-out}.provider-details .text-description[data-v-3f950430]{padding:1em 1em 1em 1em}.provider-details .accept-btn[data-v-3f950430]{font-size:1.2em;font-weight:700;letter-spacing:.2em;padding:2rem 0 2rem 0;background:#df810a;color:#f5f5f5}.provider-details .accept-btn[data-v-3f950430]:hover{background:#965707}.provider-details__open[data-v-3f950430]{padding:2rem 0 0 0;max-height:100%}.provider-details__md[data-v-3f950430]{background:#0b3347}.provider-details__md .close-btn[data-v-3f950430]{color:#686f7e}#scroll-container[data-v-3f950430]{overflow:hidden;max-width:100%;margin:auto;position:relative;min-height:200px;z-index:0}.wrap-container[data-v-3f950430]{width:100%;height:100%;top:0;left:0;position:relative;max-height:300px;max-width:100%;margin:auto;overflow:auto;-webkit-mask:url(#masking);mask:url(#masking);-webkit-mask-image:-webkit-gradient(linear,left bottom,left top,color-stop(.1,transparent),color-stop(.5,#000),color-stop(.9,transparent))}.wrap-container.provider-details__open[data-v-3f950430]{-webkit-mask:unset;mask:unset;-webkit-mask-image:unset}#scroll-container[data-v-3f950430]::-webkit-scrollbar,.ul-scroll[data-v-3f950430]::-webkit-scrollbar,.wrap-container[data-v-3f950430]::-webkit-scrollbar{display:none}#scroll-container[data-v-3f950430],.ul-scroll[data-v-3f950430],.wrap-container[data-v-3f950430]{-ms-overflow-style:none;scrollbar-width:none;height:100%}.wrap-container ul[data-v-3f950430]{list-style:none;position:relative;transition:transform .3s;top:50px}.wrap-container ul[data-v-3f950430],.wrap-container ul li[data-v-3f950430]{margin:0;padding:0;text-align:center}.wrap-container ul li[data-v-3f950430]{height:50px;line-height:50px;transition:transform .3s;overflow:hidden;font-size:.9em}.wrap-container ul li.provider-details__open[data-v-3f950430]{cursor:none;height:100%}.wrap-container ul li[data-v-3f950430]:first-of-type{margin-top:150px}.wrap-container ul li:first-of-type.provider-details__open[data-v-3f950430]{margin-top:0}.wrap-container ul li[data-v-3f950430]:last-of-type{padding-bottom:150px}.wrap-container ul li:last-of-type.provider-details__open[data-v-3f950430]{padding-bottom:0}.wrap-container ul li.active .item[data-v-3f950430]{transform:scale(1.9);cursor:pointer}.active[data-v-3f950430]{opacity:1;color:#fff;border-bottom:1px solid #072331;border-radius:10px;font-weight:700}.wrap-container ul li .item[data-v-3f950430]{position:relative;text-wrap:normal;transition:transform .2s;display:inline-block}.bg-primary-blue[data-v-258d5688]{background-color:#1f91cc}.bg-primary-grey[data-v-258d5688]{background-color:#454a54}.text-title[data-v-258d5688]{font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.text-description[data-v-258d5688]{font-family:Calibri,Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.provider-title[data-v-258d5688]{padding:2rem 0 2rem 0;font-size:2rem;letter-spacing:.05rem;opacity:.6}body[data-v-258d5688]{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;width:100vw;font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;font-style:normal;font-size:1rem}ul[data-v-258d5688]{list-style-type:none}a[data-v-258d5688]{text-decoration:none}img[data-v-258d5688]{width:100%}#app[data-v-258d5688]{height:100%}.center-align[data-v-258d5688]{margin:auto}.container[data-v-258d5688]{background:#2e3138;color:#abb0ba;text-align:center;padding:2.5em;opacity:.6}.container .footer-logo[data-v-258d5688]{filter:drop-shadow(2px 2px 6px black);background:url(../img/project-logo.f710a49c.svg) no-repeat;width:300px;height:160px}.container .footer-resource-links[data-v-258d5688]{color:#fff;padding-bottom:1.2em}.container .footer-resource-links h4[data-v-258d5688]{font-weight:700;letter-spacing:.1em;padding:.3em 0 .7em 0;font-size:1.1em}.container .footer-resource-links a[data-v-258d5688]{color:unset;text-decoration:underline}.container .footer-resource-links ul li[data-v-258d5688]{justify-content:flex-start;padding:.4em 0 .4em 0}.container .footer-resource-links ul li .link-icon[data-v-258d5688]{margin-right:.7em}.container .funding a[data-v-258d5688]{color:#fff;text-decoration:underline}.container__md .row[data-v-258d5688]{display:flex;flex-direction:row;justify-content:space-around}.container__md .footer-resource-links[data-v-258d5688]{text-align:left}.container__md .footer-resource-links ul li[data-v-258d5688]{display:grid;grid-template-columns:25% auto}.container__md .col[data-v-258d5688]{display:flex;flex-direction:column}.links-header[data-v-77527f7a]{display:none}.links-header__md[data-v-77527f7a]{background:#e9e7e3;padding:2em 4em 2em 2em;display:flex;flex-direction:row;align-items:center}.links-header__md .row[data-v-77527f7a]{width:100%;display:flex;flex-direction:row;justify-content:flex-end}.links-header__md ul[data-v-77527f7a]{display:flex;justify-content:space-between;width:7em;float:right}.links-header__md ul li[data-v-77527f7a]{cursor:pointer;color:#fff;background:#c77309;margin:0 .3em 0 1em;padding:.5em .2em .5em .2em;border-radius:25px;display:inline-block;opacity:.7;height:100%}.links-header__md ul li[data-v-77527f7a]:hover{background:#2b2823}.links-header__md ul li.outlined[data-v-77527f7a]{background:#554f45}.links-header__md ul li.outlined[data-v-77527f7a]:hover{background:#1c1001}.links-header__md ul a[data-v-77527f7a]{color:#fff;line-height:1;height:100%;padding:.6rem 1.2rem .4rem .9rem;display:block}.links-header__md ul .link-label[data-v-77527f7a]{display:inline-block;align-self:center;font-weight:700;font-size:.8rem;padding-left:.8rem;vertical-align:super;letter-spacing:.11rem}.bg-primary-blue{background-color:#1f91cc}.bg-primary-grey{background-color:#454a54}.text-title{font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.text-description{font-family:Calibri,Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.provider-title{padding:2rem 0 2rem 0;font-size:2rem;letter-spacing:.05rem;opacity:.6}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;width:100vw;font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;font-style:normal;font-size:1rem}ul{list-style-type:none}a{text-decoration:none}img{width:100%}#app{height:100%}.main{background:#454a54;overflow:hidden;transition:background-color 1s}.main .subtitle{padding:3rem 0 1rem 0;font-size:1.1rem}.main .hero{padding-bottom:5rem;filter:drop-shadow(0 5px 5px #23252a)}.main__md{background:#3a3e46}.main__md .nav-container{filter:drop-shadow(0 0 5px #0c0c0e)}.main__md .hero,.main__md .nav-container{display:grid;grid-template-columns:66% auto}.main__md .hero{background:#1c81b6;padding:0}.main__md .hero .meshselect{background:#15628a;padding:0 2em 0 2em}.hero{display:grid}.full,.hero{color:#fff;text-align:center;height:100%} \ No newline at end of file diff --git a/dist/css/chunk-10f6c022.d19cedb0.css b/dist/css/chunk-10f6c022.d19cedb0.css deleted file mode 100644 index cfd3a5e..0000000 --- a/dist/css/chunk-10f6c022.d19cedb0.css +++ /dev/null @@ -1 +0,0 @@ -@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;700&display=swap);@-webkit-keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}@keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}@-webkit-keyframes staggered-marching-ants{0%{opacity:0;stroke-dashoffset:0}20%{opacity:1}45%{opacity:0}50%{opacity:1;stroke-dashoffset:1000}70%{opacity:0}90%{opacity:1}to{opacity:0;stroke-dashoffset:0}}@keyframes staggered-marching-ants{0%{opacity:0;stroke-dashoffset:0}20%{opacity:1}45%{opacity:0}50%{opacity:1;stroke-dashoffset:1000}70%{opacity:0}90%{opacity:1}to{opacity:0;stroke-dashoffset:0}}.mesh-map{display:block;max-width:100%;overflow:hidden;background-color:#1f91cc;opacity:1;background:radial-gradient(circle,transparent 20%,#1f91cc 0,#1f91cc 80%,transparent 0,transparent),radial-gradient(circle,transparent 20%,#1f91cc 0,#1f91cc 80%,transparent 0,transparent) 30px 30px,linear-gradient(#15628a 2.4px,transparent 0) 0 -1.2px,linear-gradient(90deg,#15628a 2.4px,#1f91cc 0) -1.2px 0;background-size:23px 33px,33px 23px}.mesh-map .mesh-states{stroke:#1872a0;stroke-width:2;stroke-dasharray:.5em;fill:#0b3347;filter:drop-shadow(12px 12px 13px #125273)}.mesh-map .provider{fill:#fff;stroke-width:2;stroke:transparent;transition:stroke .3s linear}.mesh-map .provider:hover{stroke:hsla(0,0%,100%,.3)}.mesh-map .provider__button{fill:transparent;cursor:pointer}.mesh-map .provider__originator{fill:#df810a;transform:scaleZ(2);stroke:hsla(0,0%,100%,.3)}.mesh-map .provider-connector{fill:none;opacity:.8;stroke:#656d7b;stroke-width:4px;stroke-linecap:round;stroke-dasharray:70 70;pointer-events:none;z-index:-1}.mesh-map .provider-connector path{opacity:0;-webkit-animation-name:staggered-marching-ants;animation-name:staggered-marching-ants;-webkit-animation-duration:30s;animation-duration:30s;-webkit-animation-delay:calc(var(--animation-order)*3200ms);animation-delay:calc(var(--animation-order)*3200ms);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.mesh-map .provider-connector__active{stroke-width:8px;opacity:1;stroke:#fff;stroke-dasharray:10 4;stroke-linecap:butt;-webkit-animation-delay:0s;animation-delay:0s;animation:marching-ants 50s linear 1s infinite;-moz-animation:marching-ants 50s linear 1s infinite;-webkit-animation:marching-ants 50s linear 1s infinite;-o-animation:marching-ants 50s linear 1s infinite;-ms-animation:marching-ants 50s linear 1s infinite}.mesh-map .marker-fade-enter-active,.mesh-map .marker-fade-leave-active{transition:opacity .3s linear}.mesh-map .marker-fade-enter,.mesh-map .marker-fade-leave-to{opacity:0}.mesh-map .marker{fill:#df810a;stroke:#341e02;stroke-width:3;cursor:pointer;transition:opacity .3s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-shadow:inset 0 0 10px #000}.mesh-map .marker>*{transition:transform .3s cubic-bezier(.6,0,.5,1)}.mesh-map .marker path{filter:drop-shadow(1px 5px 3px #17191c)}.mesh-map .marker text{stroke:none;fill:#fff;font-family:inherit;font-weight:700;font-size:.8rem}.mesh-map .marker__origin{fill:#1f91cc;stroke:#072331;pointer-events:none;cursor:pointer}.mesh-map .marker__origin path,.mesh-map .marker__origin text{transform:scale(.7)}.mesh-map .marker__current{opacity:.6}.mesh-map .marker__current>*{transform:scale(.8)} \ No newline at end of file diff --git a/dist/css/chunk-d3df6968.1a1cab6a.css b/dist/css/chunk-d3df6968.1a1cab6a.css new file mode 100644 index 0000000..9c782bf --- /dev/null +++ b/dist/css/chunk-d3df6968.1a1cab6a.css @@ -0,0 +1 @@ +@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;700&display=swap);@-webkit-keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}@keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}@-webkit-keyframes staggered-marching-ants{0%{opacity:0;stroke-dashoffset:0}20%{opacity:1}45%{opacity:0}50%{opacity:1;stroke-dashoffset:1000}70%{opacity:0}90%{opacity:1}to{opacity:0;stroke-dashoffset:0}}@keyframes staggered-marching-ants{0%{opacity:0;stroke-dashoffset:0}20%{opacity:1}45%{opacity:0}50%{opacity:1;stroke-dashoffset:1000}70%{opacity:0}90%{opacity:1}to{opacity:0;stroke-dashoffset:0}}.map-container{position:relative}.mesh-map{display:block;max-width:100%;overflow:hidden;background-color:#1f91cc;opacity:1;background:radial-gradient(circle,transparent 20%,#1f91cc 0,#1f91cc 80%,transparent 0,transparent),radial-gradient(circle,transparent 20%,#1f91cc 0,#1f91cc 80%,transparent 0,transparent) 30px 30px,linear-gradient(#15628a 2.4px,transparent 0) 0 -1.2px,linear-gradient(90deg,#15628a 2.4px,#1f91cc 0) -1.2px 0;background-size:23px 33px,33px 23px}.mesh-map .mesh-states{stroke:#1872a0;stroke-width:2;stroke-dasharray:.5em;fill:#0b3347;filter:drop-shadow(12px 12px 13px #125273)}.mesh-map .provider{fill:#fff;stroke-width:2;stroke:transparent;transition:stroke .3s linear}.mesh-map .provider:hover{stroke:hsla(0,0%,100%,.3)}.mesh-map .provider__button{fill:transparent;cursor:pointer}.mesh-map .provider__tooltip{fill:transparent}.mesh-map .provider__originator{fill:#df810a;transform:scaleZ(2);stroke:hsla(0,0%,100%,.3)}.mesh-map .provider-connector{fill:none;opacity:.8;stroke:#656d7b;stroke-width:4px;stroke-linecap:round;stroke-dasharray:70 70;pointer-events:none;z-index:-1}.mesh-map .provider-connector path{opacity:0;-webkit-animation-name:staggered-marching-ants;animation-name:staggered-marching-ants;-webkit-animation-duration:30s;animation-duration:30s;-webkit-animation-delay:calc(var(--animation-order)*3200ms);animation-delay:calc(var(--animation-order)*3200ms);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.mesh-map .provider-connector__active{stroke-width:8px;opacity:1;stroke:#fff;stroke-dasharray:10 4;stroke-linecap:butt;-webkit-animation-delay:0s;animation-delay:0s;animation:marching-ants 50s linear 1s infinite;-moz-animation:marching-ants 50s linear 1s infinite;-webkit-animation:marching-ants 50s linear 1s infinite;-o-animation:marching-ants 50s linear 1s infinite;-ms-animation:marching-ants 50s linear 1s infinite}.mesh-map .marker-fade-enter-active,.mesh-map .marker-fade-leave-active{transition:opacity .3s linear}.mesh-map .marker-fade-enter,.mesh-map .marker-fade-leave-to{opacity:0}.mesh-map .marker{fill:#df810a;stroke:#341e02;stroke-width:3;cursor:pointer;transition:opacity .3s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-shadow:inset 0 0 10px #000}.mesh-map .marker>*{transition:transform .3s cubic-bezier(.6,0,.5,1)}.mesh-map .marker path{filter:drop-shadow(1px 5px 3px #17191c)}.mesh-map .marker text{stroke:none;fill:#fff;font-family:inherit;font-weight:700;font-size:.8rem}.mesh-map .marker__origin{fill:#1f91cc;stroke:#072331;pointer-events:none;cursor:pointer}.mesh-map .marker__origin path,.mesh-map .marker__origin text{transform:scale(.7)}.mesh-map .marker__current{opacity:.6}.mesh-map .marker__current>*{transform:scale(.8)}.map-help{padding:15px;background-color:#454a54;position:absolute;left:0;bottom:0;font-size:smaller;display:block;border-top-right-radius:5px}.map-help .fa-info-circle{margin-right:1em} \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index af1f1cf..dc6b25b 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1 +1 @@ -Mesh Directory | ScienceMesh
\ No newline at end of file +Mesh Directory | ScienceMesh
\ No newline at end of file diff --git a/dist/js/app.64d303c5.js b/dist/js/app.64d303c5.js deleted file mode 100644 index c35e832..0000000 --- a/dist/js/app.64d303c5.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function t(t){for(var a,r,o=t[0],l=t[1],u=t[2],d=0,s=[];d0){var e=O.value/b.value.clientHeight;return Math.round(e*Math.abs(h.value.length))}return 0})),y=Object(a["d"])((function(){return n.value?h.value.findIndex((function(e){return e.name===n.value.name})):-1}));function w(){var e=g.value[y.value];e&&p(e.clientTop+e.offsetTop)}function _(){u(),w()}return Object(a["m"])((function(){g.value=[]})),Object(a["w"])([n],(function(){w()})),Object(a["w"])([O],(function(){var e;if(!o.value){var t=h.value[k.value];t.name!==(null===(e=n.value)||void 0===e?void 0:e.name)&&r(t)}})),{internalProviders:h,target:n,scrollTop:O,wrapScroll:b,providerOptions:g,detailsExpanded:o,expandDetails:l,hideDetails:u,closeDetails:_,targetLink:c,md:s}}});n("866a");H.render=M,H.__scopeId="data-v-3f950430";var q=H,F=Object(a["A"])("data-v-258d5688");Object(a["q"])("data-v-258d5688");var G={class:"row"},J=Object(a["i"])("div",{class:"col"},[Object(a["i"])("div",{class:"footer-logo center-align"})],-1),W={class:"footer-resource-links col-md-3 col-xs-12"},z=Object(a["i"])("h4",null,"Resources",-1),$=Object(a["i"])("div",{class:"row"},[Object(a["i"])("div",{class:"col center-align funding"},[Object(a["i"])("p",null,[Object(a["i"])("a",{href:"https://cs3mesh4eosc.eu/",target:"_new"},"CS3MESH4EOSC"),Object(a["h"])(" has received funding from the European Union's Horizon 2020 research and innovation programme under the Grant Agreement no 863353 ")])])],-1);Object(a["p"])();var K=F((function(e,t,n,r,c,i){var o=Object(a["t"])("fa-icon");return Object(a["o"])(),Object(a["f"])("footer",null,[Object(a["i"])("div",{class:[[r.md?"container__md":""],"container"]},[Object(a["i"])("div",G,[J,Object(a["i"])("div",W,[z,Object(a["i"])("ul",null,[(Object(a["o"])(!0),Object(a["f"])(a["a"],null,Object(a["s"])(r.resourcesLinks,(function(e){return Object(a["o"])(),Object(a["f"])("li",{key:e.name},[Object(a["i"])(o,{class:"link-icon",icon:e.icon},null,8,["icon"]),Object(a["i"])("a",{href:e.target,target:"_new"},Object(a["u"])(e.name),9,["href"])])})),128))])])]),$],2)])})),Y={name:"MeshFooter",setup:function(){var e=m(),t=e.md,n=Object(a["r"])([{name:"GitHub",target:"https://github.com/sciencemesh/sciencemesh",icon:["fab","github"]},{name:"Gitter",target:"https://gitter.im/sciencemesh/community",icon:["fab","gitter"]},{name:"Documentation",target:"https://developer.sciencemesh.io/docs/",icon:"book"},{name:"Deploy",target:"https://developer.sciencemesh.io/docs/iop/deployment/",icon:"rocket"}]);return{md:t,resourcesLinks:n}}};n("cd3c");Y.render=K,Y.__scopeId="data-v-258d5688";var Q=Y,V=Object(a["A"])("data-v-77527f7a");Object(a["q"])("data-v-77527f7a");var X={class:"row"},Z={class:"row"},ee={class:"link-label"};Object(a["p"])();var te=V((function(e,t,n,r,c,i){var o=Object(a["t"])("fa-icon");return Object(a["o"])(),Object(a["f"])("div",{class:[[r.md?"links-header__md":"",r.lg?"links-header__lg":""],"links-header"]},[Object(a["i"])("ul",X,[(Object(a["o"])(!0),Object(a["f"])(a["a"],null,Object(a["s"])(r.navLinks,(function(e){return Object(a["o"])(),Object(a["f"])("li",{key:e.name,class:e.class},[Object(a["i"])("a",{href:e.target,target:"_new"},[Object(a["i"])("div",Z,[Object(a["i"])(o,{icon:e.icon},null,8,["icon"]),Object(a["i"])("span",ee,Object(a["u"])(e.name),1)])],8,["href"])],2)})),128))])],2)})),ne={name:"NavbarLinks",setup:function(){var e=m(),t=e.md,n=e.lg,r=Object(a["r"])([{icon:"sign-in-alt",name:"JOIN",target:"https://developer.sciencemesh.io/docs/how-to-join-sciencemesh/",class:""},{icon:"book",name:"DOCS",target:"https://developer.sciencemesh.io/docs/",class:"outlined"}]);return{md:t,lg:n,navLinks:r}}};n("52d0");ne.render=te,ne.__scopeId="data-v-77527f7a";var ae=ne,re=Object(a["j"])((function(){return n.e("chunk-10f6c022").then(n.bind(null,"eb22"))})),ce={name:"App",components:{NavbarLinks:ae,MeshFooter:Q,ProviderSelect:q,LinkInvalid:E,Navbar:h,MeshMap:re},setup:function(){var e=Object(v["a"])(),t=e.fetchProviders,n=e.fetchLocations,a=e.loaded,r=e.providers,c=e.originator,i=Object(k["a"])(),o=i.validLink,l=i.baseUrl,u=m(),d=u.md,s=u.lg;return t("".concat(l.value,"providers")),n(),{originator:c,loaded:a,validLink:o,providers:r,md:d,lg:s}}};n("0910");ce.render=b;var ie=ce,oe=n("ecee"),le=n("c074"),ue=n("f2d1"),de=n("ad3d");oe["c"].add(le["a"],le["c"],le["b"],ue["a"],ue["b"]);var se=Object(a["e"])(ie);se.component("fa-icon",de["a"]),se.mount("#app")},"6d5e":function(e,t,n){},"7b57":function(e,t,n){"use strict";n("7c5e")},"7c5e":function(e,t,n){},"866a":function(e,t,n){"use strict";n("8772")},8772:function(e,t,n){},"9b23":function(e,t,n){"use strict";n("6d5e")},"9f67":function(e,t,n){"use strict";n.d(t,"a",(function(){return O}));n("7db0"),n("2b3d"),n("d3b7"),n("3ca3"),n("ddb0"),n("25f0"),n("5319"),n("ac1f"),n("b0c0");var a=n("7a23"),r=n("ba28");function c(){function e(e,t){fetch(e,{headers:{Accept:"application/json"}}).then((function(e){e.json().then((function(e){t(e)}))})).catch((function(e){console.log(e)}))}return{load:e}}var i=Object(r["a"])(),o=i.searchParams,l=i.validLink,u=c(),d=u.load,s=Object(a["r"])([]),b=Object(a["r"])([]),v=Object(a["r"])(null),f=Object(a["r"])(!1);function O(){var e=s,t=b,r=v,c=Object(a["r"])(!1),i=Object(a["r"])(!1),u=Object(a["r"])(!1),O=Object(a["d"])((function(){var t=e.value.find((function(e){return e.domain===o.value.get("providerDomain")}));return t||{full_name:""}})),p=Object(a["d"])((function(){return r.value&&l?new URL("?".concat(encodeURI(o.value.toString())),new URL("invites/forward",new URL(j.value.endpoint.path.replace(/\/?$/,"/")))):"#"})),j=Object(a["d"])((function(){var e;return null===(e=r.value)||void 0===e?void 0:e.services.find((function(e){return"OCM"===e.endpoint.type.name}))}));function m(t){d(t,(function(t){e.value=t,i.value=!0,u.value&&(c.value=!0)}))}function g(){t.value=n("3116"),u.value=!0,c.value=!0}function h(t){return Object(a["r"])(e.value.find((function(e){return e.name===t.key})))}function k(e){return Object(a["r"])(t.value.find((function(t){return t.key===e.value.name})))}function y(){f.value=!0}function w(){f.value=!1}function _(e){r.value=e}return{providers:Object(a["d"])((function(){return e.value})),locations:Object(a["d"])((function(){return t.value})),target:Object(a["d"])((function(){return r.value})),targetLink:p,originator:O,detailsExpanded:f,providersLoaded:Object(a["d"])((function(){return i.value})),locationsLoaded:Object(a["d"])((function(){return u.value})),loaded:Object(a["d"])((function(){return c.value})),fetchProviders:m,fetchLocations:g,getLocation:k,setTarget:_,getProvider:h,expandDetails:y,hideDetails:w}}},ba28:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));n("2b3d"),n("d3b7"),n("3ca3"),n("ddb0"),n("841c"),n("ac1f"),n("5319");var a=n("7a23");function r(){var e=Object(a["d"])((function(){return new URLSearchParams(window.location.search)})),t=Object(a["d"])((function(){return window.location.pathname.replace(/\/?$/,"/")})),n=Object(a["d"])((function(){return e.value.has("providerDomain")&&e.value.has("token")}));return{searchParams:e,validLink:n,baseUrl:t}}},cd3c:function(e,t,n){"use strict";n("d8bc")},d8bc:function(e,t,n){}}); -//# sourceMappingURL=app.64d303c5.js.map \ No newline at end of file diff --git a/dist/js/app.64d303c5.js.map b/dist/js/app.64d303c5.js.map deleted file mode 100644 index 579171b..0000000 --- a/dist/js/app.64d303c5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?e627","webpack:///./src/components/NavbarLinks.vue?4f57","webpack:///./src/App.vue","webpack:///./src/components/Navbar.vue","webpack:///./src/use/breakpoints.js","webpack:///./src/components/Navbar.vue?59c0","webpack:///./src/components/LinkInvalid.vue","webpack:///./src/components/LinkInvalid.vue?2d6a","webpack:///./src/components/ProviderSelect.vue","webpack:///./src/components/ProviderSelect.vue?85c5","webpack:///./src/components/MeshFooter.vue","webpack:///./src/components/MeshFooter.vue?90e2","webpack:///./src/components/NavbarLinks.vue","webpack:///./src/components/NavbarLinks.vue?2e0b","webpack:///./src/App.vue?dfb6","webpack:///./src/main.js","webpack:///./src/components/Navbar.vue?26dd","webpack:///./src/components/ProviderSelect.vue?635d","webpack:///./src/components/LinkInvalid.vue?3330","webpack:///./src/use/fetch.js","webpack:///./src/use/providers.js","webpack:///./src/use/query.js","webpack:///./src/components/MeshFooter.vue?6047"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","class","md","lg","validLink","loaded","originator","full_name","useBreakpoints","breakpoints","xs","sm","xl","useBreakpoint","current","setup","render","__scopeId","id","ref","x1","x2","y1","y2","offset","stop-color","maskContentUnits","maskUnits","fill","height","width","y","detailsExpanded","style","wrapHeight","internalProviders","provider","el","providerOptions","closeDetails","description","organization","homepage","targetLink","props","Number","default","providers","setTarget","expandDetails","hideDetails","wrapScroll","scrollTop","scrollTopTo","filter","scrollIndex","scrollPercentage","clientHeight","Math","round","abs","targetIndex","findIndex","onTargetChanged","targetEl","clientTop","offsetTop","resourcesLinks","link","icon","navLinks","MeshMap","components","NavbarLinks","MeshFooter","ProviderSelect","LinkInvalid","Navbar","fetchProviders","fetchLocations","baseUrl","library","add","faBook","faSignInAlt","faRocket","faGithub","faGitter","app","createApp","App","component","FontAwesomeIcon","mount","useFetch","load","uri","fetch","headers","response","json","res","catch","log","useUrl","searchParams","meshProviders","meshLocations","meshTarget","useProviders","locations","providersLoaded","locationsLoaded","computed","originProvider","find","domain","URL","encodeURI","toString","targetOCMService","endpoint","path","replace","services","providersUri","require","getProvider","location","getLocation","URLSearchParams","search","pathname","has"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,GAAG9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,YAAYA,GAAW,MAIhH,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,GAC/BR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,GAAGxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,YAAYA,GAAW,OACxFyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,GAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,6EC1QT,W,8gCCAA,W,sGCES+F,MAAM,iB,SAIeA,MAAM,Q,GAIzBA,MAAM,sB,GACJA,MAAM,6B,EACT,eAA+C,SAA5C,4CAAwC,G,GACxCA,MAAM,kB,EACT,eAA4B,SAAzB,yBAAqB,G,SAKdA,MAAM,qB,kPAlBxB,eAwBM,OAxBAA,MAAK,EAAG,EAAAC,GAAE,cAAkB,EAAAC,GAAE,eAAyB,S,CAC3D,eAGM,MAHN,EAGM,CAFJ,eAAiB,GACjB,eAA6B,KAEhB,EAAAC,W,iBAAf,eAYU,UAZV,EAYU,CAXU,EAAAC,QAAU,EAAAH,I,iBAA5B,eAEa,gBADX,eAAqB,I,6BAEvB,eAOM,MAPN,EAOM,CANJ,eAIM,MAJN,EAIM,CAHJ,EACA,eAAwD,IAAxD,EAAwD,eAA3B,EAAAI,WAAWC,WAAS,GACjD,IAEF,eAAmC,S,iBAGvC,eAEU,UAFV,EAEU,CADR,eAA6B,MAE/B,eAEU,gBADR,eAA2B,M,6HCrB7B,eAKM,OALDN,MAAM,OAAK,CACd,eAEI,KAFDA,MAAM,aAAazE,KAAK,K,CACzB,eAAwB,OAAnByE,MAAM,WAEb,eAAwC,QAAlCA,MAAM,aAAY,e,2EAL5B,eAOS,UAPAA,MAAK,EAAG,EAAAC,GAAE,aAAiB,EAAAC,GAAE,cAAwB,Q,CAC5D,G,kBCAW,SAASK,IACpB,IAAMC,EAAc,CAChBC,GAAI,EACJC,GAAI,IACJT,GAAI,KACJC,GAAI,KACJS,GAAI,MAN6B,EASGC,eAAcJ,GAA9CK,EAT6B,EAS7BA,QAASJ,EAToB,EASpBA,GAAIC,EATgB,EAShBA,GAAIT,EATY,EASZA,GAAIC,EATQ,EASRA,GAAIS,EATI,EASJA,GACjC,MAAO,CAAEE,UAASJ,KAAIC,KAAIT,KAAIC,KAAIS,MDCvB,OACb3C,KAAM,SACN8C,MAFa,WAEL,MACWP,IAAVN,EADD,EACCA,GAAIC,EADL,EACKA,GACX,MAAO,CAACD,KAAIC,Q,UEZhB,EAAOa,OAAS,EAChB,EAAOC,UAAY,kBAEJ,Q,yFCPRhB,MAAM,a,EACT,eAGM,OAHDA,MAAM,WAAS,CAClB,eAAY,UAAR,OACJ,eAAuB,UAAnB,oB,2EAHR,eAKM,MALN,EAKM,CAJJ,OAQW,GACbhC,KAAM,e,UCNR,EAAO+C,OAAS,EAChB,EAAOC,UAAY,kBAEJ,Q,6GCPRhB,MAAM,a,GACJiB,GAAG,oB,GAIAC,IAAI,WAAWlB,MAAM,a,GAMfA,MAAM,Q,GAKTA,MAAM,a,EAEP,eAAY,WAAP,KAAC,G,GAGLA,MAAM,6B,GACNA,MAAM,kB,EAET,eAAgD,KAA7CA,MAAM,yBAAwB,eAAW,G,EAWpD,eAWM,YAVJ,eASO,aARL,eAIiB,kBAJDiB,GAAG,WAAWE,GAAG,IAAIC,GAAG,IAAIC,GAAG,KAAKC,GAAG,O,CACrD,eAAqC,QAA/BC,OAAO,IAAIC,aAAW,UAC5B,eAAuC,QAAjCD,OAAO,MAAMC,aAAW,UAC9B,eAAqC,QAA/BD,OAAO,IAAIC,aAAW,YAE9B,eAEO,QAFDP,GAAG,UAAUQ,iBAAiB,oBAAoBC,UAAU,qB,CAChE,eAAwD,QAAlDC,KAAK,iBAAiBC,OAAO,IAAIC,MAAM,IAAIC,EAAE,Y,yFA3C3D,eA+CM,MA/CN,EA+CM,CA9CJ,eAiCM,MAjCN,EAiCM,CAhCJ,eA+BM,OA/BDZ,IAAI,aAAclB,MAAK,EAAG,EAAA+B,gBAAe,6BAEnC,kBADLC,MAAK,qBAAiB,EAAAC,WAAjB,MAA2B,oBAAoB,EAAAA,WAApB,Q,CAEpC,eAQK,KARL,EAQK,E,mBAPH,eAMK,2BANuB,EAAAC,mBAAiB,SAAjCC,EAAUhJ,GAAC,M,wCAAvB,eAMK,MAJAkG,IAAK8C,EAASnE,KACdkD,IAAK,SAAAkB,GAAYA,IAAI,EAAAC,gBAAgBlJ,GAAKiJ,IAAOpC,MAAK,CAAGmC,EAASnE,QAAT,UAAkB,EAAAxB,cAAlB,aAAkB,EAAQwB,MAAI,aACvF,QAAK,yBAAEmE,EAASnE,QAAT,UAAkB,EAAAxB,cAAlB,aAAkB,EAAQwB,MAAM,EAAA+D,iBAAe,S,CACzD,eAAkD,OAAlD,EAAkD,eAA5BI,EAAS7B,WAAS,I,2BAJ7B,EAAAyB,sB,YAOf,eAkBM,OAlBA/B,MAAK,EAAG,EAAA+B,gBAAe,4BAAgC,EAAA9B,GAAE,2BACpD,qB,CACT,eAIM,MAJN,EAIM,CAHJ,eAES,UAFA,QAAK,8BAAE,EAAAqC,cAAA,EAAAA,aAAA,sB,CACd,MAGJ,eASM,MATN,EASM,CARJ,eAAqD,IAArD,EAAqD,yBAAxB,EAAA9F,cAAwB,aAAxB,EAAQ8D,WAAS,GAC9C,eAAgC,kCAA1B,EAAA9D,cAA0B,aAA1B,EAAQ+F,aAAW,GACzB,EACA,eAAiC,kCAA3B,EAAA/F,cAA2B,aAA3B,EAAQgG,cAAY,G,UACjB,EAAAhG,c,OAAA,EAAQiG,U,iBAAjB,eAG0C,K,MAFtClH,KAAI,UAAE,EAAAiB,cAAF,aAAE,EAAQiG,SACfzC,MAAM,uBACNxD,OAAO,Q,eAAU,EAAAA,OAAOiG,UAAQ,a,wBAErC,eAAmD,KAA/ClH,KAAM,EAAAmH,WAAY1C,MAAM,cAAa,SAAM,a,SAIrD,OAoBW,G,8BAAA,CACbhC,KAAM,iBACN2E,MAAO,CACLV,WAAY,CACV9F,KAAMyG,OACNC,QAAS,MAGb/B,MARa,WAQL,MAUF,iBARFgC,EAFI,EAEJA,UACAtG,EAHI,EAGJA,OACAuG,EAJI,EAIJA,UACAL,EALI,EAKJA,WACArC,EANI,EAMJA,WACA0B,EAPI,EAOJA,gBACAiB,EARI,EAQJA,cACAC,EATI,EASJA,YATI,EAWO1C,IAANN,EAXD,EAWCA,GACDiD,EAAa,eAAI,MAZjB,EAa2B,eAAYA,GAAtCC,EAbD,EAaCA,UAAWC,EAbZ,EAaYA,YACZf,EAAkB,eAAI,IAEtBH,EAAoB,gBAAS,WACjC,OAAOY,EAAU/D,MAAMsE,QAAO,SAAAxI,GAC5B,OAAOA,EAAEmD,OAASqC,EAAWtB,MAAMf,WAIjCsF,EAAc,gBAAS,WAC3B,GAAIH,EAAUpE,MAAQ,EAAG,CACvB,IAAMwE,EAAoBJ,EAAUpE,MAAQmE,EAAWnE,MAAMyE,aAC7D,OAAOC,KAAKC,MAAMH,EAAmBE,KAAKE,IAAIzB,EAAkBnD,MAAM1F,SAExE,OAAO,KAGHuK,EAAc,gBAAS,WAC3B,OAAIpH,EAAOuC,MACFmD,EAAkBnD,MAAM8E,WAAU,SAAAhJ,GAAA,OAAKA,EAAEmD,OAASxB,EAAOuC,MAAMf,SAEhE,KAOV,SAAS8F,IACP,IAAMC,EAAW1B,EAAgBtD,MAAM6E,EAAY7E,OAC/CgF,GACFX,EAAYW,EAASC,UAAYD,EAASE,WAkB9C,SAAS3B,IACPW,IACAa,IAGF,OA9BA,gBAAe,WACbzB,EAAgBtD,MAAQ,MAU1B,eAAM,CAACvC,IAAS,WACdsH,OAGF,eAAM,CAACX,IAAY,WAAM,MACvB,IAAIpB,EAAgBhD,MAApB,CAGA,IAAMoD,EAAWD,EAAkBnD,MAAMuE,EAAYvE,OACjDoD,EAASnE,QAAT,UAAkBxB,EAAOuC,aAAzB,aAAkB,EAAcf,OAClC+E,EAAUZ,OASP,CACLD,oBACA1F,SACA2G,YACAD,aACAb,kBACAN,kBACAiB,gBACAC,cACAX,eACAI,aACAzC,S,UCzIN,EAAOc,OAAS,EAChB,EAAOC,UAAY,kBAEJ,Q,6ECLJhB,MAAM,O,EACT,eAEM,OAFDA,MAAM,OAAK,CACd,eAA4C,OAAvCA,MAAM,+B,MAERA,MAAM,4C,EACT,eAAkB,UAAd,aAAS,G,EASjB,eAMM,OANDA,MAAM,OAAK,CACd,eAIM,OAJDA,MAAM,4BAA0B,CACnC,eAEI,UAFD,eAAiE,KAA9DzE,KAAK,2BAA2BiB,OAAO,QAAO,gB,eAAgB,6I,2GAlB5E,eAwBS,eAvBP,eAsBM,OAtBAwD,MAAK,EAAG,EAAAC,GAAE,oBAA8B,c,CAC5C,eAaM,MAbN,EAaM,CAZJ,EAGA,eAQM,MARN,EAQM,CAPJ,EACA,eAKK,Y,mBAJH,eAGK,2BAHc,EAAAiE,gBAAc,SAAtBC,G,wBAAX,eAGK,MAH+B9E,IAAK8E,EAAKnG,M,CAC5C,eAAuD,GAA9CgC,MAAM,YAAaoE,KAAMD,EAAKC,M,iBACvC,eAAwD,KAApD7I,KAAM4I,EAAK3H,OAAQA,OAAO,Q,eAAU2H,EAAKnG,MAAI,iB,YAKzD,G,QAeS,GACbA,KAAM,aACN8C,MAFa,WAEL,MACOP,IAANN,EADD,EACCA,GACDiE,EAAiB,eAAI,CACzB,CACElG,KAAM,SACNxB,OAAQ,6CACR4H,KAAM,CAAC,MAAO,WAEhB,CACEpG,KAAM,SACNxB,OAAQ,0CACR4H,KAAM,CAAC,MAAO,WAEhB,CACEpG,KAAM,gBACNxB,OAAQ,yCACR4H,KAAM,QAER,CACEpG,KAAM,SACNxB,OAAQ,wDACR4H,KAAM,YAGV,MAAO,CAACnE,KAAIiE,oB,UCrDhB,EAAOnD,OAAS,EAChB,EAAOC,UAAY,kBAEJ,Q,6ECNPhB,MAAM,O,GAGCA,MAAM,O,IAEHA,MAAM,c,yGANtB,eAWM,OAXAA,MAAK,EAAG,EAAAC,GAAE,sBAA0B,EAAAC,GAAE,uBAAiC,iB,CAC3E,eASK,KATL,EASK,E,mBARH,eAOK,2BAPc,EAAAmE,UAAQ,SAAhBF,G,wBAAX,eAOK,MAPyB9E,IAAK8E,EAAKnG,KAAOgC,MAAOmE,EAAKnE,O,CACzD,eAKI,KALAzE,KAAM4I,EAAK3H,OAAQA,OAAO,Q,CAC5B,eAGM,MAHN,EAGM,CAFJ,eAAqC,GAA3B4H,KAAMD,EAAKC,M,iBACrB,eAA+C,OAA/C,GAA+C,eAAnBD,EAAKnG,MAAI,M,kCAYlC,IACbA,KAAM,cACN8C,MAFa,WAEL,MACWP,IAAVN,EADD,EACCA,GAAIC,EADL,EACKA,GACLmE,EAAW,eAAI,CACnB,CACED,KAAM,cACNpG,KAAM,OACNxB,OAAQ,iEACRwD,MAAO,IAET,CACEoE,KAAM,OACNpG,KAAM,OACNxB,OAAQ,yCACRwD,MAAO,cAGX,MAAO,CAACC,KAAIC,KAAImE,c,UChCpB,GAAOtD,OAAS,GAChB,GAAOC,UAAY,kBAEJ,UX+BTsD,GAAU,gBAAqB,kBACjC,mDAGW,IACbtG,KAAM,MACNuG,WAAY,CACVC,eACAC,aACAC,iBACAC,cACAC,SACAN,YAEFxD,MAVa,WAUL,MACkE,iBAAjE+D,EADD,EACCA,eAAgBC,EADjB,EACiBA,eAAgB1E,EADjC,EACiCA,OAAQ0C,EADzC,EACyCA,UAAWzC,EADpD,EACoDA,WADpD,EAEuB,iBAAtBF,EAFD,EAECA,UAAW4E,EAFZ,EAEYA,QAFZ,EAGWxE,IAAVN,EAHD,EAGCA,GAAIC,EAHL,EAGKA,GAOX,OALA2E,EAAe,GAAD,OAAIE,EAAQhG,MAAZ,cAGd+F,IAEO,CAACzE,aAAYD,SAAQD,YAAW2C,YAAW7C,KAAIC,Q,UY1D1D,GAAOa,OAASA,EAED,U,oDCCfiE,QAAQC,IACJC,QAAQC,QAAaC,QACrBC,QAAUC,SAEd,IAAMC,GAAMC,eAAUC,IAEtBF,GAAIG,UAAU,UAAWC,SAEzBJ,GAAIK,MAAM,S,6DChBV,W,6DCAA,W,2DCAA,W,4LCAe,SAASC,IAEpB,SAASC,EAAKC,EAAK1K,GACf2K,MAAMD,EAAK,CACPE,QAAS,CACL,OAAU,sBAEfhJ,MAAK,SAAAiJ,GACAA,EAASC,OACJlJ,MAAK,SAACmJ,GACH/K,EAAQ+K,SAGnBC,OAAM,SAAA3J,GACHiD,QAAQ2G,IAAI5J,MAGxB,MAAO,CAACoJ,Q,MCbsBS,iBAA3BC,E,EAAAA,aAAcrG,E,EAAAA,U,EACN0F,IAARC,E,EAAAA,KAEDW,EAAgBvF,eAAI,IACpBwF,EAAgBxF,eAAI,IACpByF,EAAazF,eAAI,MACjBa,EAAkBb,gBAAI,GAEb,SAAS0F,IACpB,IAAM9D,EAAY2D,EACZI,EAAYH,EACZlK,EAASmK,EACTvG,EAASc,gBAAI,GACb4F,EAAkB5F,gBAAI,GACtB6F,EAAkB7F,gBAAI,GAEtBb,EAAa2G,gBAAS,WACxB,IAAMC,EAAiBnE,EAAU/D,MAAMmI,MAAK,SAAArM,GACxC,OAAOA,EAAEsM,SAAWX,EAAazH,MAAMJ,IAAI,qBAE/C,OAAOsI,GAAkB,CAAC,UAAa,OAGrCvE,EAAasE,gBAAS,WACxB,OAAKxK,EAAOuC,OAAUoB,EAGf,IAAIiH,IAAJ,WACCC,UAAUb,EAAazH,MAAMuI,aACjC,IAAIF,IAAI,kBACJ,IAAIA,IAAIG,EAAiBxI,MAAMyI,SAASC,KAAKC,QAAQ,OAAQ,QAL1D,OAUTH,EAAmBP,gBAAS,WAAM,MACpC,iBAAOxK,EAAOuC,aAAd,aAAO,EAAc4I,SAAST,MAAK,SAAAzM,GAC/B,MAAgC,QAAzBA,EAAE+M,SAASrL,KAAK6B,WAI/B,SAAS6G,EAAe+C,GAQpB9B,EAAK8B,GAAc,SAACxB,GAChBtD,EAAU/D,MAAQqH,EAClBU,EAAgB/H,OAAQ,EAEpBgI,EAAgBhI,QAChBqB,EAAOrB,OAAQ,MAK3B,SAAS+F,IACL+B,EAAU9H,MAAQ8I,EAAQ,QAC1Bd,EAAgBhI,OAAQ,EACxBqB,EAAOrB,OAAQ,EAWnB,SAAS+I,EAAYC,GACjB,OAAO7G,eAAI4B,EAAU/D,MAAMmI,MAAK,SAAArM,GAC5B,OAAOA,EAAEmD,OAAS+J,EAAS1I,QAInC,SAAS2I,EAAY7F,GACjB,OAAOjB,eAAI2F,EAAU9H,MAAMmI,MAAK,SAAAlM,GAC5B,OAAOA,EAAEqE,MAAQ8C,EAASpD,MAAMf,SAIxC,SAASgF,IACLjB,EAAgBhD,OAAQ,EAG5B,SAASkE,IACLlB,EAAgBhD,OAAQ,EAG5B,SAASgE,EAAUZ,GACf3F,EAAOuC,MAAQoD,EAGnB,MAAO,CACHW,UAAWkE,gBAAS,kBAAMlE,EAAU/D,SACpC8H,UAAWG,gBAAS,kBAAMH,EAAU9H,SACpCvC,OAAQwK,gBAAS,kBAAMxK,EAAOuC,SAC9B2D,aACArC,aACA0B,kBACA+E,gBAAiBE,gBAAS,kBAAMF,EAAgB/H,SAChDgI,gBAAiBC,gBAAS,kBAAMD,EAAgBhI,SAChDqB,OAAQ4G,gBAAS,kBAAM5G,EAAOrB,SAC9B8F,iBAAgBC,iBAAgBkD,cAAajF,YAAW+E,cACxD9E,gBAAeC,iB,0JC9GR,SAASsD,IACpB,IAAMC,EAAeQ,gBAAS,WAC1B,OAAO,IAAIiB,gBAAgBpI,OAAOkI,SAASG,WAGzCnD,EAAUiC,gBAAS,WACrB,OAAOnH,OAAOkI,SAASI,SAAST,QAAQ,OAAQ,QAG9CvH,EAAY6G,gBAAS,WACvB,OAAOR,EAAazH,MAAMqJ,IAAI,mBACvB5B,EAAazH,MAAMqJ,IAAI,YAGlC,MAAO,CAAC5B,eAAcrG,YAAW4E,a,kCChBrC,W","file":"js/app.64d303c5.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-10f6c022\":\"5fe1a4ac\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-10f6c022\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-10f6c022\":\"d19cedb0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=5d735b5e&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NavbarLinks.vue?vue&type=style&index=0&id=77527f7a&lang=scss&scoped=true\"","\n\n\n\n\n","\n\n\n\n","import {useBreakpoint} from \"vue-composable\";\n\nexport default function useBreakpoints() {\n const breakpoints = {\n xs:\t1,\n sm:\t599,\n md: 1024,\n lg: 1439,\n xl:\t1920\n }\n\n const { current, xs, sm, md, lg, xl } = useBreakpoint(breakpoints)\n return { current, xs, sm, md, lg, xl }\n}\n","import { render } from \"./Navbar.vue?vue&type=template&id=317ef896&scoped=true\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js\"\n\nimport \"./Navbar.vue?vue&type=style&index=0&id=317ef896&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-317ef896\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./LinkInvalid.vue?vue&type=template&id=4342b242&scoped=true\"\nimport script from \"./LinkInvalid.vue?vue&type=script&lang=js\"\nexport * from \"./LinkInvalid.vue?vue&type=script&lang=js\"\n\nimport \"./LinkInvalid.vue?vue&type=style&index=0&id=4342b242&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4342b242\"\n\nexport default script","\n\n\n","import { render } from \"./ProviderSelect.vue?vue&type=template&id=3f950430&scoped=true\"\nimport script from \"./ProviderSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ProviderSelect.vue?vue&type=script&lang=js\"\n\nimport \"./ProviderSelect.vue?vue&type=style&index=0&id=3f950430&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-3f950430\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./MeshFooter.vue?vue&type=template&id=258d5688&scoped=true\"\nimport script from \"./MeshFooter.vue?vue&type=script&lang=js\"\nexport * from \"./MeshFooter.vue?vue&type=script&lang=js\"\n\nimport \"./MeshFooter.vue?vue&type=style&index=0&id=258d5688&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-258d5688\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./NavbarLinks.vue?vue&type=template&id=77527f7a&scoped=true\"\nimport script from \"./NavbarLinks.vue?vue&type=script&lang=js\"\nexport * from \"./NavbarLinks.vue?vue&type=script&lang=js\"\n\nimport \"./NavbarLinks.vue?vue&type=style&index=0&id=77527f7a&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-77527f7a\"\n\nexport default script","import { render } from \"./App.vue?vue&type=template&id=5d735b5e\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=5d735b5e&lang=scss\"\nscript.render = render\n\nexport default script","import { createApp } from 'vue'\nimport App from './App.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faBook, faSignInAlt, faRocket } from '@fortawesome/free-solid-svg-icons'\nimport { faGithub, faGitter } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'\n\nlibrary.add(\n faBook, faSignInAlt, faRocket,\n faGithub, faGitter)\n\nconst app = createApp(App)\n\napp.component('fa-icon', FontAwesomeIcon)\n\napp.mount('#app')\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Navbar.vue?vue&type=style&index=0&id=317ef896&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ProviderSelect.vue?vue&type=style&index=0&id=3f950430&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LinkInvalid.vue?vue&type=style&index=0&id=4342b242&lang=scss&scoped=true\"","export default function useFetch() {\n\n function load(uri, resolve) {\n fetch(uri, {\n headers: {\n 'Accept': 'application/json',\n }\n }).then(response => {\n response.json()\n .then((res) => {\n resolve(res)\n })\n })\n .catch(err => {\n console.log(err)\n })\n }\n return {load}\n}\n","import {computed, ref} from 'vue'\nimport useUrl from '@/use/query'\nimport useFetch from '@/use/fetch'\n\nconst {searchParams, validLink} = useUrl()\nconst {load} = useFetch()\n\nconst meshProviders = ref([])\nconst meshLocations = ref([])\nconst meshTarget = ref(null)\nconst detailsExpanded = ref(false)\n\nexport default function useProviders() {\n const providers = meshProviders\n const locations = meshLocations\n const target = meshTarget\n const loaded = ref(false)\n const providersLoaded = ref(false)\n const locationsLoaded = ref(false)\n\n const originator = computed(() => {\n const originProvider = providers.value.find(p => {\n return p.domain === searchParams.value.get('providerDomain')\n })\n return originProvider || {'full_name': ''}\n })\n\n const targetLink = computed(() => {\n if (!target.value || !validLink) {\n return '#'\n }\n return new URL(\n `?${encodeURI(searchParams.value.toString())}`,\n new URL('invites/forward',\n new URL(targetOCMService.value.endpoint.path.replace(/\\/?$/, '/'))\n )\n )\n })\n\n const targetOCMService = computed(() => {\n return target.value?.services.find(s => {\n return s.endpoint.type.name === 'OCM'\n })\n })\n\n function fetchProviders(providersUri) {\n if (process.env.NODE_ENV === 'development') {\n providers.value = require('../../demo/providers.json')\n providersLoaded.value = true\n loaded.value = true\n return\n }\n\n load(providersUri, (res) => {\n providers.value = res\n providersLoaded.value = true\n\n if (locationsLoaded.value) {\n loaded.value = true\n }\n })\n }\n\n function fetchLocations() {\n locations.value = require('../assets/data/providers.loc.json')\n locationsLoaded.value = true\n loaded.value = true\n // TODO: uncomment when mentix locations provider is in IOP\n // load(locationsUri, (res) => {\n // locations.value = res\n // locationsLoaded.value = true\n // if (providersLoaded.value) {\n // loaded.value = true\n // }\n // })\n }\n\n function getProvider(location) {\n return ref(providers.value.find(p => {\n return p.name === location.key\n }))\n }\n\n function getLocation(provider) {\n return ref(locations.value.find(l => {\n return l.key === provider.value.name\n }))\n }\n\n function expandDetails() {\n detailsExpanded.value = true\n }\n\n function hideDetails() {\n detailsExpanded.value = false\n }\n\n function setTarget(provider) {\n target.value = provider\n }\n\n return {\n providers: computed(() => providers.value),\n locations: computed(() => locations.value),\n target: computed(() => target.value),\n targetLink,\n originator,\n detailsExpanded,\n providersLoaded: computed(() => providersLoaded.value),\n locationsLoaded: computed(() => locationsLoaded.value),\n loaded: computed(() => loaded.value),\n fetchProviders, fetchLocations, getLocation, setTarget, getProvider,\n expandDetails, hideDetails\n }\n}\n","import {computed} from 'vue'\n\nexport default function useUrl() {\n const searchParams = computed(() => {\n return new URLSearchParams(window.location.search)\n })\n\n const baseUrl = computed(() => {\n return window.location.pathname.replace(/\\/?$/, '/')\n })\n\n const validLink = computed(() => {\n return searchParams.value.has('providerDomain')\n && searchParams.value.has('token')\n })\n\n return {searchParams, validLink, baseUrl}\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MeshFooter.vue?vue&type=style&index=0&id=258d5688&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/app.b445e61e.js b/dist/js/app.b445e61e.js new file mode 100644 index 0000000..837e27b --- /dev/null +++ b/dist/js/app.b445e61e.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var a,c,o=t[0],l=t[1],u=t[2],s=0,d=[];sc.internalProviders.length/3]]),Object(a["i"])("div",{ref:"wrapScroll",class:[[c.detailsExpanded?"provider-details__open":""],"wrap-container"],style:{maxHeight:"".concat(n.wrapHeight,"px"),minHeight:"".concat(n.wrapHeight,"px")}},[Object(a["i"])("ul",P,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.internalProviders,(function(e,t){var n;return Object(a["z"])((Object(a["p"])(),Object(a["f"])("li",{key:e.name,ref:function(e){e&&(c.providerOptions[t]=e)},class:[e.name===(null===(n=c.target)||void 0===n?void 0:n.name)?"active":""],onClick:function(t){return c.showDetails(e)}},[Object(a["i"])("span",N,Object(a["v"])(e.full_name),1)],10,["onClick"])),[[a["w"],!c.detailsExpanded]])})),128))],512),Object(a["i"])("div",{class:[[c.detailsExpanded?"provider-details__open":"",c.md?"provider-details__md":""],"provider-details"]},[Object(a["i"])("div",D,[Object(a["i"])("button",{onClick:t[1]||(t[1]=function(){return c.closeDetails&&c.closeDetails.apply(c,arguments)})},[I])]),Object(a["i"])("div",A,[Object(a["i"])("p",B,Object(a["v"])(null===(o=c.target)||void 0===o?void 0:o.full_name),1),Object(a["i"])("p",null,Object(a["v"])(null===(l=c.target)||void 0===l?void 0:l.description),1),U,Object(a["i"])("p",null,Object(a["v"])(null===(u=c.target)||void 0===u?void 0:u.organization),1),null!==(s=c.target)&&void 0!==s&&s.homepage?(Object(a["p"])(),Object(a["f"])("a",{key:0,href:null===(d=c.target)||void 0===d?void 0:d.homepage,class:"provider-detail-home",target:"_new"},Object(a["v"])(c.target.homepage),9,["href"])):Object(a["g"])("",!0)]),Object(a["i"])("a",{href:c.targetLink,class:"accept-btn"},"Accept",8,["href"])],2)],6),Object(a["z"])(Object(a["i"])(b,{class:"scroll-icon scroll-icon__bottom",icon:"angle-down"},null,512),[[a["w"],c.scrollIndex0){var e=O.value/f.value.clientHeight;return Math.round(e*Math.abs(y.value.length))}return 0}));function _(e){return y.value.findIndex((function(t){return t.name===e.name}))}function x(e){var t=h.value[e];t&&g(t.clientTop+t.offsetTop)}function L(e){x(_(e))}function S(){L(n.value)}function C(e){c(e),e.name===(null===n||void 0===n?void 0:n.value.name)&&(o.value=!0)}function E(){u(),Object(a["m"])((function(){S()}))}return Object(a["n"])((function(){h.value=[]})),Object(a["o"])((function(){o.value||x(Math.floor(y.value.length/2))})),Object(a["x"])([n],(function(){S()})),Object(a["x"])([O],(function(){var e;if(!o.value)if(b.value)b.value=!1;else{var t=y.value[w.value];t&&t.name!==(null===(e=n.value)||void 0===e?void 0:e.name)&&c(t)}})),{internalProviders:y,target:n,scrollTop:O,wrapScroll:f,scrollIndex:w,providerOptions:h,providerFilter:k,detailsExpanded:o,expandDetails:l,hideDetails:u,showDetails:C,closeDetails:E,targetLink:i,md:d}}});n("2cae");H.render=M,H.__scopeId="data-v-73fce820";var q=H,F=Object(a["B"])("data-v-258d5688");Object(a["r"])("data-v-258d5688");var z={class:"row"},G=Object(a["i"])("div",{class:"col"},[Object(a["i"])("div",{class:"footer-logo center-align"})],-1),J={class:"footer-resource-links col-md-3 col-xs-12"},W=Object(a["i"])("h4",null,"Resources",-1),$=Object(a["i"])("div",{class:"row"},[Object(a["i"])("div",{class:"col center-align funding"},[Object(a["i"])("p",null,[Object(a["i"])("a",{href:"https://cs3mesh4eosc.eu/",target:"_new"},"CS3MESH4EOSC"),Object(a["h"])(" has received funding from the European Union's Horizon 2020 research and innovation programme under the Grant Agreement no 863353 ")])])],-1);Object(a["q"])();var K=F((function(e,t,n,c,i,r){var o=Object(a["u"])("fa-icon");return Object(a["p"])(),Object(a["f"])("footer",null,[Object(a["i"])("div",{class:[[c.md?"container__md":""],"container"]},[Object(a["i"])("div",z,[G,Object(a["i"])("div",J,[W,Object(a["i"])("ul",null,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.resourcesLinks,(function(e){return Object(a["p"])(),Object(a["f"])("li",{key:e.name},[Object(a["i"])(o,{class:"link-icon",icon:e.icon},null,8,["icon"]),Object(a["i"])("a",{href:e.target,target:"_new"},Object(a["v"])(e.name),9,["href"])])})),128))])])]),$],2)])})),Y={name:"MeshFooter",setup:function(){var e=m(),t=e.md,n=Object(a["s"])([{name:"GitHub",target:"https://github.com/sciencemesh/sciencemesh",icon:["fab","github"]},{name:"Gitter",target:"https://gitter.im/sciencemesh/community",icon:["fab","gitter"]},{name:"Documentation",target:"https://developer.sciencemesh.io/docs/",icon:"book"},{name:"Deploy",target:"https://developer.sciencemesh.io/docs/iop/deployment/",icon:"rocket"}]);return{md:t,resourcesLinks:n}}};n("cd3c");Y.render=K,Y.__scopeId="data-v-258d5688";var Q=Y,V=Object(a["B"])("data-v-77527f7a");Object(a["r"])("data-v-77527f7a");var X={class:"row"},Z={class:"row"},ee={class:"link-label"};Object(a["q"])();var te=V((function(e,t,n,c,i,r){var o=Object(a["u"])("fa-icon");return Object(a["p"])(),Object(a["f"])("div",{class:[[c.md?"links-header__md":"",c.lg?"links-header__lg":""],"links-header"]},[Object(a["i"])("ul",X,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.navLinks,(function(e){return Object(a["p"])(),Object(a["f"])("li",{key:e.name,class:e.class},[Object(a["i"])("a",{href:e.target,target:"_new"},[Object(a["i"])("div",Z,[Object(a["i"])(o,{icon:e.icon},null,8,["icon"]),Object(a["i"])("span",ee,Object(a["v"])(e.name),1)])],8,["href"])],2)})),128))])],2)})),ne={name:"NavbarLinks",setup:function(){var e=m(),t=e.md,n=e.lg,c=Object(a["s"])([{icon:"sign-in-alt",name:"JOIN",target:"https://developer.sciencemesh.io/docs/how-to-join-sciencemesh/",class:""},{icon:"book",name:"DOCS",target:"https://developer.sciencemesh.io/docs/",class:"outlined"}]);return{md:t,lg:n,navLinks:c}}};n("52d0");ne.render=te,ne.__scopeId="data-v-77527f7a";var ae=ne,ce=Object(a["j"])((function(){return n.e("chunk-d3df6968").then(n.bind(null,"eb22"))})),ie={name:"App",components:{NavbarLinks:ae,MeshFooter:Q,ProviderSelect:q,LinkInvalid:S,Navbar:h,MeshMap:ce},setup:function(){var e=Object(v["a"])(),t=e.fetchProviders,n=e.fetchLocations,a=e.loaded,c=e.providers,i=e.originator,r=Object(k["a"])(),o=r.validLink,l=r.baseUrl,u=m(),s=u.md,d=u.lg;return t("".concat(l.value,"providers")),n(),{originator:i,loaded:a,validLink:o,providers:c,md:s,lg:d}}};n("0910");ie.render=b;var re=ie,oe=n("ecee"),le=n("c074"),ue=n("f2d1"),se=n("ad3d");oe["c"].add(le["c"],le["f"],le["e"],le["b"],le["a"],le["d"],ue["a"],ue["b"]);var de=Object(a["e"])(re);de.component("fa-icon",se["a"]),de.mount("#app")},"6d5e":function(e,t,n){},"75de":function(e,t,n){},"7b57":function(e,t,n){"use strict";n("7c5e")},"7c5e":function(e,t,n){},"9b23":function(e,t,n){"use strict";n("6d5e")},"9f67":function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));n("7db0"),n("2b3d"),n("d3b7"),n("3ca3"),n("ddb0"),n("25f0"),n("5319"),n("ac1f"),n("b0c0");var a=n("7a23"),c=n("ba28");function i(){function e(e,t){fetch(e,{headers:{Accept:"application/json"}}).then((function(e){e.json().then((function(e){t(e)}))})).catch((function(e){console.log(e)}))}return{load:e}}var r=Object(c["a"])(),o=r.searchParams,l=r.validLink,u=i(),s=u.load,d=Object(a["s"])([]),b=Object(a["s"])([]),v=Object(a["s"])(null),f=Object(a["s"])(!1);function p(){var e=d,t=b,c=v,i=Object(a["s"])(!1),r=Object(a["s"])(!1),u=Object(a["s"])(!1),p=Object(a["d"])((function(){var t=e.value.find((function(e){return e.domain===o.value.get("providerDomain")}));return t||{full_name:""}})),O=Object(a["d"])((function(){return c.value&&l?new URL("?".concat(encodeURI(o.value.toString())),new URL("invites/forward",new URL(j.value.endpoint.path.replace(/\/?$/,"/")))):"#"})),j=Object(a["d"])((function(){var e;return null===(e=c.value)||void 0===e?void 0:e.services.find((function(e){return"OCM"===e.endpoint.type.name}))}));function m(t){s(t,(function(t){e.value=t,r.value=!0,u.value&&(i.value=!0)}))}function g(){t.value=n("3116"),u.value=!0,i.value=!0}function h(t){return Object(a["s"])(e.value.find((function(e){return e.name===t.key})))}function k(e){return Object(a["s"])(t.value.find((function(t){return t.key===e.value.name})))}function y(){f.value=!0}function w(){f.value=!1}function _(e){c.value=e}return{providers:Object(a["d"])((function(){return e.value})),locations:Object(a["d"])((function(){return t.value})),target:Object(a["d"])((function(){return c.value})),targetLink:O,originator:p,detailsExpanded:f,providersLoaded:Object(a["d"])((function(){return r.value})),locationsLoaded:Object(a["d"])((function(){return u.value})),loaded:Object(a["d"])((function(){return i.value})),fetchProviders:m,fetchLocations:g,getLocation:k,setTarget:_,getProvider:h,expandDetails:y,hideDetails:w}}},ba28:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));n("2b3d"),n("d3b7"),n("3ca3"),n("ddb0"),n("841c"),n("ac1f"),n("5319");var a=n("7a23");function c(){var e=Object(a["d"])((function(){return new URLSearchParams(window.location.search)})),t=Object(a["d"])((function(){return window.location.pathname.replace(/\/?$/,"/")})),n=Object(a["d"])((function(){return e.value.has("providerDomain")&&e.value.has("token")}));return{searchParams:e,validLink:n,baseUrl:t}}},cd3c:function(e,t,n){"use strict";n("d8bc")},d8bc:function(e,t,n){}}); +//# sourceMappingURL=app.b445e61e.js.map \ No newline at end of file diff --git a/dist/js/app.b445e61e.js.map b/dist/js/app.b445e61e.js.map new file mode 100644 index 0000000..e46215b --- /dev/null +++ b/dist/js/app.b445e61e.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?e627","webpack:///./src/components/ProviderSelect.vue?d36f","webpack:///./src/components/NavbarLinks.vue?4f57","webpack:///./src/App.vue","webpack:///./src/components/Navbar.vue","webpack:///./src/use/breakpoints.js","webpack:///./src/components/Navbar.vue?59c0","webpack:///./src/components/LinkInvalid.vue","webpack:///./src/components/LinkInvalid.vue?2d6a","webpack:///./src/components/ProviderSelect.vue","webpack:///./src/components/ProviderSelect.vue?85c5","webpack:///./src/components/MeshFooter.vue","webpack:///./src/components/MeshFooter.vue?90e2","webpack:///./src/components/NavbarLinks.vue","webpack:///./src/components/NavbarLinks.vue?2e0b","webpack:///./src/App.vue?dfb6","webpack:///./src/main.js","webpack:///./src/components/Navbar.vue?26dd","webpack:///./src/components/LinkInvalid.vue?3330","webpack:///./src/use/fetch.js","webpack:///./src/use/providers.js","webpack:///./src/use/query.js","webpack:///./src/components/MeshFooter.vue?6047"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","class","md","lg","validLink","loaded","originator","full_name","useBreakpoints","breakpoints","xs","sm","xl","useBreakpoint","current","setup","render","__scopeId","id","ref","x1","x2","y1","y2","offset","stop-color","maskContentUnits","maskUnits","fill","height","width","y","icon","scrollIndex","internalProviders","detailsExpanded","style","wrapHeight","provider","el","providerOptions","showDetails","closeDetails","description","organization","homepage","targetLink","props","Number","default","providers","setTarget","expandDetails","hideDetails","loading","wrapScroll","scrollTop","scrollTopTo","providerFilter","filter","toLowerCase","includes","scrollPercentage","clientHeight","Math","round","abs","providerIndex","findIndex","scrollToIndex","index","targetEl","clientTop","offsetTop","scrollToProvider","onTargetChanged","floor","resourcesLinks","link","navLinks","MeshMap","components","NavbarLinks","MeshFooter","ProviderSelect","LinkInvalid","Navbar","fetchProviders","fetchLocations","baseUrl","library","add","faBook","faSignInAlt","faRocket","faAngleUp","faAngleDown","faInfoCircle","faGithub","faGitter","app","createApp","App","component","FontAwesomeIcon","mount","useFetch","load","uri","fetch","headers","response","json","res","catch","log","useUrl","searchParams","meshProviders","meshLocations","meshTarget","useProviders","locations","providersLoaded","locationsLoaded","computed","originProvider","find","domain","URL","encodeURI","toString","targetOCMService","endpoint","path","replace","services","providersUri","require","getProvider","location","getLocation","URLSearchParams","search","pathname","has"],"mappings":"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","file":"js/app.b445e61e.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-d3df6968\":\"0c83f36f\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-d3df6968\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-d3df6968\":\"1a1cab6a\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=5d735b5e&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ProviderSelect.vue?vue&type=style&index=0&id=73fce820&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NavbarLinks.vue?vue&type=style&index=0&id=77527f7a&lang=scss&scoped=true\"","\n\n\n\n\n","\n\n\n\n","import {useBreakpoint} from \"vue-composable\";\n\nexport default function useBreakpoints() {\n const breakpoints = {\n xs:\t1,\n sm:\t599,\n md: 1024,\n lg: 1439,\n xl:\t1920\n }\n\n const { current, xs, sm, md, lg, xl } = useBreakpoint(breakpoints)\n return { current, xs, sm, md, lg, xl }\n}\n","import { render } from \"./Navbar.vue?vue&type=template&id=317ef896&scoped=true\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js\"\n\nimport \"./Navbar.vue?vue&type=style&index=0&id=317ef896&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-317ef896\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./LinkInvalid.vue?vue&type=template&id=4342b242&scoped=true\"\nimport script from \"./LinkInvalid.vue?vue&type=script&lang=js\"\nexport * from \"./LinkInvalid.vue?vue&type=script&lang=js\"\n\nimport \"./LinkInvalid.vue?vue&type=style&index=0&id=4342b242&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4342b242\"\n\nexport default script","\n\n\n","import { render } from \"./ProviderSelect.vue?vue&type=template&id=73fce820&scoped=true\"\nimport script from \"./ProviderSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ProviderSelect.vue?vue&type=script&lang=js\"\n\nimport \"./ProviderSelect.vue?vue&type=style&index=0&id=73fce820&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-73fce820\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./MeshFooter.vue?vue&type=template&id=258d5688&scoped=true\"\nimport script from \"./MeshFooter.vue?vue&type=script&lang=js\"\nexport * from \"./MeshFooter.vue?vue&type=script&lang=js\"\n\nimport \"./MeshFooter.vue?vue&type=style&index=0&id=258d5688&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-258d5688\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./NavbarLinks.vue?vue&type=template&id=77527f7a&scoped=true\"\nimport script from \"./NavbarLinks.vue?vue&type=script&lang=js\"\nexport * from \"./NavbarLinks.vue?vue&type=script&lang=js\"\n\nimport \"./NavbarLinks.vue?vue&type=style&index=0&id=77527f7a&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-77527f7a\"\n\nexport default script","import { render } from \"./App.vue?vue&type=template&id=5d735b5e\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=5d735b5e&lang=scss\"\nscript.render = render\n\nexport default script","import { createApp } from 'vue'\nimport App from './App.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faBook, faSignInAlt, faRocket, faAngleUp, faAngleDown, faInfoCircle } from '@fortawesome/free-solid-svg-icons'\nimport { faGithub, faGitter } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'\n\nlibrary.add(\n faBook, faSignInAlt, faRocket, faAngleUp, faAngleDown, faInfoCircle,\n faGithub, faGitter)\n\nconst app = createApp(App)\n\napp.component('fa-icon', FontAwesomeIcon)\n\napp.mount('#app')\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Navbar.vue?vue&type=style&index=0&id=317ef896&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LinkInvalid.vue?vue&type=style&index=0&id=4342b242&lang=scss&scoped=true\"","export default function useFetch() {\n\n function load(uri, resolve) {\n fetch(uri, {\n headers: {\n 'Accept': 'application/json',\n }\n }).then(response => {\n response.json()\n .then((res) => {\n resolve(res)\n })\n })\n .catch(err => {\n console.log(err)\n })\n }\n return {load}\n}\n","import {computed, ref} from 'vue'\nimport useUrl from '@/use/query'\nimport useFetch from '@/use/fetch'\n\nconst {searchParams, validLink} = useUrl()\nconst {load} = useFetch()\n\nconst meshProviders = ref([])\nconst meshLocations = ref([])\nconst meshTarget = ref(null)\nconst detailsExpanded = ref(false)\n\nexport default function useProviders() {\n const providers = meshProviders\n const locations = meshLocations\n const target = meshTarget\n const loaded = ref(false)\n const providersLoaded = ref(false)\n const locationsLoaded = ref(false)\n\n const originator = computed(() => {\n const originProvider = providers.value.find(p => {\n return p.domain === searchParams.value.get('providerDomain')\n })\n return originProvider || {'full_name': ''}\n })\n\n const targetLink = computed(() => {\n if (!target.value || !validLink) {\n return '#'\n }\n return new URL(\n `?${encodeURI(searchParams.value.toString())}`,\n new URL('invites/forward',\n new URL(targetOCMService.value.endpoint.path.replace(/\\/?$/, '/'))\n )\n )\n })\n\n const targetOCMService = computed(() => {\n return target.value?.services.find(s => {\n return s.endpoint.type.name === 'OCM'\n })\n })\n\n function fetchProviders(providersUri) {\n if (process.env.NODE_ENV === 'development') {\n providers.value = require('../../demo/providers.json')\n providersLoaded.value = true\n loaded.value = true\n return\n }\n\n load(providersUri, (res) => {\n providers.value = res\n providersLoaded.value = true\n\n if (locationsLoaded.value) {\n loaded.value = true\n }\n })\n }\n\n function fetchLocations() {\n locations.value = require('../assets/data/providers.loc.json')\n locationsLoaded.value = true\n loaded.value = true\n // TODO: uncomment when mentix locations provider is in IOP\n // load(locationsUri, (res) => {\n // locations.value = res\n // locationsLoaded.value = true\n // if (providersLoaded.value) {\n // loaded.value = true\n // }\n // })\n }\n\n function getProvider(location) {\n return ref(providers.value.find(p => {\n return p.name === location.key\n }))\n }\n\n function getLocation(provider) {\n return ref(locations.value.find(l => {\n return l.key === provider.value.name\n }))\n }\n\n function expandDetails() {\n detailsExpanded.value = true\n }\n\n function hideDetails() {\n detailsExpanded.value = false\n }\n\n function setTarget(provider) {\n target.value = provider\n }\n\n return {\n providers: computed(() => providers.value),\n locations: computed(() => locations.value),\n target: computed(() => target.value),\n targetLink,\n originator,\n detailsExpanded,\n providersLoaded: computed(() => providersLoaded.value),\n locationsLoaded: computed(() => locationsLoaded.value),\n loaded: computed(() => loaded.value),\n fetchProviders, fetchLocations, getLocation, setTarget, getProvider,\n expandDetails, hideDetails\n }\n}\n","import {computed} from 'vue'\n\nexport default function useUrl() {\n const searchParams = computed(() => {\n return new URLSearchParams(window.location.search)\n })\n\n const baseUrl = computed(() => {\n return window.location.pathname.replace(/\\/?$/, '/')\n })\n\n const validLink = computed(() => {\n return searchParams.value.has('providerDomain')\n && searchParams.value.has('token')\n })\n\n return {searchParams, validLink, baseUrl}\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MeshFooter.vue?vue&type=style&index=0&id=258d5688&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/chunk-10f6c022.5fe1a4ac.js.map b/dist/js/chunk-10f6c022.5fe1a4ac.js.map deleted file mode 100644 index 0f08cd8..0000000 --- a/dist/js/chunk-10f6c022.5fe1a4ac.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/components/MeshMap.vue?cbcd","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./src/components/MeshMap.vue","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray/_index.mjs","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles/_index.mjs","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray/_index.mjs","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray/_index.mjs","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread/_index.mjs","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray/_index.mjs","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/array.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/selection/selectChild.js","webpack:///./node_modules/d3-selection/src/selection/selectChildren.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/iterator.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-selection/src/sourceEvent.js","webpack:///./node_modules/d3-selection/src/pointer.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-transition/src/transition/tween.js","webpack:///./node_modules/d3-transition/src/transition/interpolate.js","webpack:///./node_modules/d3-transition/src/transition/attr.js","webpack:///./node_modules/d3-transition/src/transition/attrTween.js","webpack:///./node_modules/d3-transition/src/transition/delay.js","webpack:///./node_modules/d3-transition/src/transition/duration.js","webpack:///./node_modules/d3-transition/src/transition/ease.js","webpack:///./node_modules/d3-transition/src/transition/easeVarying.js","webpack:///./node_modules/d3-transition/src/transition/filter.js","webpack:///./node_modules/d3-transition/src/transition/merge.js","webpack:///./node_modules/d3-transition/src/transition/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.js","webpack:///./node_modules/d3-transition/src/transition/select.js","webpack:///./node_modules/d3-transition/src/transition/selectAll.js","webpack:///./node_modules/d3-transition/src/transition/selection.js","webpack:///./node_modules/d3-transition/src/transition/style.js","webpack:///./node_modules/d3-transition/src/transition/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/text.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-geo/src/identity.js","webpack:///./node_modules/d3-geo/src/stream.js","webpack:///./node_modules/d3-array/src/fsum.js","webpack:///./node_modules/d3-geo/src/math.js","webpack:///./node_modules/d3-geo/src/noop.js","webpack:///./node_modules/d3-geo/src/path/area.js","webpack:///./node_modules/d3-geo/src/path/bounds.js","webpack:///./node_modules/d3-geo/src/path/centroid.js","webpack:///./node_modules/d3-geo/src/path/context.js","webpack:///./node_modules/d3-geo/src/path/measure.js","webpack:///./node_modules/d3-geo/src/path/string.js","webpack:///./node_modules/d3-geo/src/path/index.js","webpack:///./node_modules/d3-geo/src/compose.js","webpack:///./node_modules/d3-geo/src/rotation.js","webpack:///./node_modules/d3-geo/src/clip/buffer.js","webpack:///./node_modules/d3-geo/src/pointEqual.js","webpack:///./node_modules/d3-geo/src/clip/rejoin.js","webpack:///./node_modules/d3-geo/src/cartesian.js","webpack:///./node_modules/d3-geo/src/polygonContains.js","webpack:///./node_modules/d3-array/src/merge.js","webpack:///./node_modules/d3-geo/src/clip/index.js","webpack:///./node_modules/d3-geo/src/clip/antimeridian.js","webpack:///./node_modules/d3-geo/src/circle.js","webpack:///./node_modules/d3-geo/src/clip/circle.js","webpack:///./node_modules/d3-geo/src/clip/line.js","webpack:///./node_modules/d3-geo/src/clip/rectangle.js","webpack:///./node_modules/d3-geo/src/transform.js","webpack:///./node_modules/d3-geo/src/projection/fit.js","webpack:///./node_modules/d3-geo/src/projection/resample.js","webpack:///./node_modules/d3-geo/src/projection/index.js","webpack:///./node_modules/d3-geo/src/projection/mercator.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-zoom/src/zoom.js","webpack:///./src/use/map.js","webpack:///./src/components/MeshMap.vue?13bb","webpack:///./node_modules/core-js/modules/es.array.slice.js"],"names":["toObject","toAbsoluteIndex","toLength","module","exports","value","O","this","length","argumentsLength","arguments","index","undefined","end","endPos","$","fails","isArray","isObject","createProperty","arraySpeciesCreate","arrayMethodHasSpeciesSupport","wellKnownSymbol","V8_VERSION","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","array","concat","SPECIES_SUPPORT","isConcatSpreadable","spreadable","FORCED","target","proto","forced","arg","i","k","len","E","A","n","TypeError","toInteger","HAS_SPECIES_SUPPORT","max","Math","min","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","splice","start","deleteCount","insertCount","actualDeleteCount","from","to","actualStart","checkCorrectnessOfIteration","INCORRECT_ITERATION","iterable","Array","stat","fill","addToUnscopables","defineWellKnownSymbol","class","ref","text-anchor","x","y","viewBox","height","width","providerConnections","connection","key","d","renderConnection","style","markers","providerPoints","provider","name","originator","cx","cy","r","setTargetProvider","marker","isOrigin","current","transform","markerSet","$event","_arrayLikeToArray","arr","arr2","_arrayWithoutHoles","arrayLikeToArray","_iterableToArray","iter","Symbol","iterator","Object","_unsupportedIterableToArray","o","minLen","prototype","toString","call","slice","constructor","test","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","noop","dispatch","t","_","Error","Dispatch","parseTypenames","typenames","types","trim","split","map","indexOf","hasOwnProperty","type","get","c","set","callback","push","on","typename","T","copy","that","args","apply","none","selector","querySelector","select","groups","_groups","m","subgroups","j","node","subnode","group","subgroup","__data__","Selection","_parents","querySelectorAll","arrayAll","selectorAll","parents","matches","childMatcher","find","childFind","match","children","childFirst","firstElementChild","filter","childrenFilter","selectAll","matcher","update","_enter","sparse","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","appendChild","child","insertBefore","next","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","Map","keyValues","has","delete","bind","constant","enterGroup","updateGroup","exitGroup","previous","i0","i1","_exit","onenter","append","onupdate","onexit","remove","merge","order","selection","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","parentNode","compareNode","a","b","compare","ascending","sortgroups","sortgroup","sort","NaN","size","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","namespace","getAttributeNS","getAttribute","each","defaultView","document","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","join","contains","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","create","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","onRemove","__on","removeEventListener","options","onAdd","addEventListener","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","selection_select","selectChild","selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_merge","nodes","selection_node","selection_size","empty","selection_empty","attr","classed","text","selection_text","html","selection_raise","selection_lower","insert","selection_remove","selection_datum","selection_on","selection_dispatch","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","format","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","round","h","s","Hsl","hsl","hsl2rgb","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","assign","displayable","pow","values","floor","linear","exponential","gamma","nogamma","color","rgbGamma","rgbSpline","spline","colors","basisClosed","reA","reB","source","zero","one","taskHead","taskTail","am","bm","bs","bi","lastIndex","q","number","sourceEvent","currentTarget","ownerSVGElement","createSVGPoint","point","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","left","clientLeft","top","clientTop","pageX","pageY","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","f","setTimeout","clearNow","Timer","_call","_time","timer","delay","time","restart","timerFlush","e","wake","nap","poke","t0","Infinity","sleep","clearTimeout","clearInterval","setInterval","stop","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedules","__transition","id","tween","timing","duration","ease","state","init","schedule","self","tick","svgNode","active","interrupt","degrees","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","baseVal","consolidate","matrix","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","scale","interpolateTransformCss","interpolateTransformSvg","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","transition","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","Promise","resolve","reject","cancel","selection_prototype","cubicInOut","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_easeVarying","transition_end","defaultTiming","selection_interrupt","selection_transition","abs","number1","number2","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","Feature","object","FeatureCollection","features","Sphere","sphere","Point","coordinates","MultiPoint","LineString","streamLine","MultiLineString","Polygon","streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","coordinate","lineStart","lineEnd","polygonStart","polygonEnd","Adder","_partials","Float64Array","_n","p","hi","lo","epsilon","epsilon2","pi","halfPi","quarterPi","tau","radians","cos","exp","ceil","log","hypot","sin","sign","acos","asin","areaSum","areaRingSum","areaStream","areaRingStart","areaRingEnd","result","area","areaPointFirst","areaPoint","boundsStream","boundsPoint","bounds","X0","Y0","Z0","X1","Y1","Z1","X2","Y2","Z2","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroid","centroidPointFirstLine","centroidPointLine","dx","dy","z","centroidPointFirstRing","centroidPointRing","PathContext","context","_context","_radius","pointRadius","_line","_point","closePath","moveTo","lineTo","arc","lengthRing","lengthSum","lengthStream","lengthPointFirst","lengthPoint","PathString","_string","radius","_circle","projectionStream","contextStream","path","measure","projection","compose","invert","rotationIdentity","lambda","phi","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","cosPhi","forward","line","lines","rejoin","shift","Intersection","points","other","entry","subject","clip","segments","forEach","segment","p0","p1","pointEqual","compareIntersection","startInside","isSubject","cartesian","spherical","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","longitude","sinPhi","normal","angle","winding","sum","polygon","ring","point0","lambda0","phi0","sinPhi0","cosPhi0","lambda1","sinPhi1","cosPhi1","point1","phi1","delta","absDelta","antimeridian","intersection","phiArc","flatten","arrays","sink","clipLine","ringBuffer","ringSink","polygonStarted","pointRing","ringStart","ringEnd","polygonContains","pointVisible","pointLine","clean","ringSegments","validSegment","clipAntimeridianLine","clipAntimeridianInterpolate","sign0","sign1","clipAntimeridianIntersect","sinLambda0Lambda1","direction","circleStream","cosRadius","sinRadius","step","circleRadius","cr","smallRadius","notHemisphere","visible","c0","v00","point2","code","intersect","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","B","u","w","uu","polar","meridian","q1","ax","ay","bx","by","x0","x1","y0","y1","clipMax","clipMin","clipRectangle","a1","corner","comparePoint","ca","cb","x__","y__","v__","x_","y_","v_","first","activeStream","bufferStream","clipStream","polygonInside","a0","b0","b1","cleanInside","linePoint","transformer","methods","TransformStream","fit","fitBounds","clipExtent","fitExtent","extent","fitSize","fitWidth","fitHeight","maxDepth","cosMinDistance","delta2","project","resampleNone","resampleLineTo","depth","d2","phi2","lambda2","x2","y2","dx2","dy2","dz","lambda00","x00","y00","a00","b00","c00","resampleStream","ringPoint","transformRadians","transformRotate","scaleTranslate","sx","sy","scaleTranslateRotate","alpha","cosAlpha","sinAlpha","ai","ci","fi","projectionMutator","projectAt","projectResample","projectTransform","projectRotateTransform","cache","cacheStream","theta","preclip","postclip","recenter","center","resample","reset","clipAngle","reflectX","reflectY","precision","mercatorRaw","mercatorProjection","reclip","cosh","sinh","tanh","zoom","S","ux0","uy0","w0","ux1","uy1","w1","rho","d1","rho4","rho2","r0","r1","coshr0","SQRT2","_1","_2","_4","zoomRho","Transform","applyX","applyY","location","invertX","invertY","rescaleX","domain","range","rescaleY","__zoom","useProviders","locations","getLocation","useMap","statesRef","mapRef","computed","d3","connections","_locations","currentMarker","targetLoc","renderStates","mapData","renderProviders","proj","latitude","pairs","func","pair","random","getProviderPoint","addMarker","providerPoint","dr","renderMarkers","preventDefault","startX","startY","markerDrag","markerStop","markerLeave","mouse","render","markerProvider","watch","setup","states","providers","expandDetails","loaded","getProvider","setTarget","clientWidth","clientHeight","toIndexedObject","SPECIES","nativeSlice","Constructor","fin"],"mappings":"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","file":"js/chunk-10f6c022.5fe1a4ac.js","sourcesContent":["export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MeshMap.vue?vue&type=style&index=0&id=9d7d0f12&lang=scss\"","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","\n\n\n\n\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"../arrayLikeToArray/_index.mjs\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import arrayLikeToArray from \"../arrayLikeToArray/_index.mjs\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"../arrayWithoutHoles/_index.mjs\";\nimport iterableToArray from \"../iterableToArray/_index.mjs\";\nimport unsupportedIterableToArray from \"../unsupportedIterableToArray/_index.mjs\";\nimport nonIterableSpread from \"../nonIterableSpread/_index.mjs\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move();\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default x => x;\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport default function(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import {Adder} from \"d3-array\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = new Adder(),\n areaRingSum = new Adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum = new Adder();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum = new Adder();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import {Adder} from \"d3-array\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = new Adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum = new Adder();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import {Adder} from \"d3-array\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n var sum = new Adder();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n currentTarget = event.currentTarget,\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n 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]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","import {computed, ref, watch} from 'vue'\nimport useProviders from '@/use/providers'\nimport mapData from '../assets/data/europe.geo.json'\nimport * as d3 from 'd3'\n\n\nconst {locations, originator, target, getLocation} = useProviders()\n\nexport default function useMap(center, statesRef, mapRef) {\n const scale = ref(850)\n const projection = computed(() => {\n return d3.geoMercator().scale(scale.value).center(center)\n })\n const path = ref(d3.geoPath(projection.value))\n const markers = ref([])\n const connections = ref([])\n const _locations = [...locations.value]\n const currentMarker = ref(null)\n const targetLoc = computed(() => {\n if (target.value) {\n return getLocation(target)\n }\n return null\n })\n\n function renderStates() {\n d3.select(statesRef.value)\n .selectAll(\"path\")\n .data(mapData.features)\n .enter()\n .append(\"path\")\n .attr(\"d\", path.value)\n }\n\n function renderProviders() {\n\n let i = _locations.length, d, proj\n\n while (i--) {\n d = _locations[i];\n if (!d.longitude && !d.latitude) {\n // Let's consider this a bad location record\n _locations.splice(i, 1);\n }\n\n proj = projection.value([d.longitude, d.latitude])\n if (proj) {\n d.x = proj[0];\n d.y = proj[1];\n } else {\n _locations.splice(i, 1);\n }\n }\n Array.prototype.pairs = function (func) {\n for (let i = 0; i < this.length - 1; i++) {\n for (let j = i; j < this.length - 1; j++) {\n func([this[i], this[j + 1]]);\n }\n }\n }\n _locations.pairs((pair) => {\n connections.value.push(pair)\n })\n // Pick 10 random connections proportional to number of locations\n connections.value = connections.value\n .sort(() => 0.5 - Math.random())\n .slice(0, Math.ceil((_locations.length % connections.value.length - 1) % 1.2))\n }\n\n function getProviderPoint(provider) {\n if (provider.value) {\n return _locations.find(l => {\n return l.key === provider.value.key\n })\n }\n }\n\n function addMarker(provider) {\n const providerPoint = getProviderPoint(provider)\n\n if (providerPoint) {\n markers.value.push({\n provider: provider.value,\n x: providerPoint.x,\n y: providerPoint.y\n })\n }\n }\n\n function renderConnection(connection) {\n\n let m1 = connection[1],\n m2 = connection[0];\n\n if (!m1 || !m2) {\n return\n }\n\n if (m1.x < m2.x) {\n m1 = connection[0];\n m2 = connection[1];\n }\n\n var dx = m2.x - m1.x,\n dy = m2.y - m1.y,\n dr = Math.sqrt(dx * dx + dy * dy);\n\n return \"M\" + m2.x + \",\" + m2.y + \"A\" + dr + \",\" + dr + \" 0 0,1 \" + m1.x + \",\" + m1.y;\n }\n\n function renderMarkers() {\n markers.value = []\n addMarker(getLocation(originator))\n if (targetLoc.value) {\n addMarker(targetLoc.value)\n }\n }\n\n watch([target], () => renderMarkers())\n\n function markerSet(e, marker, index) {\n if (e) {\n e.preventDefault()\n }\n const m = markers.value[index]\n m.provider = null\n m.current = true\n m.startX = m.x\n m.startY = m.y\n currentMarker.value = m\n document.addEventListener('mousemove', markerDrag)\n document.addEventListener('mouseup', markerStop)\n mapRef.value.addEventListener('mouseleave', markerLeave)\n }\n\n function markerDrag(e) {\n currentMarker.value.provider = targetLoc.value\n let mouse = d3.pointer(e)\n currentMarker.value.x = mouse[0]\n currentMarker.value.y = mouse[1] - 141\n }\n\n function markerLeave() {\n currentMarker.value.x = currentMarker.value.startX;\n currentMarker.value.y = currentMarker.value.startY;\n\n markerStop();\n }\n\n function markerStop() {\n document.removeEventListener('mousemove', markerDrag);\n document.removeEventListener('mouseup', markerStop);\n mapRef.value.removeEventListener('mouseleave', markerLeave);\n\n currentMarker.value.current = false;\n currentMarker.value = null;\n }\n\n\n function render() {\n renderStates()\n renderProviders()\n renderMarkers()\n }\n\n function isOrigin(markerProvider) {\n return markerProvider === getLocation(originator).value\n }\n\n return {\n markers,\n projection: computed(() => projection.value),\n providerConnections: computed(() => connections.value),\n providerPoints: computed(() => _locations),\n render, renderConnection, isOrigin, markerSet\n }\n}\n","import { render } from \"./MeshMap.vue?vue&type=template&id=9d7d0f12\"\nimport script from \"./MeshMap.vue?vue&type=script&lang=js\"\nexport * from \"./MeshMap.vue?vue&type=script&lang=js\"\n\nimport \"./MeshMap.vue?vue&type=style&index=0&id=9d7d0f12&lang=scss\"\nscript.render = render\n\nexport default script","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/chunk-10f6c022.5fe1a4ac.js b/dist/js/chunk-d3df6968.0c83f36f.js similarity index 64% rename from dist/js/chunk-10f6c022.5fe1a4ac.js rename to dist/js/chunk-d3df6968.0c83f36f.js index cfc0f5d..106d6c6 100644 --- a/dist/js/chunk-10f6c022.5fe1a4ac.js +++ b/dist/js/chunk-d3df6968.0c83f36f.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-10f6c022"],{"154a":function(n){n.exports=JSON.parse('{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Czech Republic","sov_a3":"CZE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Czech Republic","adm0_a3":"CZE","geou_dif":0,"geounit":"Czech Republic","gu_a3":"CZE","su_dif":0,"subunit":"Czech Republic","su_a3":"CZE","brk_diff":0,"name":"Czech Rep.","name_long":"Czech Republic","brk_a3":"CZE","brk_name":"Czech Rep.","brk_group":null,"abbrev":"Cz. Rep.","postal":"CZ","formal_en":"Czech Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Czech Republic","name_alt":null,"mapcolor7":1,"mapcolor8":1,"mapcolor9":2,"mapcolor13":6,"pop_est":10211904,"gdp_md_est":265200,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"CZ","iso_a3":"CZE","iso_n3":"203","un_a3":"203","wb_a2":"CZ","wb_a3":"CZE","woe_id":-99,"adm0_a3_is":"CZE","adm0_a3_us":"CZE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":10,"long_len":14,"abbrev_len":8,"tiny":-99,"homepart":1,"filename":"CZE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[16.960288120194576,48.5969823268506],[16.49928266771877,48.78580801044511],[16.02964725105022,48.73389903420793],[15.253415561593982,49.039074205107575],[14.901447381254057,48.964401760445824],[14.33889773932472,48.5553052842072],[13.595945672264437,48.87717194273715],[13.031328973043431,49.30706818297324],[12.521024204161192,49.547415269562734],[12.415190870827445,49.96912079528057],[12.240111118222558,50.266337795607285],[12.966836785543194,50.484076443069085],[13.338131951560285,50.73323436136435],[14.056227654688172,50.92691762959429],[14.307013380600637,51.117267767941414],[14.570718214586066,51.002339382524276],[15.01699588385867,51.10667409932158],[15.490972120839727,50.78472992614321],[16.23862674323857,50.69773265237984],[16.176253289462267,50.42260732685791],[16.719475945714436,50.21574656839354],[16.868769158605655,50.47397370055603],[17.55456709155112,50.36214590107641],[17.64944502123899,50.049038397819956],[18.392913852622172,49.98862864847075],[18.853144158613617,49.49622976337764],[18.554971144289482,49.49501536721878],[18.399993523846177,49.31500051533004],[18.170498488037964,49.271514797556435],[18.104972771891852,49.04398346617531],[17.913511590250465,48.996492824899086],[17.88648481616181,48.90347524677371],[17.545006951577108,48.80001902932537],[17.101984897538898,48.81696889911711],[16.960288120194576,48.5969823268506]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Switzerland","sov_a3":"CHE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Switzerland","adm0_a3":"CHE","geou_dif":0,"geounit":"Switzerland","gu_a3":"CHE","su_dif":0,"subunit":"Switzerland","su_a3":"CHE","brk_diff":0,"name":"Switzerland","name_long":"Switzerland","brk_a3":"CHE","brk_name":"Switzerland","brk_group":null,"abbrev":"Switz.","postal":"CH","formal_en":"Swiss Confederation","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Switzerland","name_alt":null,"mapcolor7":5,"mapcolor8":2,"mapcolor9":7,"mapcolor13":3,"pop_est":7604467,"gdp_md_est":316700,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"CH","iso_a3":"CHE","iso_n3":"756","un_a3":"756","wb_a2":"CH","wb_a3":"CHE","woe_id":-99,"adm0_a3_is":"CHE","adm0_a3_us":"CHE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":11,"long_len":11,"abbrev_len":6,"tiny":-99,"homepart":1,"filename":"CHE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[9.59422610844635,47.52505809182027],[9.632931756232978,47.34760122332999],[9.479969516649021,47.10280996356337],[9.932448357796659,46.92072805438296],[10.44270145024663,46.89354625099743],[10.363378126678612,46.48357127540986],[9.92283654139038,46.31489940040919],[9.182881707403055,46.44021474871698],[8.966305779667806,46.036931871111186],[8.489952426801324,46.005150865251686],[8.31662967289438,46.16364248309086],[7.755992058959833,45.82449005795931],[7.273850945676656,45.776947740250776],[6.843592970414504,45.99114655210061],[6.500099724970425,46.42967275652944],[6.022609490593537,46.27298981382047],[6.037388950229001,46.725778713561866],[6.768713820023606,47.2877082383037],[6.736571079138059,47.541801255882845],[7.192202182655507,47.44976552997102],[7.46675906742223,47.62058197691181],[8.317301466514152,47.61357982033626],[8.522611932009765,47.830827541691285],[9.59422610844635,47.52505809182027]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Bosnia and Herzegovina","sov_a3":"BIH","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Bosnia and Herzegovina","adm0_a3":"BIH","geou_dif":0,"geounit":"Bosnia and Herzegovina","gu_a3":"BIH","su_dif":0,"subunit":"Bosnia and Herzegovina","su_a3":"BIH","brk_diff":0,"name":"Bosnia and Herz.","name_long":"Bosnia and Herzegovina","brk_a3":"BIH","brk_name":"Bosnia and Herz.","brk_group":null,"abbrev":"B.H.","postal":"BiH","formal_en":"Bosnia and Herzegovina","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Bosnia and Herzegovina","name_alt":null,"mapcolor7":1,"mapcolor8":1,"mapcolor9":1,"mapcolor13":2,"pop_est":4613414,"gdp_md_est":29700,"pop_year":-99,"lastcensus":1991,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"BA","iso_a3":"BIH","iso_n3":"070","un_a3":"070","wb_a2":"BA","wb_a3":"BIH","woe_id":-99,"adm0_a3_is":"BIH","adm0_a3_us":"BIH","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":16,"long_len":22,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"BIH.geojson"},"geometry":{"type":"Polygon","coordinates":[[[19.00548628101012,44.86023366960916],[19.36803,44.863],[19.11761,44.42307000000011],[19.59976,44.03847],[19.454,43.56810000000013],[19.21852,43.52384],[19.03165,43.43253],[18.70648,43.20011],[18.56,42.65],[17.674921502358984,43.02856252702361],[17.297373488034452,43.44634064388736],[16.91615644701733,43.66772247982567],[16.456442905348865,44.04123973243128],[16.23966027188453,44.35114329688571],[15.750026075918981,44.81871165626256],[15.959367303133376,45.233776760430935],[16.318156772535872,45.00412669532591],[16.534939406000206,45.21160757097772],[17.002146030351014,45.233776760430935],[17.861783481526402,45.067740383477144],[18.553214145591653,45.08158966733145],[19.00548628101012,44.86023366960916]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Belarus","sov_a3":"BLR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Belarus","adm0_a3":"BLR","geou_dif":0,"geounit":"Belarus","gu_a3":"BLR","su_dif":0,"subunit":"Belarus","su_a3":"BLR","brk_diff":0,"name":"Belarus","name_long":"Belarus","brk_a3":"BLR","brk_name":"Belarus","brk_group":null,"abbrev":"Bela.","postal":"BY","formal_en":"Republic of Belarus","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Belarus","name_alt":null,"mapcolor7":1,"mapcolor8":1,"mapcolor9":5,"mapcolor13":11,"pop_est":9648533,"gdp_md_est":114100,"pop_year":-99,"lastcensus":2009,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"BY","iso_a3":"BLR","iso_n3":"112","un_a3":"112","wb_a2":"BY","wb_a3":"BLR","woe_id":-99,"adm0_a3_is":"BLR","adm0_a3_us":"BLR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"BLR.geojson"},"geometry":{"type":"Polygon","coordinates":[[[23.48412763844985,53.91249766704114],[24.450683628037037,53.905702216194754],[25.536353794056993,54.28242340760253],[25.7684326514798,54.84696259217509],[26.58827924979039,55.16717560487167],[26.494331495883753,55.615106919977634],[27.10245975109453,55.783313707087686],[28.176709425577993,56.16912995057881],[29.229513380660308,55.918344224666356],[29.371571893030673,55.670090643936184],[29.896294386522356,55.78946320253041],[30.873909132620007,55.55097646750341],[30.971835971813135,55.08154775656404],[30.757533807098717,54.81177094178432],[31.38447228366374,54.157056382862436],[31.79142418796224,53.97463857687212],[31.731272820774507,53.79402944601202],[32.405598585751164,53.618045355842035],[32.69364301934604,53.35142080343212],[32.304519484188226,53.1327261419729],[31.49764367038293,53.1674268662569],[31.305200636528014,53.07399587667321],[31.54001834486226,52.74205231384636],[31.785998162571587,52.101677964885454],[30.927549269338982,52.04235342061438],[30.619454380014844,51.822806098022376],[30.555117221811457,51.31950348571566],[30.157363722460897,51.41613841410147],[29.254938185347925,51.368234361366895],[28.99283532076353,51.602044379271476],[28.61761274589225,51.42771393493484],[28.24161502453657,51.57222707783907],[27.454066196408434,51.59230337178447],[26.337958611768556,51.83228872334793],[25.327787713327005,51.91065603291855],[24.553106316839518,51.888461005249184],[24.00507775238421,51.61744395609446],[23.52707075368437,51.57845408793023],[23.508002150168693,52.02364655212473],[23.199493849386187,52.486977444053664],[23.799198846133375,52.69109935160657],[23.80493493011778,53.089731350306074],[23.527535841575002,53.470121568406555],[23.48412763844985,53.91249766704114]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Bulgaria","sov_a3":"BGR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Bulgaria","adm0_a3":"BGR","geou_dif":0,"geounit":"Bulgaria","gu_a3":"BGR","su_dif":0,"subunit":"Bulgaria","su_a3":"BGR","brk_diff":0,"name":"Bulgaria","name_long":"Bulgaria","brk_a3":"BGR","brk_name":"Bulgaria","brk_group":null,"abbrev":"Bulg.","postal":"BG","formal_en":"Republic of Bulgaria","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Bulgaria","name_alt":null,"mapcolor7":4,"mapcolor8":5,"mapcolor9":1,"mapcolor13":8,"pop_est":7204687,"gdp_md_est":93750,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"BG","iso_a3":"BGR","iso_n3":"100","un_a3":"100","wb_a2":"BG","wb_a3":"BGR","woe_id":-99,"adm0_a3_is":"BGR","adm0_a3_us":"BGR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"BGR.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.65714969248299,44.23492300066128],[22.944832391051847,43.82378530534713],[23.33230228037632,43.89701080990471],[24.100679152124172,43.74105133724785],[25.569271681426926,43.68844472917472],[26.065158725699746,43.94349376075126],[27.242399529740908,44.175986029632405],[27.970107049275075,43.81246816667521],[28.558081495891997,43.70746165625813],[28.03909508638472,43.293171698574184],[27.67389773937805,42.577892361006214],[27.99672041190539,42.00735871028779],[27.135739373490477,42.14148489030134],[26.117041863720797,41.82690460872456],[26.106138136507212,41.32889883072778],[25.197201368925445,41.23448598893053],[24.49264489105803,41.583896185872035],[23.692073601992348,41.30908091894385],[22.952377150166452,41.33799388281115],[22.88137373219743,41.99929718685026],[22.380525750424592,42.32025950781509],[22.54501183440962,42.46136200618804],[22.43659467946128,42.580321153323936],[22.60480146657133,42.898518785161144],[22.986018507588483,43.211161200526966],[22.50015669118028,43.64281443946099],[22.410446404721597,44.00806346289995],[22.65714969248299,44.23492300066128]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Austria","sov_a3":"AUT","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Austria","adm0_a3":"AUT","geou_dif":0,"geounit":"Austria","gu_a3":"AUT","su_dif":0,"subunit":"Austria","su_a3":"AUT","brk_diff":0,"name":"Austria","name_long":"Austria","brk_a3":"AUT","brk_name":"Austria","brk_group":null,"abbrev":"Aust.","postal":"A","formal_en":"Republic of Austria","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Austria","name_alt":null,"mapcolor7":3,"mapcolor8":1,"mapcolor9":3,"mapcolor13":4,"pop_est":8210281,"gdp_md_est":329500,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"AT","iso_a3":"AUT","iso_n3":"040","un_a3":"040","wb_a2":"AT","wb_a3":"AUT","woe_id":-99,"adm0_a3_is":"AUT","adm0_a3_us":"AUT","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"AUT.geojson"},"geometry":{"type":"Polygon","coordinates":[[[16.979666782304037,48.123497015976305],[16.90375410326726,47.71486562762833],[16.340584344150415,47.71290192320123],[16.534267612380376,47.49617096616912],[16.202298211337364,46.85238597267696],[16.011663852612656,46.6836107448117],[15.137091912504985,46.65870270444703],[14.63247155117483,46.43181732846955],[13.806475457421527,46.509306138691215],[12.376485223040817,46.76755910906985],[12.153088006243054,47.11539317482645],[11.16482791509327,46.94157949481273],[11.048555942436536,46.75135854754634],[10.44270145024663,46.89354625099743],[9.932448357796659,46.92072805438296],[9.479969516649021,47.10280996356337],[9.632931756232978,47.34760122332999],[9.59422610844635,47.52505809182027],[9.896068149463188,47.580196845075704],[10.402083774465211,47.30248769793916],[10.544504021861627,47.56639923765377],[11.426414015354737,47.523766181012974],[12.141357456112788,47.703083401065776],[12.620759718484491,47.67238760028441],[12.932626987365948,47.467645575544],[13.02585127122049,47.637583523135824],[12.884102817443903,48.28914581968792],[13.243357374737,48.416114813829054],[13.595945672264437,48.87717194273715],[14.33889773932472,48.5553052842072],[14.901447381254057,48.964401760445824],[15.253415561593982,49.039074205107575],[16.02964725105022,48.73389903420793],[16.49928266771877,48.78580801044511],[16.960288120194576,48.5969823268506],[16.879982944413,48.47001333270947],[16.979666782304037,48.123497015976305]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Belgium","sov_a3":"BEL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Belgium","adm0_a3":"BEL","geou_dif":0,"geounit":"Belgium","gu_a3":"BEL","su_dif":0,"subunit":"Belgium","su_a3":"BEL","brk_diff":0,"name":"Belgium","name_long":"Belgium","brk_a3":"BEL","brk_name":"Belgium","brk_group":null,"abbrev":"Belg.","postal":"B","formal_en":"Kingdom of Belgium","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Belgium","name_alt":null,"mapcolor7":3,"mapcolor8":2,"mapcolor9":1,"mapcolor13":8,"pop_est":10414336,"gdp_md_est":389300,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"BE","iso_a3":"BEL","iso_n3":"056","un_a3":"056","wb_a2":"BE","wb_a3":"BEL","woe_id":-99,"adm0_a3_is":"BEL","adm0_a3_us":"BEL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"BEL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[3.314971144228537,51.345780951536085],[4.047071160507527,51.26725861266857],[4.973991326526914,51.475023708698124],[5.606975945670001,51.037298488969775],[6.156658155958779,50.80372101501058],[6.043073357781111,50.128051662794235],[5.782417433300906,50.09032786722122],[5.674051954784829,49.529483547557504],[4.799221632515809,49.985373033236385],[4.286022983425084,49.907496649772554],[3.588184441755686,50.37899241800358],[3.123251580425801,50.780363267614575],[2.658422071960274,50.79684804951574],[2.513573032246143,51.14850617126183],[3.314971144228537,51.345780951536085]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Albania","sov_a3":"ALB","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Albania","adm0_a3":"ALB","geou_dif":0,"geounit":"Albania","gu_a3":"ALB","su_dif":0,"subunit":"Albania","su_a3":"ALB","brk_diff":0,"name":"Albania","name_long":"Albania","brk_a3":"ALB","brk_name":"Albania","brk_group":null,"abbrev":"Alb.","postal":"AL","formal_en":"Republic of Albania","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Albania","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":1,"mapcolor13":6,"pop_est":3639453,"gdp_md_est":21810,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"AL","iso_a3":"ALB","iso_n3":"008","un_a3":"008","wb_a2":"AL","wb_a3":"ALB","woe_id":-99,"adm0_a3_is":"ALB","adm0_a3_us":"ALB","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"ALB.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.590247430104906,41.855404161133606],[20.463175083099202,41.51508901627533],[20.605181919037364,41.08622630468522],[21.0200403174764,40.84272695572588],[20.999989861747224,40.58000397395397],[20.674996779063633,40.43499990494303],[20.615000441172754,40.11000682225938],[20.15001590341052,39.62499766698397],[19.980000441170144,39.69499339452341],[19.960001661873207,39.91500580500605],[19.406081984136733,40.250773423822466],[19.319058872157143,40.72723012955356],[19.40354983895429,41.40956574153546],[19.540027296637106,41.71998607031276],[19.37176883309496,41.877547512370654],[19.304486118250793,42.19574514420782],[19.738051385179627,42.688247382165564],[19.801613396898688,42.50009349219084],[20.0707,42.58863],[20.283754510181893,42.32025950781508],[20.52295,42.21787],[20.590247430104906,41.855404161133606]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Germany","sov_a3":"DEU","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Germany","adm0_a3":"DEU","geou_dif":0,"geounit":"Germany","gu_a3":"DEU","su_dif":0,"subunit":"Germany","su_a3":"DEU","brk_diff":0,"name":"Germany","name_long":"Germany","brk_a3":"DEU","brk_name":"Germany","brk_group":null,"abbrev":"Ger.","postal":"D","formal_en":"Federal Republic of Germany","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Germany","name_alt":null,"mapcolor7":2,"mapcolor8":5,"mapcolor9":5,"mapcolor13":1,"pop_est":82329758,"gdp_md_est":2918000,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"DE","iso_a3":"DEU","iso_n3":"276","un_a3":"276","wb_a2":"DE","wb_a3":"DEU","woe_id":-99,"adm0_a3_is":"DEU","adm0_a3_us":"DEU","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"DEU.geojson"},"geometry":{"type":"Polygon","coordinates":[[[9.921906365609232,54.983104153048025],[9.9395797054529,54.596641954153256],[10.950112338920519,54.363607082733154],[10.939466993868448,54.00869334575258],[11.956252475643282,54.19648550070116],[12.518440382546714,54.47037059184799],[13.647467075259499,54.0755109727059],[14.119686313542559,53.75702912049103],[14.353315463934168,53.248171291713106],[14.074521111719434,52.98126251892535],[14.4375997250022,52.624850165408304],[14.685026482815713,52.089947414755216],[14.607098422919648,51.745188096719964],[15.016995883858781,51.10667409932171],[14.570718214586122,51.00233938252438],[14.307013380600665,51.11726776794137],[14.056227654688314,50.92691762959435],[13.338131951560397,50.73323436136428],[12.96683678554325,50.48407644306917],[12.240111118222671,50.26633779560723],[12.415190870827473,49.96912079528062],[12.521024204161336,49.54741526956275],[13.031328973043514,49.30706818297324],[13.595945672264577,48.877171942737164],[13.243357374737116,48.41611481382903],[12.884102817443873,48.28914581968786],[13.025851271220517,47.63758352313595],[12.932626987366064,47.467645575544],[12.620759718484521,47.672387600284424],[12.141357456112871,47.70308340106578],[11.426414015354851,47.52376618101306],[10.544504021861597,47.5663992376538],[10.402083774465325,47.30248769793916],[9.896068149463188,47.580196845075704],[9.594226108446376,47.5250580918202],[8.522611932009795,47.83082754169135],[8.317301466514095,47.61357982033627],[7.466759067422288,47.62058197691192],[7.593676385131062,48.33301911070373],[8.099278598674855,49.01778351500343],[6.658229607783709,49.20195831969164],[6.186320428094177,49.463802802114515],[6.242751092156993,49.90222565367873],[6.043073357781111,50.128051662794235],[6.156658155958779,50.80372101501058],[5.988658074577813,51.851615709025054],[6.589396599970826,51.852029120483394],[6.842869500362383,52.22844025329755],[7.092053256873896,53.14404328064489],[6.905139601274129,53.48216217713064],[7.100424838905268,53.69393219666267],[7.936239454793962,53.74829580343379],[8.121706170289485,53.52779246684429],[8.800734490604668,54.020785630908904],[8.572117954145368,54.39564647075405],[8.526229282270208,54.96274363872516],[9.282048780971136,54.83086538351631],[9.921906365609232,54.983104153048025]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Denmark","sov_a3":"DN1","adm0_dif":1,"level":2,"type":"Country","admin":"Denmark","adm0_a3":"DNK","geou_dif":0,"geounit":"Denmark","gu_a3":"DNK","su_dif":0,"subunit":"Denmark","su_a3":"DNK","brk_diff":0,"name":"Denmark","name_long":"Denmark","brk_a3":"DNK","brk_name":"Denmark","brk_group":null,"abbrev":"Den.","postal":"DK","formal_en":"Kingdom of Denmark","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Denmark","name_alt":null,"mapcolor7":4,"mapcolor8":1,"mapcolor9":3,"mapcolor13":12,"pop_est":5500510,"gdp_md_est":203600,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"DK","iso_a3":"DNK","iso_n3":"208","un_a3":"208","wb_a2":"DK","wb_a3":"DNK","woe_id":-99,"adm0_a3_is":"DNK","adm0_a3_us":"DNK","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"DNK.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[12.69000613775563,55.609990953180784],[12.089991082414741,54.80001455343793],[11.043543328504228,55.364863796604254],[10.903913608451631,55.77995473898875],[12.370904168353292,56.111407375708836],[12.69000613775563,55.609990953180784]]],[[[10.912181837618363,56.458621324277914],[10.667803989309988,56.08138336854722],[10.369992710011985,56.19000722922473],[9.649984978889307,55.469999498102055],[9.921906365609175,54.98310415304806],[9.282048780971136,54.83086538351616],[8.526229282270236,54.96274363872499],[8.120310906617588,55.517722683323626],[8.08997684086225,56.540011705137594],[8.256581658571264,56.8099693874303],[8.543437534223386,57.110002753316905],[9.42446902836761,57.17206614849948],[9.775558709358563,57.447940782289656],[10.580005730846153,57.73001658795485],[10.546105991262692,57.215732733786155],[10.250000034230226,56.89001618105047],[10.369992710011985,56.609981594460834],[10.912181837618363,56.458621324277914]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Estonia","sov_a3":"EST","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Estonia","adm0_a3":"EST","geou_dif":0,"geounit":"Estonia","gu_a3":"EST","su_dif":0,"subunit":"Estonia","su_a3":"EST","brk_diff":0,"name":"Estonia","name_long":"Estonia","brk_a3":"EST","brk_name":"Estonia","brk_group":null,"abbrev":"Est.","postal":"EST","formal_en":"Republic of Estonia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Estonia","name_alt":null,"mapcolor7":3,"mapcolor8":2,"mapcolor9":1,"mapcolor13":10,"pop_est":1299371,"gdp_md_est":27410,"pop_year":-99,"lastcensus":2000,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"EE","iso_a3":"EST","iso_n3":"233","un_a3":"233","wb_a2":"EE","wb_a3":"EST","woe_id":-99,"adm0_a3_is":"EST","adm0_a3_us":"EST","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"EST.geojson"},"geometry":{"type":"Polygon","coordinates":[[[24.312862583114622,57.79342357037698],[24.42892785004216,58.38341339785328],[24.061198357853186,58.25737457949341],[23.42656009287668,58.612753404364625],[23.339795363058645,59.18724030215338],[24.604214308376182,59.46585378685502],[25.86418908051664,59.61109039981134],[26.949135776484525,59.445803331125774],[27.981114129353244,59.47538808861287],[28.13169925305175,59.30082510033092],[27.42016645682494,58.72458120384424],[27.71668582531572,57.79189911562437],[27.28818484875151,57.47452830670383],[26.463532342237787,57.47638865826633],[25.602809685984365,57.84752879498657],[25.16459354014927,57.97015696881519],[24.312862583114622,57.79342357037698]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Spain","sov_a3":"ESP","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Spain","adm0_a3":"ESP","geou_dif":0,"geounit":"Spain","gu_a3":"ESP","su_dif":0,"subunit":"Spain","su_a3":"ESP","brk_diff":0,"name":"Spain","name_long":"Spain","brk_a3":"ESP","brk_name":"Spain","brk_group":null,"abbrev":"Sp.","postal":"E","formal_en":"Kingdom of Spain","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Spain","name_alt":null,"mapcolor7":4,"mapcolor8":5,"mapcolor9":5,"mapcolor13":5,"pop_est":40525002,"gdp_md_est":1403000,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"ES","iso_a3":"ESP","iso_n3":"724","un_a3":"724","wb_a2":"ES","wb_a3":"ESP","woe_id":-99,"adm0_a3_is":"ESP","adm0_a3_us":"ESP","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":5,"long_len":5,"abbrev_len":3,"tiny":-99,"homepart":1,"filename":"ESP.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-9.034817674180246,41.88057058365967],[-8.984433152695672,42.59277517350627],[-9.392883673530648,43.0266246608127],[-7.978189663108309,43.748337714200986],[-6.754491746436756,43.567909450853925],[-5.411886359061596,43.574239813809676],[-4.347842779955783,43.40344920508504],[-3.51753170410609,43.4559007838613],[-1.901351284177764,43.42280202897834],[-1.502770961910528,43.03401439063043],[0.338046909190581,42.57954600683954],[0.701590610363894,42.7957343613326],[1.826793247087153,42.34338471126569],[2.985998976258458,42.47301504166986],[3.039484083680549,41.892120266276905],[2.091841668312185,41.22608856868309],[0.810524529635188,41.01473196060934],[0.721331007499401,40.678318386389236],[0.106691521819869,40.12393362076202],[-0.278711310212941,39.30997813573272],[0.111290724293838,38.73851430923303],[-0.467123582349103,38.29236583104115],[-0.683389451490598,37.642353827457825],[-1.438382127274849,37.443063666324214],[-2.146452602538119,36.67414419203728],[-3.415780808923387,36.65889964451118],[-4.368900926114719,36.677839056946155],[-4.995219285492211,36.32470815687964],[-5.377159796561457,35.946850083961465],[-5.866432257500904,36.02981659600606],[-6.236693894872175,36.367677110330334],[-6.520190802425404,36.94291331638732],[-7.453725551778092,37.09778758396607],[-7.537105475281024,37.42890432387623],[-7.166507941099865,37.803894354802225],[-7.029281175148796,38.07576406508977],[-7.374092169616318,38.37305858006492],[-7.098036668313128,39.03007274022378],[-7.498632371439725,39.62957103124181],[-7.066591559263529,39.71189158788277],[-7.026413133156595,40.184524237624245],[-6.864019944679385,40.33087189387483],[-6.851126674822552,41.11108266861753],[-6.389087693700915,41.381815497394655],[-6.668605515967656,41.883386949219584],[-7.251308966490824,41.91834605566505],[-7.422512986673795,41.79207469335983],[-8.013174607769912,41.790886135417125],[-8.263856980817792,42.28046865495034],[-8.67194576662672,42.13468943945496],[-9.034817674180246,41.88057058365967]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Finland","sov_a3":"FI1","adm0_dif":1,"level":2,"type":"Country","admin":"Finland","adm0_a3":"FIN","geou_dif":0,"geounit":"Finland","gu_a3":"FIN","su_dif":0,"subunit":"Finland","su_a3":"FIN","brk_diff":0,"name":"Finland","name_long":"Finland","brk_a3":"FIN","brk_name":"Finland","brk_group":null,"abbrev":"Fin.","postal":"FIN","formal_en":"Republic of Finland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Finland","name_alt":null,"mapcolor7":4,"mapcolor8":1,"mapcolor9":4,"mapcolor13":6,"pop_est":5250275,"gdp_md_est":193500,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"FI","iso_a3":"FIN","iso_n3":"246","un_a3":"246","wb_a2":"FI","wb_a3":"FIN","woe_id":-99,"adm0_a3_is":"FIN","adm0_a3_us":"FIN","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"FIN.geojson"},"geometry":{"type":"Polygon","coordinates":[[[28.591929559043194,69.06477692328666],[28.445943637818658,68.36461294216404],[29.977426385220607,67.69829702419266],[29.054588657352326,66.94428620062193],[30.21765,65.80598],[29.544429559046986,64.94867157659048],[30.44468468600371,64.20445343693909],[30.035872430142714,63.55281362573855],[31.51609215671112,62.86768748641288],[31.139991082490894,62.35769277612441],[30.211107212044446,61.78002777774969],[28.069997592895277,60.503516547275844],[26.25517296723697,60.4239606797625],[24.496623976344523,60.05731639265165],[22.869694858499457,59.846373196036225],[22.290763787533592,60.39192129174154],[21.322244093519316,60.72016998965952],[21.544866163832694,61.7053294948718],[21.05921105315369,62.60739329695874],[21.536029493910803,63.18973501245587],[22.442744174903993,63.81781037053129],[24.730511508897536,64.90234365504082],[25.398067661243942,65.11142650009373],[25.294043003040404,65.53434642197045],[23.903378533633802,66.00692739527962],[23.565879754335583,66.39605093043743],[23.53947309743444,67.93600861273525],[21.978534783626117,68.6168456081807],[20.645592889089528,69.10624726020087],[21.244936150810673,69.37044302029307],[22.356237827247412,68.84174144151491],[23.66204959483076,68.89124746365054],[24.735679152126725,68.64955678982146],[25.68921268077636,69.09211375596904],[26.17962202322624,69.82529897732614],[27.732292107867863,70.16419302029625],[29.01557295097197,69.76649119737799],[28.591929559043194,69.06477692328666]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"France","sov_a3":"FR1","adm0_dif":1,"level":2,"type":"Country","admin":"France","adm0_a3":"FRA","geou_dif":0,"geounit":"France","gu_a3":"FRA","su_dif":0,"subunit":"France","su_a3":"FRA","brk_diff":0,"name":"France","name_long":"France","brk_a3":"FRA","brk_name":"France","brk_group":null,"abbrev":"Fr.","postal":"F","formal_en":"French Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"France","name_alt":null,"mapcolor7":7,"mapcolor8":5,"mapcolor9":9,"mapcolor13":11,"pop_est":64057792,"gdp_md_est":2128000,"pop_year":-99,"lastcensus":-99,"gdp_year":-99,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"FR","iso_a3":"FRA","iso_n3":"250","un_a3":"250","wb_a2":"FR","wb_a3":"FRA","woe_id":-99,"adm0_a3_is":"FRA","adm0_a3_us":"FRA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":3,"tiny":-99,"homepart":1,"filename":"FRA.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-52.55642473001839,2.504705308437053],[-52.93965715189498,2.124857692875622],[-53.418465135295264,2.053389187016037],[-53.554839240113495,2.334896551925965],[-53.77852067728889,2.376702785650053],[-54.08806250671728,2.105556545414629],[-54.52475419779975,2.311848863123785],[-54.27122962097578,2.738747870286943],[-54.18428402364474,3.194172268075235],[-54.01150387227682,3.622569891774858],[-54.399542202356514,4.212611395683481],[-54.47863298197922,4.896755682795643],[-53.95804460307093,5.756548163267809],[-53.618452928264844,5.646529038918402],[-52.88214128275408,5.409850979021599],[-51.82334286152593,4.565768133966145],[-51.65779741067888,4.156232408053029],[-52.24933753112398,3.241094468596287],[-52.55642473001839,2.504705308437053]]],[[[9.560016310269134,42.15249197037957],[9.229752231491773,41.38000682226445],[8.77572309737536,41.58361196549444],[8.54421268070783,42.25651662858308],[8.746009148807588,42.62812185319396],[9.390000848028905,43.00998484961474],[9.560016310269134,42.15249197037957]]],[[[3.588184441755715,50.37899241800358],[4.28602298342514,49.907496649772554],[4.799221632515753,49.98537303323633],[5.674051954784885,49.52948354755745],[5.897759230176376,49.44266714130717],[6.186320428094206,49.46380280211446],[6.658229607783539,49.20195831969155],[8.099278598674772,49.01778351500337],[7.593676385131062,48.33301911070373],[7.46675906742223,47.620581976911865],[7.192202182655535,47.44976552997099],[6.736571079138088,47.54180125588289],[6.768713820023634,47.28770823830368],[6.037388950228972,46.72577871356191],[6.022609490593567,46.272989813820516],[6.500099724970454,46.42967275652944],[6.843592970414562,45.99114655210067],[6.802355177445662,45.70857982032867],[7.096652459347837,45.333098863295874],[6.749955275101711,45.02851797136759],[7.007562290076663,44.25476675066139],[7.549596388386163,44.12790110938482],[7.435184767291843,43.69384491634918],[6.529245232783068,43.12889232031836],[4.556962517931396,43.39965098731158],[3.10041059735272,43.075200507167125],[2.985998976258486,42.47301504166989],[1.826793247087181,42.34338471126566],[0.701590610363922,42.79573436133265],[0.338046909190581,42.579546006839564],[-1.502770961910471,43.03401439063049],[-1.901351284177735,43.42280202897834],[-1.384225226232957,44.02261037859017],[-1.193797573237362,46.014917710954876],[-2.225724249673789,47.06436269793821],[-2.963276129559574,47.570326646507965],[-4.491554938159481,47.95495433205642],[-4.592349819344747,48.68416046812695],[-3.295813971357745,48.901692409859635],[-1.616510789384932,48.644421291694584],[-1.933494025063254,49.776341864615766],[-0.98946895995536,49.347375800160876],[1.338761020522753,50.12717316344526],[1.6390010921385,50.946606350297515],[2.513573032246171,51.14850617126185],[2.658422071960331,50.79684804951566],[3.123251580425716,50.78036326761452],[3.588184441755715,50.37899241800358]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"United Kingdom","sov_a3":"GB1","adm0_dif":1,"level":2,"type":"Country","admin":"United Kingdom","adm0_a3":"GBR","geou_dif":0,"geounit":"United Kingdom","gu_a3":"GBR","su_dif":0,"subunit":"United Kingdom","su_a3":"GBR","brk_diff":0,"name":"United Kingdom","name_long":"United Kingdom","brk_a3":"GBR","brk_name":"United Kingdom","brk_group":null,"abbrev":"U.K.","postal":"GB","formal_en":"United Kingdom of Great Britain and Northern Ireland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"United Kingdom","name_alt":null,"mapcolor7":6,"mapcolor8":6,"mapcolor9":6,"mapcolor13":3,"pop_est":62262000,"gdp_md_est":1977704,"pop_year":0,"lastcensus":2011,"gdp_year":2009,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"GB","iso_a3":"GBR","iso_n3":"826","un_a3":"826","wb_a2":"GB","wb_a3":"GBR","woe_id":-99,"adm0_a3_is":"GBR","adm0_a3_us":"GBR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":14,"long_len":14,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"GBR.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-5.661948614921897,54.55460317648385],[-6.197884894220977,53.86756500916334],[-6.953730231137996,54.073702297575636],[-7.572167934591079,54.05995636658599],[-7.366030646178785,54.595840969452695],[-7.572167934591079,55.1316222194549],[-6.733847011736145,55.1728600124238],[-5.661948614921897,54.55460317648385]]],[[[-3.005004848635281,58.63500010846633],[-4.073828497728016,57.55302480735525],[-3.055001796877661,57.69001902936095],[-1.959280564776918,57.68479970969951],[-2.219988165689301,56.87001740175353],[-3.119003058271118,55.973793036515474],[-2.085009324543023,55.90999848085127],[-2.005675679673857,55.80490285035023],[-1.11499101399221,54.62498647726539],[-0.4304849918542,54.46437612570216],[0.184981316742039,53.32501414653103],[0.469976840831777,52.92999949809197],[1.681530795914739,52.739520168664],[1.559987827164377,52.09999848083601],[1.050561557630914,51.806760565795685],[1.449865349950301,51.28942780212196],[0.550333693045502,50.765738837275876],[-0.78751746255864,50.77498891865622],[-2.489997524414377,50.50001862243124],[-2.956273972984036,50.696879991247016],[-3.617448085942328,50.22835561787272],[-4.542507900399244,50.34183706318566],[-5.245023159191135,49.95999990498108],[-5.776566941745301,50.15967763935682],[-4.309989793301838,51.21000112568916],[-3.414850633142123,51.42600861266925],[-3.422719467108323,51.42684816740609],[-4.984367234710874,51.593466091510976],[-5.267295701508885,51.99140045837458],[-4.222346564134853,52.301355699261364],[-4.770013393564113,52.840004991255626],[-4.579999152026915,53.49500377055517],[-3.093830673788659,53.404547400669685],[-3.092079637047106,53.404440822963544],[-2.945008510744344,53.984999701546684],[-3.614700825433034,54.600936773292574],[-3.63000545898933,54.615012925833014],[-4.844169073903004,54.790971177786844],[-5.082526617849226,55.06160065369937],[-4.719112107756644,55.50847260194348],[-5.047980922862109,55.78398550070752],[-5.586397670911139,55.31114614523682],[-5.644998745130181,56.275014960344805],[-6.149980841486354,56.78500967063354],[-5.786824713555291,57.81884837506465],[-5.009998745127575,58.63001333275005],[-4.211494513353557,58.55084503847917],[-3.005004848635281,58.63500010846633]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Italy","sov_a3":"ITA","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Italy","adm0_a3":"ITA","geou_dif":0,"geounit":"Italy","gu_a3":"ITA","su_dif":0,"subunit":"Italy","su_a3":"ITA","brk_diff":0,"name":"Italy","name_long":"Italy","brk_a3":"ITA","brk_name":"Italy","brk_group":null,"abbrev":"Italy","postal":"I","formal_en":"Italian Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Italy","name_alt":null,"mapcolor7":6,"mapcolor8":7,"mapcolor9":8,"mapcolor13":7,"pop_est":58126212,"gdp_md_est":1823000,"pop_year":-99,"lastcensus":2012,"gdp_year":-99,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"IT","iso_a3":"ITA","iso_n3":"380","un_a3":"380","wb_a2":"IT","wb_a3":"ITA","woe_id":-99,"adm0_a3_is":"ITA","adm0_a3_us":"ITA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":5,"long_len":5,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"ITA.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[15.520376010813834,38.23115509699147],[15.160242954171736,37.44404551853782],[15.309897902089006,37.1342194687318],[15.099988234119449,36.6199872909954],[14.335228712632016,36.996630967754754],[13.826732618879928,37.10453135838019],[12.431003859108813,37.61294993748381],[12.570943637755136,38.12638113051968],[13.741156447004585,38.03496552179536],[14.76124922044616,38.143873602850505],[15.520376010813834,38.23115509699147]]],[[[9.210011834356266,41.20999136002422],[9.809975213264977,40.5000088567661],[9.669518670295673,39.177376410471794],[9.21481774255949,39.240473334300134],[8.80693566247973,38.90661774347847],[8.428302443077115,39.17184703221662],[8.38825320805094,40.378310858718805],[8.15999840661766,40.95000722916379],[8.709990675500109,40.89998444270523],[9.210011834356266,41.20999136002422]]],[[[12.376485223040843,46.76755910906987],[13.806475457421556,46.50930613869119],[13.698109978905478,46.016778062517375],[13.937630242578335,45.591015936864665],[13.141606479554298,45.73669179949541],[12.328581170306306,45.38177806251485],[12.383874952858605,44.88537425391908],[12.261453484759159,44.600482082694015],[12.589237094786483,44.091365871754476],[13.526905958722494,43.5877273626379],[14.029820997787027,42.76100779883248],[15.142569614327956,41.955139675456905],[15.926191033601896,41.96131500911574],[16.169897088290412,41.74029490820342],[15.889345737377797,41.5410822617182],[16.785001661860576,41.179605617836586],[17.519168735431208,40.87714345963224],[18.376687452882575,40.35562490494266],[18.4802470231954,40.168866278639825],[18.293385044028096,39.81077444107325],[17.738380161213286,40.2776710068303],[16.869595981522338,40.44223460546385],[16.448743116937322,39.79540070246648],[17.1714896989715,39.42469981542072],[17.05284061042934,38.9028712021373],[16.635088331781844,38.8435724960824],[16.100960727613057,37.98589874933418],[15.684086948314501,37.90884918878703],[15.687962680736321,38.214592800441864],[15.891981235424707,38.750942491199226],[16.109332309644312,38.96454702407769],[15.718813510814641,39.544072374014945],[15.413612501698822,40.04835683853517],[14.998495721098237,40.17294871679093],[14.70326826341477,40.604550279292624],[14.060671827865264,40.78634796809544],[13.627985060285397,41.188287258461656],[12.88808190273042,41.25308950455562],[12.10668257004491,41.70453481705741],[11.191906365614187,42.35542531998967],[10.511947869517797,42.931462510747224],[10.200028924204048,43.920006822274615],[9.702488234097814,44.03627879493132],[8.88894616052687,44.36633616797954],[8.428560825238577,44.23122813575242],[7.850766635783201,43.76714793555524],[7.435184767291843,43.69384491634918],[7.549596388386163,44.12790110938482],[7.007562290076663,44.25476675066139],[6.749955275101711,45.02851797136759],[7.096652459347837,45.333098863295874],[6.802355177445662,45.70857982032867],[6.843592970414562,45.99114655210067],[7.273850945676685,45.77694774025076],[7.755992058959833,45.82449005795928],[8.31662967289438,46.163642483090854],[8.489952426801295,46.00515086525175],[8.966305779667834,46.036931871111165],[9.182881707403112,46.44021474871698],[9.922836541390353,46.31489940040919],[10.363378126678668,46.483571275409844],[10.442701450246602,46.893546250997446],[11.048555942436508,46.7513585475464],[11.164827915093326,46.94157949481274],[12.153088006243081,47.11539317482644],[12.376485223040843,46.76755910906987]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Kosovo","sov_a3":"KOS","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Kosovo","adm0_a3":"KOS","geou_dif":0,"geounit":"Kosovo","gu_a3":"KOS","su_dif":0,"subunit":"Kosovo","su_a3":"KOS","brk_diff":1,"name":"Kosovo","name_long":"Kosovo","brk_a3":"B57","brk_name":"Kosovo","brk_group":null,"abbrev":"Kos.","postal":"KO","formal_en":"Republic of Kosovo","formal_fr":null,"note_adm0":null,"note_brk":"Self admin.; Claimed by Serbia","name_sort":"Kosovo","name_alt":null,"mapcolor7":2,"mapcolor8":2,"mapcolor9":3,"mapcolor13":11,"pop_est":1804838,"gdp_md_est":5352,"pop_year":-99,"lastcensus":1981,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"-99","iso_a3":"-99","iso_n3":"-99","un_a3":"-099","wb_a2":"KV","wb_a3":"KSV","woe_id":-99,"adm0_a3_is":"SRB","adm0_a3_us":"KOS","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"KOS.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.76216,42.05186],[20.71731000000011,41.84711],[20.59023,41.85541],[20.52295,42.21787],[20.28374,42.3202500000001],[20.0707,42.58863],[20.25758,42.81275000000011],[20.49679,42.88469],[20.63508,43.21671],[20.81448,43.27205],[20.95651,43.13094],[21.143395,43.06868500000012],[21.27421,42.90959],[21.43866,42.86255],[21.63302,42.67717],[21.77505,42.6827],[21.66292,42.43922],[21.54332,42.3202500000001],[21.57663598940212,42.24522439706186],[21.35270000000014,42.2068],[20.76216,42.05186]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Greece","sov_a3":"GRC","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Greece","adm0_a3":"GRC","geou_dif":0,"geounit":"Greece","gu_a3":"GRC","su_dif":0,"subunit":"Greece","su_a3":"GRC","brk_diff":0,"name":"Greece","name_long":"Greece","brk_a3":"GRC","brk_name":"Greece","brk_group":null,"abbrev":"Greece","postal":"GR","formal_en":"Hellenic Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Greece","name_alt":null,"mapcolor7":2,"mapcolor8":2,"mapcolor9":2,"mapcolor13":9,"pop_est":10737428,"gdp_md_est":343000,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"GR","iso_a3":"GRC","iso_n3":"300","un_a3":"300","wb_a2":"GR","wb_a3":"GRC","woe_id":-99,"adm0_a3_is":"GRC","adm0_a3_us":"GRC","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":6,"tiny":-99,"homepart":1,"filename":"GRC.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[23.699980096133004,35.70500438083553],[24.24666507334868,35.368022365860156],[25.02501549652888,35.42499563246198],[25.769207797964185,35.35401805270908],[25.745023227651586,35.179997666966216],[26.290002882601723,35.29999034274792],[26.16499759288766,35.004995429009796],[24.724982130642303,34.91998769788961],[24.735007358506945,35.08499054619759],[23.51497846852811,35.27999156345098],[23.699980096133004,35.70500438083553]]],[[[26.604195590936282,41.562114569661105],[26.29460208507578,40.93626129817426],[26.056942172965506,40.824123440100834],[25.447677036244187,40.85254547786147],[24.92584842296094,40.94706167252323],[23.714811232200816,40.687129218095116],[24.407998894964066,40.1249929876241],[23.899967889102584,39.96200552017558],[23.3429993018608,39.96099782974579],[22.81398766448896,40.476005153966554],[22.62629886240478,40.25656118423919],[22.849747755634805,39.65931081802577],[23.3500272966526,39.19001129816726],[22.973099399515547,38.97090322524966],[23.530016310324953,38.51000112563847],[24.025024855248944,38.21999298761645],[24.040011020613605,37.655014553369426],[23.115002882589152,37.92001129816222],[23.409971958111072,37.409990749657396],[22.774971958108633,37.30501007745656],[23.15422529469862,36.422505804992056],[22.490028110451107,36.41000010837746],[21.670026482843696,36.8449864771942],[21.295010613701574,37.644989325504696],[21.120034213961333,38.31032339126273],[20.730032179454582,38.769985256498785],[20.217712029712857,39.340234686839636],[20.15001590341052,39.62499766698403],[20.615000441172782,40.11000682225943],[20.674996779063633,40.434999904943055],[20.99998986174728,40.58000397395397],[21.02004031747643,40.84272695572588],[21.674160597426976,40.93127452245798],[22.05537763844427,41.14986583105269],[22.597308383889015,41.130487168943205],[22.76177,41.3048],[22.952377150166566,41.33799388281122],[23.692073601992462,41.30908091894386],[24.49264489105803,41.58389618587205],[25.197201368925533,41.23448598893066],[26.106138136507184,41.32889883072784],[26.117041863720914,41.82690460872473],[26.604195590936282,41.562114569661105]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Croatia","sov_a3":"HRV","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Croatia","adm0_a3":"HRV","geou_dif":0,"geounit":"Croatia","gu_a3":"HRV","su_dif":0,"subunit":"Croatia","su_a3":"HRV","brk_diff":0,"name":"Croatia","name_long":"Croatia","brk_a3":"HRV","brk_name":"Croatia","brk_group":null,"abbrev":"Cro.","postal":"HR","formal_en":"Republic of Croatia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Croatia","name_alt":null,"mapcolor7":5,"mapcolor8":4,"mapcolor9":5,"mapcolor13":1,"pop_est":4489409,"gdp_md_est":82390,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"2. High income: nonOECD","wikipedia":-99,"fips_10":null,"iso_a2":"HR","iso_a3":"HRV","iso_n3":"191","un_a3":"191","wb_a2":"HR","wb_a3":"HRV","woe_id":-99,"adm0_a3_is":"HRV","adm0_a3_us":"HRV","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"HRV.geojson"},"geometry":{"type":"Polygon","coordinates":[[[18.829838087650046,45.908877671891844],[19.072768995854176,45.52151113543209],[19.39047570158459,45.236515611342384],[19.00548628101012,44.86023366960916],[18.553214145591653,45.08158966733145],[17.861783481526402,45.067740383477144],[17.002146030351014,45.233776760430935],[16.534939406000206,45.21160757097772],[16.318156772535872,45.00412669532591],[15.959367303133376,45.233776760430935],[15.750026075918981,44.81871165626256],[16.23966027188453,44.35114329688571],[16.456442905348865,44.04123973243128],[16.91615644701733,43.66772247982567],[17.297373488034452,43.44634064388736],[17.674921502358984,43.02856252702361],[18.56,42.65],[18.450016310304818,42.47999136002932],[17.509970330483327,42.849994615239154],[16.930005730871642,43.20999848080038],[16.015384555737683,43.50721548112722],[15.174453973052096,44.243191229827914],[15.376250441151795,44.31791535092208],[14.920309279040508,44.73848399512946],[14.901602410550877,45.07606028907611],[14.258747592839995,45.233776760430935],[13.952254672917034,44.80212352149687],[13.656975538801191,45.13693512631596],[13.67940311041582,45.48414907488501],[13.715059848697251,45.500323798192426],[14.4119682145855,45.46616567644742],[14.595109490627918,45.63494090431282],[14.935243767972963,45.471695054702764],[15.327674594797427,45.452316392593325],[15.323953891672431,45.731782538427694],[15.671529575267641,45.8341535507979],[15.768732944408612,46.23810822202353],[16.564808383864943,46.50375092221981],[16.882515089595415,46.38063182228444],[17.630066359129557,45.9517691106941],[18.45606245288286,45.75948110613615],[18.829838087650046,45.908877671891844]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Hungary","sov_a3":"HUN","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Hungary","adm0_a3":"HUN","geou_dif":0,"geounit":"Hungary","gu_a3":"HUN","su_dif":0,"subunit":"Hungary","su_a3":"HUN","brk_diff":0,"name":"Hungary","name_long":"Hungary","brk_a3":"HUN","brk_name":"Hungary","brk_group":null,"abbrev":"Hun.","postal":"HU","formal_en":"Republic of Hungary","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Hungary","name_alt":null,"mapcolor7":4,"mapcolor8":6,"mapcolor9":1,"mapcolor13":5,"pop_est":9905596,"gdp_md_est":196600,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"HU","iso_a3":"HUN","iso_n3":"348","un_a3":"348","wb_a2":"HU","wb_a3":"HUN","woe_id":-99,"adm0_a3_is":"HUN","adm0_a3_us":"HUN","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"HUN.geojson"},"geometry":{"type":"Polygon","coordinates":[[[16.202298211337364,46.85238597267696],[16.534267612380376,47.49617096616912],[16.340584344150415,47.71290192320123],[16.90375410326726,47.71486562762833],[16.979666782304037,48.123497015976305],[17.48847293464982,47.86746613218621],[17.857132602620027,47.758428860050365],[18.696512892336926,47.880953681014404],[18.77702477384767,48.081768296900634],[19.17436486173989,48.11137889260387],[19.661363559658497,48.26661489520866],[19.769470656013112,48.202691148463614],[20.239054396249347,48.32756724709692],[20.473562045989866,48.56285004332181],[20.801293979584926,48.623854071642384],[21.872236362401736,48.31997081155002],[22.08560835133485,48.42226430927179],[22.640819939878753,48.15023956968735],[22.710531447040495,47.88219391538941],[22.099767693782834,47.6724392767167],[21.62651492685387,46.99423777931816],[21.02195234547125,46.3160879583519],[20.220192498462836,46.127468980486555],[19.596044549241583,46.17172984474454],[18.82983808764996,45.90887767189193],[18.45606245288286,45.759481106136136],[17.630066359129557,45.95176911069419],[16.8825150895953,46.38063182228444],[16.564808383864857,46.50375092221983],[16.370504998447416,46.8413272161665],[16.202298211337364,46.85238597267696]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Ireland","sov_a3":"IRL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Ireland","adm0_a3":"IRL","geou_dif":0,"geounit":"Ireland","gu_a3":"IRL","su_dif":0,"subunit":"Ireland","su_a3":"IRL","brk_diff":0,"name":"Ireland","name_long":"Ireland","brk_a3":"IRL","brk_name":"Ireland","brk_group":null,"abbrev":"Ire.","postal":"IRL","formal_en":"Ireland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Ireland","name_alt":null,"mapcolor7":2,"mapcolor8":3,"mapcolor9":2,"mapcolor13":2,"pop_est":4203200,"gdp_md_est":188400,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"IE","iso_a3":"IRL","iso_n3":"372","un_a3":"372","wb_a2":"IE","wb_a3":"IRL","woe_id":-99,"adm0_a3_is":"IRL","adm0_a3_us":"IRL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"IRL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-6.197884894220991,53.86756500916336],[-6.03298539877761,53.15316417094435],[-6.788856573910849,52.260117906292336],[-8.56161658368356,51.669301255899356],[-9.977085740590269,51.82045482035307],[-9.16628251793078,52.86462881124268],[-9.688524542672454,53.8813626165853],[-8.327987433292009,54.66451894796863],[-7.572167934591064,55.13162221945487],[-7.366030646178785,54.59584096945272],[-7.572167934591064,54.059956366586],[-6.953730231138067,54.073702297575636],[-6.197884894220991,53.86756500916336]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Iceland","sov_a3":"ISL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Iceland","adm0_a3":"ISL","geou_dif":0,"geounit":"Iceland","gu_a3":"ISL","su_dif":0,"subunit":"Iceland","su_a3":"ISL","brk_diff":0,"name":"Iceland","name_long":"Iceland","brk_a3":"ISL","brk_name":"Iceland","brk_group":null,"abbrev":"Iceland","postal":"IS","formal_en":"Republic of Iceland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Iceland","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":4,"mapcolor13":9,"pop_est":306694,"gdp_md_est":12710,"pop_year":-99,"lastcensus":-99,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"IS","iso_a3":"ISL","iso_n3":"352","un_a3":"352","wb_a2":"IS","wb_a3":"ISL","woe_id":-99,"adm0_a3_is":"ISL","adm0_a3_us":"ISL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":7,"tiny":-99,"homepart":1,"filename":"ISL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-14.508695441129236,66.45589223903141],[-14.739637417041605,65.8087482774403],[-13.60973222497981,65.12667104761987],[-14.909833746794902,64.36408193628868],[-17.794438035543422,63.67874909123385],[-18.656245896874992,63.49638296167582],[-19.97275468594276,63.64363495549153],[-22.762971971110158,63.960178941495386],[-21.778484259517683,64.40211579045551],[-23.95504391121911,64.89112986923348],[-22.184402635170358,65.0849681667603],[-22.227423265053332,65.37859365504272],[-24.326184047939336,65.61118927678847],[-23.65051469572309,66.26251902939522],[-22.134922451250883,66.41046865504687],[-20.57628373867955,65.73211212835143],[-19.05684160000159,66.27660085719477],[-17.79862382655905,65.99385325790978],[-16.167818976292125,66.52679230413587],[-14.508695441129236,66.45589223903141]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Lithuania","sov_a3":"LTU","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Lithuania","adm0_a3":"LTU","geou_dif":0,"geounit":"Lithuania","gu_a3":"LTU","su_dif":0,"subunit":"Lithuania","su_a3":"LTU","brk_diff":0,"name":"Lithuania","name_long":"Lithuania","brk_a3":"LTU","brk_name":"Lithuania","brk_group":null,"abbrev":"Lith.","postal":"LT","formal_en":"Republic of Lithuania","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Lithuania","name_alt":null,"mapcolor7":6,"mapcolor8":3,"mapcolor9":3,"mapcolor13":9,"pop_est":3555179,"gdp_md_est":63330,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"LT","iso_a3":"LTU","iso_n3":"440","un_a3":"440","wb_a2":"LT","wb_a3":"LTU","woe_id":-99,"adm0_a3_is":"LTU","adm0_a3_us":"LTU","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":9,"long_len":9,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"LTU.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.731098667092652,54.327536932993326],[22.65105187347254,54.582740993866736],[22.75776370615526,54.85657440858138],[22.315723504330577,55.015298570365864],[21.268448927503467,55.190481675835315],[21.055800408622414,56.03107636171106],[22.201156853939494,56.33780182557948],[23.878263787539964,56.273671373105266],[24.860684441840757,56.37252838807963],[25.000934279080894,56.16453074810484],[25.533046502390334,56.10029694276603],[26.494331495883753,55.615106919977634],[26.58827924979039,55.16717560487167],[25.7684326514798,54.84696259217509],[25.536353794056993,54.28242340760253],[24.450683628037037,53.905702216194754],[23.48412763844985,53.91249766704114],[23.24398725758951,54.22056671814914],[22.731098667092652,54.327536932993326]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Latvia","sov_a3":"LVA","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Latvia","adm0_a3":"LVA","geou_dif":0,"geounit":"Latvia","gu_a3":"LVA","su_dif":0,"subunit":"Latvia","su_a3":"LVA","brk_diff":0,"name":"Latvia","name_long":"Latvia","brk_a3":"LVA","brk_name":"Latvia","brk_group":null,"abbrev":"Lat.","postal":"LV","formal_en":"Republic of Latvia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Latvia","name_alt":null,"mapcolor7":4,"mapcolor8":7,"mapcolor9":6,"mapcolor13":13,"pop_est":2231503,"gdp_md_est":38860,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"LV","iso_a3":"LVA","iso_n3":"428","un_a3":"428","wb_a2":"LV","wb_a3":"LVA","woe_id":-99,"adm0_a3_is":"LVA","adm0_a3_us":"LVA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"LVA.geojson"},"geometry":{"type":"Polygon","coordinates":[[[21.055800408622414,56.03107636171106],[21.09042361825797,56.78387278912293],[21.581866489353672,57.41187063254993],[22.524341261492875,57.75337433535076],[23.318452996522097,57.00623647727487],[24.12072960785343,57.02569265403277],[24.312862583114622,57.79342357037698],[25.16459354014927,57.97015696881519],[25.602809685984365,57.84752879498657],[26.463532342237787,57.47638865826633],[27.28818484875151,57.47452830670383],[27.77001590344093,57.24425812441123],[27.855282016722526,56.75932648378429],[28.176709425577993,56.16912995057881],[27.10245975109453,55.783313707087686],[26.494331495883753,55.615106919977634],[25.533046502390334,56.10029694276603],[25.000934279080894,56.16453074810484],[24.860684441840757,56.37252838807963],[23.878263787539964,56.273671373105266],[22.201156853939494,56.33780182557948],[21.055800408622414,56.03107636171106]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Luxembourg","sov_a3":"LUX","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Luxembourg","adm0_a3":"LUX","geou_dif":0,"geounit":"Luxembourg","gu_a3":"LUX","su_dif":0,"subunit":"Luxembourg","su_a3":"LUX","brk_diff":0,"name":"Luxembourg","name_long":"Luxembourg","brk_a3":"LUX","brk_name":"Luxembourg","brk_group":null,"abbrev":"Lux.","postal":"L","formal_en":"Grand Duchy of Luxembourg","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Luxembourg","name_alt":null,"mapcolor7":1,"mapcolor8":7,"mapcolor9":3,"mapcolor13":7,"pop_est":491775,"gdp_md_est":39370,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"LU","iso_a3":"LUX","iso_n3":"442","un_a3":"442","wb_a2":"LU","wb_a3":"LUX","woe_id":-99,"adm0_a3_is":"LUX","adm0_a3_us":"LUX","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":10,"long_len":10,"abbrev_len":4,"tiny":5,"homepart":1,"filename":"LUX.geojson"},"geometry":{"type":"Polygon","coordinates":[[[6.043073357781111,50.128051662794235],[6.242751092156993,49.90222565367873],[6.186320428094177,49.463802802114515],[5.897759230176405,49.44266714130703],[5.674051954784829,49.529483547557504],[5.782417433300906,50.09032786722122],[6.043073357781111,50.128051662794235]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Macedonia","sov_a3":"MKD","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Macedonia","adm0_a3":"MKD","geou_dif":0,"geounit":"Macedonia","gu_a3":"MKD","su_dif":0,"subunit":"Macedonia","su_a3":"MKD","brk_diff":0,"name":"Macedonia","name_long":"Macedonia","brk_a3":"MKD","brk_name":"Macedonia","brk_group":null,"abbrev":"Mkd.","postal":"MK","formal_en":"Former Yugoslav Republic of Macedonia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Macedonia, FYR","name_alt":null,"mapcolor7":5,"mapcolor8":3,"mapcolor9":7,"mapcolor13":3,"pop_est":2066718,"gdp_md_est":18780,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"MK","iso_a3":"MKD","iso_n3":"807","un_a3":"807","wb_a2":"MK","wb_a3":"MKD","woe_id":-99,"adm0_a3_is":"MKD","adm0_a3_us":"MKD","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":9,"long_len":9,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"MKD.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.59023,41.85541],[20.71731000000011,41.84711],[20.76216,42.05186],[21.35270000000014,42.2068],[21.57663598940212,42.24522439706186],[21.917080000000112,42.30364],[22.38052575042468,42.32025950781508],[22.881373732197346,41.999297186850356],[22.952377150166512,41.33799388281119],[22.76177,41.3048],[22.597308383889015,41.130487168943205],[22.05537763844427,41.14986583105269],[21.674160597426976,40.93127452245795],[21.0200403174764,40.84272695572588],[20.60518,41.08622],[20.46315,41.5150900000001],[20.59023,41.85541]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Moldova","sov_a3":"MDA","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Moldova","adm0_a3":"MDA","geou_dif":0,"geounit":"Moldova","gu_a3":"MDA","su_dif":0,"subunit":"Moldova","su_a3":"MDA","brk_diff":0,"name":"Moldova","name_long":"Moldova","brk_a3":"MDA","brk_name":"Moldova","brk_group":null,"abbrev":"Mda.","postal":"MD","formal_en":"Republic of Moldova","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Moldova","name_alt":null,"mapcolor7":3,"mapcolor8":5,"mapcolor9":4,"mapcolor13":12,"pop_est":4320748,"gdp_md_est":10670,"pop_year":-99,"lastcensus":2004,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"MD","iso_a3":"MDA","iso_n3":"498","un_a3":"498","wb_a2":"MD","wb_a3":"MDA","woe_id":-99,"adm0_a3_is":"MDA","adm0_a3_us":"MDA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"MDA.geojson"},"geometry":{"type":"Polygon","coordinates":[[[26.619336785597795,48.22072622333347],[26.857823520624805,48.368210761094495],[27.522537469195154,48.467119452501116],[28.259546746541844,48.15556224221342],[28.670891147585163,48.1181485052341],[29.12269819511303,47.84909516050646],[29.05086795422733,47.51022695575249],[29.41513512545274,47.34664520933257],[29.559674106573112,46.928582872091326],[29.908851759569302,46.67436066343146],[29.838210076626297,46.52532583270169],[30.02465864433537,46.42393667254503],[29.75997195813639,46.34998769793536],[29.170653924279886,46.3792623968287],[29.072106967899295,46.517677720722496],[28.862972446414062,46.43788930926383],[28.93371748222162,46.2588304713725],[28.659987420371575,45.93998688413164],[28.485269402792767,45.5969070501459],[28.233553501099042,45.48828318946837],[28.0544429867754,45.944586086605625],[28.160017937947714,46.37156260841722],[28.128030226359044,46.810476386088254],[27.551166212684848,47.40511709247083],[27.233872918412743,47.82677094175638],[26.924176059687568,48.123264472030996],[26.619336785597795,48.22072622333347]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Montenegro","sov_a3":"MNE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Montenegro","adm0_a3":"MNE","geou_dif":0,"geounit":"Montenegro","gu_a3":"MNE","su_dif":0,"subunit":"Montenegro","su_a3":"MNE","brk_diff":0,"name":"Montenegro","name_long":"Montenegro","brk_a3":"MNE","brk_name":"Montenegro","brk_group":null,"abbrev":"Mont.","postal":"ME","formal_en":"Montenegro","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Montenegro","name_alt":null,"mapcolor7":4,"mapcolor8":1,"mapcolor9":4,"mapcolor13":5,"pop_est":672180,"gdp_md_est":6816,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"ME","iso_a3":"MNE","iso_n3":"499","un_a3":"499","wb_a2":"ME","wb_a3":"MNE","woe_id":-99,"adm0_a3_is":"MNE","adm0_a3_us":"MNE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":10,"long_len":10,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"MNE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[19.801613396898688,42.50009349219084],[19.738051385179627,42.688247382165564],[19.3044900000001,42.19574],[19.37177000000014,41.87755],[19.16246,41.95502],[18.88214,42.28151],[18.45,42.48],[18.56,42.65],[18.70648,43.20011],[19.03165,43.43253],[19.21852,43.52384],[19.48389,43.35229],[19.63,43.21377997027054],[19.95857,43.10604],[20.3398,42.89852],[20.25758,42.81275000000011],[20.0707,42.58863],[19.801613396898688,42.50009349219084]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Netherlands","sov_a3":"NL1","adm0_dif":1,"level":2,"type":"Country","admin":"Netherlands","adm0_a3":"NLD","geou_dif":0,"geounit":"Netherlands","gu_a3":"NLD","su_dif":0,"subunit":"Netherlands","su_a3":"NLD","brk_diff":0,"name":"Netherlands","name_long":"Netherlands","brk_a3":"NLD","brk_name":"Netherlands","brk_group":null,"abbrev":"Neth.","postal":"NL","formal_en":"Kingdom of the Netherlands","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Netherlands","name_alt":null,"mapcolor7":4,"mapcolor8":2,"mapcolor9":2,"mapcolor13":9,"pop_est":16715999,"gdp_md_est":672000,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"NL","iso_a3":"NLD","iso_n3":"528","un_a3":"528","wb_a2":"NL","wb_a3":"NLD","woe_id":-99,"adm0_a3_is":"NLD","adm0_a3_us":"NLD","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":11,"long_len":11,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"NLD.geojson"},"geometry":{"type":"Polygon","coordinates":[[[6.074182570020923,53.510403347378144],[6.905139601274129,53.48216217713064],[7.092053256873896,53.14404328064489],[6.842869500362383,52.22844025329755],[6.589396599970826,51.852029120483394],[5.988658074577813,51.851615709025054],[6.156658155958779,50.80372101501058],[5.606975945670001,51.037298488969775],[4.973991326526914,51.475023708698124],[4.047071160507527,51.26725861266857],[3.314971144228537,51.34575511331991],[3.830288527043137,51.62054454203195],[4.705997348661185,53.09179840759776],[6.074182570020923,53.510403347378144]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Norway","sov_a3":"NOR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Norway","adm0_a3":"NOR","geou_dif":0,"geounit":"Norway","gu_a3":"NOR","su_dif":0,"subunit":"Norway","su_a3":"NOR","brk_diff":0,"name":"Norway","name_long":"Norway","brk_a3":"NOR","brk_name":"Norway","brk_group":null,"abbrev":"Nor.","postal":"N","formal_en":"Kingdom of Norway","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Norway","name_alt":null,"mapcolor7":5,"mapcolor8":3,"mapcolor9":8,"mapcolor13":12,"pop_est":4676305,"gdp_md_est":276400,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"NO","iso_a3":"NOR","iso_n3":"578","un_a3":"578","wb_a2":"NO","wb_a3":"NOR","woe_id":-99,"adm0_a3_is":"NOR","adm0_a3_us":"NOR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"NOR.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[28.165547316202915,71.18547435168051],[31.29341840996548,70.45378774685992],[30.005435011522792,70.1862588568849],[31.10107872897512,69.55808014594486],[29.399580519332886,69.15691600206307],[28.591929559043194,69.0647769232867],[29.01557295097197,69.76649119737797],[27.73229210786789,70.16419302029628],[26.1796220232263,69.82529897732616],[25.68921268077639,69.09211375596902],[24.73567915212672,68.64955678982145],[23.662049594830762,68.89124746365053],[22.356237827247412,68.84174144151494],[21.24493615081073,69.37044302029312],[20.64559288908958,69.10624726020085],[20.025268995857914,69.06513865831272],[19.878559604581255,68.40719432237262],[17.99386844246439,68.56739126247734],[17.729181756265348,68.01055186631623],[16.76887861498554,68.01393667263139],[16.108712192456835,67.3024555528369],[15.108411492583059,66.19386688909543],[13.55568973150909,64.78702769638147],[13.919905226302205,64.44542064071611],[13.57191613124877,64.04911408146967],[12.57993533697393,64.06621898055835],[11.93056928879423,63.128317572676984],[11.992064243221535,61.800362453856565],[12.631146681375242,61.29357168237009],[12.3003658382749,60.11793284773006],[11.468271925511175,59.432393296946],[11.027368605196926,58.856149400459394],[10.356556837616097,59.46980703392538],[8.382000359743643,58.31328847923328],[7.048748406613299,58.07888418235728],[5.665835402050419,58.58815542259367],[5.308234490590735,59.66323191999382],[4.992078077829007,61.970998033284275],[5.912900424837885,62.614472968182696],[8.553411085655766,63.45400828719647],[10.527709181366788,64.48603831649748],[12.358346795306375,65.87972585719316],[14.761145867581604,67.81064158799515],[16.43592736172897,68.56320547146169],[19.184028354578516,69.81744415961782],[21.378416375420613,70.25516937934606],[23.023742303161583,70.20207184516626],[24.546543409938522,71.03049673123724],[26.370049676221807,70.98626170519537],[28.165547316202915,71.18547435168051]]],[[[24.72412,77.85385],[22.49032,77.44493],[20.72601,77.67704],[21.41611,77.93504],[20.8119,78.25463],[22.88426,78.45494],[23.28134,78.07954],[24.72412,77.85385]]],[[[18.25183,79.70175],[21.54383,78.95611],[19.02737,78.5626],[18.47172,77.82669],[17.59441,77.63796],[17.1182,76.80941],[15.91315,76.77045],[13.76259,77.38035],[14.66956,77.73565],[13.1706,78.02493],[11.22231,78.8693],[10.44453,79.65239],[13.17077,80.01046],[13.71852,79.66039],[15.14282,79.67431],[15.52255,80.01608],[16.99085,80.05086],[18.25183,79.70175]]],[[[25.447625359811894,80.40734039989451],[27.4075057309135,80.05640574820046],[25.92465050629818,79.51783397085455],[23.02446577321362,79.4000117052291],[20.075188429451885,79.56682322866726],[19.897266473070914,79.84236196564751],[18.462263624757924,79.85988027619442],[17.368015170977458,80.31889618602702],[20.455992059010697,80.59815562613224],[21.9079447771154,80.35767934846209],[22.919252557067438,80.65714427359349],[25.447625359811894,80.40734039989451]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Russia","sov_a3":"RUS","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Russia","adm0_a3":"RUS","geou_dif":0,"geounit":"Russia","gu_a3":"RUS","su_dif":0,"subunit":"Russia","su_a3":"RUS","brk_diff":0,"name":"Russia","name_long":"Russian Federation","brk_a3":"RUS","brk_name":"Russia","brk_group":null,"abbrev":"Rus.","postal":"RUS","formal_en":"Russian Federation","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Russian Federation","name_alt":null,"mapcolor7":2,"mapcolor8":5,"mapcolor9":7,"mapcolor13":7,"pop_est":140041247,"gdp_md_est":2266000,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"3. Emerging region: BRIC","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"RU","iso_a3":"RUS","iso_n3":"643","un_a3":"643","wb_a2":"RU","wb_a3":"RUS","woe_id":-99,"adm0_a3_is":"RUS","adm0_a3_us":"RUS","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":18,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"RUS.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[143.64800744036287,50.74760040954151],[144.65414757708564,48.976390692737596],[143.17392785051723,49.30655141865037],[142.5586682476501,47.861575018904915],[143.53349246640406,46.83672801369249],[143.5052771343726,46.13790761980948],[142.74770063697392,46.74076487892657],[142.0920300640545,45.96675527605879],[141.90692508358504,46.80592886004655],[142.0184428244709,47.780132961612935],[141.90444461483506,48.85918854429956],[142.13580000220568,49.61516307229746],[142.1799833518153,50.95234243428192],[141.59407596249002,51.93543488220254],[141.68254601457366,53.30196645772878],[142.60693403541075,53.762145087287905],[142.2097489768154,54.22547597921687],[142.654786411713,54.36588084575388],[142.91461551327657,53.704577541714734],[143.26084760963207,52.74076040303905],[143.23526777564766,51.75666026468875],[143.64800744036287,50.74760040954151]]],[[[22.731098667092652,54.327536932993326],[20.892244500418652,54.312524929412575],[19.660640089606403,54.426083889373984],[19.888481479581344,54.8661603867715],[21.2684489275035,55.19048167583528],[22.315723504330606,55.0152985703659],[22.757763706155288,54.85657440858142],[22.651051873472568,54.58274099386671],[22.731098667092652,54.327536932993326]]],[[[-175.01425,66.58435],[-174.33983,66.33556],[-174.57182,67.06219],[-171.85731,66.91308],[-169.89958,65.97724],[-170.89107,65.54139],[-172.53025,65.43791],[-172.555,64.46079],[-172.95533,64.25269],[-173.89184,64.2826],[-174.65392,64.63125],[-175.98353,64.92288],[-176.20716,65.35667],[-177.22266,65.52024],[-178.35993,65.39052],[-178.90332,65.74044],[-178.68611,66.11211],[-179.88377,65.87456],[-179.43268,65.40411],[-180,64.97970870219837],[-180,68.96363636363635],[-177.55,68.2],[-174.92825,67.20589],[-175.01425,66.58435]]],[[[180.00000000000014,70.83219920854668],[178.9034250000001,70.78114],[178.7253,71.0988],[180.00000000000014,71.51571433642826],[180.00000000000014,70.83219920854668]]],[[[-178.69378,70.89302],[-180,70.83219920854668],[-180,71.51571433642826],[-179.871875,71.55762],[-179.02433,71.55553],[-177.577945,71.26948],[-177.663575,71.13277],[-178.69378,70.89302]]],[[[143.60385,73.21244],[142.08763,73.20544],[140.038155,73.31692],[139.86312,73.36983],[140.81171,73.76506],[142.06207,73.85758],[143.48283,73.47525],[143.60385,73.21244]]],[[[150.73167,75.08406],[149.575925,74.68892],[147.977465,74.778355],[146.11919,75.17298],[146.358485,75.49682],[148.22223,75.345845],[150.73167,75.08406]]],[[[145.086285,75.562625],[144.3,74.82],[140.61381,74.84768],[138.95544,74.61148],[136.97439,75.26167],[137.51176,75.94917],[138.831075,76.13676],[141.471615,76.09289],[145.086285,75.562625]]],[[[57.5356925799924,70.72046397570216],[56.94497928246395,70.63274323188668],[53.6773751157842,70.76265778266847],[53.41201663596539,71.2066616889202],[51.60189456564572,71.47475901965049],[51.45575361512422,72.01488108996514],[52.47827518088357,72.22944163684096],[52.444168735570855,72.77473135038485],[54.42761355979766,73.62754751249759],[53.50828982932515,73.74981395130015],[55.90245893740766,74.62748647734533],[55.631932814359715,75.08141225859717],[57.86864383324885,75.60939036732321],[61.170044386647504,76.25188345000814],[64.49836836127022,76.43905548776928],[66.2109770038551,76.80978221303124],[68.15705976753483,76.93969676381292],[68.85221113472512,76.54481130645462],[68.18057254422766,76.23364166940911],[64.637326287703,75.73775462513623],[61.58350752141476,75.2608845079468],[58.47708214705338,74.30905630156283],[56.98678551618801,73.33304352486624],[55.419335971910954,72.37126760526598],[55.622837762276305,71.54059479439033],[57.5356925799924,70.72046397570216]]],[[[106.97013000000013,76.97419],[107.24000000000015,76.48],[108.1538,76.72335000000015],[111.07726000000017,76.71],[113.33151,76.22224],[114.13417,75.84764],[113.88539,75.32779000000014],[112.77918,75.03186],[110.1512500000002,74.47673],[109.4,74.18],[110.64,74.04],[112.11919,73.78774000000011],[113.01954000000026,73.97693000000015],[113.52958000000032,73.33505000000011],[113.96881,73.59488],[115.56782,73.75285],[118.77633000000023,73.58772],[119.02,73.12],[123.20066000000011,72.97122],[123.25777000000018,73.73503000000011],[125.38000000000018,73.56],[126.97644,73.56549],[128.59126,73.03871],[129.05157,72.39872],[128.46000000000012,71.98],[129.7159900000002,71.19304],[131.28858000000028,70.78699000000012],[132.25350000000017,71.83630000000011],[133.85766000000032,71.38642000000016],[135.56193,71.65525000000014],[137.49755,71.34763],[138.23409000000018,71.62803],[139.86983000000012,71.48783000000014],[139.14791,72.4161900000001],[140.46817,72.84941000000013],[149.5,72.2],[150.3511800000002,71.60643],[152.96890000000022,70.84222],[157.00688,71.03141],[158.99779,70.86672],[159.83031000000025,70.45324],[159.70866,69.72198],[160.94053000000034,69.4372800000001],[162.27907000000013,69.64204],[164.05248000000014,69.66823],[165.94037000000023,69.47199],[167.83567,69.58269],[169.5776300000002,68.6938],[170.81688000000028,69.01363],[170.0082000000002,69.65276],[170.4534500000003,70.09703],[173.64391000000026,69.81743],[175.72403000000023,69.87725000000023],[178.6,69.4],[180.00000000000014,68.96363636363657],[180.00000000000014,64.97970870219848],[179.99281,64.97433],[178.70720000000026,64.53493],[177.41128000000018,64.60821],[178.31300000000024,64.07593],[178.9082500000002,63.251970000000135],[179.37034,62.982620000000104],[179.48636,62.56894],[179.22825000000014,62.30410000000015],[177.3643,62.5219],[174.56929000000022,61.76915],[173.68013,61.65261],[172.15,60.95],[170.6985000000001,60.33618],[170.3308500000003,59.88177],[168.90046,60.57355],[166.29498000000032,59.788550000000214],[165.84000000000023,60.16],[164.87674,59.7316],[163.53929000000014,59.86871],[163.21711000000025,59.21101],[162.0173300000001,58.24328],[162.05297,57.83912],[163.19191,57.61503000000011],[163.05794000000017,56.159240000000125],[162.12958000000023,56.12219],[161.70146,55.285680000000156],[162.11749000000017,54.85514],[160.36877000000032,54.34433],[160.02173000000022,53.20257],[158.5309400000002,52.958680000000236],[158.23118,51.94269],[156.7897900000003,51.01105],[156.42000000000016,51.7],[155.99182,53.15895],[155.43366000000012,55.38103000000012],[155.91442000000032,56.767920000000146],[156.75815,57.3647],[156.8103500000001,57.83204],[158.3643300000002,58.05575],[160.15064000000012,59.31477000000012],[161.87204,60.34300000000013],[163.66969,61.1409],[164.47355000000013,62.55061],[163.2584200000002,62.46627],[162.65791,61.6425],[160.1214800000001,60.54423],[159.30232,61.77396],[156.7206800000001,61.43442],[154.21806000000035,59.75818000000013],[155.04375,59.14495],[152.81185,58.88385],[151.26573000000025,58.78089],[151.33815000000013,59.50396],[149.78371,59.65573000000014],[148.54481,59.16448],[145.48722,59.33637],[142.19782000000018,59.03998],[138.95848000000032,57.08805],[135.12619,54.72959],[136.70171,54.603550000000126],[137.19342,53.97732],[138.1647,53.755010000000254],[138.80463,54.25455000000011],[139.90151,54.18968000000018],[141.34531,53.08957000000012],[141.37923,52.23877],[140.5974200000002,51.2396700000001],[140.51308,50.04553000000013],[140.06193000000022,48.44671000000017],[138.5547200000002,46.99965],[138.21971,46.30795],[136.86232,45.14350000000019],[135.5153500000002,43.989],[134.86939000000027,43.39821],[133.53687000000028,42.81147],[132.90627000000015,42.79849],[132.27807000000027,43.28456000000011],[130.93587000000014,42.55274],[130.78,42.22000000000019],[130.64000000000019,42.395],[130.6338664084098,42.90301463477056],[131.144687941615,42.92998973242695],[131.28855512911562,44.111519680348266],[131.02519000000026,44.96796],[131.8834542176596,45.32116160743652],[133.09712000000022,45.14409],[133.7696439963132,46.116926988299156],[134.1123500000002,47.21248000000014],[134.50081,47.578450000000146],[135.0263114767868,48.47822988544391],[133.37359581922803,48.18344167743484],[132.50669000000013,47.78896],[130.98726000000013,47.79013],[130.58229332898267,48.729687404976204],[129.3978178244205,49.440600084015614],[127.65740000000038,49.76027],[127.28745568248493,50.73979726826545],[126.93915652883786,51.3538941514059],[126.56439904185699,51.7842554795327],[125.94634891164647,52.79279857035695],[125.06821129771045,53.161044826868924],[123.57147,53.4588],[122.24574791879307,53.43172597921369],[121.00308475147037,53.25140106873124],[120.1770886577169,52.75388621684121],[120.725789015792,52.51622630473091],[120.7382,51.96411],[120.18208000000018,51.64355],[119.27939,50.58292],[119.28846072802585,50.14288279886196],[117.8792444194265,49.51098338479704],[116.67880089728621,49.888531399121405],[115.48569542853144,49.80517731383475],[114.96210981655038,50.14024730081513],[114.36245649623534,50.248302720737485],[112.89773969935439,49.54356537535699],[111.58123091028668,49.37796824807767],[110.66201053267886,49.13012807880585],[109.40244917199672,49.29296051695769],[108.47516727095127,49.28254771585071],[107.86817589725112,49.79370514586588],[106.88880415245532,50.27429596618029],[105.8865914245869,50.406019192092174],[104.62158,50.275320000000164],[103.67654544476036,50.089966132195144],[102.25589000000011,50.51056000000011],[102.06521,51.25991],[100.88948042196265,51.51685578063842],[99.98173221232356,51.63400625264395],[98.8614905131005,52.04736603454671],[97.82573978067452,51.01099518493325],[98.23176150919173,50.42240062112873],[97.25976000000023,49.72605],[95.81402000000017,49.977460000000114],[94.81594933469879,50.01343333597088],[94.14756635943561,50.48053660745716],[93.10421,50.49529],[92.23471154171969,50.80217072204175],[90.71366743364078,50.331811835321105],[88.80556684769559,49.47052073831247],[87.75126427607685,49.29719798440556],[87.35997033076269,49.21498078062916],[86.82935672398966,49.82667470966813],[85.5412699726825,49.69285858824816],[85.11555952346211,50.11730296487763],[84.41637739455304,50.311399644565824],[83.93511478061893,50.88924551045358],[83.38300377801247,51.069182847693895],[81.94598554883994,50.81219594990633],[80.56844689323546,51.38833649352844],[80.03555952344172,50.864750881547224],[77.80091556184433,53.40441498474754],[76.52517947785478,54.177003485727134],[76.89110029491346,54.49052440044193],[74.38482000000013,53.54685000000011],[73.42567874542053,53.489810289109755],[73.50851606638437,54.035616766976595],[72.22415001820221,54.37665538188679],[71.1801310566095,54.133285224008254],[70.86526655465516,55.169733588270105],[69.06816694527289,55.3852501491435],[68.1691003762589,54.97039175070438],[65.6668700000001,54.601250000000164],[65.17853356309595,54.35422781027208],[61.43660000000013,54.00625],[60.97806644068325,53.66499339457914],[61.699986199800634,52.97999644633427],[60.739993117114544,52.71998647725775],[60.92726850774025,52.447548326215006],[59.96753380721557,51.960420437215674],[61.58800337102414,51.272658799843185],[61.33742435084101,50.79907013610426],[59.93280724471557,50.842194118851836],[59.64228234237057,50.545442206415714],[58.36332000000013,51.06364],[56.77798,51.04355],[55.71694000000011,50.62171000000015],[54.532878452376195,51.02623973245937],[52.32872358583106,51.718652248738096],[50.76664839051219,51.69276235615987],[48.702381626181044,50.60512848571284],[48.577841424357615,49.874759629915644],[47.549480421749394,50.454698391311126],[46.75159630716277,49.35600576435374],[47.0436715024766,49.152038886097586],[46.46644575377629,48.39415233010493],[47.31524000000016,47.71585],[48.05725,47.74377],[48.694733514201886,47.0756281601779],[48.593250000000154,46.561040000000105],[49.101160000000135,46.39933],[48.64541000000011,45.80629],[47.67591,45.64149000000012],[46.68201,44.6092000000001],[47.59094,43.66016000000013],[47.49252,42.98658],[48.58437000000018,41.80888],[47.98728315612604,41.4058192001944],[47.81566572448466,41.151416124021345],[47.373315464066394,41.21973236751114],[46.686070591016716,41.827137152669906],[46.40495079934894,41.860675157227426],[45.7764,42.09244000000024],[45.470279168485916,42.50278066667005],[44.53762291848207,42.711992702803684],[43.93121000000011,42.5549600000001],[43.755990000000196,42.74083],[42.39440000000016,43.2203],[40.92219000000014,43.38215000000014],[40.07696495947985,43.553104153002494],[39.955008579271095,43.434997666999294],[38.68,44.28],[37.53912000000011,44.65721],[36.67546000000013,45.24469],[37.40317,45.4045100000001],[38.23295,46.24087],[37.67372,46.63657],[39.14767,47.04475000000013],[39.12120000000013,47.26336],[38.22353803889948,47.10218984637598],[38.25511233902981,47.54640045835697],[38.77057,47.82562000000024],[39.738277622238996,47.89893707945208],[39.89562000000015,48.23241],[39.67465,48.783820000000134],[40.08078901546949,49.30742991799937],[40.069040000000115,49.60105],[38.59498823421356,49.92646190042373],[38.010631137857075,49.91566152607473],[37.39345950699524,50.38395335550368],[36.626167840325394,50.225590928745135],[35.35611616388812,50.57719737405915],[35.37791,50.77394],[35.02218305841794,51.2075723333715],[34.2248157081544,51.255993150428935],[34.14197838719061,51.566413479206204],[34.39173058445723,51.768881740925906],[33.75269982273588,52.33507457133166],[32.71576053236716,52.23846548116216],[32.41205813978777,52.28869497334977],[32.15944000000022,52.061250000000115],[31.78597,52.10168],[31.54001834486226,52.74205231384644],[31.30520063652798,53.0739958766733],[31.49764,53.16743000000014],[32.304519484188376,53.132726141972846],[32.693643019346126,53.35142080343214],[32.405598585751164,53.618045355842014],[31.731272820774592,53.79402944601202],[31.791424187962406,53.974638576872195],[31.384472283663822,54.15705638286238],[30.75753380709878,54.811770941784395],[30.971835971813245,55.081547756564134],[30.87390913262007,55.55097646750351],[29.89629438652244,55.7894632025305],[29.37157189303079,55.67009064393628],[29.22951338066039,55.91834422466641],[28.17670942557794,56.16912995057879],[27.855282016722526,56.75932648378438],[27.770015903440992,57.244258124411196],[27.288184848751655,57.47452830670392],[27.71668582531578,57.79189911562445],[27.420150000000202,58.72457000000014],[28.131699253051863,59.300825100331],[27.98112,59.47537],[29.1177,60.02805000000012],[28.07,60.50352000000015],[30.211107212044652,61.78002777774969],[31.139991082491036,62.357692776124445],[31.51609215671127,62.867687486412905],[30.035872430142803,63.552813625738565],[30.444684686003736,64.20445343693908],[29.544429559047018,64.94867157659056],[30.21765,65.80598],[29.054588657352383,66.94428620062203],[29.977426385220696,67.69829702419275],[28.44594363781877,68.36461294216399],[28.591929559043365,69.0647769232867],[29.39955,69.15692000000018],[31.10108000000011,69.55811],[32.13272000000026,69.90595000000025],[33.77547,69.30142000000012],[36.51396,69.06342],[40.292340000000166,67.9324],[41.059870000000124,67.4571300000001],[41.12595000000019,66.79158000000012],[40.01583,66.26618000000013],[38.38295,65.9995300000001],[33.918710000000175,66.75961],[33.18444,66.63253],[34.81477,65.90015000000014],[34.87857425307877,65.4362128770482],[34.94391000000015,64.41437000000016],[36.23129,64.10945],[37.01273000000012,63.84983000000011],[37.14197000000016,64.33471],[36.539579035089815,64.76446],[37.17604000000014,65.14322000000013],[39.59345,64.52079000000018],[40.43560000000011,64.76446],[39.76260000000016,65.49682],[42.0930900000001,66.47623],[43.01604000000012,66.41858],[43.94975000000014,66.06908],[44.53226,66.75634000000014],[43.69839,67.35245],[44.18795000000014,67.95051],[43.45282,68.57079],[46.25000000000014,68.25],[46.82134000000016,67.68997],[45.55517,67.56652],[45.5620200000001,67.01005000000019],[46.34915000000015,66.6676700000001],[47.894160000000255,66.88455000000016],[48.13876,67.52238],[50.22766000000016,67.99867000000013],[53.71743000000018,68.85738000000012],[54.47171,68.80815],[53.48582000000013,68.20131],[54.72628,68.09702],[55.44268000000014,68.43866],[57.317020000000156,68.46628],[58.80200000000021,68.88082],[59.94142000000019,68.2784400000001],[61.07784000000018,68.94069],[60.03,69.52],[60.55,69.85],[63.50400000000016,69.54739],[64.888115,69.23483500000013],[68.51216000000014,68.09233000000017],[69.18068,68.61563000000012],[68.16444,69.14436],[68.13522,69.35649],[66.93008000000012,69.45461000000012],[67.25976,69.92873],[66.72492000000014,70.70889000000014],[66.69466,71.02897000000024],[68.54006000000011,71.93450000000024],[69.19636000000011,72.84336000000016],[69.94,73.04000000000013],[72.58754,72.7762900000001],[72.79603,72.22006],[71.8481100000001,71.40898],[72.47011,71.09019],[72.79188,70.39114],[72.56470000000022,69.02085],[73.66787,68.4079],[73.2387,67.7404],[71.28000000000011,66.32000000000016],[72.42301000000018,66.17267000000018],[72.82077,66.53267],[73.92099000000016,66.78946000000013],[74.1865100000002,67.28429],[75.052,67.76047000000017],[74.46926000000016,68.32899],[74.93584000000013,68.98918],[73.84236,69.07146],[73.60187000000022,69.62763],[74.3998,70.63175],[73.1011,71.44717000000026],[74.89082000000022,72.12119],[74.65926,72.83227],[75.15801000000019,72.85497000000011],[75.68351,72.30056000000013],[75.28898000000012,71.33556],[76.35911,71.15287000000015],[75.90313000000017,71.87401],[77.57665000000011,72.26717],[79.65202000000014,72.32011],[81.5,71.75],[80.61071000000013,72.58285000000012],[80.51109,73.6482],[82.25,73.85000000000011],[84.65526,73.80591000000018],[86.82230000000024,73.93688],[86.00956,74.45967000000014],[87.16682000000017,75.11643],[88.31571000000011,75.14393],[90.26,75.64],[92.90058,75.77333],[93.23421000000016,76.0472],[95.86000000000016,76.14],[96.67821,75.91548],[98.92254000000023,76.44689],[100.75967000000023,76.43028],[101.03532,76.86189],[101.99084000000013,77.2875400000002],[104.3516000000001,77.69792],[106.06664000000013,77.37389],[104.70500000000024,77.1274],[106.97013000000013,76.97419]]],[[[105.07547,78.30689],[99.43814,77.921],[101.2649,79.23399],[102.08635,79.34641],[102.837815,79.28129],[105.37243,78.71334],[105.07547,78.30689]]],[[[51.13618655783128,80.54728017854093],[49.79368452332071,80.4154277615482],[48.89441124857754,80.3395667589437],[48.754936557821765,80.17546824820084],[47.586119012244154,80.01018117951533],[46.502825962109654,80.24724681265437],[47.07245527526291,80.55942414012945],[44.846958042181114,80.58980988231718],[46.79913862487123,80.77191762971364],[48.318477410684665,80.78400991486996],[48.522806023966695,80.51456899690015],[49.09718956889091,80.75398590770843],[50.03976769389462,80.91888540315182],[51.52293297710369,80.6997256538019],[51.13618655783128,80.54728017854093]]],[[[99.93976,78.88094],[97.75794,78.7562],[94.97259,79.044745],[93.31288,79.4265],[92.5454,80.14379],[91.18107,80.34146],[93.77766,81.0246],[95.940895,81.2504],[97.88385,80.746975],[100.186655,79.780135],[99.93976,78.88094]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Slovakia","sov_a3":"SVK","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Slovakia","adm0_a3":"SVK","geou_dif":0,"geounit":"Slovakia","gu_a3":"SVK","su_dif":0,"subunit":"Slovakia","su_a3":"SVK","brk_diff":0,"name":"Slovakia","name_long":"Slovakia","brk_a3":"SVK","brk_name":"Slovakia","brk_group":null,"abbrev":"Svk.","postal":"SK","formal_en":"Slovak Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Slovak Republic","name_alt":null,"mapcolor7":2,"mapcolor8":4,"mapcolor9":4,"mapcolor13":9,"pop_est":5463046,"gdp_md_est":119500,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"SK","iso_a3":"SVK","iso_n3":"703","un_a3":"703","wb_a2":"SK","wb_a3":"SVK","woe_id":-99,"adm0_a3_is":"SVK","adm0_a3_us":"SVK","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"SVK.geojson"},"geometry":{"type":"Polygon","coordinates":[[[18.853144158613617,49.49622976337764],[18.909574822676316,49.435845852244576],[19.320712517990472,49.571574001659194],[19.825022820726872,49.21712535256923],[20.41583947111985,49.43145335549977],[20.887955356538413,49.32877228453583],[21.607808058364213,49.47010732685409],[22.558137648211755,49.085738023467144],[22.28084191253356,48.82539215758067],[22.08560835133485,48.42226430927179],[21.872236362401736,48.31997081155002],[20.801293979584926,48.623854071642384],[20.473562045989866,48.56285004332181],[20.239054396249347,48.32756724709692],[19.769470656013112,48.202691148463614],[19.661363559658497,48.26661489520866],[19.17436486173989,48.11137889260387],[18.77702477384767,48.081768296900634],[18.696512892336926,47.880953681014404],[17.857132602620027,47.758428860050365],[17.48847293464982,47.86746613218621],[16.979666782304037,48.123497015976305],[16.879982944413,48.47001333270947],[16.960288120194576,48.5969823268506],[17.101984897538898,48.81696889911711],[17.545006951577108,48.80001902932537],[17.88648481616181,48.90347524677371],[17.913511590250465,48.996492824899086],[18.104972771891852,49.04398346617531],[18.170498488037964,49.271514797556435],[18.399993523846177,49.31500051533004],[18.554971144289482,49.49501536721878],[18.853144158613617,49.49622976337764]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Slovenia","sov_a3":"SVN","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Slovenia","adm0_a3":"SVN","geou_dif":0,"geounit":"Slovenia","gu_a3":"SVN","su_dif":0,"subunit":"Slovenia","su_a3":"SVN","brk_diff":0,"name":"Slovenia","name_long":"Slovenia","brk_a3":"SVN","brk_name":"Slovenia","brk_group":null,"abbrev":"Slo.","postal":"SLO","formal_en":"Republic of Slovenia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Slovenia","name_alt":null,"mapcolor7":2,"mapcolor8":3,"mapcolor9":2,"mapcolor13":12,"pop_est":2005692,"gdp_md_est":59340,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"SI","iso_a3":"SVN","iso_n3":"705","un_a3":"705","wb_a2":"SI","wb_a3":"SVN","woe_id":-99,"adm0_a3_is":"SVN","adm0_a3_us":"SVN","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"SVN.geojson"},"geometry":{"type":"Polygon","coordinates":[[[13.806475457421527,46.509306138691215],[14.63247155117483,46.43181732846955],[15.137091912504985,46.65870270444703],[16.011663852612656,46.6836107448117],[16.202298211337364,46.85238597267696],[16.370504998447416,46.8413272161665],[16.564808383864857,46.50375092221983],[15.768732944408551,46.23810822202345],[15.671529575267556,45.83415355079788],[15.323953891672403,45.73178253842768],[15.327674594797427,45.45231639259323],[14.935243767972935,45.471695054702685],[14.595109490627804,45.634940904312714],[14.411968214585414,45.46616567644746],[13.715059848697221,45.50032379819237],[13.937630242578306,45.59101593686462],[13.698109978905478,46.01677806251735],[13.806475457421527,46.509306138691215]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Ukraine","sov_a3":"UKR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Ukraine","adm0_a3":"UKR","geou_dif":0,"geounit":"Ukraine","gu_a3":"UKR","su_dif":0,"subunit":"Ukraine","su_a3":"UKR","brk_diff":0,"name":"Ukraine","name_long":"Ukraine","brk_a3":"UKR","brk_name":"Ukraine","brk_group":null,"abbrev":"Ukr.","postal":"UA","formal_en":"Ukraine","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Ukraine","name_alt":null,"mapcolor7":5,"mapcolor8":1,"mapcolor9":6,"mapcolor13":3,"pop_est":45700395,"gdp_md_est":339800,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"UA","iso_a3":"UKR","iso_n3":"804","un_a3":"804","wb_a2":"UA","wb_a3":"UKR","woe_id":-99,"adm0_a3_is":"UKR","adm0_a3_us":"UKR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"UKR.geojson"},"geometry":{"type":"Polygon","coordinates":[[[31.785998162571587,52.101677964885454],[32.15941206231267,52.06126699483322],[32.41205813978763,52.28869497334975],[32.71576053236697,52.23846548116205],[33.7526998227357,52.335074571331695],[34.39173058445701,51.76888174092579],[34.14197838719039,51.56641347920623],[34.22481570815427,51.25599315042895],[35.02218305841788,51.20757233337145],[35.37792361831512,50.77395539001034],[35.35611616388795,50.577197374059054],[36.62616784032534,50.225590928745135],[37.39345950699507,50.38395335550359],[38.010631137856905,49.91566152607463],[38.59498823421342,49.92646190042363],[40.06905846533911,49.6010554062817],[40.08078901546935,49.307429917999286],[39.67466393408753,48.78381846780187],[39.89563235856758,48.23240509703143],[39.738277622238826,47.89893707945198],[38.7705847511412,47.825608222029814],[38.25511233902975,47.546400458356814],[38.22353803889942,47.10218984637588],[37.42513715998999,47.022220567404204],[36.75985477066439,46.698700263040934],[35.82368452326483,46.64596446388707],[34.96234174982388,46.27319651954964],[35.020787794745985,45.65121898048466],[35.51000857925317,45.40999339454619],[36.52999799983016,45.46998973243706],[36.33471276219916,45.113215643893966],[35.23999922052812,44.939996242851606],[33.882511020652885,44.36147858334407],[33.326420932760044,44.56487702084489],[33.54692426934946,45.03477081967489],[32.4541744321055,45.32746613217608],[32.630804477679135,45.519185695978905],[33.58816206231839,45.85156850848024],[33.29856733575471,46.080598456397844],[31.74414025241518,46.333347886737386],[31.675307244602408,46.70624502215554],[30.748748813609097,46.583100084004],[30.377608676888883,46.03241018328567],[29.603289015427432,45.293308010431126],[29.149724969201653,45.46492544207245],[28.679779493939378,45.304030870131704],[28.233553501099042,45.48828318946837],[28.485269402792767,45.5969070501459],[28.659987420371575,45.93998688413164],[28.93371748222162,46.2588304713725],[28.862972446414062,46.43788930926383],[29.072106967899295,46.517677720722496],[29.170653924279886,46.3792623968287],[29.75997195813639,46.34998769793536],[30.02465864433537,46.42393667254503],[29.838210076626297,46.52532583270169],[29.908851759569302,46.67436066343146],[29.559674106573112,46.928582872091326],[29.41513512545274,47.34664520933257],[29.05086795422733,47.51022695575249],[29.12269819511303,47.84909516050646],[28.670891147585163,48.1181485052341],[28.259546746541844,48.15556224221342],[27.522537469195154,48.467119452501116],[26.857823520624805,48.368210761094495],[26.619336785597795,48.22072622333347],[26.19745039236693,48.22088125263035],[25.9459411964024,47.987148749374214],[25.20774336111299,47.89105642352747],[24.866317172960578,47.73752574318831],[24.40205610525038,47.98187775328042],[23.76095828623741,47.985598456405455],[23.142236362406802,48.09634105080695],[22.710531447040495,47.88219391538941],[22.640819939878753,48.15023956968735],[22.08560835133485,48.42226430927179],[22.28084191253356,48.82539215758067],[22.558137648211755,49.085738023467144],[22.776418898212626,49.02739533140962],[22.518450148211603,49.47677358661974],[23.426508416444392,50.30850576435745],[23.922757195743262,50.42488108987875],[24.029985792748903,50.70540660257518],[23.52707075368437,51.57845408793023],[24.00507775238421,51.61744395609446],[24.553106316839518,51.888461005249184],[25.327787713327005,51.91065603291855],[26.337958611768556,51.83228872334793],[27.454066196408434,51.59230337178447],[28.24161502453657,51.57222707783907],[28.61761274589225,51.42771393493484],[28.99283532076353,51.602044379271476],[29.254938185347925,51.368234361366895],[30.157363722460897,51.41613841410147],[30.555117221811457,51.31950348571566],[30.619454380014844,51.822806098022376],[30.927549269338982,52.04235342061438],[31.785998162571587,52.101677964885454]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Sweden","sov_a3":"SWE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Sweden","adm0_a3":"SWE","geou_dif":0,"geounit":"Sweden","gu_a3":"SWE","su_dif":0,"subunit":"Sweden","su_a3":"SWE","brk_diff":0,"name":"Sweden","name_long":"Sweden","brk_a3":"SWE","brk_name":"Sweden","brk_group":null,"abbrev":"Swe.","postal":"S","formal_en":"Kingdom of Sweden","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Sweden","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":2,"mapcolor13":4,"pop_est":9059651,"gdp_md_est":344300,"pop_year":-99,"lastcensus":-99,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"SE","iso_a3":"SWE","iso_n3":"752","un_a3":"752","wb_a2":"SE","wb_a3":"SWE","woe_id":-99,"adm0_a3_is":"SWE","adm0_a3_us":"SWE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"SWE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.183173455501926,65.72374054632017],[21.21351687997722,65.02600535751527],[21.369631381930958,64.41358795842429],[19.77887576669022,63.60955434839504],[17.84777916837521,62.74940013289681],[17.119554884518124,61.34116567651097],[17.83134606290639,60.63658336042741],[18.78772179533209,60.081914374422595],[17.86922488777634,58.9537661810587],[16.829185011470088,58.71982697207339],[16.447709588291474,57.041118069071885],[15.879785597403783,56.10430186626866],[14.666681349352075,56.200885118222175],[14.100721062891465,55.40778107362265],[12.942910597392057,55.36173737245058],[12.625100538797028,56.30708018658197],[11.787942335668674,57.44181712506307],[11.027368605196866,58.85614940045936],[11.468271925511146,59.43239329694604],[12.3003658382749,60.11793284773003],[12.631146681375183,61.293571682370136],[11.992064243221563,61.80036245385656],[11.93056928879423,63.12831757267698],[12.579935336973932,64.06621898055833],[13.571916131248711,64.04911408146971],[13.919905226302204,64.44542064071608],[13.55568973150909,64.78702769638151],[15.108411492583002,66.19386688909547],[16.108712192456778,67.30245555283689],[16.768878614985482,68.01393667263139],[17.729181756265348,68.01055186631628],[17.993868442464333,68.56739126247736],[19.878559604581255,68.40719432237258],[20.025268995857886,69.0651386583127],[20.645592889089528,69.10624726020087],[21.978534783626117,68.6168456081807],[23.53947309743444,67.93600861273525],[23.565879754335583,66.39605093043743],[23.903378533633802,66.00692739527962],[22.183173455501926,65.72374054632017]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Poland","sov_a3":"POL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Poland","adm0_a3":"POL","geou_dif":0,"geounit":"Poland","gu_a3":"POL","su_dif":0,"subunit":"Poland","su_a3":"POL","brk_diff":0,"name":"Poland","name_long":"Poland","brk_a3":"POL","brk_name":"Poland","brk_group":null,"abbrev":"Pol.","postal":"PL","formal_en":"Republic of Poland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Poland","name_alt":null,"mapcolor7":3,"mapcolor8":7,"mapcolor9":1,"mapcolor13":2,"pop_est":38482919,"gdp_md_est":667900,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"PL","iso_a3":"POL","iso_n3":"616","un_a3":"616","wb_a2":"PL","wb_a3":"POL","woe_id":-99,"adm0_a3_is":"POL","adm0_a3_us":"POL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"POL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[15.01699588385867,51.10667409932158],[14.607098422919535,51.745188096719964],[14.685026482815688,52.0899474147552],[14.4375997250022,52.62485016540838],[14.074521111719491,52.98126251892543],[14.353315463934138,53.24817129171297],[14.119686313542587,53.75702912049103],[14.802900424873458,54.05070628520575],[16.36347700365573,54.513158677785725],[17.622831658608675,54.85153595643291],[18.62085859546164,54.68260569927078],[18.696254510175464,54.43871877706929],[19.660640089606403,54.42608388937393],[20.892244500418624,54.31252492941253],[22.731098667092652,54.327536932993326],[23.24398725758951,54.22056671814914],[23.48412763844985,53.91249766704114],[23.527535841575002,53.470121568406555],[23.80493493011778,53.089731350306074],[23.799198846133375,52.69109935160657],[23.199493849386187,52.486977444053664],[23.508002150168693,52.02364655212473],[23.52707075368437,51.57845408793023],[24.029985792748903,50.70540660257518],[23.922757195743262,50.42488108987875],[23.426508416444392,50.30850576435745],[22.518450148211603,49.47677358661974],[22.776418898212626,49.02739533140962],[22.558137648211755,49.085738023467144],[21.607808058364213,49.47010732685409],[20.887955356538413,49.32877228453583],[20.41583947111985,49.43145335549977],[19.825022820726872,49.21712535256923],[19.320712517990472,49.571574001659194],[18.909574822676316,49.435845852244576],[18.853144158613617,49.49622976337764],[18.392913852622172,49.98862864847075],[17.64944502123899,50.049038397819956],[17.55456709155112,50.36214590107641],[16.868769158605655,50.47397370055603],[16.719475945714436,50.21574656839354],[16.176253289462267,50.42260732685791],[16.23862674323857,50.69773265237984],[15.490972120839727,50.78472992614321],[15.01699588385867,51.10667409932158]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Portugal","sov_a3":"PRT","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Portugal","adm0_a3":"PRT","geou_dif":0,"geounit":"Portugal","gu_a3":"PRT","su_dif":1,"subunit":"Portugal","su_a3":"PR1","brk_diff":0,"name":"Portugal","name_long":"Portugal","brk_a3":"PR1","brk_name":"Portugal","brk_group":null,"abbrev":"Port.","postal":"P","formal_en":"Portuguese Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Portugal","name_alt":null,"mapcolor7":1,"mapcolor8":7,"mapcolor9":1,"mapcolor13":4,"pop_est":10707924,"gdp_md_est":208627,"pop_year":-99,"lastcensus":2011,"gdp_year":0,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"PT","iso_a3":"PRT","iso_n3":"620","un_a3":"620","wb_a2":"PT","wb_a3":"PRT","woe_id":-99,"adm0_a3_is":"PRT","adm0_a3_us":"PRT","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"PRT.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-9.034817674180246,41.88057058365967],[-8.67194576662672,42.13468943945496],[-8.263856980817792,42.28046865495034],[-8.013174607769912,41.790886135417125],[-7.422512986673795,41.79207469335983],[-7.251308966490824,41.91834605566505],[-6.668605515967656,41.883386949219584],[-6.389087693700915,41.381815497394655],[-6.851126674822552,41.11108266861753],[-6.864019944679385,40.33087189387483],[-7.026413133156595,40.184524237624245],[-7.066591559263529,39.71189158788277],[-7.498632371439725,39.62957103124181],[-7.098036668313128,39.03007274022378],[-7.374092169616318,38.37305858006492],[-7.029281175148796,38.07576406508977],[-7.166507941099865,37.803894354802225],[-7.537105475281024,37.42890432387623],[-7.453725551778092,37.09778758396607],[-7.855613165711985,36.83826854099627],[-8.382816127953689,36.97888011326246],[-8.898856980820327,36.86880931248078],[-8.746101446965554,37.65134552667661],[-8.839997524439879,38.26624339451761],[-9.287463751655224,38.3584858261586],[-9.526570603869715,38.73742910415491],[-9.446988898140232,39.39206614842837],[-9.048305223008427,39.75509308527877],[-8.977353481471681,40.15930613866581],[-8.768684047877102,40.76063894303019],[-8.79085323733031,41.18433401139126],[-8.99078935386757,41.54345937760364],[-9.034817674180246,41.88057058365967]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Romania","sov_a3":"ROU","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Romania","adm0_a3":"ROU","geou_dif":0,"geounit":"Romania","gu_a3":"ROU","su_dif":0,"subunit":"Romania","su_a3":"ROU","brk_diff":0,"name":"Romania","name_long":"Romania","brk_a3":"ROU","brk_name":"Romania","brk_group":null,"abbrev":"Rom.","postal":"RO","formal_en":"Romania","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Romania","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":3,"mapcolor13":13,"pop_est":22215421,"gdp_md_est":271400,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"RO","iso_a3":"ROU","iso_n3":"642","un_a3":"642","wb_a2":"RO","wb_a3":"ROM","woe_id":-99,"adm0_a3_is":"ROU","adm0_a3_us":"ROU","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"ROU.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.710531447040495,47.88219391538941],[23.142236362406802,48.09634105080695],[23.76095828623741,47.985598456405455],[24.40205610525038,47.98187775328042],[24.866317172960578,47.73752574318831],[25.20774336111299,47.89105642352747],[25.9459411964024,47.987148749374214],[26.19745039236693,48.22088125263035],[26.619336785597795,48.22072622333347],[26.924176059687568,48.123264472030996],[27.233872918412743,47.82677094175638],[27.551166212684848,47.40511709247083],[28.128030226359044,46.810476386088254],[28.160017937947714,46.37156260841722],[28.0544429867754,45.944586086605625],[28.233553501099042,45.48828318946837],[28.679779493939378,45.304030870131704],[29.149724969201653,45.46492544207245],[29.603289015427432,45.293308010431126],[29.626543409958767,45.03539093686239],[29.141611769331835,44.82021027279904],[28.837857700320203,44.913873806328056],[28.558081495891997,43.70746165625813],[27.970107049275075,43.81246816667521],[27.242399529740908,44.175986029632405],[26.065158725699746,43.94349376075126],[25.569271681426926,43.68844472917472],[24.100679152124172,43.74105133724785],[23.33230228037632,43.89701080990471],[22.944832391051847,43.82378530534713],[22.65714969248299,44.23492300066128],[22.4740084164406,44.40922760678177],[22.705725538837356,44.57800283464702],[22.459022251075936,44.7025171982543],[22.14508792490281,44.47842234962059],[21.562022739353605,44.7689472519655],[21.483526238702233,45.18117015235778],[20.874312778413355,45.416375433934235],[20.762174920339987,45.734573065771436],[20.220192498462836,46.127468980486555],[21.02195234547125,46.3160879583519],[21.62651492685387,46.99423777931816],[22.099767693782834,47.6724392767167],[22.710531447040495,47.88219391538941]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Republic of Serbia","sov_a3":"SRB","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Republic of Serbia","adm0_a3":"SRB","geou_dif":0,"geounit":"Republic of Serbia","gu_a3":"SRB","su_dif":0,"subunit":"Republic of Serbia","su_a3":"SRB","brk_diff":0,"name":"Serbia","name_long":"Serbia","brk_a3":"SRB","brk_name":"Serbia","brk_group":null,"abbrev":"Serb.","postal":"RS","formal_en":"Republic of Serbia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Serbia","name_alt":null,"mapcolor7":3,"mapcolor8":3,"mapcolor9":2,"mapcolor13":10,"pop_est":7379339,"gdp_md_est":80340,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"RS","iso_a3":"SRB","iso_n3":"688","un_a3":"688","wb_a2":"YF","wb_a3":"SRB","woe_id":-99,"adm0_a3_is":"SRB","adm0_a3_us":"SRB","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"SRB.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.87431277841341,45.41637543393432],[21.48352623870221,45.18117015235788],[21.562022739353722,44.76894725196564],[22.145087924902896,44.47842234962059],[22.459022251075965,44.70251719825444],[22.70572553883744,44.57800283464701],[22.474008416440654,44.40922760678177],[22.657149692483074,44.234923000661354],[22.410446404721597,44.008063462900054],[22.500156691180223,43.642814439461006],[22.986018507588483,43.2111612005271],[22.60480146657136,42.898518785161116],[22.43659467946139,42.58032115332394],[22.54501183440965,42.46136200618804],[22.38052575042468,42.32025950781508],[21.917080000000112,42.30364],[21.57663598940212,42.24522439706186],[21.54332,42.3202500000001],[21.66292,42.43922],[21.77505,42.6827],[21.63302,42.67717],[21.43866,42.86255],[21.27421,42.90959],[21.143395,43.06868500000012],[20.95651,43.13094],[20.81448,43.27205],[20.63508,43.21671],[20.49679,42.88469],[20.25758,42.81275000000011],[20.3398,42.89852],[19.95857,43.10604],[19.63,43.21377997027054],[19.48389,43.35229],[19.21852,43.52384],[19.454,43.56810000000013],[19.59976,44.03847],[19.11761,44.42307000000011],[19.36803,44.863],[19.00548,44.86023],[19.39047570158459,45.236515611342384],[19.072768995854176,45.52151113543209],[18.82982,45.90888],[19.59604454924164,46.171729844744554],[20.220192498462893,46.12746898048658],[20.762174920339987,45.734573065771485],[20.87431277841341,45.41637543393432]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Turkey","sov_a3":"TUR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Turkey","adm0_a3":"TUR","geou_dif":0,"geounit":"Turkey","gu_a3":"TUR","su_dif":0,"subunit":"Turkey","su_a3":"TUR","brk_diff":0,"name":"Turkey","name_long":"Turkey","brk_a3":"TUR","brk_name":"Turkey","brk_group":null,"abbrev":"Tur.","postal":"TR","formal_en":"Republic of Turkey","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Turkey","name_alt":null,"mapcolor7":6,"mapcolor8":3,"mapcolor9":8,"mapcolor13":4,"pop_est":76805524,"gdp_md_est":902700,"pop_year":-99,"lastcensus":2000,"gdp_year":-99,"economy":"4. Emerging region: MIKT","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"TR","iso_a3":"TUR","iso_n3":"792","un_a3":"792","wb_a2":"TR","wb_a3":"TUR","woe_id":-99,"adm0_a3_is":"TUR","adm0_a3_us":"TUR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Asia","region_un":"Asia","subregion":"Western Asia","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"TUR.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[36.91312706884215,41.335358384764305],[38.34766482926452,40.94858612727572],[39.51260664242025,41.102762763018575],[40.373432651538245,41.01367259374734],[41.554084100110714,41.53565623632761],[42.619548781104555,41.58317271581993],[43.58274580259271,41.09214325618257],[43.7526579119685,40.74020091405882],[43.65643639504096,40.25356395116617],[44.400008579288766,40.00500031184231],[44.793989699082005,39.713002631177034],[44.109225294782355,39.428136298168056],[44.4214026222576,38.28128123631453],[44.22575564960053,37.97158437758935],[44.77269900897775,37.17044464776845],[44.29345177590286,37.00151439060635],[43.94225874204736,37.256227525372935],[42.77912560402186,37.38526357680581],[42.34959109881177,37.22987254490411],[41.21208947120303,37.07435232192173],[40.673259311695716,37.09127635349736],[39.52258019385252,36.71605377862602],[38.69989139176593,36.71292735447233],[38.16772749202416,36.90121043552779],[37.06676110204583,36.62303620050062],[36.739494256341374,36.817520453431115],[36.68538903173183,36.259699205056506],[36.41755008316309,36.0406169703551],[36.14976281102659,35.82153473565367],[35.782084995269855,36.274995429014915],[36.160821567537056,36.650605577128374],[35.55093631362834,36.56544281671134],[34.714553256984374,36.795532131490916],[34.02689497247647,36.21996002862397],[32.5091581560641,36.1075637883892],[31.699595167779567,36.64427521417261],[30.62162479017107,36.677864895162315],[30.39109622571712,36.26298065850698],[29.699975620245567,36.144357408181],[28.73290286633539,36.67683136651644],[27.64118655773737,36.658822129862756],[27.048767937943296,37.65336090753601],[26.318218214633045,38.208133246405396],[26.804700148228733,38.98576019953356],[26.17078535330438,39.463612168936464],[27.280019972449395,40.42001373957831],[28.819977654747216,40.46001129817221],[29.24000369641558,41.21999074967269],[31.145933872204434,41.08762156835706],[32.34797936374579,41.73626414648464],[33.51328291192752,42.018960069337304],[35.16770389175187,42.04022492122544],[36.91312706884215,41.335358384764305]]],[[[27.192376743282406,40.690565700842455],[26.35800906749779,40.15199392349649],[26.04335127127254,40.61775360774317],[26.056942172965336,40.82412344010075],[26.29460208507569,40.93626129817417],[26.604195590936282,41.56211456966102],[26.117041863720825,41.82690460872456],[27.135739373490505,42.14148489030131],[27.996720411905414,42.00735871028777],[28.115524529744444,41.622886054036286],[28.988442824018787,41.29993419042819],[28.80643842948675,41.05496206314854],[27.61901736828412,40.99982330989312],[27.192376743282406,40.690565700842455]]]]}}]}')},"2d7e":function(n,e,t){"use strict";t("8f66")},"81d5":function(n,e,t){"use strict";var r=t("7b0b"),o=t("23cb"),a=t("50c4");n.exports=function(n){var e=r(this),t=a(e.length),i=arguments.length,u=o(i>1?arguments[1]:void 0,t),l=i>2?arguments[2]:void 0,s=void 0===l?t:o(l,t);while(s>u)e[u++]=n;return e}},"8f66":function(n,e,t){},"99af":function(n,e,t){"use strict";var r=t("23e7"),o=t("d039"),a=t("e8b5"),i=t("861d"),u=t("7b0b"),l=t("50c4"),s=t("8418"),_=t("65f0"),c=t("1dde"),p=t("b622"),f=t("2d00"),m=p("isConcatSpreadable"),d=9007199254740991,g="Maximum allowed index exceeded",h=f>=51||!o((function(){var n=[];return n[m]=!1,n.concat()[0]!==n})),b=c("concat"),v=function(n){if(!i(n))return!1;var e=n[m];return void 0!==e?!!e:a(n)},y=!h||!b;r({target:"Array",proto:!0,forced:y},{concat:function(n){var e,t,r,o,a,i=u(this),c=_(i,0),p=0;for(e=-1,r=arguments.length;ed)throw TypeError(g);for(t=0;t=d)throw TypeError(g);s(c,p++,a)}return c.length=p,c}})},a434:function(n,e,t){"use strict";var r=t("23e7"),o=t("23cb"),a=t("a691"),i=t("50c4"),u=t("7b0b"),l=t("65f0"),s=t("8418"),_=t("1dde"),c=_("splice"),p=Math.max,f=Math.min,m=9007199254740991,d="Maximum allowed length exceeded";r({target:"Array",proto:!0,forced:!c},{splice:function(n,e){var t,r,_,c,g,h,b=u(this),v=i(b.length),y=o(n,v),w=arguments.length;if(0===w?t=r=0:1===w?(t=0,r=v-y):(t=w-2,r=f(p(a(e),0),v-y)),v+t-r>m)throw TypeError(d);for(_=l(b,r),c=0;cv-r+t;c--)delete b[c-1]}else if(t>r)for(c=v-r;c>y;c--)g=c+r-1,h=c+t-1,g in b?b[h]=b[g]:delete b[h];for(c=0;cn.length)&&(e=n.length);for(var t=0,r=new Array(e);t{}};function b(){for(var n,e=0,t=arguments.length,r={};e=0&&(t=n.slice(r+1),n=n.slice(0,r)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))}function w(n,e){for(var t,r=0,o=n.length;r0)for(var t,r,o=new Array(t),a=0;a=w&&(w=y+1);while(!(v=g[w])&&++w=0;)(r=o[a])&&(i&&4^r.compareDocumentPosition(i)&&i.parentNode.insertBefore(r,i),i=r);return this},en=function(n){function e(e,t){return e&&t?n(e.__data__,t.__data__):!e-!t}n||(n=tn);for(var t=this._groups,r=t.length,o=new Array(r),a=0;ae?1:n>=e?0:NaN}var rn=function(){var n=arguments[0];return arguments[0]=this,n.apply(null,arguments),this},on=function(){return Array.from(this)},an=function(){for(var n=this._groups,e=0,t=n.length;e=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),cn.hasOwnProperty(e)?{space:cn[e],local:n}:n};function fn(n){return function(){this.removeAttribute(n)}}function mn(n){return function(){this.removeAttributeNS(n.space,n.local)}}function dn(n,e){return function(){this.setAttribute(n,e)}}function gn(n,e){return function(){this.setAttributeNS(n.space,n.local,e)}}function hn(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttribute(n):this.setAttribute(n,t)}}function bn(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,t)}}var vn=function(n,e){var t=pn(n);if(arguments.length<2){var r=this.node();return t.local?r.getAttributeNS(t.space,t.local):r.getAttribute(t)}return this.each((null==e?t.local?mn:fn:"function"===typeof e?t.local?bn:hn:t.local?gn:dn)(t,e))},yn=function(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView};function wn(n){return function(){this.style.removeProperty(n)}}function kn(n,e,t){return function(){this.style.setProperty(n,e,t)}}function En(n,e,t){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,t)}}var Sn=function(n,e,t){return arguments.length>1?this.each((null==e?wn:"function"===typeof e?En:kn)(n,e,null==t?"":t)):An(this.node(),n)};function An(n,e){return n.style.getPropertyValue(e)||yn(n).getComputedStyle(n,null).getPropertyValue(e)}function Rn(n){return function(){delete this[n]}}function xn(n,e){return function(){this[n]=e}}function Mn(n,e){return function(){var t=e.apply(this,arguments);null==t?delete this[n]:this[n]=t}}var Nn=function(n,e){return arguments.length>1?this.each((null==e?Rn:"function"===typeof e?Mn:xn)(n,e)):this.node()[n]};function Ln(n){return n.trim().split(/^|\s+/)}function Cn(n){return n.classList||new On(n)}function On(n){this._node=n,this._names=Ln(n.getAttribute("class")||"")}function Dn(n,e){var t=Cn(n),r=-1,o=e.length;while(++r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Tn=function(n,e){var t=Ln(n+"");if(arguments.length<2){var r=Cn(this.node()),o=-1,a=t.length;while(++o=0&&(e=n.slice(t+1),n=n.slice(0,t)),{type:n,name:e}}))}function ce(n){return function(){var e=this.__on;if(e){for(var t,r=0,o=-1,a=e.length;r>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===t?Xe(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===t?Xe(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Be.exec(n))?new We(e[1],e[2],e[3],1):(e=Ue.exec(n))?new We(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Pe.exec(n))?Xe(e[1],e[2],e[3],e[4]):(e=Ie.exec(n))?Xe(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Te.exec(n))?Qe(e[1],e[2]/100,e[3]/100,1):(e=je.exec(n))?Qe(e[1],e[2]/100,e[3]/100,e[4]):He.hasOwnProperty(n)?ze(He[n]):"transparent"===n?new We(NaN,NaN,NaN,0):null}function ze(n){return new We(n>>16&255,n>>8&255,255&n,1)}function Xe(n,e,t,r){return r<=0&&(n=e=t=NaN),new We(n,e,t,r)}function qe(n){return n instanceof xe||(n=Ve(n)),n?(n=n.rgb(),new We(n.r,n.g,n.b,n.opacity)):new We}function Ye(n,e,t,r){return 1===arguments.length?qe(n):new We(n,e,t,null==r?1:r)}function We(n,e,t,r){this.r=+n,this.g=+e,this.b=+t,this.opacity=+r}function Ze(){return"#"+Je(this.r)+Je(this.g)+Je(this.b)}function $e(){var n=this.opacity;return n=isNaN(n)?1:Math.max(0,Math.min(1,n)),(1===n?"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===n?")":", "+n+")")}function Je(n){return n=Math.max(0,Math.min(255,Math.round(n)||0)),(n<16?"0":"")+n.toString(16)}function Qe(n,e,t,r){return r<=0?n=e=t=NaN:t<=0||t>=1?n=e=NaN:e<=0&&(n=NaN),new tt(n,e,t,r)}function nt(n){if(n instanceof tt)return new tt(n.h,n.s,n.l,n.opacity);if(n instanceof xe||(n=Ve(n)),!n)return new tt;if(n instanceof tt)return n;n=n.rgb();var e=n.r/255,t=n.g/255,r=n.b/255,o=Math.min(e,t,r),a=Math.max(e,t,r),i=NaN,u=a-o,l=(a+o)/2;return u?(i=e===a?(t-r)/u+6*(t0&&l<1?0:i,new tt(i,u,l,n.opacity)}function et(n,e,t,r){return 1===arguments.length?nt(n):new tt(n,e,t,null==r?1:r)}function tt(n,e,t,r){this.h=+n,this.s=+e,this.l=+t,this.opacity=+r}function rt(n,e,t){return 255*(n<60?e+(t-e)*n/60:n<180?t:n<240?e+(t-e)*(240-n)/60:e)}function ot(n,e,t,r,o){var a=n*n,i=a*n;return((1-3*n+3*a-i)*e+(4-6*a+3*i)*t+(1+3*n+3*a-3*i)*r+i*o)/6}Ae(xe,Ve,{copy:function(n){return Object.assign(new this.constructor,this,n)},displayable:function(){return this.rgb().displayable()},hex:Fe,formatHex:Fe,formatHsl:Ge,formatRgb:Ke,toString:Ke}),Ae(We,Ye,Re(xe,{brighter:function(n){return n=null==n?Ne:Math.pow(Ne,n),new We(this.r*n,this.g*n,this.b*n,this.opacity)},darker:function(n){return n=null==n?Me:Math.pow(Me,n),new We(this.r*n,this.g*n,this.b*n,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ze,formatHex:Ze,formatRgb:$e,toString:$e})),Ae(tt,et,Re(xe,{brighter:function(n){return n=null==n?Ne:Math.pow(Ne,n),new tt(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?Me:Math.pow(Me,n),new tt(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=this.h%360+360*(this.h<0),e=isNaN(n)||isNaN(this.s)?0:this.s,t=this.l,r=t+(t<.5?t:1-t)*e,o=2*t-r;return new We(rt(n>=240?n-240:n+120,o,r),rt(n,o,r),rt(n<120?n+240:n-120,o,r),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},formatHsl:function(){var n=this.opacity;return n=isNaN(n)?1:Math.max(0,Math.min(1,n)),(1===n?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===n?")":", "+n+")")}}));var at=function(n){var e=n.length-1;return function(t){var r=t<=0?t=0:t>=1?(t=1,e-1):Math.floor(t*e),o=n[r],a=n[r+1],i=r>0?n[r-1]:2*o-a,u=r()=>n;function lt(n,e){return function(t){return n+t*e}}function st(n,e,t){return n=Math.pow(n,t),e=Math.pow(e,t)-n,t=1/t,function(r){return Math.pow(n+r*e,t)}}function _t(n){return 1===(n=+n)?ct:function(e,t){return t-e?st(e,t,n):ut(isNaN(e)?t:e)}}function ct(n,e){var t=e-n;return t?lt(n,t):ut(isNaN(n)?e:n)}var pt=function n(e){var t=_t(e);function r(n,e){var r=t((n=Ye(n)).r,(e=Ye(e)).r),o=t(n.g,e.g),a=t(n.b,e.b),i=ct(n.opacity,e.opacity);return function(e){return n.r=r(e),n.g=o(e),n.b=a(e),n.opacity=i(e),n+""}}return r.gamma=n,r}(1);function ft(n){return function(e){var t,r,o=e.length,a=new Array(o),i=new Array(o),u=new Array(o);for(t=0;ta&&(o=e.slice(a,o),u[i]?u[i]+=o:u[++i]=o),(t=t[0])===(r=r[0])?u[i]?u[i]+=r:u[++i]=r:(u[++i]=null,l.push({i:i,x:mt(t,r)})),a=gt.lastIndex;return a=0&&e._call.call(null,n),e=e._next;--St}function Tt(){Nt=(Mt=Ct.now())+Lt,St=At=0;try{It()}finally{St=0,Ht(),Nt=0}}function jt(){var n=Ct.now(),e=n-Mt;e>xt&&(Lt-=e,Mt=n)}function Ht(){var n,e,t=vt,r=1/0;while(t)t._call?(r>t._time&&(r=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:vt=e);yt=n,Ft(r)}function Ft(n){if(!St){At&&(At=clearTimeout(At));var e=n-Nt;e>24?(n<1/0&&(At=setTimeout(Tt,n-Ct.now()-Lt)),Rt&&(Rt=clearInterval(Rt))):(Rt||(Mt=Ct.now(),Rt=setInterval(jt,xt)),St=1,Ot(Tt))}}Ut.prototype=Pt.prototype={constructor:Ut,restart:function(n,e,t){if("function"!==typeof n)throw new TypeError("callback is not a function");t=(null==t?Dt():+t)+(null==e?0:+e),this._next||yt===this||(yt?yt._next=this:vt=this,yt=this),this._call=n,this._time=t,Ft()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ft())}};var Gt=function(n,e,t){var r=new Ut;return e=null==e?0:+e,r.restart(t=>{r.stop(),n(t+e)},e,t),r},Kt=E("start","end","cancel","interrupt"),Vt=[],zt=0,Xt=1,qt=2,Yt=3,Wt=4,Zt=5,$t=6,Jt=function(n,e,t,r,o,a){var i=n.__transition;if(i){if(t in i)return}else n.__transition={};tr(n,t,{name:e,index:r,group:o,on:Kt,tween:Vt,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:zt})};function Qt(n,e){var t=er(n,e);if(t.state>zt)throw new Error("too late; already scheduled");return t}function nr(n,e){var t=er(n,e);if(t.state>Yt)throw new Error("too late; already running");return t}function er(n,e){var t=n.__transition;if(!t||!(t=t[e]))throw new Error("transition not found");return t}function tr(n,e,t){var r,o=n.__transition;function a(n){t.state=Xt,t.timer.restart(i,t.delay,t.time),t.delay<=n&&i(n-t.delay)}function i(a){var s,_,c,p;if(t.state!==Xt)return l();for(s in o)if(p=o[s],p.name===t.name){if(p.state===Yt)return Gt(i);p.state===Wt?(p.state=$t,p.timer.stop(),p.on.call("interrupt",n,n.__data__,p.index,p.group),delete o[s]):+sqt&&t.state180?e+=360:e-n>180&&(n+=360),a.push({i:t.push(o(t)+"rotate(",null,r)-2,x:mt(n,e)})):e&&t.push(o(t)+"rotate("+e+r)}function u(n,e,t,a){n!==e?a.push({i:t.push(o(t)+"skewX(",null,r)-2,x:mt(n,e)}):e&&t.push(o(t)+"skewX("+e+r)}function l(n,e,t,r,a,i){if(n!==t||e!==r){var u=a.push(o(a)+"scale(",null,",",null,")");i.push({i:u-4,x:mt(n,t)},{i:u-2,x:mt(e,r)})}else 1===t&&1===r||a.push(o(a)+"scale("+t+","+r+")")}return function(e,t){var r=[],o=[];return e=n(e),t=n(t),a(e.translateX,e.translateY,t.translateX,t.translateY,r,o),i(e.rotate,t.rotate,r,o),u(e.skewX,t.skewX,r,o),l(e.scaleX,e.scaleY,t.scaleX,t.scaleY,r,o),e=t=null,function(n){var e,t=-1,a=o.length;while(++t=0&&(n=n.slice(0,e)),!n||"start"===n}))}function Vr(n,e,t){var r,o,a=Kr(e)?Qt:nr;return function(){var i=a(this,n),u=i.on;u!==r&&(o=(r=u).copy()).on(e,t),i.on=o}}var zr=function(n,e){var t=this._id;return arguments.length<2?er(this.node(),t).on.on(n):this.each(Vr(t,n,e))};function Xr(n){return function(){var e=this.parentNode;for(var t in this.__transition)if(+t!==n)return;e&&e.removeChild(this)}}var qr=function(){return this.on("end.remove",Xr(this._id))},Yr=function(n){var e=this._name,t=this._id;"function"!==typeof n&&(n=A(n));for(var r=this._groups,o=r.length,a=new Array(o),i=0;in;function Oo(n,e){n&&Bo.hasOwnProperty(n.type)&&Bo[n.type](n,e)}var Do={Feature:function(n,e){Oo(n.geometry,e)},FeatureCollection:function(n,e){var t=n.features,r=-1,o=t.length;while(++r0){a=n[--o];while(o>0)if(e=a,t=n[--o],a=e+t,r=t-(a-e),r)break;o>0&&(r<0&&n[o-1]<0||r>0&&n[o-1]>0)&&(t=2*r,e=a+t,t==e-a&&(a=e))}return a}}var jo=1e-6,Ho=1e-12,Fo=Math.PI,Go=Fo/2,Ko=Fo/4,Vo=2*Fo,zo=180/Fo,Xo=Fo/180,qo=Math.abs,Yo=Math.atan,Wo=Math.atan2,Zo=Math.cos,$o=(Math.ceil,Math.exp),Jo=(Math.floor,Math.hypot,Math.log),Qo=(Math.pow,Math.sin),na=Math.sign||function(n){return n>0?1:n<0?-1:0},ea=Math.sqrt,ta=Math.tan;function ra(n){return n>1?0:n<-1?Fo:Math.acos(n)}function oa(n){return n>1?Go:n<-1?-Go:Math.asin(n)}function aa(){}var ia,ua,la,sa,_a=new To,ca=new To,pa={point:aa,lineStart:aa,lineEnd:aa,polygonStart:function(){pa.lineStart=fa,pa.lineEnd=ga},polygonEnd:function(){pa.lineStart=pa.lineEnd=pa.point=aa,_a.add(qo(ca)),ca=new To},result:function(){var n=_a/2;return _a=new To,n}};function fa(){pa.point=ma}function ma(n,e){pa.point=da,ia=la=n,ua=sa=e}function da(n,e){ca.add(sa*n-la*e),la=n,sa=e}function ga(){da(ia,ua)}var ha=pa,ba=1/0,va=ba,ya=-ba,wa=ya,ka={point:Ea,lineStart:aa,lineEnd:aa,polygonStart:aa,polygonEnd:aa,result:function(){var n=[[ba,va],[ya,wa]];return ya=wa=-(va=ba=1/0),n}};function Ea(n,e){nya&&(ya=n),ewa&&(wa=e)}var Sa,Aa,Ra,xa,Ma=ka,Na=0,La=0,Ca=0,Oa=0,Da=0,Ba=0,Ua=0,Pa=0,Ia=0,Ta={point:ja,lineStart:Ha,lineEnd:Ka,polygonStart:function(){Ta.lineStart=Va,Ta.lineEnd=za},polygonEnd:function(){Ta.point=ja,Ta.lineStart=Ha,Ta.lineEnd=Ka},result:function(){var n=Ia?[Ua/Ia,Pa/Ia]:Ba?[Oa/Ba,Da/Ba]:Ca?[Na/Ca,La/Ca]:[NaN,NaN];return Na=La=Ca=Oa=Da=Ba=Ua=Pa=Ia=0,n}};function ja(n,e){Na+=n,La+=e,++Ca}function Ha(){Ta.point=Fa}function Fa(n,e){Ta.point=Ga,ja(Ra=n,xa=e)}function Ga(n,e){var t=n-Ra,r=e-xa,o=ea(t*t+r*r);Oa+=o*(Ra+n)/2,Da+=o*(xa+e)/2,Ba+=o,ja(Ra=n,xa=e)}function Ka(){Ta.point=ja}function Va(){Ta.point=Xa}function za(){qa(Sa,Aa)}function Xa(n,e){Ta.point=qa,ja(Sa=Ra=n,Aa=xa=e)}function qa(n,e){var t=n-Ra,r=e-xa,o=ea(t*t+r*r);Oa+=o*(Ra+n)/2,Da+=o*(xa+e)/2,Ba+=o,o=xa*n-Ra*e,Ua+=o*(Ra+n),Pa+=o*(xa+e),Ia+=3*o,ja(Ra=n,xa=e)}var Ya=Ta;function Wa(n){this._context=n}Wa.prototype={_radius:4.5,pointRadius:function(n){return this._radius=n,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(n,e){switch(this._point){case 0:this._context.moveTo(n,e),this._point=1;break;case 1:this._context.lineTo(n,e);break;default:this._context.moveTo(n+this._radius,e),this._context.arc(n,e,this._radius,0,Vo);break}},result:aa};var Za,$a,Ja,Qa,ni,ei=new To,ti={point:aa,lineStart:function(){ti.point=ri},lineEnd:function(){Za&&oi($a,Ja),ti.point=aa},polygonStart:function(){Za=!0},polygonEnd:function(){Za=null},result:function(){var n=+ei;return ei=new To,n}};function ri(n,e){ti.point=oi,$a=Qa=n,Ja=ni=e}function oi(n,e){Qa-=n,ni-=e,ei.add(ea(Qa*Qa+ni*ni)),Qa=n,ni=e}var ai=ti;function ii(){this._string=[]}function ui(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}ii.prototype={_radius:4.5,_circle:ui(4.5),pointRadius:function(n){return(n=+n)!==this._radius&&(this._radius=n,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(n,e){switch(this._point){case 0:this._string.push("M",n,",",e),this._point=1;break;case 1:this._string.push("L",n,",",e);break;default:null==this._circle&&(this._circle=ui(this._radius)),this._string.push("M",n,",",e,this._circle);break}},result:function(){if(this._string.length){var n=this._string.join("");return this._string=[],n}return null}};var li=function(n,e){var t,r,o=4.5;function a(n){return n&&("function"===typeof o&&r.pointRadius(+o.apply(this,arguments)),Io(n,t(r))),r.result()}return a.area=function(n){return Io(n,t(ha)),ha.result()},a.measure=function(n){return Io(n,t(ai)),ai.result()},a.bounds=function(n){return Io(n,t(Ma)),Ma.result()},a.centroid=function(n){return Io(n,t(Ya)),Ya.result()},a.projection=function(e){return arguments.length?(t=null==e?(n=null,Co):(n=e).stream,a):n},a.context=function(n){return arguments.length?(r=null==n?(e=null,new ii):new Wa(e=n),"function"!==typeof o&&r.pointRadius(o),a):e},a.pointRadius=function(n){return arguments.length?(o="function"===typeof n?n:(r.pointRadius(+n),+n),a):o},a.projection(n).context(e)},si=function(n,e){function t(t,r){return t=n(t,r),e(t[0],t[1])}return n.invert&&e.invert&&(t.invert=function(t,r){return t=e.invert(t,r),t&&n.invert(t[0],t[1])}),t};function _i(n,e){return[qo(n)>Fo?n+Math.round(-n/Vo)*Vo:n,e]}function ci(n,e,t){return(n%=Vo)?e||t?si(fi(n),mi(e,t)):fi(n):e||t?mi(e,t):_i}function pi(n){return function(e,t){return e+=n,[e>Fo?e-Vo:e<-Fo?e+Vo:e,t]}}function fi(n){var e=pi(n);return e.invert=pi(-n),e}function mi(n,e){var t=Zo(n),r=Qo(n),o=Zo(e),a=Qo(e);function i(n,e){var i=Zo(e),u=Zo(n)*i,l=Qo(n)*i,s=Qo(e),_=s*t+u*r;return[Wo(l*o-_*a,u*t-s*r),oa(_*o+l*a)]}return i.invert=function(n,e){var i=Zo(e),u=Zo(n)*i,l=Qo(n)*i,s=Qo(e),_=s*o-l*a;return[Wo(l*o+s*a,u*t+_*r),oa(_*t-u*r)]},i}_i.invert=_i;var di=function(n){function e(e){return e=n(e[0]*Xo,e[1]*Xo),e[0]*=zo,e[1]*=zo,e}return n=ci(n[0]*Xo,n[1]*Xo,n.length>2?n[2]*Xo:0),e.invert=function(e){return e=n.invert(e[0]*Xo,e[1]*Xo),e[0]*=zo,e[1]*=zo,e},e},gi=function(){var n,e=[];return{point:function(e,t,r){n.push([e,t,r])},lineStart:function(){e.push(n=[])},lineEnd:aa,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var t=e;return e=[],n=null,t}}},hi=function(n,e){return qo(n[0]-e[0])=0;--a)o.point((_=s[a])[0],_[1]);else r(p.x,p.p.x,-1,o);p=p.p}p=p.o,s=p.z,f=!f}while(!p.v);o.lineEnd()}}};function yi(n){if(e=n.length){var e,t,r=0,o=n[0];while(++r=0?1:-1,R=A*S,x=R>Fo,M=g*k;if(l.add(Wo(M*A*Qo(R),h*E+M*Zo(R))),i+=x?S+A*Vo:S,x^m>=t^y>=t){var N=Si(ki(f),ki(v));xi(N);var L=Si(a,N);xi(L);var C=(x^S>=0?-1:1)*oa(L[2]);(r>C||r===C&&(N[0]||N[1]))&&(u+=x^S>=0?1:-1)}}return(i<-jo||i0){for(c||(o.polygonStart(),c=!0),o.lineStart(),n=0;n1&&2&l&&p.push(p.pop().concat(p.shift())),i.push(p.filter(Di))}return p}};function Di(n){return n.length>1}function Bi(n,e){return((n=n.x)[0]<0?n[1]-Go-jo:Go-n[1])-((e=e.x)[0]<0?e[1]-Go-jo:Go-e[1])}var Ui=Oi((function(){return!0}),Pi,Ti,[-Fo,-Go]);function Pi(n){var e,t=NaN,r=NaN,o=NaN;return{lineStart:function(){n.lineStart(),e=1},point:function(a,i){var u=a>0?Fo:-Fo,l=qo(a-t);qo(l-Fo)0?Go:-Go),n.point(o,r),n.lineEnd(),n.lineStart(),n.point(u,r),n.point(a,r),e=0):o!==u&&l>=Fo&&(qo(t-o)jo?Yo((Qo(e)*(a=Zo(r))*Qo(t)-Qo(r)*(o=Zo(e))*Qo(n))/(o*a*i)):(e+r)/2}function Ti(n,e,t,r){var o;if(null==n)o=t*Go,r.point(-Fo,o),r.point(0,o),r.point(Fo,o),r.point(Fo,0),r.point(Fo,-o),r.point(0,-o),r.point(-Fo,-o),r.point(-Fo,0),r.point(-Fo,o);else if(qo(n[0]-e[0])>jo){var a=n[0]0?oa)&&(o+=r*Vo));for(var s,_=o;r>0?_>a:_0,o=qo(e)>jo;function a(e,r,o,a){ji(a,n,t,o,e,r)}function i(n,t){return Zo(n)*Zo(t)>e}function u(n){var e,t,a,u,_;return{lineStart:function(){u=a=!1,_=1},point:function(c,p){var f,m=[c,p],d=i(c,p),g=r?d?0:s(c,p):d?s(c+(c<0?Fo:-Fo),p):0;if(!e&&(u=a=d)&&n.lineStart(),d!==a&&(f=l(e,m),(!f||hi(e,f)||hi(m,f))&&(m[2]=1)),d!==a)_=0,d?(n.lineStart(),f=l(m,e),n.point(f[0],f[1])):(f=l(e,m),n.point(f[0],f[1],2),n.lineEnd()),e=f;else if(o&&e&&r^d){var h;g&t||!(h=l(m,e,!0))||(_=0,r?(n.lineStart(),n.point(h[0][0],h[0][1]),n.point(h[1][0],h[1][1]),n.lineEnd()):(n.point(h[1][0],h[1][1]),n.lineEnd(),n.lineStart(),n.point(h[0][0],h[0][1],3)))}!d||e&&hi(e,m)||n.point(m[0],m[1]),e=m,a=d,t=g},lineEnd:function(){a&&n.lineEnd(),e=null},clean:function(){return _|(u&&a)<<1}}}function l(n,t,r){var o=ki(n),a=ki(t),i=[1,0,0],u=Si(o,a),l=Ei(u,u),s=u[0],_=l-s*s;if(!_)return!r&&n;var c=e*l/_,p=-e*s/_,f=Si(i,u),m=Ri(i,c),d=Ri(u,p);Ai(m,d);var g=f,h=Ei(m,g),b=Ei(g,g),v=h*h-b*(Ei(m,m)-1);if(!(v<0)){var y=ea(v),w=Ri(g,(-h-y)/b);if(Ai(w,m),w=wi(w),!r)return w;var k,E=n[0],S=t[0],A=n[1],R=t[1];S0^w[1]<(qo(w[0]-E)Fo^(E<=w[0]&&w[0]<=S)){var L=Ri(g,(-h+y)/b);return Ai(L,m),[w,wi(L)]}}}function s(e,t){var o=r?n:Fo-n,a=0;return e<-o?a|=1:e>o&&(a|=2),t<-o?a|=4:t>o&&(a|=8),a}return Oi(i,u,a,r?[0,-n]:[-Fo,n-Fo])},Gi=function(n,e,t,r,o,a){var i,u=n[0],l=n[1],s=e[0],_=e[1],c=0,p=1,f=s-u,m=_-l;if(i=t-u,f||!(i>0)){if(i/=f,f<0){if(i0){if(i>p)return;i>c&&(c=i)}if(i=o-u,f||!(i<0)){if(i/=f,f<0){if(i>p)return;i>c&&(c=i)}else if(f>0){if(i0)){if(i/=m,m<0){if(i0){if(i>p)return;i>c&&(c=i)}if(i=a-l,m||!(i<0)){if(i/=m,m<0){if(i>p)return;i>c&&(c=i)}else if(m>0){if(i0&&(n[0]=u+c*f,n[1]=l+c*m),p<1&&(e[0]=u+p*f,e[1]=l+p*m),!0}}}}},Ki=1e9,Vi=-Ki;function zi(n,e,t,r){function o(o,a){return n<=o&&o<=t&&e<=a&&a<=r}function a(o,a,u,s){var _=0,c=0;if(null==o||(_=i(o,u))!==(c=i(a,u))||l(o,a)<0^u>0)do{s.point(0===_||3===_?n:t,_>1?r:e)}while((_=(_+u+4)%4)!==c);else s.point(a[0],a[1])}function i(r,o){return qo(r[0]-n)0?0:3:qo(r[0]-t)0?2:1:qo(r[1]-e)0?1:0:o>0?3:2}function u(n,e){return l(n.x,e.x)}function l(n,e){var t=i(n,1),r=i(e,1);return t!==r?t-r:0===t?e[1]-n[1]:1===t?n[0]-e[0]:2===t?n[1]-e[1]:e[0]-n[0]}return function(i){var l,s,_,c,p,f,m,d,g,h,b,v=i,y=gi(),w={point:k,lineStart:R,lineEnd:x,polygonStart:S,polygonEnd:A};function k(n,e){o(n,e)&&v.point(n,e)}function E(){for(var e=0,t=0,o=s.length;tr&&(p-a)*(r-i)>(f-i)*(n-a)&&++e:f<=r&&(p-a)*(r-i)<(f-i)*(n-a)&&--e;return e}function S(){v=y,l=[],s=[],b=!0}function A(){var n=E(),e=b&&n,t=(l=Ci(l)).length;(e||t)&&(i.polygonStart(),e&&(i.lineStart(),a(null,null,1,i),i.lineEnd()),t&&vi(l,u,n,a,i),i.polygonEnd()),v=i,l=s=_=null}function R(){w.point=M,s&&s.push(_=[]),h=!0,g=!1,m=d=NaN}function x(){l&&(M(c,p),f&&g&&y.rejoin(),l.push(y.result())),w.point=k,g&&v.lineEnd()}function M(a,i){var u=o(a,i);if(s&&_.push([a,i]),h)c=a,p=i,f=u,h=!1,u&&(v.lineStart(),v.point(a,i));else if(u&&g)v.point(a,i);else{var l=[m=Math.max(Vi,Math.min(Ki,m)),d=Math.max(Vi,Math.min(Ki,d))],y=[a=Math.max(Vi,Math.min(Ki,a)),i=Math.max(Vi,Math.min(Ki,i))];Gi(l,y,n,e,t,r)?(g||(v.lineStart(),v.point(l[0],l[1])),v.point(y[0],y[1]),u||v.lineEnd(),b=!1):u&&(v.lineStart(),v.point(a,i),b=!1)}m=a,d=i,g=u}return w}}function Xi(n){return function(e){var t=new qi;for(var r in n)t[r]=n[r];return t.stream=e,t}}function qi(){}function Yi(n,e,t){var r=n.clipExtent&&n.clipExtent();return n.scale(150).translate([0,0]),null!=r&&n.clipExtent(null),Io(t,n.stream(Ma)),e(Ma.result()),null!=r&&n.clipExtent(r),n}function Wi(n,e,t){return Yi(n,(function(t){var r=e[1][0]-e[0][0],o=e[1][1]-e[0][1],a=Math.min(r/(t[1][0]-t[0][0]),o/(t[1][1]-t[0][1])),i=+e[0][0]+(r-a*(t[1][0]+t[0][0]))/2,u=+e[0][1]+(o-a*(t[1][1]+t[0][1]))/2;n.scale(150*a).translate([i,u])}),t)}function Zi(n,e,t){return Wi(n,[[0,0],e],t)}function $i(n,e,t){return Yi(n,(function(t){var r=+e,o=r/(t[1][0]-t[0][0]),a=(r-o*(t[1][0]+t[0][0]))/2,i=-o*t[0][1];n.scale(150*o).translate([a,i])}),t)}function Ji(n,e,t){return Yi(n,(function(t){var r=+e,o=r/(t[1][1]-t[0][1]),a=-o*t[0][0],i=(r-o*(t[1][1]+t[0][1]))/2;n.scale(150*o).translate([a,i])}),t)}qi.prototype={constructor:qi,point:function(n,e){this.stream.point(n,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Qi=16,nu=Zo(30*Xo),eu=function(n,e){return+e?ru(n,e):tu(n)};function tu(n){return Xi({point:function(e,t){e=n(e,t),this.stream.point(e[0],e[1])}})}function ru(n,e){function t(r,o,a,i,u,l,s,_,c,p,f,m,d,g){var h=s-r,b=_-o,v=h*h+b*b;if(v>4*e&&d--){var y=i+p,w=u+f,k=l+m,E=ea(y*y+w*w+k*k),S=oa(k/=E),A=qo(qo(k)-1)e||qo((h*N+b*L)/v-.5)>.3||i*p+u*f+l*m2?n[2]%360*Xo:0,N()):[g*zo,h*zo,b*zo]},x.angle=function(n){return arguments.length?(v=n%360*Xo,N()):v*zo},x.reflectX=function(n){return arguments.length?(y=n?-1:1,N()):y<0},x.reflectY=function(n){return arguments.length?(w=n?-1:1,N()):w<0},x.precision=function(n){return arguments.length?(i=eu(u,R=n*n),L()):ea(R)},x.fitExtent=function(n,e){return Wi(x,n,e)},x.fitSize=function(n,e){return Zi(x,n,e)},x.fitWidth=function(n,e){return $i(x,n,e)},x.fitHeight=function(n,e){return Ji(x,n,e)},function(){return e=n.apply(this,arguments),x.invert=e.invert&&M,N()}}function _u(n,e){return[n,Jo(ta((Go+e)/2))]}_u.invert=function(n,e){return[n,2*Yo($o(e))-Go]};var cu=function(){return pu(_u).scale(961/Vo)};function pu(n){var e,t,r,o=lu(n),a=o.center,i=o.scale,u=o.translate,l=o.clipExtent,s=null;function _(){var a=Fo*i(),u=o(di(o.rotate()).invert([0,0]));return l(null==s?[[u[0]-a,u[1]-a],[u[0]+a,u[1]+a]]:n===_u?[[Math.max(u[0]-a,s),e],[Math.min(u[0]+a,t),r]]:[[s,Math.max(u[1]-a,e)],[t,Math.min(u[1]+a,r)]])}return o.scale=function(n){return arguments.length?(i(n),_()):i()},o.translate=function(n){return arguments.length?(u(n),_()):u()},o.center=function(n){return arguments.length?(a(n),_()):a()},o.clipExtent=function(n){return arguments.length?(null==n?s=e=t=r=null:(s=+n[0][0],e=+n[0][1],t=+n[1][0],r=+n[1][1]),_()):null==s?null:[[s,e],[t,r]]},_()}var fu=1e-12;function mu(n){return((n=Math.exp(n))+1/n)/2}function du(n){return((n=Math.exp(n))-1/n)/2}function gu(n){return((n=Math.exp(2*n))-1)/(n+1)}(function n(e,t,r){function o(n,o){var a,i,u=n[0],l=n[1],s=n[2],_=o[0],c=o[1],p=o[2],f=_-u,m=c-l,d=f*f+m*m;if(d1?arguments[1]:void 0,t),u=i>2?arguments[2]:void 0,s=void 0===u?t:o(u,t);while(s>l)e[l++]=n;return e}},"99af":function(n,e,t){"use strict";var r=t("23e7"),o=t("d039"),a=t("e8b5"),i=t("861d"),l=t("7b0b"),u=t("50c4"),s=t("8418"),_=t("65f0"),c=t("1dde"),p=t("b622"),f=t("2d00"),m=p("isConcatSpreadable"),d=9007199254740991,g="Maximum allowed index exceeded",h=f>=51||!o((function(){var n=[];return n[m]=!1,n.concat()[0]!==n})),b=c("concat"),v=function(n){if(!i(n))return!1;var e=n[m];return void 0!==e?!!e:a(n)},y=!h||!b;r({target:"Array",proto:!0,forced:y},{concat:function(n){var e,t,r,o,a,i=l(this),c=_(i,0),p=0;for(e=-1,r=arguments.length;ed)throw TypeError(g);for(t=0;t=d)throw TypeError(g);s(c,p++,a)}return c.length=p,c}})},a434:function(n,e,t){"use strict";var r=t("23e7"),o=t("23cb"),a=t("a691"),i=t("50c4"),l=t("7b0b"),u=t("65f0"),s=t("8418"),_=t("1dde"),c=_("splice"),p=Math.max,f=Math.min,m=9007199254740991,d="Maximum allowed length exceeded";r({target:"Array",proto:!0,forced:!c},{splice:function(n,e){var t,r,_,c,g,h,b=l(this),v=i(b.length),y=o(n,v),w=arguments.length;if(0===w?t=r=0:1===w?(t=0,r=v-y):(t=w-2,r=f(p(a(e),0),v-y)),v+t-r>m)throw TypeError(d);for(_=u(b,r),c=0;cv-r+t;c--)delete b[c-1]}else if(t>r)for(c=v-r;c>y;c--)g=c+r-1,h=c+t-1,g in b?b[h]=b[g]:delete b[h];for(c=0;cn.length)&&(e=n.length);for(var t=0,r=new Array(e);t{}};function y(){for(var n,e=0,t=arguments.length,r={};e=0&&(t=n.slice(r+1),n=n.slice(0,r)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))}function E(n,e){for(var t,r=0,o=n.length;r0)for(var t,r,o=new Array(t),a=0;a=w&&(w=y+1);while(!(v=g[w])&&++w=0;)(r=o[a])&&(i&&4^r.compareDocumentPosition(i)&&i.parentNode.insertBefore(r,i),i=r);return this},rn=function(n){function e(e,t){return e&&t?n(e.__data__,t.__data__):!e-!t}n||(n=on);for(var t=this._groups,r=t.length,o=new Array(r),a=0;ae?1:n>=e?0:NaN}var an=function(){var n=arguments[0];return arguments[0]=this,n.apply(null,arguments),this},ln=function(){return Array.from(this)},un=function(){for(var n=this._groups,e=0,t=n.length;e=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),fn.hasOwnProperty(e)?{space:fn[e],local:n}:n};function dn(n){return function(){this.removeAttribute(n)}}function gn(n){return function(){this.removeAttributeNS(n.space,n.local)}}function hn(n,e){return function(){this.setAttribute(n,e)}}function bn(n,e){return function(){this.setAttributeNS(n.space,n.local,e)}}function vn(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttribute(n):this.setAttribute(n,t)}}function yn(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,t)}}var wn=function(n,e){var t=mn(n);if(arguments.length<2){var r=this.node();return t.local?r.getAttributeNS(t.space,t.local):r.getAttribute(t)}return this.each((null==e?t.local?gn:dn:"function"===typeof e?t.local?yn:vn:t.local?bn:hn)(t,e))},kn=function(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView};function En(n){return function(){this.style.removeProperty(n)}}function Sn(n,e,t){return function(){this.style.setProperty(n,e,t)}}function An(n,e,t){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,t)}}var Rn=function(n,e,t){return arguments.length>1?this.each((null==e?En:"function"===typeof e?An:Sn)(n,e,null==t?"":t)):xn(this.node(),n)};function xn(n,e){return n.style.getPropertyValue(e)||kn(n).getComputedStyle(n,null).getPropertyValue(e)}function Mn(n){return function(){delete this[n]}}function Nn(n,e){return function(){this[n]=e}}function Ln(n,e){return function(){var t=e.apply(this,arguments);null==t?delete this[n]:this[n]=t}}var Cn=function(n,e){return arguments.length>1?this.each((null==e?Mn:"function"===typeof e?Ln:Nn)(n,e)):this.node()[n]};function On(n){return n.trim().split(/^|\s+/)}function Dn(n){return n.classList||new Bn(n)}function Bn(n){this._node=n,this._names=On(n.getAttribute("class")||"")}function Un(n,e){var t=Dn(n),r=-1,o=e.length;while(++r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Hn=function(n,e){var t=On(n+"");if(arguments.length<2){var r=Dn(this.node()),o=-1,a=t.length;while(++o=0&&(e=n.slice(t+1),n=n.slice(0,t)),{type:n,name:e}}))}function fe(n){return function(){var e=this.__on;if(e){for(var t,r=0,o=-1,a=e.length;r>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===t?Ye(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===t?Ye(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Pe.exec(n))?new $e(e[1],e[2],e[3],1):(e=je.exec(n))?new $e(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Ie.exec(n))?Ye(e[1],e[2],e[3],e[4]):(e=Te.exec(n))?Ye(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=He.exec(n))?et(e[1],e[2]/100,e[3]/100,1):(e=Fe.exec(n))?et(e[1],e[2]/100,e[3]/100,e[4]):Ge.hasOwnProperty(n)?qe(Ge[n]):"transparent"===n?new $e(NaN,NaN,NaN,0):null}function qe(n){return new $e(n>>16&255,n>>8&255,255&n,1)}function Ye(n,e,t,r){return r<=0&&(n=e=t=NaN),new $e(n,e,t,r)}function We(n){return n instanceof Ne||(n=Xe(n)),n?(n=n.rgb(),new $e(n.r,n.g,n.b,n.opacity)):new $e}function Ze(n,e,t,r){return 1===arguments.length?We(n):new $e(n,e,t,null==r?1:r)}function $e(n,e,t,r){this.r=+n,this.g=+e,this.b=+t,this.opacity=+r}function Je(){return"#"+nt(this.r)+nt(this.g)+nt(this.b)}function Qe(){var n=this.opacity;return n=isNaN(n)?1:Math.max(0,Math.min(1,n)),(1===n?"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===n?")":", "+n+")")}function nt(n){return n=Math.max(0,Math.min(255,Math.round(n)||0)),(n<16?"0":"")+n.toString(16)}function et(n,e,t,r){return r<=0?n=e=t=NaN:t<=0||t>=1?n=e=NaN:e<=0&&(n=NaN),new ot(n,e,t,r)}function tt(n){if(n instanceof ot)return new ot(n.h,n.s,n.l,n.opacity);if(n instanceof Ne||(n=Xe(n)),!n)return new ot;if(n instanceof ot)return n;n=n.rgb();var e=n.r/255,t=n.g/255,r=n.b/255,o=Math.min(e,t,r),a=Math.max(e,t,r),i=NaN,l=a-o,u=(a+o)/2;return l?(i=e===a?(t-r)/l+6*(t0&&u<1?0:i,new ot(i,l,u,n.opacity)}function rt(n,e,t,r){return 1===arguments.length?tt(n):new ot(n,e,t,null==r?1:r)}function ot(n,e,t,r){this.h=+n,this.s=+e,this.l=+t,this.opacity=+r}function at(n,e,t){return 255*(n<60?e+(t-e)*n/60:n<180?t:n<240?e+(t-e)*(240-n)/60:e)}function it(n,e,t,r,o){var a=n*n,i=a*n;return((1-3*n+3*a-i)*e+(4-6*a+3*i)*t+(1+3*n+3*a-3*i)*r+i*o)/6}xe(Ne,Xe,{copy:function(n){return Object.assign(new this.constructor,this,n)},displayable:function(){return this.rgb().displayable()},hex:Ke,formatHex:Ke,formatHsl:Ve,formatRgb:ze,toString:ze}),xe($e,Ze,Me(Ne,{brighter:function(n){return n=null==n?Ce:Math.pow(Ce,n),new $e(this.r*n,this.g*n,this.b*n,this.opacity)},darker:function(n){return n=null==n?Le:Math.pow(Le,n),new $e(this.r*n,this.g*n,this.b*n,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Je,formatHex:Je,formatRgb:Qe,toString:Qe})),xe(ot,rt,Me(Ne,{brighter:function(n){return n=null==n?Ce:Math.pow(Ce,n),new ot(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?Le:Math.pow(Le,n),new ot(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=this.h%360+360*(this.h<0),e=isNaN(n)||isNaN(this.s)?0:this.s,t=this.l,r=t+(t<.5?t:1-t)*e,o=2*t-r;return new $e(at(n>=240?n-240:n+120,o,r),at(n,o,r),at(n<120?n+240:n-120,o,r),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},formatHsl:function(){var n=this.opacity;return n=isNaN(n)?1:Math.max(0,Math.min(1,n)),(1===n?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===n?")":", "+n+")")}}));var lt=function(n){var e=n.length-1;return function(t){var r=t<=0?t=0:t>=1?(t=1,e-1):Math.floor(t*e),o=n[r],a=n[r+1],i=r>0?n[r-1]:2*o-a,l=r()=>n;function _t(n,e){return function(t){return n+t*e}}function ct(n,e,t){return n=Math.pow(n,t),e=Math.pow(e,t)-n,t=1/t,function(r){return Math.pow(n+r*e,t)}}function pt(n){return 1===(n=+n)?ft:function(e,t){return t-e?ct(e,t,n):st(isNaN(e)?t:e)}}function ft(n,e){var t=e-n;return t?_t(n,t):st(isNaN(n)?e:n)}var mt=function n(e){var t=pt(e);function r(n,e){var r=t((n=Ze(n)).r,(e=Ze(e)).r),o=t(n.g,e.g),a=t(n.b,e.b),i=ft(n.opacity,e.opacity);return function(e){return n.r=r(e),n.g=o(e),n.b=a(e),n.opacity=i(e),n+""}}return r.gamma=n,r}(1);function dt(n){return function(e){var t,r,o=e.length,a=new Array(o),i=new Array(o),l=new Array(o);for(t=0;ta&&(o=e.slice(a,o),l[i]?l[i]+=o:l[++i]=o),(t=t[0])===(r=r[0])?l[i]?l[i]+=r:l[++i]=r:(l[++i]=null,u.push({i:i,x:gt(t,r)})),a=bt.lastIndex;return a=0&&e._call.call(null,n),e=e._next;--Rt}function Ht(){Ct=(Lt=Dt.now())+Ot,Rt=xt=0;try{Tt()}finally{Rt=0,Gt(),Ct=0}}function Ft(){var n=Dt.now(),e=n-Lt;e>Nt&&(Ot-=e,Lt=n)}function Gt(){var n,e,t=wt,r=1/0;while(t)t._call?(r>t._time&&(r=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:wt=e);kt=n,Kt(r)}function Kt(n){if(!Rt){xt&&(xt=clearTimeout(xt));var e=n-Ct;e>24?(n<1/0&&(xt=setTimeout(Ht,n-Dt.now()-Ot)),Mt&&(Mt=clearInterval(Mt))):(Mt||(Lt=Dt.now(),Mt=setInterval(Ft,Nt)),Rt=1,Bt(Ht))}}jt.prototype=It.prototype={constructor:jt,restart:function(n,e,t){if("function"!==typeof n)throw new TypeError("callback is not a function");t=(null==t?Ut():+t)+(null==e?0:+e),this._next||kt===this||(kt?kt._next=this:wt=this,kt=this),this._call=n,this._time=t,Kt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Kt())}};var Vt=function(n,e,t){var r=new jt;return e=null==e?0:+e,r.restart(t=>{r.stop(),n(t+e)},e,t),r},zt=A("start","end","cancel","interrupt"),Xt=[],qt=0,Yt=1,Wt=2,Zt=3,$t=4,Jt=5,Qt=6,nr=function(n,e,t,r,o,a){var i=n.__transition;if(i){if(t in i)return}else n.__transition={};or(n,t,{name:e,index:r,group:o,on:zt,tween:Xt,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:qt})};function er(n,e){var t=rr(n,e);if(t.state>qt)throw new Error("too late; already scheduled");return t}function tr(n,e){var t=rr(n,e);if(t.state>Zt)throw new Error("too late; already running");return t}function rr(n,e){var t=n.__transition;if(!t||!(t=t[e]))throw new Error("transition not found");return t}function or(n,e,t){var r,o=n.__transition;function a(n){t.state=Yt,t.timer.restart(i,t.delay,t.time),t.delay<=n&&i(n-t.delay)}function i(a){var s,_,c,p;if(t.state!==Yt)return u();for(s in o)if(p=o[s],p.name===t.name){if(p.state===Zt)return Vt(i);p.state===$t?(p.state=Qt,p.timer.stop(),p.on.call("interrupt",n,n.__data__,p.index,p.group),delete o[s]):+sWt&&t.state180?e+=360:e-n>180&&(n+=360),a.push({i:t.push(o(t)+"rotate(",null,r)-2,x:gt(n,e)})):e&&t.push(o(t)+"rotate("+e+r)}function l(n,e,t,a){n!==e?a.push({i:t.push(o(t)+"skewX(",null,r)-2,x:gt(n,e)}):e&&t.push(o(t)+"skewX("+e+r)}function u(n,e,t,r,a,i){if(n!==t||e!==r){var l=a.push(o(a)+"scale(",null,",",null,")");i.push({i:l-4,x:gt(n,t)},{i:l-2,x:gt(e,r)})}else 1===t&&1===r||a.push(o(a)+"scale("+t+","+r+")")}return function(e,t){var r=[],o=[];return e=n(e),t=n(t),a(e.translateX,e.translateY,t.translateX,t.translateY,r,o),i(e.rotate,t.rotate,r,o),l(e.skewX,t.skewX,r,o),u(e.scaleX,e.scaleY,t.scaleX,t.scaleY,r,o),e=t=null,function(n){var e,t=-1,a=o.length;while(++t=0&&(n=n.slice(0,e)),!n||"start"===n}))}function Xr(n,e,t){var r,o,a=zr(e)?er:tr;return function(){var i=a(this,n),l=i.on;l!==r&&(o=(r=l).copy()).on(e,t),i.on=o}}var qr=function(n,e){var t=this._id;return arguments.length<2?rr(this.node(),t).on.on(n):this.each(Xr(t,n,e))};function Yr(n){return function(){var e=this.parentNode;for(var t in this.__transition)if(+t!==n)return;e&&e.removeChild(this)}}var Wr=function(){return this.on("end.remove",Yr(this._id))},Zr=function(n){var e=this._name,t=this._id;"function"!==typeof n&&(n=x(n));for(var r=this._groups,o=r.length,a=new Array(o),i=0;in;function Bo(n,e){n&&Po.hasOwnProperty(n.type)&&Po[n.type](n,e)}var Uo={Feature:function(n,e){Bo(n.geometry,e)},FeatureCollection:function(n,e){var t=n.features,r=-1,o=t.length;while(++r0){a=n[--o];while(o>0)if(e=a,t=n[--o],a=e+t,r=t-(a-e),r)break;o>0&&(r<0&&n[o-1]<0||r>0&&n[o-1]>0)&&(t=2*r,e=a+t,t==e-a&&(a=e))}return a}}var Fo=1e-6,Go=1e-12,Ko=Math.PI,Vo=Ko/2,zo=Ko/4,Xo=2*Ko,qo=180/Ko,Yo=Ko/180,Wo=Math.abs,Zo=Math.atan,$o=Math.atan2,Jo=Math.cos,Qo=(Math.ceil,Math.exp),na=(Math.floor,Math.hypot,Math.log),ea=(Math.pow,Math.sin),ta=Math.sign||function(n){return n>0?1:n<0?-1:0},ra=Math.sqrt,oa=Math.tan;function aa(n){return n>1?0:n<-1?Ko:Math.acos(n)}function ia(n){return n>1?Vo:n<-1?-Vo:Math.asin(n)}function la(){}var ua,sa,_a,ca,pa=new Ho,fa=new Ho,ma={point:la,lineStart:la,lineEnd:la,polygonStart:function(){ma.lineStart=da,ma.lineEnd=ba},polygonEnd:function(){ma.lineStart=ma.lineEnd=ma.point=la,pa.add(Wo(fa)),fa=new Ho},result:function(){var n=pa/2;return pa=new Ho,n}};function da(){ma.point=ga}function ga(n,e){ma.point=ha,ua=_a=n,sa=ca=e}function ha(n,e){fa.add(ca*n-_a*e),_a=n,ca=e}function ba(){ha(ua,sa)}var va=ma,ya=1/0,wa=ya,ka=-ya,Ea=ka,Sa={point:Aa,lineStart:la,lineEnd:la,polygonStart:la,polygonEnd:la,result:function(){var n=[[ya,wa],[ka,Ea]];return ka=Ea=-(wa=ya=1/0),n}};function Aa(n,e){nka&&(ka=n),eEa&&(Ea=e)}var Ra,xa,Ma,Na,La=Sa,Ca=0,Oa=0,Da=0,Ba=0,Ua=0,Pa=0,ja=0,Ia=0,Ta=0,Ha={point:Fa,lineStart:Ga,lineEnd:za,polygonStart:function(){Ha.lineStart=Xa,Ha.lineEnd=qa},polygonEnd:function(){Ha.point=Fa,Ha.lineStart=Ga,Ha.lineEnd=za},result:function(){var n=Ta?[ja/Ta,Ia/Ta]:Pa?[Ba/Pa,Ua/Pa]:Da?[Ca/Da,Oa/Da]:[NaN,NaN];return Ca=Oa=Da=Ba=Ua=Pa=ja=Ia=Ta=0,n}};function Fa(n,e){Ca+=n,Oa+=e,++Da}function Ga(){Ha.point=Ka}function Ka(n,e){Ha.point=Va,Fa(Ma=n,Na=e)}function Va(n,e){var t=n-Ma,r=e-Na,o=ra(t*t+r*r);Ba+=o*(Ma+n)/2,Ua+=o*(Na+e)/2,Pa+=o,Fa(Ma=n,Na=e)}function za(){Ha.point=Fa}function Xa(){Ha.point=Ya}function qa(){Wa(Ra,xa)}function Ya(n,e){Ha.point=Wa,Fa(Ra=Ma=n,xa=Na=e)}function Wa(n,e){var t=n-Ma,r=e-Na,o=ra(t*t+r*r);Ba+=o*(Ma+n)/2,Ua+=o*(Na+e)/2,Pa+=o,o=Na*n-Ma*e,ja+=o*(Ma+n),Ia+=o*(Na+e),Ta+=3*o,Fa(Ma=n,Na=e)}var Za=Ha;function $a(n){this._context=n}$a.prototype={_radius:4.5,pointRadius:function(n){return this._radius=n,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(n,e){switch(this._point){case 0:this._context.moveTo(n,e),this._point=1;break;case 1:this._context.lineTo(n,e);break;default:this._context.moveTo(n+this._radius,e),this._context.arc(n,e,this._radius,0,Xo);break}},result:la};var Ja,Qa,ni,ei,ti,ri=new Ho,oi={point:la,lineStart:function(){oi.point=ai},lineEnd:function(){Ja&&ii(Qa,ni),oi.point=la},polygonStart:function(){Ja=!0},polygonEnd:function(){Ja=null},result:function(){var n=+ri;return ri=new Ho,n}};function ai(n,e){oi.point=ii,Qa=ei=n,ni=ti=e}function ii(n,e){ei-=n,ti-=e,ri.add(ra(ei*ei+ti*ti)),ei=n,ti=e}var li=oi;function ui(){this._string=[]}function si(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}ui.prototype={_radius:4.5,_circle:si(4.5),pointRadius:function(n){return(n=+n)!==this._radius&&(this._radius=n,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(n,e){switch(this._point){case 0:this._string.push("M",n,",",e),this._point=1;break;case 1:this._string.push("L",n,",",e);break;default:null==this._circle&&(this._circle=si(this._radius)),this._string.push("M",n,",",e,this._circle);break}},result:function(){if(this._string.length){var n=this._string.join("");return this._string=[],n}return null}};var _i=function(n,e){var t,r,o=4.5;function a(n){return n&&("function"===typeof o&&r.pointRadius(+o.apply(this,arguments)),To(n,t(r))),r.result()}return a.area=function(n){return To(n,t(va)),va.result()},a.measure=function(n){return To(n,t(li)),li.result()},a.bounds=function(n){return To(n,t(La)),La.result()},a.centroid=function(n){return To(n,t(Za)),Za.result()},a.projection=function(e){return arguments.length?(t=null==e?(n=null,Do):(n=e).stream,a):n},a.context=function(n){return arguments.length?(r=null==n?(e=null,new ui):new $a(e=n),"function"!==typeof o&&r.pointRadius(o),a):e},a.pointRadius=function(n){return arguments.length?(o="function"===typeof n?n:(r.pointRadius(+n),+n),a):o},a.projection(n).context(e)},ci=function(n,e){function t(t,r){return t=n(t,r),e(t[0],t[1])}return n.invert&&e.invert&&(t.invert=function(t,r){return t=e.invert(t,r),t&&n.invert(t[0],t[1])}),t};function pi(n,e){return[Wo(n)>Ko?n+Math.round(-n/Xo)*Xo:n,e]}function fi(n,e,t){return(n%=Xo)?e||t?ci(di(n),gi(e,t)):di(n):e||t?gi(e,t):pi}function mi(n){return function(e,t){return e+=n,[e>Ko?e-Xo:e<-Ko?e+Xo:e,t]}}function di(n){var e=mi(n);return e.invert=mi(-n),e}function gi(n,e){var t=Jo(n),r=ea(n),o=Jo(e),a=ea(e);function i(n,e){var i=Jo(e),l=Jo(n)*i,u=ea(n)*i,s=ea(e),_=s*t+l*r;return[$o(u*o-_*a,l*t-s*r),ia(_*o+u*a)]}return i.invert=function(n,e){var i=Jo(e),l=Jo(n)*i,u=ea(n)*i,s=ea(e),_=s*o-u*a;return[$o(u*o+s*a,l*t+_*r),ia(_*t-l*r)]},i}pi.invert=pi;var hi=function(n){function e(e){return e=n(e[0]*Yo,e[1]*Yo),e[0]*=qo,e[1]*=qo,e}return n=fi(n[0]*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),e.invert=function(e){return e=n.invert(e[0]*Yo,e[1]*Yo),e[0]*=qo,e[1]*=qo,e},e},bi=function(){var n,e=[];return{point:function(e,t,r){n.push([e,t,r])},lineStart:function(){e.push(n=[])},lineEnd:la,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var t=e;return e=[],n=null,t}}},vi=function(n,e){return Wo(n[0]-e[0])=0;--a)o.point((_=s[a])[0],_[1]);else r(p.x,p.p.x,-1,o);p=p.p}p=p.o,s=p.z,f=!f}while(!p.v);o.lineEnd()}}};function ki(n){if(e=n.length){var e,t,r=0,o=n[0];while(++r=0?1:-1,R=A*S,x=R>Ko,M=g*k;if(u.add($o(M*A*ea(R),h*E+M*Jo(R))),i+=x?S+A*Xo:S,x^m>=t^y>=t){var N=Ri(Si(f),Si(v));Ni(N);var L=Ri(a,N);Ni(L);var C=(x^S>=0?-1:1)*ia(L[2]);(r>C||r===C&&(N[0]||N[1]))&&(l+=x^S>=0?1:-1)}}return(i<-Fo||i0){for(c||(o.polygonStart(),c=!0),o.lineStart(),n=0;n1&&2&u&&p.push(p.pop().concat(p.shift())),i.push(p.filter(Ui))}return p}};function Ui(n){return n.length>1}function Pi(n,e){return((n=n.x)[0]<0?n[1]-Vo-Fo:Vo-n[1])-((e=e.x)[0]<0?e[1]-Vo-Fo:Vo-e[1])}var ji=Bi((function(){return!0}),Ii,Hi,[-Ko,-Vo]);function Ii(n){var e,t=NaN,r=NaN,o=NaN;return{lineStart:function(){n.lineStart(),e=1},point:function(a,i){var l=a>0?Ko:-Ko,u=Wo(a-t);Wo(u-Ko)0?Vo:-Vo),n.point(o,r),n.lineEnd(),n.lineStart(),n.point(l,r),n.point(a,r),e=0):o!==l&&u>=Ko&&(Wo(t-o)Fo?Zo((ea(e)*(a=Jo(r))*ea(t)-ea(r)*(o=Jo(e))*ea(n))/(o*a*i)):(e+r)/2}function Hi(n,e,t,r){var o;if(null==n)o=t*Vo,r.point(-Ko,o),r.point(0,o),r.point(Ko,o),r.point(Ko,0),r.point(Ko,-o),r.point(0,-o),r.point(-Ko,-o),r.point(-Ko,0),r.point(-Ko,o);else if(Wo(n[0]-e[0])>Fo){var a=n[0]0?oa)&&(o+=r*Xo));for(var s,_=o;r>0?_>a:_0,o=Wo(e)>Fo;function a(e,r,o,a){Fi(a,n,t,o,e,r)}function i(n,t){return Jo(n)*Jo(t)>e}function l(n){var e,t,a,l,_;return{lineStart:function(){l=a=!1,_=1},point:function(c,p){var f,m=[c,p],d=i(c,p),g=r?d?0:s(c,p):d?s(c+(c<0?Ko:-Ko),p):0;if(!e&&(l=a=d)&&n.lineStart(),d!==a&&(f=u(e,m),(!f||vi(e,f)||vi(m,f))&&(m[2]=1)),d!==a)_=0,d?(n.lineStart(),f=u(m,e),n.point(f[0],f[1])):(f=u(e,m),n.point(f[0],f[1],2),n.lineEnd()),e=f;else if(o&&e&&r^d){var h;g&t||!(h=u(m,e,!0))||(_=0,r?(n.lineStart(),n.point(h[0][0],h[0][1]),n.point(h[1][0],h[1][1]),n.lineEnd()):(n.point(h[1][0],h[1][1]),n.lineEnd(),n.lineStart(),n.point(h[0][0],h[0][1],3)))}!d||e&&vi(e,m)||n.point(m[0],m[1]),e=m,a=d,t=g},lineEnd:function(){a&&n.lineEnd(),e=null},clean:function(){return _|(l&&a)<<1}}}function u(n,t,r){var o=Si(n),a=Si(t),i=[1,0,0],l=Ri(o,a),u=Ai(l,l),s=l[0],_=u-s*s;if(!_)return!r&&n;var c=e*u/_,p=-e*s/_,f=Ri(i,l),m=Mi(i,c),d=Mi(l,p);xi(m,d);var g=f,h=Ai(m,g),b=Ai(g,g),v=h*h-b*(Ai(m,m)-1);if(!(v<0)){var y=ra(v),w=Mi(g,(-h-y)/b);if(xi(w,m),w=Ei(w),!r)return w;var k,E=n[0],S=t[0],A=n[1],R=t[1];S0^w[1]<(Wo(w[0]-E)Ko^(E<=w[0]&&w[0]<=S)){var L=Mi(g,(-h+y)/b);return xi(L,m),[w,Ei(L)]}}}function s(e,t){var o=r?n:Ko-n,a=0;return e<-o?a|=1:e>o&&(a|=2),t<-o?a|=4:t>o&&(a|=8),a}return Bi(i,l,a,r?[0,-n]:[-Ko,n-Ko])},Vi=function(n,e,t,r,o,a){var i,l=n[0],u=n[1],s=e[0],_=e[1],c=0,p=1,f=s-l,m=_-u;if(i=t-l,f||!(i>0)){if(i/=f,f<0){if(i0){if(i>p)return;i>c&&(c=i)}if(i=o-l,f||!(i<0)){if(i/=f,f<0){if(i>p)return;i>c&&(c=i)}else if(f>0){if(i0)){if(i/=m,m<0){if(i0){if(i>p)return;i>c&&(c=i)}if(i=a-u,m||!(i<0)){if(i/=m,m<0){if(i>p)return;i>c&&(c=i)}else if(m>0){if(i0&&(n[0]=l+c*f,n[1]=u+c*m),p<1&&(e[0]=l+p*f,e[1]=u+p*m),!0}}}}},zi=1e9,Xi=-zi;function qi(n,e,t,r){function o(o,a){return n<=o&&o<=t&&e<=a&&a<=r}function a(o,a,l,s){var _=0,c=0;if(null==o||(_=i(o,l))!==(c=i(a,l))||u(o,a)<0^l>0)do{s.point(0===_||3===_?n:t,_>1?r:e)}while((_=(_+l+4)%4)!==c);else s.point(a[0],a[1])}function i(r,o){return Wo(r[0]-n)0?0:3:Wo(r[0]-t)0?2:1:Wo(r[1]-e)0?1:0:o>0?3:2}function l(n,e){return u(n.x,e.x)}function u(n,e){var t=i(n,1),r=i(e,1);return t!==r?t-r:0===t?e[1]-n[1]:1===t?n[0]-e[0]:2===t?n[1]-e[1]:e[0]-n[0]}return function(i){var u,s,_,c,p,f,m,d,g,h,b,v=i,y=bi(),w={point:k,lineStart:R,lineEnd:x,polygonStart:S,polygonEnd:A};function k(n,e){o(n,e)&&v.point(n,e)}function E(){for(var e=0,t=0,o=s.length;tr&&(p-a)*(r-i)>(f-i)*(n-a)&&++e:f<=r&&(p-a)*(r-i)<(f-i)*(n-a)&&--e;return e}function S(){v=y,u=[],s=[],b=!0}function A(){var n=E(),e=b&&n,t=(u=Di(u)).length;(e||t)&&(i.polygonStart(),e&&(i.lineStart(),a(null,null,1,i),i.lineEnd()),t&&wi(u,l,n,a,i),i.polygonEnd()),v=i,u=s=_=null}function R(){w.point=M,s&&s.push(_=[]),h=!0,g=!1,m=d=NaN}function x(){u&&(M(c,p),f&&g&&y.rejoin(),u.push(y.result())),w.point=k,g&&v.lineEnd()}function M(a,i){var l=o(a,i);if(s&&_.push([a,i]),h)c=a,p=i,f=l,h=!1,l&&(v.lineStart(),v.point(a,i));else if(l&&g)v.point(a,i);else{var u=[m=Math.max(Xi,Math.min(zi,m)),d=Math.max(Xi,Math.min(zi,d))],y=[a=Math.max(Xi,Math.min(zi,a)),i=Math.max(Xi,Math.min(zi,i))];Vi(u,y,n,e,t,r)?(g||(v.lineStart(),v.point(u[0],u[1])),v.point(y[0],y[1]),l||v.lineEnd(),b=!1):l&&(v.lineStart(),v.point(a,i),b=!1)}m=a,d=i,g=l}return w}}function Yi(n){return function(e){var t=new Wi;for(var r in n)t[r]=n[r];return t.stream=e,t}}function Wi(){}function Zi(n,e,t){var r=n.clipExtent&&n.clipExtent();return n.scale(150).translate([0,0]),null!=r&&n.clipExtent(null),To(t,n.stream(La)),e(La.result()),null!=r&&n.clipExtent(r),n}function $i(n,e,t){return Zi(n,(function(t){var r=e[1][0]-e[0][0],o=e[1][1]-e[0][1],a=Math.min(r/(t[1][0]-t[0][0]),o/(t[1][1]-t[0][1])),i=+e[0][0]+(r-a*(t[1][0]+t[0][0]))/2,l=+e[0][1]+(o-a*(t[1][1]+t[0][1]))/2;n.scale(150*a).translate([i,l])}),t)}function Ji(n,e,t){return $i(n,[[0,0],e],t)}function Qi(n,e,t){return Zi(n,(function(t){var r=+e,o=r/(t[1][0]-t[0][0]),a=(r-o*(t[1][0]+t[0][0]))/2,i=-o*t[0][1];n.scale(150*o).translate([a,i])}),t)}function nl(n,e,t){return Zi(n,(function(t){var r=+e,o=r/(t[1][1]-t[0][1]),a=-o*t[0][0],i=(r-o*(t[1][1]+t[0][1]))/2;n.scale(150*o).translate([a,i])}),t)}Wi.prototype={constructor:Wi,point:function(n,e){this.stream.point(n,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var el=16,tl=Jo(30*Yo),rl=function(n,e){return+e?al(n,e):ol(n)};function ol(n){return Yi({point:function(e,t){e=n(e,t),this.stream.point(e[0],e[1])}})}function al(n,e){function t(r,o,a,i,l,u,s,_,c,p,f,m,d,g){var h=s-r,b=_-o,v=h*h+b*b;if(v>4*e&&d--){var y=i+p,w=l+f,k=u+m,E=ra(y*y+w*w+k*k),S=ia(k/=E),A=Wo(Wo(k)-1)e||Wo((h*N+b*L)/v-.5)>.3||i*p+l*f+u*m2?n[2]%360*Yo:0,N()):[g*qo,h*qo,b*qo]},x.angle=function(n){return arguments.length?(v=n%360*Yo,N()):v*qo},x.reflectX=function(n){return arguments.length?(y=n?-1:1,N()):y<0},x.reflectY=function(n){return arguments.length?(w=n?-1:1,N()):w<0},x.precision=function(n){return arguments.length?(i=rl(l,R=n*n),L()):ra(R)},x.fitExtent=function(n,e){return $i(x,n,e)},x.fitSize=function(n,e){return Ji(x,n,e)},x.fitWidth=function(n,e){return Qi(x,n,e)},x.fitHeight=function(n,e){return nl(x,n,e)},function(){return e=n.apply(this,arguments),x.invert=e.invert&&M,N()}}function pl(n,e){return[n,na(oa((Vo+e)/2))]}pl.invert=function(n,e){return[n,2*Zo(Qo(e))-Vo]};var fl=function(){return ml(pl).scale(961/Xo)};function ml(n){var e,t,r,o=_l(n),a=o.center,i=o.scale,l=o.translate,u=o.clipExtent,s=null;function _(){var a=Ko*i(),l=o(hi(o.rotate()).invert([0,0]));return u(null==s?[[l[0]-a,l[1]-a],[l[0]+a,l[1]+a]]:n===pl?[[Math.max(l[0]-a,s),e],[Math.min(l[0]+a,t),r]]:[[s,Math.max(l[1]-a,e)],[t,Math.min(l[1]+a,r)]])}return o.scale=function(n){return arguments.length?(i(n),_()):i()},o.translate=function(n){return arguments.length?(l(n),_()):l()},o.center=function(n){return arguments.length?(a(n),_()):a()},o.clipExtent=function(n){return arguments.length?(null==n?s=e=t=r=null:(s=+n[0][0],e=+n[0][1],t=+n[1][0],r=+n[1][1]),_()):null==s?null:[[s,e],[t,r]]},_()}var dl=1e-12;function gl(n){return((n=Math.exp(n))+1/n)/2}function hl(n){return((n=Math.exp(n))-1/n)/2}function bl(n){return((n=Math.exp(2*n))-1)/(n+1)}(function n(e,t,r){function o(n,o){var a,i,l=n[0],u=n[1],s=n[2],_=o[0],c=o[1],p=o[2],f=_-l,m=c-u,d=f*f+m*m;if(d 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MeshMap.vue?vue&type=style&index=0&id=63d3559b&lang=scss\"","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","\n\n\n\n\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"../arrayLikeToArray/_index.mjs\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import arrayLikeToArray from \"../arrayLikeToArray/_index.mjs\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"../arrayWithoutHoles/_index.mjs\";\nimport iterableToArray from \"../iterableToArray/_index.mjs\";\nimport unsupportedIterableToArray from \"../unsupportedIterableToArray/_index.mjs\";\nimport nonIterableSpread from \"../nonIterableSpread/_index.mjs\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move();\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default x => x;\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport default function(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import {Adder} from \"d3-array\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = new Adder(),\n areaRingSum = new Adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum = new Adder();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum = new Adder();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import {Adder} from \"d3-array\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = new Adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum = new Adder();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import {Adder} from \"d3-array\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n var sum = new Adder();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n currentTarget = event.currentTarget,\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n 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]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","import {computed, ref, watch} from 'vue'\nimport useProviders from '@/use/providers'\nimport mapData from '../assets/data/europe.geo.json'\nimport * as d3 from 'd3'\n\n\nconst {locations, originator, target, getLocation} = useProviders()\n\nexport default function useMap(center, statesRef, mapRef) {\n const scale = ref(850)\n const projection = computed(() => {\n return d3.geoMercator().scale(scale.value).center(center)\n })\n const path = ref(d3.geoPath(projection.value))\n const markers = ref([])\n const connections = ref([])\n const _locations = [...locations.value]\n const currentMarker = ref(null)\n const targetLoc = computed(() => {\n if (target.value) {\n return getLocation(target)\n }\n return null\n })\n\n function renderStates() {\n d3.select(statesRef.value)\n .selectAll(\"path\")\n .data(mapData.features)\n .enter()\n .append(\"path\")\n .attr(\"d\", path.value)\n }\n\n function renderProviders() {\n\n let i = _locations.length, d, proj\n\n while (i--) {\n d = _locations[i];\n if (!d.longitude && !d.latitude) {\n // Let's consider this a bad location record\n _locations.splice(i, 1);\n }\n\n proj = projection.value([d.longitude, d.latitude])\n if (proj) {\n d.x = proj[0];\n d.y = proj[1];\n } else {\n _locations.splice(i, 1);\n }\n }\n Array.prototype.pairs = function (func) {\n for (let i = 0; i < this.length - 1; i++) {\n for (let j = i; j < this.length - 1; j++) {\n func([this[i], this[j + 1]]);\n }\n }\n }\n _locations.pairs((pair) => {\n connections.value.push(pair)\n })\n // Pick 10 random connections proportional to number of locations\n connections.value = connections.value\n .sort(() => 0.5 - Math.random())\n .slice(0, Math.ceil((_locations.length % connections.value.length - 1) % 1.2))\n }\n\n function getProviderPoint(provider) {\n if (provider.value) {\n return _locations.find(l => {\n return l.key === provider.value.key\n })\n }\n }\n\n function addMarker(provider) {\n const providerPoint = getProviderPoint(provider)\n\n if (providerPoint) {\n markers.value.push({\n provider: provider.value,\n x: providerPoint.x,\n y: providerPoint.y\n })\n }\n }\n\n function renderConnection(connection) {\n\n let m1 = connection[1],\n m2 = connection[0];\n\n if (!m1 || !m2) {\n return\n }\n\n if (m1.x < m2.x) {\n m1 = connection[0];\n m2 = connection[1];\n }\n\n var dx = m2.x - m1.x,\n dy = m2.y - m1.y,\n dr = Math.sqrt(dx * dx + dy * dy);\n\n return \"M\" + m2.x + \",\" + m2.y + \"A\" + dr + \",\" + dr + \" 0 0,1 \" + m1.x + \",\" + m1.y;\n }\n\n function renderMarkers() {\n markers.value = []\n addMarker(getLocation(originator))\n if (targetLoc.value) {\n addMarker(targetLoc.value)\n }\n }\n\n watch([target], () => renderMarkers())\n\n function markerSet(e, marker, index) {\n if (e) {\n e.preventDefault()\n }\n const m = markers.value[index]\n m.provider = null\n m.current = true\n m.startX = m.x\n m.startY = m.y\n currentMarker.value = m\n document.addEventListener('mousemove', markerDrag)\n document.addEventListener('mouseup', markerStop)\n mapRef.value.addEventListener('mouseleave', markerLeave)\n }\n\n function markerDrag(e) {\n currentMarker.value.provider = targetLoc.value\n let mouse = d3.pointer(e)\n currentMarker.value.x = mouse[0]\n currentMarker.value.y = mouse[1] - 141\n }\n\n function markerLeave() {\n currentMarker.value.x = currentMarker.value.startX;\n currentMarker.value.y = currentMarker.value.startY;\n\n markerStop();\n }\n\n function markerStop() {\n document.removeEventListener('mousemove', markerDrag);\n document.removeEventListener('mouseup', markerStop);\n mapRef.value.removeEventListener('mouseleave', markerLeave);\n\n currentMarker.value.current = false;\n currentMarker.value = null;\n }\n\n\n function render() {\n renderStates()\n renderProviders()\n renderMarkers()\n }\n\n function isOrigin(markerProvider) {\n return markerProvider === getLocation(originator).value\n }\n\n return {\n markers,\n projection: computed(() => projection.value),\n providerConnections: computed(() => connections.value),\n providerPoints: computed(() => _locations),\n render, renderConnection, isOrigin, markerSet\n }\n}\n","import { render } from \"./MeshMap.vue?vue&type=template&id=63d3559b\"\nimport script from \"./MeshMap.vue?vue&type=script&lang=js\"\nexport * from \"./MeshMap.vue?vue&type=script&lang=js\"\n\nimport \"./MeshMap.vue?vue&type=style&index=0&id=63d3559b&lang=scss\"\nscript.render = render\n\nexport default script","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/chunk-vendors.4e02d2c7.js b/dist/js/chunk-vendors.4e02d2c7.js deleted file mode 100644 index 3c4666d..0000000 --- a/dist/js/chunk-vendors.4e02d2c7.js +++ /dev/null @@ -1,17 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-vendors"],{"00ee":function(t,e,n){var r=n("b622"),o=r("toStringTag"),i={};i[o]="z",t.exports="[object z]"===String(i)},"0366":function(t,e,n){var r=n("1c0b");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},"057f":function(t,e,n){var r=n("fc6a"),o=n("241c").f,i={}.toString,c="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return o(t)}catch(e){return c.slice()}};t.exports.f=function(t){return c&&"[object Window]"==i.call(t)?a(t):o(r(t))}},"06cf":function(t,e,n){var r=n("83ab"),o=n("d1e7"),i=n("5c6c"),c=n("fc6a"),a=n("c04e"),s=n("5135"),u=n("0cfb"),l=Object.getOwnPropertyDescriptor;e.f=r?l:function(t,e){if(t=c(t),e=a(e,!0),u)try{return l(t,e)}catch(n){}if(s(t,e))return i(!o.f.call(t,e),t[e])}},"0cb2":function(t,e,n){var r=n("7b0b"),o=Math.floor,i="".replace,c=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,a=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,s,u,l){var f=n+t.length,p=s.length,d=a;return void 0!==u&&(u=r(u),d=c),i.call(l,d,(function(r,i){var c;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,n);case"'":return e.slice(f);case"<":c=u[i.slice(1,-1)];break;default:var a=+i;if(0===a)return r;if(a>p){var l=o(a/10);return 0===l?r:l<=p?void 0===s[l-1]?i.charAt(1):s[l-1]+i.charAt(1):r}c=s[a-1]}return void 0===c?"":c}))}},"0cfb":function(t,e,n){var r=n("83ab"),o=n("d039"),i=n("cc12");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},"0d3b":function(t,e,n){var r=n("d039"),o=n("b622"),i=n("c430"),c=o("iterator");t.exports=!r((function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,n="";return t.pathname="c%20d",e.forEach((function(t,r){e["delete"]("b"),n+=r+t})),i&&!t.toJSON||!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[c]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host}))},"129f":function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},"14c3":function(t,e,n){var r=n("c6b6"),o=n("9263");t.exports=function(t,e){var n=t.exec;if("function"===typeof n){var i=n.call(t,e);if("object"!==typeof i)throw TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},"19aa":function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t}},"1be4":function(t,e,n){var r=n("d066");t.exports=r("document","documentElement")},"1c0b":function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},"1c7e":function(t,e,n){var r=n("b622"),o=r("iterator"),i=!1;try{var c=0,a={next:function(){return{done:!!c++}},return:function(){i=!0}};a[o]=function(){return this},Array.from(a,(function(){throw 2}))}catch(s){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var r={};r[o]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(s){}return n}},"1cdc":function(t,e,n){var r=n("342f");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},"1d80":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"1dde":function(t,e,n){var r=n("d039"),o=n("b622"),i=n("2d00"),c=o("species");t.exports=function(t){return i>=51||!r((function(){var e=[],n=e.constructor={};return n[c]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},2266:function(t,e,n){var r=n("825a"),o=n("e95a"),i=n("50c4"),c=n("0366"),a=n("35a1"),s=n("2a62"),u=function(t,e){this.stopped=t,this.result=e};t.exports=function(t,e,n){var l,f,p,d,h,v,b,m=n&&n.that,g=!(!n||!n.AS_ENTRIES),y=!(!n||!n.IS_ITERATOR),w=!(!n||!n.INTERRUPTED),O=c(e,m,1+g+w),j=function(t){return l&&s(l),new u(!0,t)},x=function(t){return g?(r(t),w?O(t[0],t[1],j):O(t[0],t[1])):w?O(t,j):O(t)};if(y)l=t;else{if(f=a(t),"function"!=typeof f)throw TypeError("Target is not iterable");if(o(f)){for(p=0,d=i(t.length);d>p;p++)if(h=x(t[p]),h&&h instanceof u)return h;return new u(!1)}l=f.call(t)}v=l.next;while(!(b=v.call(l)).done){try{h=x(b.value)}catch(_){throw s(l),_}if("object"==typeof h&&h&&h instanceof u)return h}return new u(!1)}},"23cb":function(t,e,n){var r=n("a691"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},"23e7":function(t,e,n){var r=n("da84"),o=n("06cf").f,i=n("9112"),c=n("6eeb"),a=n("ce4e"),s=n("e893"),u=n("94ca");t.exports=function(t,e){var n,l,f,p,d,h,v=t.target,b=t.global,m=t.stat;if(l=b?r:m?r[v]||a(v,{}):(r[v]||{}).prototype,l)for(f in e){if(d=e[f],t.noTargetGet?(h=o(l,f),p=h&&h.value):p=l[f],n=u(b?f:v+(m?".":"#")+f,t.forced),!n&&void 0!==p){if(typeof d===typeof p)continue;s(d,p)}(t.sham||p&&p.sham)&&i(d,"sham",!0),c(l,f,d,t)}}},"241c":function(t,e,n){var r=n("ca84"),o=n("7839"),i=o.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},"25f0":function(t,e,n){"use strict";var r=n("6eeb"),o=n("825a"),i=n("d039"),c=n("ad6d"),a="toString",s=RegExp.prototype,u=s[a],l=i((function(){return"/a/b"!=u.call({source:"a",flags:"b"})})),f=u.name!=a;(l||f)&&r(RegExp.prototype,a,(function(){var t=o(this),e=String(t.source),n=t.flags,r=String(void 0===n&&t instanceof RegExp&&!("flags"in s)?c.call(t):n);return"/"+e+"/"+r}),{unsafe:!0})},2626:function(t,e,n){"use strict";var r=n("d066"),o=n("9bf2"),i=n("b622"),c=n("83ab"),a=i("species");t.exports=function(t){var e=r(t),n=o.f;c&&e&&!e[a]&&n(e,a,{configurable:!0,get:function(){return this}})}},"2a62":function(t,e,n){var r=n("825a");t.exports=function(t){var e=t["return"];if(void 0!==e)return r(e.call(t)).value}},"2b3d":function(t,e,n){"use strict";n("3ca3");var r,o=n("23e7"),i=n("83ab"),c=n("0d3b"),a=n("da84"),s=n("37e8"),u=n("6eeb"),l=n("19aa"),f=n("5135"),p=n("60da"),d=n("4df4"),h=n("6547").codeAt,v=n("5fb2"),b=n("d44e"),m=n("9861"),g=n("69f3"),y=a.URL,w=m.URLSearchParams,O=m.getState,j=g.set,x=g.getterFor("URL"),_=Math.floor,S=Math.pow,k="Invalid authority",E="Invalid scheme",A="Invalid host",C="Invalid port",P=/[A-Za-z]/,L=/[\d+-.A-Za-z]/,T=/\d/,I=/^(0x|0X)/,R=/^[0-7]+$/,M=/^\d+$/,F=/^[\dA-Fa-f]+$/,N=/[\u0000\t\u000A\u000D #%/:?@[\\]]/,z=/[\u0000\t\u000A\u000D #/:?@[\\]]/,U=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,B=/[\t\u000A\u000D]/g,D=function(t,e){var n,r,o;if("["==e.charAt(0)){if("]"!=e.charAt(e.length-1))return A;if(n=$(e.slice(1,-1)),!n)return A;t.host=n}else if(Z(t)){if(e=v(e),N.test(e))return A;if(n=V(e),null===n)return A;t.host=n}else{if(z.test(e))return A;for(n="",r=d(e),o=0;o4)return t;for(n=[],r=0;r1&&"0"==o.charAt(0)&&(i=I.test(o)?16:8,o=o.slice(8==i?1:2)),""===o)c=0;else{if(!(10==i?M:8==i?R:F).test(o))return t;c=parseInt(o,i)}n.push(c)}for(r=0;r=S(256,5-e))return null}else if(c>255)return null;for(a=n.pop(),r=0;r6)return;r=0;while(p()){if(o=null,r>0){if(!("."==p()&&r<4))return;f++}if(!T.test(p()))return;while(T.test(p())){if(i=parseInt(p(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;f++}s[u]=256*s[u]+o,r++,2!=r&&4!=r||u++}if(4!=r)return;break}if(":"==p()){if(f++,!p())return}else if(p())return;s[u++]=e}else{if(null!==l)return;f++,u++,l=u}}if(null!==l){c=u-l,u=7;while(0!=u&&c>0)a=s[u],s[u--]=s[l+c-1],s[l+--c]=a}else if(8!=u)return;return s},q=function(t){for(var e=null,n=1,r=null,o=0,i=0;i<8;i++)0!==t[i]?(o>n&&(e=r,n=o),r=null,o=0):(null===r&&(r=i),++o);return o>n&&(e=r,n=o),e},H=function(t){var e,n,r,o;if("number"==typeof t){for(e=[],n=0;n<4;n++)e.unshift(t%256),t=_(t/256);return e.join(".")}if("object"==typeof t){for(e="",r=q(t),n=0;n<8;n++)o&&0===t[n]||(o&&(o=!1),r===n?(e+=n?":":"::",o=!0):(e+=t[n].toString(16),n<7&&(e+=":")));return"["+e+"]"}return t},W={},G=p({},W,{" ":1,'"':1,"<":1,">":1,"`":1}),K=p({},G,{"#":1,"?":1,"{":1,"}":1}),Y=p({},K,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),X=function(t,e){var n=h(t,0);return n>32&&n<127&&!f(e,t)?t:encodeURIComponent(t)},J={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Z=function(t){return f(J,t.scheme)},Q=function(t){return""!=t.username||""!=t.password},tt=function(t){return!t.host||t.cannotBeABaseURL||"file"==t.scheme},et=function(t,e){var n;return 2==t.length&&P.test(t.charAt(0))&&(":"==(n=t.charAt(1))||!e&&"|"==n)},nt=function(t){var e;return t.length>1&&et(t.slice(0,2))&&(2==t.length||"/"===(e=t.charAt(2))||"\\"===e||"?"===e||"#"===e)},rt=function(t){var e=t.path,n=e.length;!n||"file"==t.scheme&&1==n&&et(e[0],!0)||e.pop()},ot=function(t){return"."===t||"%2e"===t.toLowerCase()},it=function(t){return t=t.toLowerCase(),".."===t||"%2e."===t||".%2e"===t||"%2e%2e"===t},ct={},at={},st={},ut={},lt={},ft={},pt={},dt={},ht={},vt={},bt={},mt={},gt={},yt={},wt={},Ot={},jt={},xt={},_t={},St={},kt={},Et=function(t,e,n,o){var i,c,a,s,u=n||ct,l=0,p="",h=!1,v=!1,b=!1;n||(t.scheme="",t.username="",t.password="",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,e=e.replace(U,"")),e=e.replace(B,""),i=d(e);while(l<=i.length){switch(c=i[l],u){case ct:if(!c||!P.test(c)){if(n)return E;u=st;continue}p+=c.toLowerCase(),u=at;break;case at:if(c&&(L.test(c)||"+"==c||"-"==c||"."==c))p+=c.toLowerCase();else{if(":"!=c){if(n)return E;p="",u=st,l=0;continue}if(n&&(Z(t)!=f(J,p)||"file"==p&&(Q(t)||null!==t.port)||"file"==t.scheme&&!t.host))return;if(t.scheme=p,n)return void(Z(t)&&J[t.scheme]==t.port&&(t.port=null));p="","file"==t.scheme?u=yt:Z(t)&&o&&o.scheme==t.scheme?u=ut:Z(t)?u=dt:"/"==i[l+1]?(u=lt,l++):(t.cannotBeABaseURL=!0,t.path.push(""),u=_t)}break;case st:if(!o||o.cannotBeABaseURL&&"#"!=c)return E;if(o.cannotBeABaseURL&&"#"==c){t.scheme=o.scheme,t.path=o.path.slice(),t.query=o.query,t.fragment="",t.cannotBeABaseURL=!0,u=kt;break}u="file"==o.scheme?yt:ft;continue;case ut:if("/"!=c||"/"!=i[l+1]){u=ft;continue}u=ht,l++;break;case lt:if("/"==c){u=vt;break}u=xt;continue;case ft:if(t.scheme=o.scheme,c==r)t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.query=o.query;else if("/"==c||"\\"==c&&Z(t))u=pt;else if("?"==c)t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.query="",u=St;else{if("#"!=c){t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.path.pop(),u=xt;continue}t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.query=o.query,t.fragment="",u=kt}break;case pt:if(!Z(t)||"/"!=c&&"\\"!=c){if("/"!=c){t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,u=xt;continue}u=vt}else u=ht;break;case dt:if(u=ht,"/"!=c||"/"!=p.charAt(l+1))continue;l++;break;case ht:if("/"!=c&&"\\"!=c){u=vt;continue}break;case vt:if("@"==c){h&&(p="%40"+p),h=!0,a=d(p);for(var m=0;m65535)return C;t.port=Z(t)&&w===J[t.scheme]?null:w,p=""}if(n)return;u=jt;continue}return C}p+=c;break;case yt:if(t.scheme="file","/"==c||"\\"==c)u=wt;else{if(!o||"file"!=o.scheme){u=xt;continue}if(c==r)t.host=o.host,t.path=o.path.slice(),t.query=o.query;else if("?"==c)t.host=o.host,t.path=o.path.slice(),t.query="",u=St;else{if("#"!=c){nt(i.slice(l).join(""))||(t.host=o.host,t.path=o.path.slice(),rt(t)),u=xt;continue}t.host=o.host,t.path=o.path.slice(),t.query=o.query,t.fragment="",u=kt}}break;case wt:if("/"==c||"\\"==c){u=Ot;break}o&&"file"==o.scheme&&!nt(i.slice(l).join(""))&&(et(o.path[0],!0)?t.path.push(o.path[0]):t.host=o.host),u=xt;continue;case Ot:if(c==r||"/"==c||"\\"==c||"?"==c||"#"==c){if(!n&&et(p))u=xt;else if(""==p){if(t.host="",n)return;u=jt}else{if(s=D(t,p),s)return s;if("localhost"==t.host&&(t.host=""),n)return;p="",u=jt}continue}p+=c;break;case jt:if(Z(t)){if(u=xt,"/"!=c&&"\\"!=c)continue}else if(n||"?"!=c)if(n||"#"!=c){if(c!=r&&(u=xt,"/"!=c))continue}else t.fragment="",u=kt;else t.query="",u=St;break;case xt:if(c==r||"/"==c||"\\"==c&&Z(t)||!n&&("?"==c||"#"==c)){if(it(p)?(rt(t),"/"==c||"\\"==c&&Z(t)||t.path.push("")):ot(p)?"/"==c||"\\"==c&&Z(t)||t.path.push(""):("file"==t.scheme&&!t.path.length&&et(p)&&(t.host&&(t.host=""),p=p.charAt(0)+":"),t.path.push(p)),p="","file"==t.scheme&&(c==r||"?"==c||"#"==c))while(t.path.length>1&&""===t.path[0])t.path.shift();"?"==c?(t.query="",u=St):"#"==c&&(t.fragment="",u=kt)}else p+=X(c,K);break;case _t:"?"==c?(t.query="",u=St):"#"==c?(t.fragment="",u=kt):c!=r&&(t.path[0]+=X(c,W));break;case St:n||"#"!=c?c!=r&&("'"==c&&Z(t)?t.query+="%27":t.query+="#"==c?"%23":X(c,W)):(t.fragment="",u=kt);break;case kt:c!=r&&(t.fragment+=X(c,G));break}l++}},At=function(t){var e,n,r=l(this,At,"URL"),o=arguments.length>1?arguments[1]:void 0,c=String(t),a=j(r,{type:"URL"});if(void 0!==o)if(o instanceof At)e=x(o);else if(n=Et(e={},String(o)),n)throw TypeError(n);if(n=Et(a,c,null,e),n)throw TypeError(n);var s=a.searchParams=new w,u=O(s);u.updateSearchParams(a.query),u.updateURL=function(){a.query=String(s)||null},i||(r.href=Pt.call(r),r.origin=Lt.call(r),r.protocol=Tt.call(r),r.username=It.call(r),r.password=Rt.call(r),r.host=Mt.call(r),r.hostname=Ft.call(r),r.port=Nt.call(r),r.pathname=zt.call(r),r.search=Ut.call(r),r.searchParams=Bt.call(r),r.hash=Dt.call(r))},Ct=At.prototype,Pt=function(){var t=x(this),e=t.scheme,n=t.username,r=t.password,o=t.host,i=t.port,c=t.path,a=t.query,s=t.fragment,u=e+":";return null!==o?(u+="//",Q(t)&&(u+=n+(r?":"+r:"")+"@"),u+=H(o),null!==i&&(u+=":"+i)):"file"==e&&(u+="//"),u+=t.cannotBeABaseURL?c[0]:c.length?"/"+c.join("/"):"",null!==a&&(u+="?"+a),null!==s&&(u+="#"+s),u},Lt=function(){var t=x(this),e=t.scheme,n=t.port;if("blob"==e)try{return new URL(e.path[0]).origin}catch(r){return"null"}return"file"!=e&&Z(t)?e+"://"+H(t.host)+(null!==n?":"+n:""):"null"},Tt=function(){return x(this).scheme+":"},It=function(){return x(this).username},Rt=function(){return x(this).password},Mt=function(){var t=x(this),e=t.host,n=t.port;return null===e?"":null===n?H(e):H(e)+":"+n},Ft=function(){var t=x(this).host;return null===t?"":H(t)},Nt=function(){var t=x(this).port;return null===t?"":String(t)},zt=function(){var t=x(this),e=t.path;return t.cannotBeABaseURL?e[0]:e.length?"/"+e.join("/"):""},Ut=function(){var t=x(this).query;return t?"?"+t:""},Bt=function(){return x(this).searchParams},Dt=function(){var t=x(this).fragment;return t?"#"+t:""},Vt=function(t,e){return{get:t,set:e,configurable:!0,enumerable:!0}};if(i&&s(Ct,{href:Vt(Pt,(function(t){var e=x(this),n=String(t),r=Et(e,n);if(r)throw TypeError(r);O(e.searchParams).updateSearchParams(e.query)})),origin:Vt(Lt),protocol:Vt(Tt,(function(t){var e=x(this);Et(e,String(t)+":",ct)})),username:Vt(It,(function(t){var e=x(this),n=d(String(t));if(!tt(e)){e.username="";for(var r=0;rn)e.push(arguments[n++]);return w[++y]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},r(y),y},v=function(t){delete w[t]},p?r=function(t){b.nextTick(x(t))}:g&&g.now?r=function(t){g.now(x(t))}:m&&!f?(o=new m,i=o.port2,o.port1.onmessage=_,r=s(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts&&d&&"file:"!==d.protocol&&!a(S)?(r=S,c.addEventListener("message",_,!1)):r=O in l("script")?function(t){u.appendChild(l("script"))[O]=function(){u.removeChild(this),j(t)}}:function(t){setTimeout(x(t),0)}),t.exports={set:h,clear:v}},"2d00":function(t,e,n){var r,o,i=n("da84"),c=n("342f"),a=i.process,s=a&&a.versions,u=s&&s.v8;u?(r=u.split("."),o=r[0]+r[1]):c&&(r=c.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=c.match(/Chrome\/(\d+)/),r&&(o=r[1]))),t.exports=o&&+o},"342f":function(t,e,n){var r=n("d066");t.exports=r("navigator","userAgent")||""},"35a1":function(t,e,n){var r=n("f5df"),o=n("3f8c"),i=n("b622"),c=i("iterator");t.exports=function(t){if(void 0!=t)return t[c]||t["@@iterator"]||o[r(t)]}},"37e8":function(t,e,n){var r=n("83ab"),o=n("9bf2"),i=n("825a"),c=n("df75");t.exports=r?Object.defineProperties:function(t,e){i(t);var n,r=c(e),a=r.length,s=0;while(a>s)o.f(t,n=r[s++],e[n]);return t}},"3bbe":function(t,e,n){var r=n("861d");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},"3ca3":function(t,e,n){"use strict";var r=n("6547").charAt,o=n("69f3"),i=n("7dd0"),c="String Iterator",a=o.set,s=o.getterFor(c);i(String,"String",(function(t){a(this,{type:c,string:String(t),index:0})}),(function(){var t,e=s(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},"3f8c":function(t,e){t.exports={}},"428f":function(t,e,n){var r=n("da84");t.exports=r},"44ad":function(t,e,n){var r=n("d039"),o=n("c6b6"),i="".split;t.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},"44d2":function(t,e,n){var r=n("b622"),o=n("7c73"),i=n("9bf2"),c=r("unscopables"),a=Array.prototype;void 0==a[c]&&i.f(a,c,{configurable:!0,value:o(null)}),t.exports=function(t){a[c][t]=!0}},"44de":function(t,e,n){var r=n("da84");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},4840:function(t,e,n){var r=n("825a"),o=n("1c0b"),i=n("b622"),c=i("species");t.exports=function(t,e){var n,i=r(t).constructor;return void 0===i||void 0==(n=r(i)[c])?e:o(n)}},4930:function(t,e,n){var r=n("605d"),o=n("2d00"),i=n("d039");t.exports=!!Object.getOwnPropertySymbols&&!i((function(){return!Symbol.sham&&(r?38===o:o>37&&o<41)}))},"4d64":function(t,e,n){var r=n("fc6a"),o=n("50c4"),i=n("23cb"),c=function(t){return function(e,n,c){var a,s=r(e),u=o(s.length),l=i(c,u);if(t&&n!=n){while(u>l)if(a=s[l++],a!=a)return!0}else for(;u>l;l++)if((t||l in s)&&s[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:c(!0),indexOf:c(!1)}},"4de4":function(t,e,n){"use strict";var r=n("23e7"),o=n("b727").filter,i=n("1dde"),c=i("filter");r({target:"Array",proto:!0,forced:!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(t,e,n){"use strict";var r=n("0366"),o=n("7b0b"),i=n("9bdd"),c=n("e95a"),a=n("50c4"),s=n("8418"),u=n("35a1");t.exports=function(t){var e,n,l,f,p,d,h=o(t),v="function"==typeof this?this:Array,b=arguments.length,m=b>1?arguments[1]:void 0,g=void 0!==m,y=u(h),w=0;if(g&&(m=r(m,b>2?arguments[2]:void 0,2)),void 0==y||v==Array&&c(y))for(e=a(h.length),n=new v(e);e>w;w++)d=g?m(h[w],w):h[w],s(n,w,d);else for(f=y.call(h),p=f.next,n=new v;!(l=p.call(f)).done;w++)d=g?i(f,m,[l.value,w],!0):l.value,s(n,w,d);return n.length=w,n}},"50c4":function(t,e,n){var r=n("a691"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},5135:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},5319:function(t,e,n){"use strict";var r=n("d784"),o=n("825a"),i=n("50c4"),c=n("a691"),a=n("1d80"),s=n("8aa5"),u=n("0cb2"),l=n("14c3"),f=Math.max,p=Math.min,d=function(t){return void 0===t?t:String(t)};r("replace",2,(function(t,e,n,r){var h=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,v=r.REPLACE_KEEPS_$0,b=h?"$":"$0";return[function(n,r){var o=a(this),i=void 0==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,r){if(!h&&v||"string"===typeof r&&-1===r.indexOf(b)){var a=n(e,t,this,r);if(a.done)return a.value}var m=o(t),g=String(this),y="function"===typeof r;y||(r=String(r));var w=m.global;if(w){var O=m.unicode;m.lastIndex=0}var j=[];while(1){var x=l(m,g);if(null===x)break;if(j.push(x),!w)break;var _=String(x[0]);""===_&&(m.lastIndex=s(g,i(m.lastIndex),O))}for(var S="",k=0,E=0;E=k&&(S+=g.slice(k,C)+R,k=C+A.length)}return S+g.slice(k)}]}))},5692:function(t,e,n){var r=n("c430"),o=n("c6cd");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.9.1",mode:r?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},"56ef":function(t,e,n){var r=n("d066"),o=n("241c"),i=n("7418"),c=n("825a");t.exports=r("Reflect","ownKeys")||function(t){var e=o.f(c(t)),n=i.f;return n?e.concat(n(t)):e}},5899:function(t,e){t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},"58a8":function(t,e,n){var r=n("1d80"),o=n("5899"),i="["+o+"]",c=RegExp("^"+i+i+"*"),a=RegExp(i+i+"*$"),s=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(c,"")),2&t&&(n=n.replace(a,"")),n}};t.exports={start:s(1),end:s(2),trim:s(3)}},"5c40":function(t,e,n){"use strict";n.d(e,"a",(function(){return Bt})),n.d(e,"b",(function(){return Be})),n.d(e,"c",(function(){return Yt})),n.d(e,"d",(function(){return d})),n.d(e,"e",(function(){return Yn})),n.d(e,"f",(function(){return Ye})),n.d(e,"g",(function(){return cn})),n.d(e,"h",(function(){return Ae})),n.d(e,"i",(function(){return Ee})),n.d(e,"j",(function(){return on})),n.d(e,"k",(function(){return en})),n.d(e,"l",(function(){return je})),n.d(e,"m",(function(){return we})),n.d(e,"n",(function(){return Tn})),n.d(e,"o",(function(){return Wt})),n.d(e,"p",(function(){return Xn})),n.d(e,"q",(function(){return Jn})),n.d(e,"r",(function(){return pn})),n.d(e,"s",(function(){return Bn})),n.d(e,"t",(function(){return Jt})),n.d(e,"u",(function(){return kt})),n.d(e,"v",(function(){return _t})),n.d(e,"w",(function(){return Zt})),n.d(e,"x",(function(){return xt})),n.d(e,"y",(function(){return Et})),n.d(e,"z",(function(){return St})),n.d(e,"A",(function(){return We})),n.d(e,"B",(function(){return ut})),n.d(e,"C",(function(){return fn})),n.d(e,"D",(function(){return st})),n.d(e,"F",(function(){return Zn})),n.d(e,"G",(function(){return Fe})),n.d(e,"H",(function(){return Vt})),n.d(e,"I",(function(){return Ht})),n.d(e,"K",(function(){return Nt})),n.d(e,"L",(function(){return c})),n.d(e,"M",(function(){return It})),n.d(e,"N",(function(){return Lt})),n.d(e,"O",(function(){return it})),n.d(e,"P",(function(){return le})),n.d(e,"Q",(function(){return lt}));var r=n("a1e9");n.d(e,"E",(function(){return r["l"]}));var o=n("9ff4");n.d(e,"J",(function(){return o["I"]}));const i=[];function c(t,...e){Object(r["h"])();const n=i.length?i[i.length-1].component:null,o=n&&n.appContext.config.warnHandler,c=a();if(o)p(o,n,11,[t+e.join(""),n&&n.proxy,c.map(({vnode:t})=>`at <${Gn(n,t.type)}>`).join("\n"),c]);else{const n=["[Vue warn]: "+t,...e];c.length&&n.push("\n",...s(c)),console.warn(...n)}Object(r["m"])()}function a(){let t=i[i.length-1];if(!t)return[];const e=[];while(t){const n=e[0];n&&n.vnode===t?n.recurseCount++:e.push({vnode:t,recurseCount:0});const r=t.component&&t.component.parent;t=r&&r.vnode}return e}function s(t){const e=[];return t.forEach((t,n)=>{e.push(...0===n?[]:["\n"],...u(t))}),e}function u({vnode:t,recurseCount:e}){const n=e>0?`... (${e} recursive calls)`:"",r=!!t.component&&null==t.component.parent,o=" at <"+Gn(t.component,t.type,r),i=">"+n;return t.props?[o,...l(t.props),i]:[o+i]}function l(t){const e=[],n=Object.keys(t);return n.slice(0,3).forEach(n=>{e.push(...f(n,t[n]))}),n.length>3&&e.push(" ..."),e}function f(t,e,n){return Object(o["A"])(e)?(e=JSON.stringify(e),n?e:[`${t}=${e}`]):"number"===typeof e||"boolean"===typeof e||null==e?n?e:[`${t}=${e}`]:Object(r["g"])(e)?(e=f(t,Object(r["p"])(e.value),!0),n?e:[t+"=Ref<",e,">"]):Object(o["n"])(e)?[`${t}=fn${e.name?`<${e.name}>`:""}`]:(e=Object(r["p"])(e),n?e:[t+"=",e])}function p(t,e,n,r){let o;try{o=r?t(...r):t()}catch(i){h(i,e,n)}return o}function d(t,e,n,r){if(Object(o["n"])(t)){const i=p(t,e,n,r);return i&&Object(o["v"])(i)&&i.catch(t=>{h(t,e,n)}),i}const i=[];for(let o=0;o>>1,o=U(g[t]);o-1?g.splice(e,0,t):g.push(t),T()}}function T(){b||m||(m=!0,E=k.then(B))}function I(t){const e=g.indexOf(t);e>-1&&g.splice(e,1)}function R(t,e,n,r){Object(o["m"])(t)?n.push(...t):e&&e.includes(t,t.allowRecurse?r+1:r)||n.push(t),T()}function M(t){R(t,O,w,j)}function F(t){R(t,_,x,S)}function N(t,e=null){if(w.length){for(A=e,O=[...new Set(w)],w.length=0,j=0;jU(t)-U(e)),S=0;S<_.length;S++)_[S]();_=null,S=0}}const U=t=>null==t.id?1/0:t.id;function B(t){m=!1,b=!0,N(t),g.sort((t,e)=>U(t)-U(e));try{for(y=0;yt.trim()):e&&(i=n.map(o["K"]))}let s=Object(o["J"])(Object(o["e"])(e)),u=r[s];!u&&c&&(s=Object(o["J"])(Object(o["k"])(e)),u=r[s]),u&&d(u,t,6,i);const l=r[s+"Once"];if(l){if(t.emitted){if(t.emitted[s])return}else(t.emitted={})[s]=!0;d(l,t,6,i)}}function V(t,e,n=!1){if(!e.deopt&&void 0!==t.__emits)return t.__emits;const r=t.emits;let i={},c=!1;if(!Object(o["n"])(t)){const r=t=>{c=!0,Object(o["h"])(i,V(t,e,!0))};!n&&e.mixins.length&&e.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}return r||c?(Object(o["m"])(r)?r.forEach(t=>i[t]=null):Object(o["h"])(i,r),t.__emits=i):t.__emits=null}function $(t,e){return!(!t||!Object(o["u"])(e))&&(e=e.slice(2).replace(/Once$/,""),Object(o["j"])(t,e[0].toLowerCase()+e.slice(1))||Object(o["j"])(t,Object(o["k"])(e))||Object(o["j"])(t,e))}let q=null;function H(t){q=t}function W(t){const{type:e,vnode:n,proxy:r,withProxy:i,props:c,propsOptions:[a],slots:s,attrs:u,emit:l,render:f,renderCache:p,data:d,setupState:v,ctx:b}=t;let m;q=t;try{let t;if(4&n.shapeFlag){const e=i||r;m=an(f.call(e,e,p,c,v,d,b)),t=u}else{const n=e;0,m=an(n.length>1?n(c,{attrs:u,slots:s,emit:l}):n(c,null)),t=e.props?u:K(u)}let h=m;if(!1!==e.inheritAttrs&&t){const e=Object.keys(t),{shapeFlag:n}=h;e.length&&(1&n||6&n)&&(a&&e.some(o["s"])&&(t=Y(t,a)),h=rn(h,t))}n.dirs&&(h.dirs=h.dirs?h.dirs.concat(n.dirs):n.dirs),n.transition&&(h.transition=n.transition),m=h}catch(g){h(g,t,1),m=en(Ve)}return q=null,m}function G(t){let e;for(let n=0;n{let e;for(const n in t)("class"===n||"style"===n||Object(o["u"])(n))&&((e||(e={}))[n]=t[n]);return e},Y=(t,e)=>{const n={};for(const r in t)Object(o["s"])(r)&&r.slice(9)in e||(n[r]=t[r]);return n};function X(t,e,n){const{props:r,children:o,component:i}=t,{props:c,children:a,patchFlag:s}=e,u=i.emitsOptions;if(e.dirs||e.transition)return!0;if(!(n&&s>=0))return!(!o&&!a||a&&a.$stable)||r!==c&&(r?!c||J(r,c,u):!!c);if(1024&s)return!0;if(16&s)return r?J(r,c,u):!!c;if(8&s){const t=e.dynamicProps;for(let e=0;et.__isSuspense;function tt(t){const{shapeFlag:e,children:n}=t;let r,o;return 32&e?(r=et(n.default),o=et(n.fallback)):(r=et(n),o=an(null)),{content:r,fallback:o}}function et(t){if(Object(o["n"])(t)&&(t=t()),Object(o["m"])(t)){const e=G(t);0,t=e}return an(t)}function nt(t,e){e&&e.pendingBranch?Object(o["m"])(t)?e.effects.push(...t):e.effects.push(t):F(t)}let rt=0;const ot=t=>rt+=t;function it(t,e=q){if(!e)return t;const n=(...n)=>{rt||We(!0);const r=q;H(e);const o=t(...n);return H(r),rt||Ge(),o};return n._c=!0,n}let ct=null;const at=[];function st(t){at.push(ct=t)}function ut(){at.pop(),ct=at[at.length-1]||null}function lt(t){return e=>it((function(){st(t);const n=e.apply(this,arguments);return ut(),n}))}function ft(t,e,n,i=!1){const c={},a={};Object(o["g"])(a,Ze,1),dt(t,e,c,a),n?t.props=i?c:Object(r["n"])(c):t.type.props?t.props=c:t.props=a,t.attrs=a}function pt(t,e,n,i){const{props:c,attrs:a,vnode:{patchFlag:s}}=t,u=Object(r["p"])(c),[l]=t.propsOptions;if(!(i||s>0)||16&s){let r;dt(t,e,c,a);for(const i in u)e&&(Object(o["j"])(e,i)||(r=Object(o["k"])(i))!==i&&Object(o["j"])(e,r))||(l?!n||void 0===n[i]&&void 0===n[r]||(c[i]=ht(l,e||o["b"],i,void 0,t)):delete c[i]);if(a!==u)for(const t in a)e&&Object(o["j"])(e,t)||delete a[t]}else if(8&s){const n=t.vnode.dynamicProps;for(let r=0;r{a=!0;const[n,r]=vt(t,e,!0);Object(o["h"])(i,n),r&&c.push(...r)};!n&&e.mixins.length&&e.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}if(!r&&!a)return t.__props=o["a"];if(Object(o["m"])(r))for(let s=0;s-1,a[1]=n<0||t-1||Object(o["j"])(a,"default"))&&c.push(e)}}}}return t.__props=[i,c]}function bt(t){return"$"!==t[0]}function mt(t){const e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function gt(t,e){return mt(t)===mt(e)}function yt(t,e){if(Object(o["m"])(e)){for(let n=0,r=e.length;n{if(n.isUnmounted)return;Object(r["h"])(),In(n);const i=d(e,n,t,o);return In(null),Object(r["m"])(),i});return o?i.unshift(c):i.push(c),c}}const Ot=t=>(e,n=Ln)=>!Fn&&wt(t,e,n),jt=Ot("bm"),xt=Ot("m"),_t=Ot("bu"),St=Ot("u"),kt=Ot("bum"),Et=Ot("um"),At=Ot("rtg"),Ct=Ot("rtc"),Pt=(t,e=Ln)=>{wt("ec",t,e)};function Lt(t,e){return Rt(t,null,e)}const Tt={};function It(t,e,n){return Rt(t,e,n)}function Rt(t,e,{immediate:n,deep:i,flush:c,onTrack:a,onTrigger:s}=o["b"],u=Ln){let l,f,h=!1;if(Object(r["g"])(t)?(l=()=>t.value,h=!!t._shallow):Object(r["e"])(t)?(l=()=>t,i=!0):l=Object(o["m"])(t)?()=>t.map(t=>Object(r["g"])(t)?t.value:Object(r["e"])(t)?Ft(t):Object(o["n"])(t)?p(t,u,2,[u&&u.proxy]):void 0):Object(o["n"])(t)?e?()=>p(t,u,2,[u&&u.proxy]):()=>{if(!u||!u.isUnmounted)return f&&f(),p(t,u,3,[v])}:o["d"],e&&i){const t=l;l=()=>Ft(t())}const v=t=>{f=y.options.onStop=()=>{p(t,u,4)}};let b=Object(o["m"])(t)?[]:Tt;const m=()=>{if(y.active)if(e){const t=y();(i||h||Object(o["i"])(t,b))&&(f&&f(),d(e,u,3,[t,b===Tt?void 0:b,v]),b=t)}else y()};let g;m.allowRecurse=!!e,g="sync"===c?m:"post"===c?()=>Se(m,u&&u.suspense):()=>{!u||u.isMounted?M(m):m()};const y=Object(r["c"])(l,{lazy:!0,onTrack:a,onTrigger:s,scheduler:g});return $n(y,u),e?n?m():b=y():"post"===c?Se(y,u&&u.suspense):y(),()=>{Object(r["o"])(y),u&&Object(o["H"])(u.effects,y)}}function Mt(t,e,n){const r=this.proxy,i=Object(o["A"])(t)?()=>r[t]:t.bind(r);return Rt(i,e.bind(r),n,this)}function Ft(t,e=new Set){if(!Object(o["t"])(t)||e.has(t))return t;if(e.add(t),Object(r["g"])(t))Ft(t.value,e);else if(Object(o["m"])(t))for(let n=0;n{Ft(t,e)});else for(const n in t)Ft(t[n],e);return t}function Nt(){const t={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return xt(()=>{t.isMounted=!0}),kt(()=>{t.isUnmounting=!0}),t}const zt=[Function,Array],Ut={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:zt,onEnter:zt,onAfterEnter:zt,onEnterCancelled:zt,onBeforeLeave:zt,onLeave:zt,onAfterLeave:zt,onLeaveCancelled:zt,onBeforeAppear:zt,onAppear:zt,onAfterAppear:zt,onAppearCancelled:zt},setup(t,{slots:e}){const n=Tn(),o=Nt();let i;return()=>{const c=e.default&&Wt(e.default(),!0);if(!c||!c.length)return;const a=Object(r["p"])(t),{mode:s}=a;const u=c[0];if(o.isLeaving)return $t(u);const l=qt(u);if(!l)return $t(u);const f=Vt(l,a,o,n);Ht(l,f);const p=n.subTree,d=p&&qt(p);let h=!1;const{getTransitionKey:v}=l.type;if(v){const t=v();void 0===i?i=t:t!==i&&(i=t,h=!0)}if(d&&d.type!==Ve&&(!Je(l,d)||h)){const t=Vt(d,a,o,n);if(Ht(d,t),"out-in"===s)return o.isLeaving=!0,t.afterLeave=()=>{o.isLeaving=!1,n.update()},$t(u);"in-out"===s&&(t.delayLeave=(t,e,n)=>{const r=Dt(o,d);r[String(d.key)]=d,t._leaveCb=()=>{e(),t._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=n})}return u}}},Bt=Ut;function Dt(t,e){const{leavingVNodes:n}=t;let r=n.get(e.type);return r||(r=Object.create(null),n.set(e.type,r)),r}function Vt(t,e,n,r){const{appear:o,mode:i,persisted:c=!1,onBeforeEnter:a,onEnter:s,onAfterEnter:u,onEnterCancelled:l,onBeforeLeave:f,onLeave:p,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:b,onAppear:m,onAfterAppear:g,onAppearCancelled:y}=e,w=String(t.key),O=Dt(n,t),j=(t,e)=>{t&&d(t,r,9,e)},x={mode:i,persisted:c,beforeEnter(e){let r=a;if(!n.isMounted){if(!o)return;r=b||a}e._leaveCb&&e._leaveCb(!0);const i=O[w];i&&Je(t,i)&&i.el._leaveCb&&i.el._leaveCb(),j(r,[e])},enter(t){let e=s,r=u,i=l;if(!n.isMounted){if(!o)return;e=m||s,r=g||u,i=y||l}let c=!1;const a=t._enterCb=e=>{c||(c=!0,j(e?i:r,[t]),x.delayedLeave&&x.delayedLeave(),t._enterCb=void 0)};e?(e(t,a),e.length<=1&&a()):a()},leave(e,r){const o=String(t.key);if(e._enterCb&&e._enterCb(!0),n.isUnmounting)return r();j(f,[e]);let i=!1;const c=e._leaveCb=n=>{i||(i=!0,r(),j(n?v:h,[e]),e._leaveCb=void 0,O[o]===t&&delete O[o])};O[o]=t,p?(p(e,c),p.length<=1&&c()):c()},clone(t){return Vt(t,e,n,r)}};return x}function $t(t){if(Gt(t))return t=rn(t),t.children=null,t}function qt(t){return Gt(t)?t.children?t.children[0]:void 0:t}function Ht(t,e){6&t.shapeFlag&&t.component?Ht(t.component.subTree,e):128&t.shapeFlag?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function Wt(t,e=!1){let n=[],r=0;for(let o=0;o1)for(let o=0;ot.type.__isKeepAlive,Kt={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(t,{slots:e}){const n=new Map,r=new Set;let i=null;const c=Tn(),a=c.suspense,s=c.ctx,{renderer:{p:u,m:l,um:f,o:{createElement:p}}}=s,d=p("div");function h(t){ee(t),f(t,c,a)}function v(t){n.forEach((e,n)=>{const r=Wn(e.type);!r||t&&t(r)||b(n)})}function b(t){const e=n.get(t);i&&e.type===i.type?i&&ee(i):h(e),n.delete(t),r.delete(t)}s.activate=(t,e,n,r,i)=>{const c=t.component;l(t,e,n,0,a),u(c.vnode,t,e,n,c,a,r,i),Se(()=>{c.isDeactivated=!1,c.a&&Object(o["l"])(c.a);const e=t.props&&t.props.onVnodeMounted;e&&Pe(e,c.parent,t)},a)},s.deactivate=t=>{const e=t.component;l(t,d,null,1,a),Se(()=>{e.da&&Object(o["l"])(e.da);const n=t.props&&t.props.onVnodeUnmounted;n&&Pe(n,e.parent,t),e.isDeactivated=!0},a)},It(()=>[t.include,t.exclude],([t,e])=>{t&&v(e=>Xt(t,e)),e&&v(t=>!Xt(e,t))},{flush:"post",deep:!0});let m=null;const g=()=>{null!=m&&n.set(m,ne(c.subTree))};return xt(g),St(g),kt(()=>{n.forEach(t=>{const{subTree:e,suspense:n}=c,r=ne(e);if(t.type!==r.type)h(t);else{ee(r);const t=r.component.da;t&&Se(t,n)}})}),()=>{if(m=null,!e.default)return null;const o=e.default(),c=o[0];if(o.length>1)return i=null,o;if(!Xe(c)||!(4&c.shapeFlag)&&!(128&c.shapeFlag))return i=null,c;let a=ne(c);const s=a.type,u=Wn(s),{include:l,exclude:f,max:p}=t;if(l&&(!u||!Xt(l,u))||f&&u&&Xt(f,u))return i=a,c;const d=null==a.key?s:a.key,h=n.get(d);return a.el&&(a=rn(a),128&c.shapeFlag&&(c.ssContent=a)),m=d,h?(a.el=h.el,a.component=h.component,a.transition&&Ht(a,a.transition),a.shapeFlag|=512,r.delete(d),r.add(d)):(r.add(d),p&&r.size>parseInt(p,10)&&b(r.values().next().value)),a.shapeFlag|=256,i=a,c}}},Yt=Kt;function Xt(t,e){return Object(o["m"])(t)?t.some(t=>Xt(t,e)):Object(o["A"])(t)?t.split(",").indexOf(e)>-1:!!t.test&&t.test(e)}function Jt(t,e){Qt(t,"a",e)}function Zt(t,e){Qt(t,"da",e)}function Qt(t,e,n=Ln){const r=t.__wdc||(t.__wdc=()=>{let e=n;while(e){if(e.isDeactivated)return;e=e.parent}t()});if(wt(e,r,n),n){let t=n.parent;while(t&&t.parent)Gt(t.parent.vnode)&&te(r,e,n,t),t=t.parent}}function te(t,e,n,r){const i=wt(e,t,r,!0);Et(()=>{Object(o["H"])(r[e],i)},n)}function ee(t){let e=t.shapeFlag;256&e&&(e-=256),512&e&&(e-=512),t.shapeFlag=e}function ne(t){return 128&t.shapeFlag?t.ssContent:t}const re=t=>"_"===t[0]||"$stable"===t,oe=t=>Object(o["m"])(t)?t.map(an):[an(t)],ie=(t,e,n)=>it(t=>oe(e(t)),n),ce=(t,e)=>{const n=t._ctx;for(const r in t){if(re(r))continue;const i=t[r];if(Object(o["n"])(i))e[r]=ie(r,i,n);else if(null!=i){0;const t=oe(i);e[r]=()=>t}}},ae=(t,e)=>{const n=oe(e);t.slots.default=()=>n},se=(t,e)=>{if(32&t.vnode.shapeFlag){const n=e._;n?(t.slots=e,Object(o["g"])(e,"_",n)):ce(e,t.slots={})}else t.slots={},e&&ae(t,e);Object(o["g"])(t.slots,Ze,1)},ue=(t,e)=>{const{vnode:n,slots:r}=t;let i=!0,c=o["b"];if(32&n.shapeFlag){const t=e._;t?1===t?i=!1:Object(o["h"])(r,e):(i=!e.$stable,ce(e,r)),c=e}else e&&(ae(t,e),c={default:1});if(i)for(const o in r)re(o)||o in c||delete r[o]};function le(t,e){const n=q;if(null===n)return t;const r=n.proxy,i=t.dirs||(t.dirs=[]);for(let c=0;c/svg/.test(t.namespaceURI)&&"foreignObject"!==t.tagName,me=t=>8===t.nodeType;function ge(t){const{mt:e,p:n,o:{patchProp:r,nextSibling:i,parentNode:c,remove:a,insert:s,createComment:u}}=t,l=(t,e)=>{ve=!1,f(e.firstChild,t,null,null),z(),ve&&console.error("Hydration completed but contains mismatches.")},f=(n,r,o,a,s=!1)=>{const u=me(n)&&"["===n.data,l=()=>v(n,r,o,a,u),{type:m,ref:g,shapeFlag:y}=r,w=n.nodeType;r.el=n;let O=null;switch(m){case De:3!==w?O=l():(n.data!==r.children&&(ve=!0,n.data=r.children),O=i(n));break;case Ve:O=8!==w||u?l():i(n);break;case $e:if(1===w){O=n;const t=!r.children.length;for(let e=0;e{e(r,t,null,o,a,be(t),s)},f=r.type.__asyncLoader;f?f().then(l):l(),O=u?b(n):i(n)}else 64&y?O=8!==w?l():r.type.hydrate(n,r,o,a,s,t,d):128&y&&(O=r.type.hydrate(n,r,o,a,be(c(n)),s,t,f))}return null!=g&&ke(g,null,a,r),O},p=(t,e,n,i,c)=>{c=c||!!e.dynamicChildren;const{props:s,patchFlag:u,shapeFlag:l,dirs:f}=e;if(-1!==u){if(f&&fe(e,null,n,"created"),s)if(!c||16&u||32&u)for(const e in s)!Object(o["w"])(e)&&Object(o["u"])(e)&&r(t,e,null,s[e]);else s.onClick&&r(t,"onClick",null,s.onClick);let p;if((p=s&&s.onVnodeBeforeMount)&&Pe(p,n,e),f&&fe(e,null,n,"beforeMount"),((p=s&&s.onVnodeMounted)||f)&&nt(()=>{p&&Pe(p,n,e),f&&fe(e,null,n,"mounted")},i),16&l&&(!s||!s.innerHTML&&!s.textContent)){let r=d(t.firstChild,e,t,n,i,c);while(r){ve=!0;const t=r;r=r.nextSibling,a(t)}}else 8&l&&t.textContent!==e.children&&(ve=!0,t.textContent=e.children)}return t.nextSibling},d=(t,e,r,o,i,c)=>{c=c||!!e.dynamicChildren;const a=e.children,s=a.length;for(let u=0;u{const a=c(t),l=d(i(t),e,a,n,r,o);return l&&me(l)&&"]"===l.data?i(e.anchor=l):(ve=!0,s(e.anchor=u("]"),a,l),l)},v=(t,e,r,o,s)=>{if(ve=!0,e.el=null,s){const e=b(t);while(1){const n=i(t);if(!n||n===e)break;a(n)}}const u=i(t),l=c(t);return a(t),n(null,e,l,u,r,o,be(l)),u},b=t=>{let e=0;while(t)if(t=i(t),t&&me(t)&&("["===t.data&&e++,"]"===t.data)){if(0===e)return i(t);e--}return t};return[l,f]}function ye(){}function we(t){return Object(o["n"])(t)?{setup:t,name:t.name}:t}const Oe=t=>!!t.type.__asyncLoader;function je(t){Object(o["n"])(t)&&(t={loader:t});const{loader:e,loadingComponent:n,errorComponent:i,delay:c=200,timeout:a,suspensible:s=!0,onError:u}=t;let l,f=null,p=0;const d=()=>(p++,f=null,v()),v=()=>{let t;return f||(t=f=e().catch(t=>{if(t=t instanceof Error?t:new Error(String(t)),u)return new Promise((e,n)=>{const r=()=>e(d()),o=()=>n(t);u(t,r,o,p+1)});throw t}).then(e=>t!==f&&f?f:(e&&(e.__esModule||"Module"===e[Symbol.toStringTag])&&(e=e.default),l=e,e)))};return we({__asyncLoader:v,name:"AsyncComponentWrapper",setup(){const t=Ln;if(l)return()=>xe(l,t);const e=e=>{f=null,h(e,t,13,!i)};if(s&&t.suspense)return v().then(e=>()=>xe(e,t)).catch(t=>(e(t),()=>i?en(i,{error:t}):null));const o=Object(r["l"])(!1),u=Object(r["l"])(),p=Object(r["l"])(!!c);return c&&setTimeout(()=>{p.value=!1},c),null!=a&&setTimeout(()=>{if(!o.value&&!u.value){const t=new Error(`Async component timed out after ${a}ms.`);e(t),u.value=t}},a),v().then(()=>{o.value=!0}).catch(t=>{e(t),u.value=t}),()=>o.value&&l?xe(l,t):u.value&&i?en(i,{error:u.value}):n&&!p.value?en(n):void 0}})}function xe(t,{vnode:{ref:e,props:n,children:r}}){const o=en(t,n,r);return o.ref=e,o}const _e={scheduler:L,allowRecurse:!0};const Se=nt,ke=(t,e,n,i)=>{if(Object(o["m"])(t))return void t.forEach((t,r)=>ke(t,e&&(Object(o["m"])(e)?e[r]:e),n,i));let c;c=!i||Oe(i)?null:4&i.shapeFlag?i.component.exposed||i.component.proxy:i.el;const{i:a,r:s}=t;const u=e&&e.r,l=a.refs===o["b"]?a.refs={}:a.refs,f=a.setupState;if(null!=u&&u!==s&&(Object(o["A"])(u)?(l[u]=null,Object(o["j"])(f,u)&&(f[u]=null)):Object(r["g"])(u)&&(u.value=null)),Object(o["A"])(s)){const t=()=>{l[s]=c,Object(o["j"])(f,s)&&(f[s]=c)};c?(t.id=-1,Se(t,n)):t()}else if(Object(r["g"])(s)){const t=()=>{s.value=c};c?(t.id=-1,Se(t,n)):t()}else Object(o["n"])(s)&&p(s,a,12,[c,l])};function Ee(t){return Ce(t)}function Ae(t){return Ce(t,ge)}function Ce(t,e){ye();const{insert:n,remove:i,patchProp:c,forcePatchProp:a,createElement:s,createText:u,createComment:l,setText:f,setElementText:p,parentNode:d,nextSibling:h,setScopeId:v=o["d"],cloneNode:b,insertStaticContent:m}=t,g=(t,e,n,r=null,o=null,i=null,c=!1,a=!1)=>{t&&!Je(t,e)&&(r=J(t),q(t,o,i,!0),t=null),-2===e.patchFlag&&(a=!1,e.dynamicChildren=null);const{type:s,ref:u,shapeFlag:l}=e;switch(s){case De:y(t,e,n,r);break;case Ve:w(t,e,n,r);break;case $e:null==t&&O(e,n,r,c);break;case Be:L(t,e,n,r,o,i,c,a);break;default:1&l?_(t,e,n,r,o,i,c,a):6&l?T(t,e,n,r,o,i,c,a):(64&l||128&l)&&s.process(t,e,n,r,o,i,c,a,tt)}null!=u&&o&&ke(u,t&&t.ref,i,e)},y=(t,e,r,o)=>{if(null==t)n(e.el=u(e.children),r,o);else{const n=e.el=t.el;e.children!==t.children&&f(n,e.children)}},w=(t,e,r,o)=>{null==t?n(e.el=l(e.children||""),r,o):e.el=t.el},O=(t,e,n,r)=>{[t.el,t.anchor]=m(t.children,e,n,r)},j=({el:t,anchor:e},r,o)=>{let i;while(t&&t!==e)i=h(t),n(t,r,o),t=i;n(e,r,o)},x=({el:t,anchor:e})=>{let n;while(t&&t!==e)n=h(t),i(t),t=n;i(e)},_=(t,e,n,r,o,i,c,a)=>{c=c||"svg"===e.type,null==t?S(e,n,r,o,i,c,a):A(t,e,o,i,c,a)},S=(t,e,r,i,a,u,l)=>{let f,d;const{type:h,props:v,shapeFlag:m,transition:g,scopeId:y,patchFlag:w,dirs:O}=t;if(t.el&&void 0!==b&&-1===w)f=t.el=b(t.el);else{if(f=t.el=s(t.type,u,v&&v.is),8&m?p(f,t.children):16&m&&E(t.children,f,null,i,a,u&&"foreignObject"!==h,l||!!t.dynamicChildren),O&&fe(t,null,i,"created"),v){for(const e in v)Object(o["w"])(e)||c(f,e,null,v[e],u,t.children,i,a,Y);(d=v.onVnodeBeforeMount)&&Pe(d,i,t)}k(f,y,t,i)}O&&fe(t,null,i,"beforeMount");const j=(!a||a&&!a.pendingBranch)&&g&&!g.persisted;j&&g.beforeEnter(f),n(f,e,r),((d=v&&v.onVnodeMounted)||j||O)&&Se(()=>{d&&Pe(d,i,t),j&&g.enter(f),O&&fe(t,null,i,"mounted")},a)},k=(t,e,n,r)=>{if(e&&v(t,e),r){const o=r.type.__scopeId;o&&o!==e&&v(t,o+"-s");let i=r.subTree;0,n===i&&k(t,r.vnode.scopeId,r.vnode,r.parent)}},E=(t,e,n,r,o,i,c,a=0)=>{for(let s=a;s{const u=e.el=t.el;let{patchFlag:l,dynamicChildren:f,dirs:d}=e;l|=16&t.patchFlag;const h=t.props||o["b"],v=e.props||o["b"];let b;if((b=v.onVnodeBeforeUpdate)&&Pe(b,n,e,t),d&&fe(e,t,n,"beforeUpdate"),l>0){if(16&l)P(u,e,h,v,n,r,i);else if(2&l&&h.class!==v.class&&c(u,"class",null,v.class,i),4&l&&c(u,"style",h.style,v.style,i),8&l){const o=e.dynamicProps;for(let e=0;e{b&&Pe(b,n,e,t),d&&fe(e,t,n,"updated")},r)},C=(t,e,n,r,o,i)=>{for(let c=0;c{if(n!==r){for(const l in r){if(Object(o["w"])(l))continue;const f=r[l],p=n[l];(f!==p||a&&a(t,l))&&c(t,l,p,f,u,e.children,i,s,Y)}if(n!==o["b"])for(const a in n)Object(o["w"])(a)||a in r||c(t,a,n[a],null,u,e.children,i,s,Y)}},L=(t,e,r,o,i,c,a,s)=>{const l=e.el=t?t.el:u(""),f=e.anchor=t?t.anchor:u("");let{patchFlag:p,dynamicChildren:d}=e;p>0&&(s=!0),null==t?(n(l,r,o),n(f,r,o),E(e.children,r,f,i,c,a,s)):p>0&&64&p&&d&&t.dynamicChildren?(C(t.dynamicChildren,d,r,i,c,a),(null!=e.key||i&&e===i.subTree)&&Le(t,e,!0)):B(t,e,r,f,i,c,a,s)},T=(t,e,n,r,o,i,c,a)=>{null==t?512&e.shapeFlag?o.ctx.activate(e,n,r,c,a):R(e,n,r,o,i,c,a):M(t,e,a)},R=(t,e,n,r,o,i,c)=>{const a=t.component=Pn(t,r,o);if(Gt(t)&&(a.ctx.renderer=tt),Nn(a),a.asyncDep){if(o&&o.registerDep(a,F),!t.el){const t=a.subTree=en(Ve);w(null,t,e,n)}}else F(a,t,e,n,o,i,c)},M=(t,e,n)=>{const r=e.component=t.component;if(X(t,e,n)){if(r.asyncDep&&!r.asyncResolved)return void U(r,e,n);r.next=e,I(r.update),r.update()}else e.component=t.component,e.el=t.el,r.vnode=e},F=(t,e,n,i,c,a,s)=>{t.update=Object(r["c"])((function(){if(t.isMounted){let e,{next:n,bu:r,u:i,parent:u,vnode:l}=t,f=n;0,n?(n.el=l.el,U(t,n,s)):n=l,r&&Object(o["l"])(r),(e=n.props&&n.props.onVnodeBeforeUpdate)&&Pe(e,u,n,l);const p=W(t);0;const h=t.subTree;t.subTree=p,g(h,p,d(h.el),J(h),t,c,a),n.el=p.el,null===f&&Z(t,p.el),i&&Se(i,c),(e=n.props&&n.props.onVnodeUpdated)&&Se(()=>{Pe(e,u,n,l)},c)}else{let r;const{el:s,props:u}=e,{bm:l,m:f,parent:p}=t;l&&Object(o["l"])(l),(r=u&&u.onVnodeBeforeMount)&&Pe(r,p,e);const d=t.subTree=W(t);if(s&&nt?nt(e.el,d,t,c):(g(null,d,n,i,t,c,a),e.el=d.el),f&&Se(f,c),r=u&&u.onVnodeMounted){const t=e;Se(()=>{Pe(r,p,t)},c)}const{a:h}=t;h&&256&e.shapeFlag&&Se(h,c),t.isMounted=!0,e=n=i=null}}),_e)},U=(t,e,n)=>{e.component=t;const r=t.vnode.props;t.vnode=e,t.next=null,pt(t,e.props,r,n),ue(t,e.children),N(void 0,t.update)},B=(t,e,n,r,o,i,c,a=!1)=>{const s=t&&t.children,u=t?t.shapeFlag:0,l=e.children,{patchFlag:f,shapeFlag:d}=e;if(f>0){if(128&f)return void V(s,l,n,r,o,i,c,a);if(256&f)return void D(s,l,n,r,o,i,c,a)}8&d?(16&u&&Y(s,o,i),l!==s&&p(n,l)):16&u?16&d?V(s,l,n,r,o,i,c,a):Y(s,o,i,!0):(8&u&&p(n,""),16&d&&E(l,n,r,o,i,c,a))},D=(t,e,n,r,i,c,a,s)=>{t=t||o["a"],e=e||o["a"];const u=t.length,l=e.length,f=Math.min(u,l);let p;for(p=0;pl?Y(t,i,c,!0,!1,f):E(e,n,r,i,c,a,s,f)},V=(t,e,n,r,i,c,a,s)=>{let u=0;const l=e.length;let f=t.length-1,p=l-1;while(u<=f&&u<=p){const r=t[u],o=e[u]=s?sn(e[u]):an(e[u]);if(!Je(r,o))break;g(r,o,n,null,i,c,a,s),u++}while(u<=f&&u<=p){const r=t[f],o=e[p]=s?sn(e[p]):an(e[p]);if(!Je(r,o))break;g(r,o,n,null,i,c,a,s),f--,p--}if(u>f){if(u<=p){const t=p+1,o=tp)while(u<=f)q(t[u],i,c,!0),u++;else{const d=u,h=u,v=new Map;for(u=h;u<=p;u++){const t=e[u]=s?sn(e[u]):an(e[u]);null!=t.key&&v.set(t.key,u)}let b,m=0;const y=p-h+1;let w=!1,O=0;const j=new Array(y);for(u=0;u=y){q(r,i,c,!0);continue}let o;if(null!=r.key)o=v.get(r.key);else for(b=h;b<=p;b++)if(0===j[b-h]&&Je(r,e[b])){o=b;break}void 0===o?q(r,i,c,!0):(j[o-h]=u+1,o>=O?O=o:w=!0,g(r,e[o],n,null,i,c,a,s),m++)}const x=w?Te(j):o["a"];for(b=x.length-1,u=y-1;u>=0;u--){const t=h+u,o=e[t],s=t+1{const{el:c,type:a,transition:s,children:u,shapeFlag:l}=t;if(6&l)return void $(t.component.subTree,e,r,o);if(128&l)return void t.suspense.move(e,r,o);if(64&l)return void a.move(t,e,r,tt);if(a===Be){n(c,e,r);for(let t=0;ts.enter(c),i);else{const{leave:t,delayLeave:o,afterLeave:i}=s,a=()=>n(c,e,r),u=()=>{t(c,()=>{a(),i&&i()})};o?o(c,a,u):u()}else n(c,e,r)},q=(t,e,n,r=!1,o=!1)=>{const{type:i,props:c,ref:a,children:s,dynamicChildren:u,shapeFlag:l,patchFlag:f,dirs:p}=t;if(null!=a&&ke(a,null,n,null),256&l)return void e.ctx.deactivate(t);const d=1&l&&p;let h;if((h=c&&c.onVnodeBeforeUnmount)&&Pe(h,e,t),6&l)K(t.component,n,r);else{if(128&l)return void t.suspense.unmount(n,r);d&&fe(t,null,e,"beforeUnmount"),u&&(i!==Be||f>0&&64&f)?Y(u,e,n,!1,!0):(i===Be&&(128&f||256&f)||!o&&16&l)&&Y(s,e,n),64&l&&(r||!Re(t.props))&&t.type.remove(t,tt),r&&H(t)}((h=c&&c.onVnodeUnmounted)||d)&&Se(()=>{h&&Pe(h,e,t),d&&fe(t,null,e,"unmounted")},n)},H=t=>{const{type:e,el:n,anchor:r,transition:o}=t;if(e===Be)return void G(n,r);if(e===$e)return void x(t);const c=()=>{i(n),o&&!o.persisted&&o.afterLeave&&o.afterLeave()};if(1&t.shapeFlag&&o&&!o.persisted){const{leave:e,delayLeave:r}=o,i=()=>e(n,c);r?r(t.el,c,i):i()}else c()},G=(t,e)=>{let n;while(t!==e)n=h(t),i(t),t=n;i(e)},K=(t,e,n)=>{const{bum:i,effects:c,update:a,subTree:s,um:u}=t;if(i&&Object(o["l"])(i),c)for(let o=0;o{t.isUnmounted=!0},e),e&&e.pendingBranch&&!e.isUnmounted&&t.asyncDep&&!t.asyncResolved&&t.suspenseId===e.pendingId&&(e.deps--,0===e.deps&&e.resolve())},Y=(t,e,n,r=!1,o=!1,i=0)=>{for(let c=i;c6&t.shapeFlag?J(t.component.subTree):128&t.shapeFlag?t.suspense.next():h(t.anchor||t.el),Q=(t,e)=>{null==t?e._vnode&&q(e._vnode,null,null,!0):g(e._vnode||null,t,e),z(),e._vnode=t},tt={p:g,um:q,m:$,r:H,mt:R,mc:E,pc:B,pbc:C,n:J,o:t};let et,nt;return e&&([et,nt]=e(tt)),{render:Q,hydrate:et,createApp:he(Q,et)}}function Pe(t,e,n,r=null){d(t,e,7,[n,r])}function Le(t,e,n=!1){const r=t.children,i=e.children;if(Object(o["m"])(r)&&Object(o["m"])(i))for(let o=0;o0&&(e[r]=n[i-1]),n[i]=r)}}i=n.length,c=n[i-1];while(i-- >0)n[i]=c,c=e[c];return n}const Ie=t=>t.__isTeleport,Re=t=>t&&(t.disabled||""===t.disabled);const Me="components";function Fe(t){return ze(Me,t)||t}const Ne=Symbol();function ze(t,e,n=!0){const r=q||Ln;if(r){const n=r.type;if(t===Me){if("_self"===e)return n;const t=Wn(n);if(t&&(t===e||t===Object(o["e"])(e)||t===Object(o["f"])(Object(o["e"])(e))))return n}const i=Ue(r[t]||n[t],e)||Ue(r.appContext[t],e);return i}}function Ue(t,e){return t&&(t[e]||t[Object(o["e"])(e)]||t[Object(o["f"])(Object(o["e"])(e))])}const Be=Symbol(void 0),De=Symbol(void 0),Ve=Symbol(void 0),$e=Symbol(void 0),qe=[];let He=null;function We(t=!1){qe.push(He=t?null:[])}function Ge(){qe.pop(),He=qe[qe.length-1]||null}let Ke=1;function Ye(t,e,n,r,i){const c=en(t,e,n,r,i,!0);return c.dynamicChildren=He||o["a"],Ge(),Ke>0&&He&&He.push(c),c}function Xe(t){return!!t&&!0===t.__v_isVNode}function Je(t,e){return t.type===e.type&&t.key===e.key}const Ze="__vInternal",Qe=({key:t})=>null!=t?t:null,tn=({ref:t})=>null!=t?Object(o["A"])(t)||Object(r["g"])(t)||Object(o["n"])(t)?{i:q,r:t}:t:null,en=nn;function nn(t,e=null,n=null,i=0,c=null,a=!1){if(t&&t!==Ne||(t=Ve),Xe(t)){const r=rn(t,e,!0);return n&&un(r,n),r}if(Kn(t)&&(t=t.__vccOpts),e){(Object(r["d"])(e)||Ze in e)&&(e=Object(o["h"])({},e));let{class:t,style:n}=e;t&&!Object(o["A"])(t)&&(e.class=Object(o["F"])(t)),Object(o["t"])(n)&&(Object(r["d"])(n)&&!Object(o["m"])(n)&&(n=Object(o["h"])({},n)),e.style=Object(o["G"])(n))}const s=Object(o["A"])(t)?1:Q(t)?128:Ie(t)?64:Object(o["t"])(t)?4:Object(o["n"])(t)?2:0;const u={__v_isVNode:!0,["__v_skip"]:!0,type:t,props:e,key:e&&Qe(e),ref:e&&tn(e),scopeId:ct,children:null,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:i,dynamicProps:c,dynamicChildren:null,appContext:null};if(un(u,n),128&s){const{content:t,fallback:e}=tt(u);u.ssContent=t,u.ssFallback=e}return Ke>0&&!a&&He&&(i>0||6&s)&&32!==i&&He.push(u),u}function rn(t,e,n=!1){const{props:r,ref:i,patchFlag:c,children:a}=t,s=e?ln(r||{},e):r;return{__v_isVNode:!0,["__v_skip"]:!0,type:t.type,props:s,key:s&&Qe(s),ref:e&&e.ref?n&&i?Object(o["m"])(i)?i.concat(tn(e)):[i,tn(e)]:tn(e):i,scopeId:t.scopeId,children:a,target:t.target,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==Be?-1===c?16:16|c:c,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:t.transition,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&rn(t.ssContent),ssFallback:t.ssFallback&&rn(t.ssFallback),el:t.el,anchor:t.anchor}}function on(t=" ",e=0){return en(De,null,t,e)}function cn(t="",e=!1){return e?(We(),Ye(Ve,null,t)):en(Ve,null,t)}function an(t){return null==t||"boolean"===typeof t?en(Ve):Object(o["m"])(t)?en(Be,null,t):"object"===typeof t?null===t.el?t:rn(t):en(De,null,String(t))}function sn(t){return null===t.el?t:rn(t)}function un(t,e){let n=0;const{shapeFlag:r}=t;if(null==e)e=null;else if(Object(o["m"])(e))n=16;else if("object"===typeof e){if(1&r||64&r){const n=e.default;return void(n&&(n._c&&ot(1),un(t,n()),n._c&&ot(-1)))}{n=32;const r=e._;r||Ze in e?3===r&&q&&(1024&q.vnode.patchFlag?(e._=2,t.patchFlag|=1024):e._=1):e._ctx=q}}else Object(o["n"])(e)?(e={default:e,_ctx:q},n=32):(e=String(e),64&r?(n=16,e=[on(e)]):n=8);t.children=e,t.shapeFlag|=n}function ln(...t){const e=Object(o["h"])({},t[0]);for(let n=1;n1)return n&&Object(o["n"])(e)?e():e}else 0}let dn=!1;function hn(t,e,n=[],i=[],c=[],a=!1){const{mixins:s,extends:u,data:l,computed:f,methods:p,watch:d,provide:h,inject:v,components:b,directives:m,beforeMount:g,mounted:y,beforeUpdate:w,updated:O,activated:j,deactivated:x,beforeDestroy:_,beforeUnmount:S,destroyed:k,unmounted:E,render:A,renderTracked:C,renderTriggered:P,errorCaptured:L,expose:T}=e,I=t.proxy,R=t.ctx,M=t.appContext.mixins;a&&A&&t.render===o["d"]&&(t.render=A),a||(dn=!0,vn("beforeCreate","bc",e,t,M),dn=!1,gn(t,M,n,i,c)),u&&hn(t,u,n,i,c,!0),s&&gn(t,s,n,i,c);if(v)if(Object(o["m"])(v))for(let r=0;ryn(t,e,I)),l&&yn(t,l,I)),f)for(const r in f){const t=f[r],e=Object(o["n"])(t)?t.bind(I,I):Object(o["n"])(t.get)?t.get.bind(I,I):o["d"];0;const n=!Object(o["n"])(t)&&Object(o["n"])(t.set)?t.set.bind(I):o["d"],i=Yn({get:e,set:n});Object.defineProperty(R,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:t=>i.value=t})}if(d&&i.push(d),!a&&i.length&&i.forEach(t=>{for(const e in t)wn(t[e],R,I,e)}),h&&c.push(h),!a&&c.length&&c.forEach(t=>{const e=Object(o["n"])(t)?t.call(I):t;Reflect.ownKeys(e).forEach(t=>{fn(t,e[t])})}),a&&(b&&Object(o["h"])(t.components||(t.components=Object(o["h"])({},t.type.components)),b),m&&Object(o["h"])(t.directives||(t.directives=Object(o["h"])({},t.type.directives)),m)),a||vn("created","c",e,t,M),g&&jt(g.bind(I)),y&&xt(y.bind(I)),w&&_t(w.bind(I)),O&&St(O.bind(I)),j&&Jt(j.bind(I)),x&&Zt(x.bind(I)),L&&Pt(L.bind(I)),C&&Ct(C.bind(I)),P&&At(P.bind(I)),S&&kt(S.bind(I)),E&&Et(E.bind(I)),Object(o["m"])(T))if(a)0;else if(T.length){const e=t.exposed||(t.exposed=Object(r["i"])({}));T.forEach(t=>{e[t]=Object(r["q"])(I,t)})}else t.exposed||(t.exposed=o["b"])}function vn(t,e,n,r,o){mn(t,e,o,r);const{extends:i,mixins:c}=n;i&&bn(t,e,i,r),c&&mn(t,e,c,r);const a=n[t];a&&d(a.bind(r.proxy),r,e)}function bn(t,e,n,r){n.extends&&bn(t,e,n.extends,r);const o=n[t];o&&d(o.bind(r.proxy),r,e)}function mn(t,e,n,r){for(let o=0;on[r];if(Object(o["A"])(t)){const n=e[t];Object(o["n"])(n)&&It(i,n)}else if(Object(o["n"])(t))It(i,t.bind(n));else if(Object(o["t"])(t))if(Object(o["m"])(t))t.forEach(t=>wn(t,e,n,r));else{const r=Object(o["n"])(t.handler)?t.handler.bind(n):e[t.handler];Object(o["n"])(r)&&It(i,r,t)}else 0}function On(t,e){const n=e.split(".");return()=>{let e=t;for(let t=0;txn(c,e,t)),xn(c,e,t),e.__merged=c}function xn(t,e,n){const r=n.appContext.config.optionMergeStrategies,{mixins:i,extends:c}=e;c&&xn(t,c,n),i&&i.forEach(e=>xn(t,e,n));for(const a in e)r&&Object(o["j"])(r,a)?t[a]=r[a](t[a],e[a],n.proxy,a):t[a]=e[a]}const _n=t=>t?Rn(t)?t.exposed?t.exposed:t.proxy:_n(t.parent):null,Sn=Object(o["h"])(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>_n(t.parent),$root:t=>_n(t.root),$emit:t=>t.emit,$options:t=>jn(t),$forceUpdate:t=>()=>L(t.update),$nextTick:t=>C.bind(t.proxy),$watch:t=>Mt.bind(t)}),kn={get({_:t},e){const{ctx:n,setupState:i,data:c,props:a,accessCache:s,type:u,appContext:l}=t;if("__v_skip"===e)return!0;let f;if("$"!==e[0]){const r=s[e];if(void 0!==r)switch(r){case 0:return i[e];case 1:return c[e];case 3:return n[e];case 2:return a[e]}else{if(i!==o["b"]&&Object(o["j"])(i,e))return s[e]=0,i[e];if(c!==o["b"]&&Object(o["j"])(c,e))return s[e]=1,c[e];if((f=t.propsOptions[0])&&Object(o["j"])(f,e))return s[e]=2,a[e];if(n!==o["b"]&&Object(o["j"])(n,e))return s[e]=3,n[e];dn||(s[e]=4)}}const p=Sn[e];let d,h;return p?("$attrs"===e&&Object(r["r"])(t,"get",e),p(t)):(d=u.__cssModules)&&(d=d[e])?d:n!==o["b"]&&Object(o["j"])(n,e)?(s[e]=3,n[e]):(h=l.config.globalProperties,Object(o["j"])(h,e)?h[e]:void 0)},set({_:t},e,n){const{data:r,setupState:i,ctx:c}=t;if(i!==o["b"]&&Object(o["j"])(i,e))i[e]=n;else if(r!==o["b"]&&Object(o["j"])(r,e))r[e]=n;else if(Object(o["j"])(t.props,e))return!1;return("$"!==e[0]||!(e.slice(1)in t))&&(c[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:r,appContext:i,propsOptions:c}},a){let s;return void 0!==n[a]||t!==o["b"]&&Object(o["j"])(t,a)||e!==o["b"]&&Object(o["j"])(e,a)||(s=c[0])&&Object(o["j"])(s,a)||Object(o["j"])(r,a)||Object(o["j"])(Sn,a)||Object(o["j"])(i.config.globalProperties,a)}};const En=Object(o["h"])({},kn,{get(t,e){if(e!==Symbol.unscopables)return kn.get(t,e,t)},has(t,e){const n="_"!==e[0]&&!Object(o["o"])(e);return n}});const An=pe();let Cn=0;function Pn(t,e,n){const r=t.type,i=(e?e.appContext:t.appContext)||An,c={uid:Cn++,vnode:t,type:r,parent:e,appContext:i,root:null,next:null,subTree:null,update:null,render:null,proxy:null,exposed:null,withProxy:null,effects:null,provides:e?e.provides:Object.create(i.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:vt(r,i),emitsOptions:V(r,i),emit:null,emitted:null,ctx:o["b"],data:o["b"],props:o["b"],attrs:o["b"],slots:o["b"],refs:o["b"],setupState:o["b"],setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null};return c.ctx={_:c},c.root=e?e.root:c,c.emit=D.bind(null,c),c}let Ln=null;const Tn=()=>Ln||q,In=t=>{Ln=t};function Rn(t){return 4&t.vnode.shapeFlag}let Mn,Fn=!1;function Nn(t,e=!1){Fn=e;const{props:n,children:r}=t.vnode,o=Rn(t);ft(t,n,o,e),se(t,r);const i=o?zn(t,e):void 0;return Fn=!1,i}function zn(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,kn);const{setup:i}=n;if(i){const n=t.setupContext=i.length>1?Vn(t):null;Ln=t,Object(r["h"])();const c=p(i,t,0,[t.props,n]);if(Object(r["m"])(),Ln=null,Object(o["v"])(c)){if(e)return c.then(e=>{Un(t,e)});t.asyncDep=c}else Un(t,c)}else Dn(t)}function Un(t,e,n){Object(o["n"])(e)?t.render=e:Object(o["t"])(e)&&(t.setupState=Object(r["i"])(e)),Dn(t)}const Bn=()=>!Mn;function Dn(t,e){const n=t.type;t.render||(Mn&&n.template&&!n.render&&(n.render=Mn(n.template,{isCustomElement:t.appContext.config.isCustomElement,delimiters:n.delimiters})),t.render=n.render||o["d"],t.render._rc&&(t.withProxy=new Proxy(t.ctx,En))),Ln=t,Object(r["h"])(),hn(t,n),Object(r["m"])(),Ln=null}function Vn(t){const e=e=>{t.exposed=Object(r["i"])(e)};return{attrs:t.attrs,slots:t.slots,emit:t.emit,expose:e}}function $n(t,e=Ln){e&&(e.effects||(e.effects=[])).push(t)}const qn=/(?:^|[-_])(\w)/g,Hn=t=>t.replace(qn,t=>t.toUpperCase()).replace(/[-_]/g,"");function Wn(t){return Object(o["n"])(t)&&t.displayName||t.name}function Gn(t,e,n=!1){let r=Wn(e);if(!r&&e.__file){const t=e.__file.match(/([^/\\]+)\.\w+$/);t&&(r=t[1])}if(!r&&t&&t.parent){const n=t=>{for(const n in t)if(t[n]===e)return n};r=n(t.components||t.parent.type.components)||n(t.appContext.components)}return r?Hn(r):n?"App":"Anonymous"}function Kn(t){return Object(o["n"])(t)&&"__vccOpts"in t}function Yn(t){const e=Object(r["a"])(t);return $n(e.effect),e}function Xn(t,e,n){const r=arguments.length;return 2===r?Object(o["t"])(e)&&!Object(o["m"])(e)?Xe(e)?en(t,null,[e]):en(t,e):en(t,null,e):(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&Xe(n)&&(n=[n]),en(t,e,n))}Symbol("");function Jn(){return void 0}function Zn(t,e){let n;if(Object(o["m"])(t)||Object(o["A"])(t)){n=new Array(t.length);for(let r=0,o=t.length;r=55296&&o<=56319&&n>1,t+=b(t/e);t>v*c>>1;r+=o)t=b(t/v);return b(r+(v+1)*t/(t+a))},O=function(t){var e=[];t=g(t);var n,a,s=t.length,p=l,d=0,v=u;for(n=0;n=p&&ab((r-d)/_))throw RangeError(h);for(d+=(x-p)*_,p=x,n=0;nr)throw RangeError(h);if(a==p){for(var S=d,k=o;;k+=o){var E=k<=v?i:k>=v+c?c:k-v;if(Sl){var d,h=u(arguments[l++]),v=f?i(h).concat(f(h)):i(h),b=v.length,m=0;while(b>m)d=v[m++],r&&!p.call(h,d)||(n[d]=h[d])}return n}:l},6547:function(t,e,n){var r=n("a691"),o=n("1d80"),i=function(t){return function(e,n){var i,c,a=String(o(e)),s=r(n),u=a.length;return s<0||s>=u?t?"":void 0:(i=a.charCodeAt(s),i<55296||i>56319||s+1===u||(c=a.charCodeAt(s+1))<56320||c>57343?t?a.charAt(s):i:t?a.slice(s,s+2):c-56320+(i-55296<<10)+65536)}};t.exports={codeAt:i(!1),charAt:i(!0)}},"65f0":function(t,e,n){var r=n("861d"),o=n("e8b5"),i=n("b622"),c=i("species");t.exports=function(t,e){var n;return o(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!o(n.prototype)?r(n)&&(n=n[c],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},"69f3":function(t,e,n){var r,o,i,c=n("7f9a"),a=n("da84"),s=n("861d"),u=n("9112"),l=n("5135"),f=n("c6cd"),p=n("f772"),d=n("d012"),h=a.WeakMap,v=function(t){return i(t)?o(t):r(t,{})},b=function(t){return function(e){var n;if(!s(e)||(n=o(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}};if(c){var m=f.state||(f.state=new h),g=m.get,y=m.has,w=m.set;r=function(t,e){return e.facade=t,w.call(m,t,e),e},o=function(t){return g.call(m,t)||{}},i=function(t){return y.call(m,t)}}else{var O=p("state");d[O]=!0,r=function(t,e){return e.facade=t,u(t,O,e),e},o=function(t){return l(t,O)?t[O]:{}},i=function(t){return l(t,O)}}t.exports={set:r,get:o,has:i,enforce:v,getterFor:b}},"6eeb":function(t,e,n){var r=n("da84"),o=n("9112"),i=n("5135"),c=n("ce4e"),a=n("8925"),s=n("69f3"),u=s.get,l=s.enforce,f=String(String).split("String");(t.exports=function(t,e,n,a){var s,u=!!a&&!!a.unsafe,p=!!a&&!!a.enumerable,d=!!a&&!!a.noTargetGet;"function"==typeof n&&("string"!=typeof e||i(n,"name")||o(n,"name",e),s=l(n),s.source||(s.source=f.join("string"==typeof e?e:""))),t!==r?(u?!d&&t[e]&&(p=!0):delete t[e],p?t[e]=n:o(t,e,n)):p?t[e]=n:c(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||a(this)}))},7156:function(t,e,n){var r=n("861d"),o=n("d2bb");t.exports=function(t,e,n){var i,c;return o&&"function"==typeof(i=e.constructor)&&i!==n&&r(c=i.prototype)&&c!==n.prototype&&o(t,c),t}},7418:function(t,e){e.f=Object.getOwnPropertySymbols},"746f":function(t,e,n){var r=n("428f"),o=n("5135"),i=n("e538"),c=n("9bf2").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||c(e,t,{value:i.f(t)})}},7839:function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7a23":function(t,e,n){"use strict";n.d(e,"r",(function(){return r["E"]})),n.d(e,"u",(function(){return r["J"]})),n.d(e,"a",(function(){return r["b"]})),n.d(e,"b",(function(){return r["c"]})),n.d(e,"d",(function(){return r["e"]})),n.d(e,"f",(function(){return r["f"]})),n.d(e,"g",(function(){return r["g"]})),n.d(e,"h",(function(){return r["j"]})),n.d(e,"i",(function(){return r["k"]})),n.d(e,"j",(function(){return r["l"]})),n.d(e,"k",(function(){return r["m"]})),n.d(e,"l",(function(){return r["p"]})),n.d(e,"m",(function(){return r["v"]})),n.d(e,"n",(function(){return r["x"]})),n.d(e,"o",(function(){return r["A"]})),n.d(e,"p",(function(){return r["B"]})),n.d(e,"q",(function(){return r["D"]})),n.d(e,"s",(function(){return r["F"]})),n.d(e,"t",(function(){return r["G"]})),n.d(e,"w",(function(){return r["M"]})),n.d(e,"x",(function(){return r["O"]})),n.d(e,"y",(function(){return r["P"]})),n.d(e,"A",(function(){return r["Q"]})),n.d(e,"c",(function(){return z})),n.d(e,"e",(function(){return ct})),n.d(e,"v",(function(){return et})),n.d(e,"z",(function(){return tt}));var r=n("5c40"),o=n("9ff4");n("a1e9");const i="http://www.w3.org/2000/svg",c="undefined"!==typeof document?document:null;let a,s;const u={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n)=>e?c.createElementNS(i,t):c.createElement(t,n?{is:n}:void 0),createText:t=>c.createTextNode(t),createComment:t=>c.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>c.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},cloneNode(t){return t.cloneNode(!0)},insertStaticContent(t,e,n,r){const o=r?s||(s=c.createElementNS(i,"svg")):a||(a=c.createElement("div"));o.innerHTML=t;const l=o.firstChild;let f=l,p=f;while(f)p=f,u.insert(f,e,n),f=o.firstChild;return[l,p]}};function l(t,e,n){if(null==e&&(e=""),n)t.setAttribute("class",e);else{const n=t._vtc;n&&(e=(e?[e,...n]:[...n]).join(" ")),t.className=e}}function f(t,e,n){const r=t.style;if(n)if(Object(o["A"])(n)){if(e!==n){const e=r.display;r.cssText=n,"_vod"in t&&(r.display=e)}}else{for(const t in n)d(r,t,n[t]);if(e&&!Object(o["A"])(e))for(const t in e)null==n[t]&&d(r,t,"")}else t.removeAttribute("style")}const p=/\s*!important$/;function d(t,e,n){if(Object(o["m"])(n))n.forEach(n=>d(t,e,n));else if(e.startsWith("--"))t.setProperty(e,n);else{const r=b(t,e);p.test(n)?t.setProperty(Object(o["k"])(r),n.replace(p,""),"important"):t[r]=n}}const h=["Webkit","Moz","ms"],v={};function b(t,e){const n=v[e];if(n)return n;let r=Object(o["e"])(e);if("filter"!==r&&r in t)return v[e]=r;r=Object(o["f"])(r);for(let o=0;odocument.createEvent("Event").timeStamp&&(w=()=>performance.now());let O=0;const j=Promise.resolve(),x=()=>{O=0},_=()=>O||(j.then(x),O=w());function S(t,e,n,r){t.addEventListener(e,n,r)}function k(t,e,n,r){t.removeEventListener(e,n,r)}function E(t,e,n,r,o=null){const i=t._vei||(t._vei={}),c=i[e];if(r&&c)c.value=r;else{const[n,a]=C(e);if(r){const c=i[e]=P(r,o);S(t,n,c,a)}else c&&(k(t,n,c,a),i[e]=void 0)}}const A=/(?:Once|Passive|Capture)$/;function C(t){let e;if(A.test(t)){let n;e={};while(n=t.match(A))t=t.slice(0,t.length-n[0].length),e[n[0].toLowerCase()]=!0}return[Object(o["k"])(t.slice(2)),e]}function P(t,e){const n=t=>{const o=t.timeStamp||w();o>=n.attached-1&&Object(r["d"])(L(t,n.value),e,5,[t])};return n.value=t,n.attached=_(),n}function L(t,e){if(Object(o["m"])(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map(t=>e=>!e._stopped&&t(e))}return e}const T=/^on[a-z]/,I=(t,e)=>"value"===e,R=(t,e,n,r,i=!1,c,a,s,u)=>{switch(e){case"class":l(t,r,i);break;case"style":f(t,n,r);break;default:Object(o["u"])(e)?Object(o["s"])(e)||E(t,e,n,r,a):M(t,e,r,i)?y(t,e,r,c,a,s,u):("true-value"===e?t._trueValue=r:"false-value"===e&&(t._falseValue=r),g(t,e,r,i));break}};function M(t,e,n,r){return r?"innerHTML"===e||!!(e in t&&T.test(e)&&Object(o["n"])(n)):"spellcheck"!==e&&"draggable"!==e&&("form"!==e&&(("list"!==e||"INPUT"!==t.tagName)&&(("type"!==e||"TEXTAREA"!==t.tagName)&&((!T.test(e)||!Object(o["A"])(n))&&e in t))))}const F="transition",N="animation",z=(t,{slots:e})=>Object(r["p"])(r["a"],B(t),e);z.displayName="Transition";const U={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};z.props=Object(o["h"])({},r["a"].props,U);function B(t){let{name:e="v",type:n,css:r=!0,duration:i,enterFromClass:c=e+"-enter-from",enterActiveClass:a=e+"-enter-active",enterToClass:s=e+"-enter-to",appearFromClass:u=c,appearActiveClass:l=a,appearToClass:f=s,leaveFromClass:p=e+"-leave-from",leaveActiveClass:d=e+"-leave-active",leaveToClass:h=e+"-leave-to"}=t;const v={};for(const o in t)o in U||(v[o]=t[o]);if(!r)return v;const b=D(i),m=b&&b[0],g=b&&b[1],{onBeforeEnter:y,onEnter:w,onEnterCancelled:O,onLeave:j,onLeaveCancelled:x,onBeforeAppear:_=y,onAppear:S=w,onAppearCancelled:k=O}=v,E=(t,e,n)=>{q(t,e?f:s),q(t,e?l:a),n&&n()},A=(t,e)=>{q(t,h),q(t,d),e&&e()},C=t=>(e,r)=>{const o=t?S:w,i=()=>E(e,t,r);o&&o(e,i),H(()=>{q(e,t?u:c),$(e,t?f:s),o&&o.length>1||G(e,n,m,i)})};return Object(o["h"])(v,{onBeforeEnter(t){y&&y(t),$(t,c),$(t,a)},onBeforeAppear(t){_&&_(t),$(t,u),$(t,l)},onEnter:C(!1),onAppear:C(!0),onLeave(t,e){const r=()=>A(t,e);$(t,p),J(),$(t,d),H(()=>{q(t,p),$(t,h),j&&j.length>1||G(t,n,g,r)}),j&&j(t,r)},onEnterCancelled(t){E(t,!1),O&&O(t)},onAppearCancelled(t){E(t,!0),k&&k(t)},onLeaveCancelled(t){A(t),x&&x(t)}})}function D(t){if(null==t)return null;if(Object(o["t"])(t))return[V(t.enter),V(t.leave)];{const e=V(t);return[e,e]}}function V(t){const e=Object(o["K"])(t);return e}function $(t,e){e.split(/\s+/).forEach(e=>e&&t.classList.add(e)),(t._vtc||(t._vtc=new Set)).add(e)}function q(t,e){e.split(/\s+/).forEach(e=>e&&t.classList.remove(e));const{_vtc:n}=t;n&&(n.delete(e),n.size||(t._vtc=void 0))}function H(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let W=0;function G(t,e,n,r){const o=t._endId=++W,i=()=>{o===t._endId&&r()};if(n)return setTimeout(i,n);const{type:c,timeout:a,propCount:s}=K(t,e);if(!c)return r();const u=c+"end";let l=0;const f=()=>{t.removeEventListener(u,p),i()},p=e=>{e.target===t&&++l>=s&&f()};setTimeout(()=>{l(n[t]||"").split(", "),o=r(F+"Delay"),i=r(F+"Duration"),c=Y(o,i),a=r(N+"Delay"),s=r(N+"Duration"),u=Y(a,s);let l=null,f=0,p=0;e===F?c>0&&(l=F,f=c,p=i.length):e===N?u>0&&(l=N,f=u,p=s.length):(f=Math.max(c,u),l=f>0?c>u?F:N:null,p=l?l===F?i.length:s.length:0);const d=l===F&&/\b(transform|all)(,|$)/.test(n[F+"Property"]);return{type:l,timeout:f,propCount:p,hasTransform:d}}function Y(t,e){while(t.lengthX(e)+X(t[n])))}function X(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}function J(){return document.body.offsetHeight}new WeakMap,new WeakMap;const Z=["ctrl","shift","alt","meta"],Q={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&0!==t.button,middle:t=>"button"in t&&1!==t.button,right:t=>"button"in t&&2!==t.button,exact:(t,e)=>Z.some(n=>t[n+"Key"]&&!e.includes(n))},tt=(t,e)=>(n,...r)=>{for(let t=0;t{nt(t,!1)}):nt(t,e))},beforeUnmount(t,{value:e}){nt(t,e)}};function nt(t,e){t.style.display=e?t._vod:"none"}const rt=Object(o["h"])({patchProp:R,forcePatchProp:I},u);let ot;function it(){return ot||(ot=Object(r["i"])(rt))}const ct=(...t)=>{const e=it().createApp(...t);const{mount:n}=e;return e.mount=t=>{const r=at(t);if(!r)return;const i=e._component;Object(o["n"])(i)||i.render||i.template||(i.template=r.innerHTML),r.innerHTML="";const c=n(r);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),c},e};function at(t){if(Object(o["A"])(t)){const e=document.querySelector(t);return e}return t}},"7b0b":function(t,e,n){var r=n("1d80");t.exports=function(t){return Object(r(t))}},"7c73":function(t,e,n){var r,o=n("825a"),i=n("37e8"),c=n("7839"),a=n("d012"),s=n("1be4"),u=n("cc12"),l=n("f772"),f=">",p="<",d="prototype",h="script",v=l("IE_PROTO"),b=function(){},m=function(t){return p+h+f+t+p+"/"+h+f},g=function(t){t.write(m("")),t.close();var e=t.parentWindow.Object;return t=null,e},y=function(){var t,e=u("iframe"),n="java"+h+":";return e.style.display="none",s.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(m("document.F=Object")),t.close(),t.F},w=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(e){}w=r?g(r):y();var t=c.length;while(t--)delete w[d][c[t]];return w()};a[v]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(b[d]=o(t),n=new b,b[d]=null,n[v]=t):n=w(),void 0===e?n:i(n,e)}},"7db0":function(t,e,n){"use strict";var r=n("23e7"),o=n("b727").find,i=n("44d2"),c="find",a=!0;c in[]&&Array(1)[c]((function(){a=!1})),r({target:"Array",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(c)},"7dd0":function(t,e,n){"use strict";var r=n("23e7"),o=n("9ed3"),i=n("e163"),c=n("d2bb"),a=n("d44e"),s=n("9112"),u=n("6eeb"),l=n("b622"),f=n("c430"),p=n("3f8c"),d=n("ae93"),h=d.IteratorPrototype,v=d.BUGGY_SAFARI_ITERATORS,b=l("iterator"),m="keys",g="values",y="entries",w=function(){return this};t.exports=function(t,e,n,l,d,O,j){o(n,e,l);var x,_,S,k=function(t){if(t===d&&L)return L;if(!v&&t in C)return C[t];switch(t){case m:return function(){return new n(this,t)};case g:return function(){return new n(this,t)};case y:return function(){return new n(this,t)}}return function(){return new n(this)}},E=e+" Iterator",A=!1,C=t.prototype,P=C[b]||C["@@iterator"]||d&&C[d],L=!v&&P||k(d),T="Array"==e&&C.entries||P;if(T&&(x=i(T.call(new t)),h!==Object.prototype&&x.next&&(f||i(x)===h||(c?c(x,h):"function"!=typeof x[b]&&s(x,b,w)),a(x,E,!0,!0),f&&(p[E]=w))),d==g&&P&&P.name!==g&&(A=!0,L=function(){return P.call(this)}),f&&!j||C[b]===L||s(C,b,L),p[e]=L,d)if(_={values:k(g),keys:O?L:k(m),entries:k(y)},j)for(S in _)(v||A||!(S in C))&&u(C,S,_[S]);else r({target:e,proto:!0,forced:v||A},_);return _}},"7f9a":function(t,e,n){var r=n("da84"),o=n("8925"),i=r.WeakMap;t.exports="function"===typeof i&&/native code/.test(o(i))},"825a":function(t,e,n){var r=n("861d");t.exports=function(t){if(!r(t))throw TypeError(String(t)+" is not an object");return t}},"83ab":function(t,e,n){var r=n("d039");t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8418:function(t,e,n){"use strict";var r=n("c04e"),o=n("9bf2"),i=n("5c6c");t.exports=function(t,e,n){var c=r(e);c in t?o.f(t,c,i(0,n)):t[c]=n}},"841c":function(t,e,n){"use strict";var r=n("d784"),o=n("825a"),i=n("1d80"),c=n("129f"),a=n("14c3");r("search",1,(function(t,e,n){return[function(e){var n=i(this),r=void 0==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),s=String(this),u=i.lastIndex;c(u,0)||(i.lastIndex=0);var l=a(i,s);return c(i.lastIndex,u)||(i.lastIndex=u),null===l?-1:l.index}]}))},"861d":function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},8925:function(t,e,n){var r=n("c6cd"),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},"8aa5":function(t,e,n){"use strict";var r=n("6547").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},"90e3":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},9112:function(t,e,n){var r=n("83ab"),o=n("9bf2"),i=n("5c6c");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9263:function(t,e,n){"use strict";var r=n("ad6d"),o=n("9f7f"),i=RegExp.prototype.exec,c=String.prototype.replace,a=i,s=function(){var t=/a/,e=/b*/g;return i.call(t,"a"),i.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),u=o.UNSUPPORTED_Y||o.BROKEN_CARET,l=void 0!==/()??/.exec("")[1],f=s||l||u;f&&(a=function(t){var e,n,o,a,f=this,p=u&&f.sticky,d=r.call(f),h=f.source,v=0,b=t;return p&&(d=d.replace("y",""),-1===d.indexOf("g")&&(d+="g"),b=String(t).slice(f.lastIndex),f.lastIndex>0&&(!f.multiline||f.multiline&&"\n"!==t[f.lastIndex-1])&&(h="(?: "+h+")",b=" "+b,v++),n=new RegExp("^(?:"+h+")",d)),l&&(n=new RegExp("^"+h+"$(?!\\s)",d)),s&&(e=f.lastIndex),o=i.call(p?n:f,b),p?o?(o.input=o.input.slice(v),o[0]=o[0].slice(v),o.index=f.lastIndex,f.lastIndex+=o[0].length):f.lastIndex=0:s&&o&&(f.lastIndex=f.global?o.index+o[0].length:e),l&&o&&o.length>1&&c.call(o[0],n,(function(){for(a=1;a0?arguments[0]:void 0,l=this,d=[];if(E(l,{type:S,entries:d,updateURL:function(){},updateSearchParams:B}),void 0!==u)if(b(u))if(t=w(u),"function"===typeof t){e=t.call(u),n=e.next;while(!(r=n.call(e)).done){if(o=y(v(r.value)),i=o.next,(c=i.call(o)).done||(a=i.call(o)).done||!i.call(o).done)throw TypeError("Expected sequence with length 2");d.push({key:c.value+"",value:a.value+""})}}else for(s in u)p(u,s)&&d.push({key:s,value:u[s]+""});else U(d,"string"===typeof u?"?"===u.charAt(0)?u.slice(1):u:u+"")},q=$.prototype;a(q,{append:function(t,e){D(arguments.length,2);var n=A(this);n.entries.push({key:t+"",value:e+""}),n.updateURL()},delete:function(t){D(arguments.length,1);var e=A(this),n=e.entries,r=t+"",o=0;while(ot.key){o.splice(e,0,t);break}e===n&&o.push(t)}r.updateURL()},forEach:function(t){var e,n=A(this).entries,r=d(t,arguments.length>1?arguments[1]:void 0,3),o=0;while(o1&&(e=arguments[1],b(e)&&(n=e.body,h(n)===S&&(r=e.headers?new x(e.headers):new x,r.has("content-type")||r.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),e=m(e,{body:g(0,String(n)),headers:g(0,r)}))),o.push(e)),j.apply(this,o)}}),t.exports={URLSearchParams:$,getState:A}},"9a1f":function(t,e,n){var r=n("825a"),o=n("35a1");t.exports=function(t){var e=o(t);if("function"!=typeof e)throw TypeError(String(t)+" is not iterable");return r(e.call(t))}},"9bdd":function(t,e,n){var r=n("825a"),o=n("2a62");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(c){throw o(t),c}}},"9bf2":function(t,e,n){var r=n("83ab"),o=n("0cfb"),i=n("825a"),c=n("c04e"),a=Object.defineProperty;e.f=r?a:function(t,e,n){if(i(t),e=c(e,!0),i(n),o)try{return a(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"9ed3":function(t,e,n){"use strict";var r=n("ae93").IteratorPrototype,o=n("7c73"),i=n("5c6c"),c=n("d44e"),a=n("3f8c"),s=function(){return this};t.exports=function(t,e,n){var u=e+" Iterator";return t.prototype=o(r,{next:i(1,n)}),c(t,u,!1,!0),a[u]=s,t}},"9f7f":function(t,e,n){"use strict";var r=n("d039");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=r((function(){var t=o("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},"9ff4":function(t,e,n){"use strict";(function(t){function r(t,e){const n=Object.create(null),r=t.split(",");for(let o=0;o!!n[t.toLowerCase()]:t=>!!n[t]}n.d(e,"a",(function(){return x})),n.d(e,"b",(function(){return j})),n.d(e,"c",(function(){return S})),n.d(e,"d",(function(){return _})),n.d(e,"e",(function(){return X})),n.d(e,"f",(function(){return Q})),n.d(e,"g",(function(){return rt})),n.d(e,"h",(function(){return C})),n.d(e,"i",(function(){return et})),n.d(e,"j",(function(){return T})),n.d(e,"k",(function(){return Z})),n.d(e,"l",(function(){return nt})),n.d(e,"m",(function(){return I})),n.d(e,"n",(function(){return N})),n.d(e,"o",(function(){return i})),n.d(e,"p",(function(){return v})),n.d(e,"q",(function(){return W})),n.d(e,"r",(function(){return R})),n.d(e,"s",(function(){return A})),n.d(e,"t",(function(){return B})),n.d(e,"u",(function(){return E})),n.d(e,"v",(function(){return D})),n.d(e,"w",(function(){return G})),n.d(e,"x",(function(){return b})),n.d(e,"y",(function(){return M})),n.d(e,"z",(function(){return a})),n.d(e,"A",(function(){return z})),n.d(e,"B",(function(){return U})),n.d(e,"C",(function(){return g})),n.d(e,"D",(function(){return y})),n.d(e,"E",(function(){return r})),n.d(e,"F",(function(){return p})),n.d(e,"G",(function(){return s})),n.d(e,"H",(function(){return P})),n.d(e,"I",(function(){return w})),n.d(e,"J",(function(){return tt})),n.d(e,"K",(function(){return ot})),n.d(e,"L",(function(){return q}));const o="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",i=r(o);const c="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",a=r(c);function s(t){if(I(t)){const e={};for(let n=0;n{if(t){const n=t.split(l);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function p(t){let e="";if(z(t))e=t;else if(I(t))for(let n=0;ng(t,e))}const w=t=>null==t?"":B(t)?JSON.stringify(t,O,2):String(t),O=(t,e)=>R(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[e,n])=>(t[e+" =>"]=n,t),{})}:M(e)?{[`Set(${e.size})`]:[...e.values()]}:!B(e)||I(e)||H(e)?e:String(e),j={},x=[],_=()=>{},S=()=>!1,k=/^on[^a-z]/,E=t=>k.test(t),A=t=>t.startsWith("onUpdate:"),C=Object.assign,P=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},L=Object.prototype.hasOwnProperty,T=(t,e)=>L.call(t,e),I=Array.isArray,R=t=>"[object Map]"===$(t),M=t=>"[object Set]"===$(t),F=t=>t instanceof Date,N=t=>"function"===typeof t,z=t=>"string"===typeof t,U=t=>"symbol"===typeof t,B=t=>null!==t&&"object"===typeof t,D=t=>B(t)&&N(t.then)&&N(t.catch),V=Object.prototype.toString,$=t=>V.call(t),q=t=>$(t).slice(8,-1),H=t=>"[object Object]"===$(t),W=t=>z(t)&&"NaN"!==t&&"-"!==t[0]&&""+parseInt(t,10)===t,G=r(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),K=t=>{const e=Object.create(null);return n=>{const r=e[n];return r||(e[n]=t(n))}},Y=/-(\w)/g,X=K(t=>t.replace(Y,(t,e)=>e?e.toUpperCase():"")),J=/\B([A-Z])/g,Z=K(t=>t.replace(J,"-$1").toLowerCase()),Q=K(t=>t.charAt(0).toUpperCase()+t.slice(1)),tt=K(t=>t?"on"+Q(t):""),et=(t,e)=>t!==e&&(t===t||e===e),nt=(t,e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:n})},ot=t=>{const e=parseFloat(t);return isNaN(e)?t:e}}).call(this,n("c8ba"))},a1e9:function(t,e,n){"use strict";n.d(e,"a",(function(){return Tt})),n.d(e,"b",(function(){return At})),n.d(e,"c",(function(){return l})),n.d(e,"d",(function(){return mt})),n.d(e,"e",(function(){return vt})),n.d(e,"f",(function(){return bt})),n.d(e,"g",(function(){return wt})),n.d(e,"h",(function(){return m})),n.d(e,"i",(function(){return kt})),n.d(e,"j",(function(){return ft})),n.d(e,"k",(function(){return dt})),n.d(e,"l",(function(){return Ot})),n.d(e,"m",(function(){return y})),n.d(e,"n",(function(){return pt})),n.d(e,"o",(function(){return f})),n.d(e,"p",(function(){return gt})),n.d(e,"q",(function(){return Pt})),n.d(e,"r",(function(){return w})),n.d(e,"s",(function(){return O})),n.d(e,"t",(function(){return _t}));var r=n("9ff4");const o=new WeakMap,i=[];let c;const a=Symbol(""),s=Symbol("");function u(t){return t&&!0===t._isEffect}function l(t,e=r["b"]){u(t)&&(t=t.raw);const n=d(t,e);return e.lazy||n(),n}function f(t){t.active&&(h(t),t.options.onStop&&t.options.onStop(),t.active=!1)}let p=0;function d(t,e){const n=function(){if(!n.active)return e.scheduler?void 0:t();if(!i.includes(n)){h(n);try{return g(),i.push(n),c=n,t()}finally{i.pop(),y(),c=i[i.length-1]}}};return n.id=p++,n.allowRecurse=!!e.allowRecurse,n._isEffect=!0,n.active=!0,n.raw=t,n.deps=[],n.options=e,n}function h(t){const{deps:e}=t;if(e.length){for(let n=0;n{t&&t.forEach(t=>{(t!==c||t.allowRecurse)&&p.add(t)})};if("clear"===e)f.forEach(d);else if("length"===n&&Object(r["m"])(t))f.forEach((t,e)=>{("length"===e||e>=i)&&d(t)});else switch(void 0!==n&&d(f.get(n)),e){case"add":Object(r["m"])(t)?Object(r["q"])(n)&&d(f.get("length")):(d(f.get(a)),Object(r["r"])(t)&&d(f.get(s)));break;case"delete":Object(r["m"])(t)||(d(f.get(a)),Object(r["r"])(t)&&d(f.get(s)));break;case"set":Object(r["r"])(t)&&d(f.get(a));break}const h=t=>{t.options.scheduler?t.options.scheduler(t):t()};p.forEach(h)}const j=Object(r["E"])("__proto__,__v_isRef,__isVue"),x=new Set(Object.getOwnPropertyNames(Symbol).map(t=>Symbol[t]).filter(r["B"])),_=C(),S=C(!1,!0),k=C(!0),E=C(!0,!0),A={};function C(t=!1,e=!1){return function(n,o,i){if("__v_isReactive"===o)return!t;if("__v_isReadonly"===o)return t;if("__v_raw"===o&&i===(t?st:at).get(n))return n;const c=Object(r["m"])(n);if(!t&&c&&Object(r["j"])(A,o))return Reflect.get(A,o,i);const a=Reflect.get(n,o,i);if(Object(r["B"])(o)?x.has(o):j(o))return a;if(t||w(n,"get",o),e)return a;if(wt(a)){const t=!c||!Object(r["q"])(o);return t?a.value:a}return Object(r["t"])(a)?t?dt(a):ft(a):a}}["includes","indexOf","lastIndexOf"].forEach(t=>{const e=Array.prototype[t];A[t]=function(...t){const n=gt(this);for(let e=0,o=this.length;e{const e=Array.prototype[t];A[t]=function(...t){m();const n=e.apply(this,t);return y(),n}});const P=T(),L=T(!0);function T(t=!1){return function(e,n,o,i){const c=e[n];if(!t&&(o=gt(o),!Object(r["m"])(e)&&wt(c)&&!wt(o)))return c.value=o,!0;const a=Object(r["m"])(e)&&Object(r["q"])(n)?Number(n)Object(r["t"])(t)?ft(t):t),B=t=>Object(r["t"])(t)?dt(t):t,D=t=>t,V=t=>Reflect.getPrototypeOf(t);function $(t,e,n=!1,r=!1){t=t["__v_raw"];const o=gt(t),i=gt(e);e!==i&&!n&&w(o,"get",e),!n&&w(o,"get",i);const{has:c}=V(o),a=n?B:r?D:U;return c.call(o,e)?a(t.get(e)):c.call(o,i)?a(t.get(i)):void 0}function q(t,e=!1){const n=this["__v_raw"],r=gt(n),o=gt(t);return t!==o&&!e&&w(r,"has",t),!e&&w(r,"has",o),t===o?n.has(t):n.has(t)||n.has(o)}function H(t,e=!1){return t=t["__v_raw"],!e&&w(gt(t),"iterate",a),Reflect.get(t,"size",t)}function W(t){t=gt(t);const e=gt(this),n=V(e),r=n.has.call(e,t);return r||(e.add(t),O(e,"add",t,t)),this}function G(t,e){e=gt(e);const n=gt(this),{has:o,get:i}=V(n);let c=o.call(n,t);c||(t=gt(t),c=o.call(n,t));const a=i.call(n,t);return n.set(t,e),c?Object(r["i"])(e,a)&&O(n,"set",t,e,a):O(n,"add",t,e),this}function K(t){const e=gt(this),{has:n,get:r}=V(e);let o=n.call(e,t);o||(t=gt(t),o=n.call(e,t));const i=r?r.call(e,t):void 0,c=e.delete(t);return o&&O(e,"delete",t,void 0,i),c}function Y(){const t=gt(this),e=0!==t.size,n=void 0,r=t.clear();return e&&O(t,"clear",void 0,void 0,n),r}function X(t,e){return function(n,r){const o=this,i=o["__v_raw"],c=gt(i),s=t?B:e?D:U;return!t&&w(c,"iterate",a),i.forEach((t,e)=>n.call(r,s(t),s(e),o))}}function J(t,e,n){return function(...o){const i=this["__v_raw"],c=gt(i),u=Object(r["r"])(c),l="entries"===t||t===Symbol.iterator&&u,f="keys"===t&&u,p=i[t](...o),d=e?B:n?D:U;return!e&&w(c,"iterate",f?s:a),{next(){const{value:t,done:e}=p.next();return e?{value:t,done:e}:{value:l?[d(t[0]),d(t[1])]:d(t),done:e}},[Symbol.iterator](){return this}}}}function Z(t){return function(...e){return"delete"!==t&&this}}const Q={get(t){return $(this,t)},get size(){return H(this)},has:q,add:W,set:G,delete:K,clear:Y,forEach:X(!1,!1)},tt={get(t){return $(this,t,!1,!0)},get size(){return H(this)},has:q,add:W,set:G,delete:K,clear:Y,forEach:X(!1,!0)},et={get(t){return $(this,t,!0)},get size(){return H(this,!0)},has(t){return q.call(this,t,!0)},add:Z("add"),set:Z("set"),delete:Z("delete"),clear:Z("clear"),forEach:X(!0,!1)},nt=["keys","values","entries",Symbol.iterator];function rt(t,e){const n=e?tt:t?et:Q;return(e,o,i)=>"__v_isReactive"===o?!t:"__v_isReadonly"===o?t:"__v_raw"===o?e:Reflect.get(Object(r["j"])(n,o)&&o in e?n:e,o,i)}nt.forEach(t=>{Q[t]=J(t,!1,!1),et[t]=J(t,!0,!1),tt[t]=J(t,!1,!0)});const ot={get:rt(!1,!1)},it={get:rt(!1,!0)},ct={get:rt(!0,!1)};const at=new WeakMap,st=new WeakMap;function ut(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function lt(t){return t["__v_skip"]||!Object.isExtensible(t)?0:ut(Object(r["L"])(t))}function ft(t){return t&&t["__v_isReadonly"]?t:ht(t,!1,F,ot)}function pt(t){return ht(t,!1,z,it)}function dt(t){return ht(t,!0,N,ct)}function ht(t,e,n,o){if(!Object(r["t"])(t))return t;if(t["__v_raw"]&&(!e||!t["__v_isReactive"]))return t;const i=e?st:at,c=i.get(t);if(c)return c;const a=lt(t);if(0===a)return t;const s=new Proxy(t,2===a?o:n);return i.set(t,s),s}function vt(t){return bt(t)?vt(t["__v_raw"]):!(!t||!t["__v_isReactive"])}function bt(t){return!(!t||!t["__v_isReadonly"])}function mt(t){return vt(t)||bt(t)}function gt(t){return t&>(t["__v_raw"])||t}const yt=t=>Object(r["t"])(t)?ft(t):t;function wt(t){return Boolean(t&&!0===t.__v_isRef)}function Ot(t){return xt(t)}class jt{constructor(t,e=!1){this._rawValue=t,this._shallow=e,this.__v_isRef=!0,this._value=e?t:yt(t)}get value(){return w(gt(this),"get","value"),this._value}set value(t){Object(r["i"])(gt(t),this._rawValue)&&(this._rawValue=t,this._value=this._shallow?t:yt(t),O(gt(this),"set","value",t))}}function xt(t,e=!1){return wt(t)?t:new jt(t,e)}function _t(t){return wt(t)?t.value:t}const St={get:(t,e,n)=>_t(Reflect.get(t,e,n)),set:(t,e,n,r)=>{const o=t[e];return wt(o)&&!wt(n)?(o.value=n,!0):Reflect.set(t,e,n,r)}};function kt(t){return vt(t)?t:new Proxy(t,St)}class Et{constructor(t){this.__v_isRef=!0;const{get:e,set:n}=t(()=>w(this,"get","value"),()=>O(this,"set","value"));this._get=e,this._set=n}get value(){return this._get()}set value(t){this._set(t)}}function At(t){return new Et(t)}class Ct{constructor(t,e){this._object=t,this._key=e,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(t){this._object[this._key]=t}}function Pt(t,e){return wt(t[e])?t[e]:new Ct(t,e)}class Lt{constructor(t,e,n){this._setter=e,this._dirty=!0,this.__v_isRef=!0,this.effect=l(t,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,O(gt(this),"set","value"))}}),this["__v_isReadonly"]=n}get value(){return this._dirty&&(this._value=this.effect(),this._dirty=!1),w(gt(this),"get","value"),this._value}set value(t){this._setter(t)}}function Tt(t){let e,n;return Object(r["n"])(t)?(e=t,n=r["d"]):(e=t.get,n=t.set),new Lt(e,n,Object(r["n"])(t)||!t.set)}},a4b4:function(t,e,n){var r=n("342f");t.exports=/web0s(?!.*chrome)/i.test(r)},a4d3:function(t,e,n){"use strict";var r=n("23e7"),o=n("da84"),i=n("d066"),c=n("c430"),a=n("83ab"),s=n("4930"),u=n("fdbf"),l=n("d039"),f=n("5135"),p=n("e8b5"),d=n("861d"),h=n("825a"),v=n("7b0b"),b=n("fc6a"),m=n("c04e"),g=n("5c6c"),y=n("7c73"),w=n("df75"),O=n("241c"),j=n("057f"),x=n("7418"),_=n("06cf"),S=n("9bf2"),k=n("d1e7"),E=n("9112"),A=n("6eeb"),C=n("5692"),P=n("f772"),L=n("d012"),T=n("90e3"),I=n("b622"),R=n("e538"),M=n("746f"),F=n("d44e"),N=n("69f3"),z=n("b727").forEach,U=P("hidden"),B="Symbol",D="prototype",V=I("toPrimitive"),$=N.set,q=N.getterFor(B),H=Object[D],W=o.Symbol,G=i("JSON","stringify"),K=_.f,Y=S.f,X=j.f,J=k.f,Z=C("symbols"),Q=C("op-symbols"),tt=C("string-to-symbol-registry"),et=C("symbol-to-string-registry"),nt=C("wks"),rt=o.QObject,ot=!rt||!rt[D]||!rt[D].findChild,it=a&&l((function(){return 7!=y(Y({},"a",{get:function(){return Y(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=K(H,e);r&&delete H[e],Y(t,e,n),r&&t!==H&&Y(H,e,r)}:Y,ct=function(t,e){var n=Z[t]=y(W[D]);return $(n,{type:B,tag:t,description:e}),a||(n.description=e),n},at=u?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof W},st=function(t,e,n){t===H&&st(Q,e,n),h(t);var r=m(e,!0);return h(n),f(Z,r)?(n.enumerable?(f(t,U)&&t[U][r]&&(t[U][r]=!1),n=y(n,{enumerable:g(0,!1)})):(f(t,U)||Y(t,U,g(1,{})),t[U][r]=!0),it(t,r,n)):Y(t,r,n)},ut=function(t,e){h(t);var n=b(e),r=w(n).concat(ht(n));return z(r,(function(e){a&&!ft.call(n,e)||st(t,e,n[e])})),t},lt=function(t,e){return void 0===e?y(t):ut(y(t),e)},ft=function(t){var e=m(t,!0),n=J.call(this,e);return!(this===H&&f(Z,e)&&!f(Q,e))&&(!(n||!f(this,e)||!f(Z,e)||f(this,U)&&this[U][e])||n)},pt=function(t,e){var n=b(t),r=m(e,!0);if(n!==H||!f(Z,r)||f(Q,r)){var o=K(n,r);return!o||!f(Z,r)||f(n,U)&&n[U][r]||(o.enumerable=!0),o}},dt=function(t){var e=X(b(t)),n=[];return z(e,(function(t){f(Z,t)||f(L,t)||n.push(t)})),n},ht=function(t){var e=t===H,n=X(e?Q:b(t)),r=[];return z(n,(function(t){!f(Z,t)||e&&!f(H,t)||r.push(Z[t])})),r};if(s||(W=function(){if(this instanceof W)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=T(t),n=function(t){this===H&&n.call(Q,t),f(this,U)&&f(this[U],e)&&(this[U][e]=!1),it(this,e,g(1,t))};return a&&ot&&it(H,e,{configurable:!0,set:n}),ct(e,t)},A(W[D],"toString",(function(){return q(this).tag})),A(W,"withoutSetter",(function(t){return ct(T(t),t)})),k.f=ft,S.f=st,_.f=pt,O.f=j.f=dt,x.f=ht,R.f=function(t){return ct(I(t),t)},a&&(Y(W[D],"description",{configurable:!0,get:function(){return q(this).description}}),c||A(H,"propertyIsEnumerable",ft,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!s,sham:!s},{Symbol:W}),z(w(nt),(function(t){M(t)})),r({target:B,stat:!0,forced:!s},{for:function(t){var e=String(t);if(f(tt,e))return tt[e];var n=W(e);return tt[e]=n,et[n]=e,n},keyFor:function(t){if(!at(t))throw TypeError(t+" is not a symbol");if(f(et,t))return et[t]},useSetter:function(){ot=!0},useSimple:function(){ot=!1}}),r({target:"Object",stat:!0,forced:!s,sham:!a},{create:lt,defineProperty:st,defineProperties:ut,getOwnPropertyDescriptor:pt}),r({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:dt,getOwnPropertySymbols:ht}),r({target:"Object",stat:!0,forced:l((function(){x.f(1)}))},{getOwnPropertySymbols:function(t){return x.f(v(t))}}),G){var vt=!s||l((function(){var t=W();return"[null]"!=G([t])||"{}"!=G({a:t})||"{}"!=G(Object(t))}));r({target:"JSON",stat:!0,forced:vt},{stringify:function(t,e,n){var r,o=[t],i=1;while(arguments.length>i)o.push(arguments[i++]);if(r=e,(d(e)||void 0!==t)&&!at(t))return p(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!at(e))return e}),o[1]=e,G.apply(null,o)}})}W[D][V]||E(W[D],V,W[D].valueOf),F(W,B),L[U]=!0},a691:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},a79d:function(t,e,n){"use strict";var r=n("23e7"),o=n("c430"),i=n("fea9"),c=n("d039"),a=n("d066"),s=n("4840"),u=n("cdf9"),l=n("6eeb"),f=!!i&&c((function(){i.prototype["finally"].call({then:function(){}},(function(){}))}));r({target:"Promise",proto:!0,real:!0,forced:f},{finally:function(t){var e=s(this,a("Promise")),n="function"==typeof t;return this.then(n?function(n){return u(e,t()).then((function(){return n}))}:t,n?function(n){return u(e,t()).then((function(){throw n}))}:t)}}),o||"function"!=typeof i||i.prototype["finally"]||l(i.prototype,"finally",a("Promise").prototype["finally"])},a9e3:function(t,e,n){"use strict";var r=n("83ab"),o=n("da84"),i=n("94ca"),c=n("6eeb"),a=n("5135"),s=n("c6b6"),u=n("7156"),l=n("c04e"),f=n("d039"),p=n("7c73"),d=n("241c").f,h=n("06cf").f,v=n("9bf2").f,b=n("58a8").trim,m="Number",g=o[m],y=g.prototype,w=s(p(y))==m,O=function(t){var e,n,r,o,i,c,a,s,u=l(t,!1);if("string"==typeof u&&u.length>2)if(u=b(u),e=u.charCodeAt(0),43===e||45===e){if(n=u.charCodeAt(2),88===n||120===n)return NaN}else if(48===e){switch(u.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+u}for(i=u.slice(2),c=i.length,a=0;ao)return NaN;return parseInt(i,r)}return+u};if(i(m,!g(" 0o1")||!g("0b1")||g("+0x1"))){for(var j,x=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof x&&(w?f((function(){y.valueOf.call(n)})):s(n)!=m)?u(new g(O(e)),n,x):O(e)},_=r?d(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),S=0;_.length>S;S++)a(g,j=_[S])&&!a(x,j)&&v(x,j,h(g,j));x.prototype=y,y.constructor=x,c(o,m,x)}},ac1f:function(t,e,n){"use strict";var r=n("23e7"),o=n("9263");r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},ad3d:function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return O}));var r=n("7a23"),o=n("ecee"),i="undefined"!==typeof window?window:"undefined"!==typeof t?t:"undefined"!==typeof self?self:{};function c(t,e){return e={exports:{}},t(e,e.exports),e.exports}var a=c((function(t){(function(e){var n=function(t,e,r){if(!u(e)||f(e)||p(e)||d(e)||s(e))return e;var o,i=0,c=0;if(l(e))for(o=[],c=e.length;i=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n},p=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"===typeof t)return t;var o=(t.children||[]).map((function(t){return v(t)})).map((function(t){return"string"===typeof t?t:t()})),i=Object.keys(t.attributes||{}).reduce((function(e,n){var r=t.attributes[n];switch(n){case"class":e.class=h(r);break;case"style":e.style=d(r);break;default:e.attrs[n]=r}return e}),{attrs:{},class:{},style:{}}),c=(n.class,n.style),a=void 0===c?{}:c,s=f(n,["class","style"]);return function(){return Object(r["l"])(t.tag,l({},e,{class:i.class,style:l({},i.style,a)},i.attrs,s),o)}}var b=!1;try{b=!0}catch(j){}function m(){var t;!b&&console&&"function"===typeof console.error&&(t=console).error.apply(t,arguments)}function g(t,e){return Array.isArray(e)&&e.length>0||!Array.isArray(e)&&e?u({},t,e):{}}function y(t){var e,n=(e={"fa-spin":t.spin,"fa-pulse":t.pulse,"fa-fw":t.fixedWidth,"fa-border":t.border,"fa-li":t.listItem,"fa-inverse":t.inverse,"fa-flip-horizontal":"horizontal"===t.flip||"both"===t.flip,"fa-flip-vertical":"vertical"===t.flip||"both"===t.flip},u(e,"fa-"+t.size,null!==t.size),u(e,"fa-rotate-"+t.rotation,null!==t.rotation),u(e,"fa-pull-"+t.pull,null!==t.pull),u(e,"fa-swap-opacity",t.swapOpacity),e);return Object.keys(n).map((function(t){return n[t]?t:null})).filter((function(t){return t}))}function w(t){return null===t?null:"object"===("undefined"===typeof t?"undefined":s(t))&&t.prefix&&t.iconName?t:Array.isArray(t)&&2===t.length?{prefix:t[0],iconName:t[1]}:"string"===typeof t?{prefix:"fas",iconName:t}:void 0}var O=Object(r["k"])({name:"FontAwesomeIcon",props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:String,default:null,validator:function(t){return["horizontal","vertical","both"].indexOf(t)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(t){return["right","left"].indexOf(t)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(t){return[90,180,270].indexOf(Number.parseInt(t,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(t){return["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(t)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},inverse:{type:Boolean,default:!1}},setup:function(t,e){var n=e.attrs,r=t.symbol,i=t.title,c=w(t.icon),a=g("classes",y(t)),s=g("transform","string"===typeof t.transform?o["d"].transform(t.transform):t.transform),u=g("mask",w(t.mask)),f=Object(o["b"])(c,l({},a,s,u,{symbol:r,title:i}));if(!f)return m("Could not find one or more icon(s)",c,u);var p=f.abstract[0];return v(p,{},n)}});Object(r["k"])({name:"FontAwesomeLayers",props:{fixedWidth:{type:Boolean,default:!1}},setup:function(t,e){var n=e.slots,i=o["a"].familyPrefix,c=[i+"-layers"].concat(p(t.fixedWidth?[i+"-fw"]:[]));return function(){return Object(r["l"])("div",{class:c},n.default?n.default():[])}}}),Object(r["k"])({name:"FontAwesomeLayersText",props:{value:{type:[String,Number],default:""},transform:{type:[String,Object],default:null},counter:{type:Boolean,default:!1},position:{type:String,default:null,validator:function(t){return["bottom-left","bottom-right","top-left","top-right"].indexOf(t)>-1}}},setup:function(t,e){var n=e.attrs,r=o["a"].familyPrefix,i=g("classes",[].concat(p(t.counter?[r+"-layers-counter"]:[]),p(t.position?[r+"-layers-"+t.position]:[]))),c=g("transform","string"===typeof t.transform?o["d"].transform(t.transform):t.transform),a=Object(o["e"])(t.value.toString(),l({},c,i)),s=a.abstract;return t.counter&&(s[0].attributes.class=s[0].attributes.class.replace("fa-layers-text","")),v(s[0],{},n)}})}).call(this,n("c8ba"))},ad6d:function(t,e,n){"use strict";var r=n("825a");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},ae93:function(t,e,n){"use strict";var r,o,i,c=n("d039"),a=n("e163"),s=n("9112"),u=n("5135"),l=n("b622"),f=n("c430"),p=l("iterator"),d=!1,h=function(){return this};[].keys&&(i=[].keys(),"next"in i?(o=a(a(i)),o!==Object.prototype&&(r=o)):d=!0);var v=void 0==r||c((function(){var t={};return r[p].call(t)!==t}));v&&(r={}),f&&!v||u(r,p)||s(r,p,h),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:d}},b041:function(t,e,n){"use strict";var r=n("00ee"),o=n("f5df");t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},b0c0:function(t,e,n){var r=n("83ab"),o=n("9bf2").f,i=Function.prototype,c=i.toString,a=/^\s*function ([^ (]*)/,s="name";r&&!(s in i)&&o(i,s,{configurable:!0,get:function(){try{return c.call(this).match(a)[1]}catch(t){return""}}})},b575:function(t,e,n){var r,o,i,c,a,s,u,l,f=n("da84"),p=n("06cf").f,d=n("2cf4").set,h=n("1cdc"),v=n("a4b4"),b=n("605d"),m=f.MutationObserver||f.WebKitMutationObserver,g=f.document,y=f.process,w=f.Promise,O=p(f,"queueMicrotask"),j=O&&O.value;j||(r=function(){var t,e;b&&(t=y.domain)&&t.exit();while(o){e=o.fn,o=o.next;try{e()}catch(n){throw o?c():i=void 0,n}}i=void 0,t&&t.enter()},h||b||v||!m||!g?w&&w.resolve?(u=w.resolve(void 0),l=u.then,c=function(){l.call(u,r)}):c=b?function(){y.nextTick(r)}:function(){d.call(f,r)}:(a=!0,s=g.createTextNode(""),new m(r).observe(s,{characterData:!0}),c=function(){s.data=a=!a})),t.exports=j||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,c()),i=e}},b622:function(t,e,n){var r=n("da84"),o=n("5692"),i=n("5135"),c=n("90e3"),a=n("4930"),s=n("fdbf"),u=o("wks"),l=r.Symbol,f=s?l:l&&l.withoutSetter||c;t.exports=function(t){return i(u,t)&&(a||"string"==typeof u[t])||(a&&i(l,t)?u[t]=l[t]:u[t]=f("Symbol."+t)),u[t]}},b727:function(t,e,n){var r=n("0366"),o=n("44ad"),i=n("7b0b"),c=n("50c4"),a=n("65f0"),s=[].push,u=function(t){var e=1==t,n=2==t,u=3==t,l=4==t,f=6==t,p=7==t,d=5==t||f;return function(h,v,b,m){for(var g,y,w=i(h),O=o(w),j=r(v,b,3),x=c(O.length),_=0,S=m||a,k=e?S(h,x):n||p?S(h,0):void 0;x>_;_++)if((d||_ in O)&&(g=O[_],y=j(g,_,w),t))if(e)k[_]=y;else if(y)switch(t){case 3:return!0;case 5:return g;case 6:return _;case 2:s.call(k,g)}else switch(t){case 4:return!1;case 7:s.call(k,g)}return f?-1:u||l?l:k}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},c04e:function(t,e,n){var r=n("861d");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},c074:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return i})); -/*! - * Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -var r={prefix:"fas",iconName:"book",icon:[448,512,[],"f02d","M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"]},o={prefix:"fas",iconName:"rocket",icon:[512,512,[],"f135","M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z"]},i={prefix:"fas",iconName:"sign-in-alt",icon:[512,512,[],"f2f6","M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"]}},c430:function(t,e){t.exports=!1},c6b6:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},c6cd:function(t,e,n){var r=n("da84"),o=n("ce4e"),i="__core-js_shared__",c=r[i]||o(i,{});t.exports=c},c740:function(t,e,n){"use strict";var r=n("23e7"),o=n("b727").findIndex,i=n("44d2"),c="findIndex",a=!0;c in[]&&Array(1)[c]((function(){a=!1})),r({target:"Array",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(c)},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},ca84:function(t,e,n){var r=n("5135"),o=n("fc6a"),i=n("4d64").indexOf,c=n("d012");t.exports=function(t,e){var n,a=o(t),s=0,u=[];for(n in a)!r(c,n)&&r(a,n)&&u.push(n);while(e.length>s)r(a,n=e[s++])&&(~i(u,n)||u.push(n));return u}},cc12:function(t,e,n){var r=n("da84"),o=n("861d"),i=r.document,c=o(i)&&o(i.createElement);t.exports=function(t){return c?i.createElement(t):{}}},cca6:function(t,e,n){var r=n("23e7"),o=n("60da");r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},cdf9:function(t,e,n){var r=n("825a"),o=n("861d"),i=n("f069");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t),c=n.resolve;return c(e),n.promise}},ce4e:function(t,e,n){var r=n("da84"),o=n("9112");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},d012:function(t,e){t.exports={}},d039:function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},d066:function(t,e,n){var r=n("428f"),o=n("da84"),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},d1e7:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},d2bb:function(t,e,n){var r=n("825a"),o=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},d3b7:function(t,e,n){var r=n("00ee"),o=n("6eeb"),i=n("b041");r||o(Object.prototype,"toString",i,{unsafe:!0})},d44e:function(t,e,n){var r=n("9bf2").f,o=n("5135"),i=n("b622"),c=i("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,c)&&r(t,c,{configurable:!0,value:e})}},d784:function(t,e,n){"use strict";n("ac1f");var r=n("6eeb"),o=n("d039"),i=n("b622"),c=n("9263"),a=n("9112"),s=i("species"),u=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),l=function(){return"$0"==="a".replace(/./,"$0")}(),f=i("replace"),p=function(){return!!/./[f]&&""===/./[f]("a","$0")}(),d=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));t.exports=function(t,e,n,f){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=""[t](e)})),b=v&&!o((function(){var e=!1,n=/a/;return"split"===t&&(n={},n.constructor={},n.constructor[s]=function(){return n},n.flags="",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](""),!e}));if(!v||!b||"replace"===t&&(!u||!l||p)||"split"===t&&!d){var m=/./[h],g=n(h,""[t],(function(t,e,n,r,o){return e.exec===c?v&&!o?{done:!0,value:m.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:l,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:p}),y=g[0],w=g[1];r(String.prototype,t,y),r(RegExp.prototype,h,2==e?function(t,e){return w.call(t,this,e)}:function(t){return w.call(t,this)})}f&&a(RegExp.prototype[h],"sham",!0)}},da84:function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")()}).call(this,n("c8ba"))},ddb0:function(t,e,n){var r=n("da84"),o=n("fdbc"),i=n("e260"),c=n("9112"),a=n("b622"),s=a("iterator"),u=a("toStringTag"),l=i.values;for(var f in o){var p=r[f],d=p&&p.prototype;if(d){if(d[s]!==l)try{c(d,s,l)}catch(v){d[s]=l}if(d[u]||c(d,u,f),o[f])for(var h in i)if(d[h]!==i[h])try{c(d,h,i[h])}catch(v){d[h]=i[h]}}}},df75:function(t,e,n){var r=n("ca84"),o=n("7839");t.exports=Object.keys||function(t){return r(t,o)}},e01a:function(t,e,n){"use strict";var r=n("23e7"),o=n("83ab"),i=n("da84"),c=n("5135"),a=n("861d"),s=n("9bf2").f,u=n("e893"),l=i.Symbol;if(o&&"function"==typeof l&&(!("description"in l.prototype)||void 0!==l().description)){var f={},p=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof p?new l(t):void 0===t?l():l(t);return""===t&&(f[e]=!0),e};u(p,l);var d=p.prototype=l.prototype;d.constructor=p;var h=d.toString,v="Symbol(test)"==String(l("test")),b=/^Symbol\((.*)\)[^)]+$/;s(d,"description",{configurable:!0,get:function(){var t=a(this)?this.valueOf():this,e=h.call(t);if(c(f,t))return"";var n=v?e.slice(7,-1):e.replace(b,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},e163:function(t,e,n){var r=n("5135"),o=n("7b0b"),i=n("f772"),c=n("e177"),a=i("IE_PROTO"),s=Object.prototype;t.exports=c?Object.getPrototypeOf:function(t){return t=o(t),r(t,a)?t[a]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},e177:function(t,e,n){var r=n("d039");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},e260:function(t,e,n){"use strict";var r=n("fc6a"),o=n("44d2"),i=n("3f8c"),c=n("69f3"),a=n("7dd0"),s="Array Iterator",u=c.set,l=c.getterFor(s);t.exports=a(Array,"Array",(function(t,e){u(this,{type:s,target:r(t),index:0,kind:e})}),(function(){var t=l(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},e2cc:function(t,e,n){var r=n("6eeb");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},e538:function(t,e,n){var r=n("b622");e.f=r},e667:function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},e6cf:function(t,e,n){"use strict";var r,o,i,c,a=n("23e7"),s=n("c430"),u=n("da84"),l=n("d066"),f=n("fea9"),p=n("6eeb"),d=n("e2cc"),h=n("d44e"),v=n("2626"),b=n("861d"),m=n("1c0b"),g=n("19aa"),y=n("8925"),w=n("2266"),O=n("1c7e"),j=n("4840"),x=n("2cf4").set,_=n("b575"),S=n("cdf9"),k=n("44de"),E=n("f069"),A=n("e667"),C=n("69f3"),P=n("94ca"),L=n("b622"),T=n("605d"),I=n("2d00"),R=L("species"),M="Promise",F=C.get,N=C.set,z=C.getterFor(M),U=f,B=u.TypeError,D=u.document,V=u.process,$=l("fetch"),q=E.f,H=q,W=!!(D&&D.createEvent&&u.dispatchEvent),G="function"==typeof PromiseRejectionEvent,K="unhandledrejection",Y="rejectionhandled",X=0,J=1,Z=2,Q=1,tt=2,et=P(M,(function(){var t=y(U)!==String(U);if(!t){if(66===I)return!0;if(!T&&!G)return!0}if(s&&!U.prototype["finally"])return!0;if(I>=51&&/native code/.test(U))return!1;var e=U.resolve(1),n=function(t){t((function(){}),(function(){}))},r=e.constructor={};return r[R]=n,!(e.then((function(){}))instanceof n)})),nt=et||!O((function(t){U.all(t)["catch"]((function(){}))})),rt=function(t){var e;return!(!b(t)||"function"!=typeof(e=t.then))&&e},ot=function(t,e){if(!t.notified){t.notified=!0;var n=t.reactions;_((function(){var r=t.value,o=t.state==J,i=0;while(n.length>i){var c,a,s,u=n[i++],l=o?u.ok:u.fail,f=u.resolve,p=u.reject,d=u.domain;try{l?(o||(t.rejection===tt&&st(t),t.rejection=Q),!0===l?c=r:(d&&d.enter(),c=l(r),d&&(d.exit(),s=!0)),c===u.promise?p(B("Promise-chain cycle")):(a=rt(c))?a.call(c,f,p):f(c)):p(r)}catch(h){d&&!s&&d.exit(),p(h)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&ct(t)}))}},it=function(t,e,n){var r,o;W?(r=D.createEvent("Event"),r.promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},!G&&(o=u["on"+t])?o(r):t===K&&k("Unhandled promise rejection",n)},ct=function(t){x.call(u,(function(){var e,n=t.facade,r=t.value,o=at(t);if(o&&(e=A((function(){T?V.emit("unhandledRejection",r,n):it(K,n,r)})),t.rejection=T||at(t)?tt:Q,e.error))throw e.value}))},at=function(t){return t.rejection!==Q&&!t.parent},st=function(t){x.call(u,(function(){var e=t.facade;T?V.emit("rejectionHandled",e):it(Y,e,t.value)}))},ut=function(t,e,n){return function(r){t(e,r,n)}},lt=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=Z,ot(t,!0))},ft=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw B("Promise can't be resolved itself");var r=rt(e);r?_((function(){var n={done:!1};try{r.call(e,ut(ft,n,t),ut(lt,n,t))}catch(o){lt(n,o,t)}})):(t.value=e,t.state=J,ot(t,!1))}catch(o){lt({done:!1},o,t)}}};et&&(U=function(t){g(this,U,M),m(t),r.call(this);var e=F(this);try{t(ut(ft,e),ut(lt,e))}catch(n){lt(e,n)}},r=function(t){N(this,{type:M,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:X,value:void 0})},r.prototype=d(U.prototype,{then:function(t,e){var n=z(this),r=q(j(this,U));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=T?V.domain:void 0,n.parent=!0,n.reactions.push(r),n.state!=X&&ot(n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=F(t);this.promise=t,this.resolve=ut(ft,e),this.reject=ut(lt,e)},E.f=q=function(t){return t===U||t===i?new o(t):H(t)},s||"function"!=typeof f||(c=f.prototype.then,p(f.prototype,"then",(function(t,e){var n=this;return new U((function(t,e){c.call(n,t,e)})).then(t,e)}),{unsafe:!0}),"function"==typeof $&&a({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return S(U,$.apply(u,arguments))}}))),a({global:!0,wrap:!0,forced:et},{Promise:U}),h(U,M,!1,!0),v(M),i=l(M),a({target:M,stat:!0,forced:et},{reject:function(t){var e=q(this);return e.reject.call(void 0,t),e.promise}}),a({target:M,stat:!0,forced:s||et},{resolve:function(t){return S(s&&this===i?U:this,t)}}),a({target:M,stat:!0,forced:nt},{all:function(t){var e=this,n=q(e),r=n.resolve,o=n.reject,i=A((function(){var n=m(e.resolve),i=[],c=0,a=1;w(t,(function(t){var s=c++,u=!1;i.push(void 0),a++,n.call(e,t).then((function(t){u||(u=!0,i[s]=t,--a||r(i))}),o)})),--a||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=q(e),r=n.reject,o=A((function(){var o=m(e.resolve);w(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},e893:function(t,e,n){var r=n("5135"),o=n("56ef"),i=n("06cf"),c=n("9bf2");t.exports=function(t,e){for(var n=o(e),a=c.f,s=i.f,u=0;u-1;o--){var i=n[o],c=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(c)>-1&&(r=i)}return S.head.insertBefore(e,r),t}}var wt="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function Ot(){var t=12,e="";while(t-- >0)e+=wt[62*Math.random()|0];return e}function jt(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function xt(t){return Object.keys(t||{}).reduce((function(e,n){return e+"".concat(n,'="').concat(jt(t[n]),'" ')}),"").trim()}function _t(t){return Object.keys(t||{}).reduce((function(e,n){return e+"".concat(n,": ").concat(t[n],";")}),"")}function St(t){return t.size!==gt.size||t.x!==gt.x||t.y!==gt.y||t.rotate!==gt.rotate||t.flipX||t.flipY}function kt(t){var e=t.transform,n=t.containerWidth,r=t.iconWidth,o={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(32*e.x,", ").concat(32*e.y,") "),c="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),a="rotate(".concat(e.rotate," 0 0)"),s={transform:"".concat(i," ").concat(c," ").concat(a)},u={transform:"translate(".concat(r/2*-1," -256)")};return{outer:o,inner:s,path:u}}function Et(t){var e=t.transform,n=t.width,r=void 0===n?P:n,o=t.height,i=void 0===o?P:o,c=t.startCentered,a=void 0!==c&&c,s="";return s+=a&&A?"translate(".concat(e.x/mt-r/2,"em, ").concat(e.y/mt-i/2,"em) "):a?"translate(calc(-50% + ".concat(e.x/mt,"em), calc(-50% + ").concat(e.y/mt,"em)) "):"translate(".concat(e.x/mt,"em, ").concat(e.y/mt,"em) "),s+="scale(".concat(e.size/mt*(e.flipX?-1:1),", ").concat(e.size/mt*(e.flipY?-1:1),") "),s+="rotate(".concat(e.rotate,"deg) "),s}var At={x:0,y:0,width:"100%",height:"100%"};function Ct(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function Pt(t){return"g"===t.tag?t.children:[t]}function Lt(t){var e=t.children,n=t.attributes,r=t.main,o=t.mask,i=t.maskId,c=t.transform,a=r.width,u=r.icon,l=o.width,f=o.icon,p=kt({transform:c,containerWidth:l,iconWidth:a}),d={tag:"rect",attributes:s({},At,{fill:"white"})},h=u.children?{children:u.children.map(Ct)}:{},v={tag:"g",attributes:s({},p.inner),children:[Ct(s({tag:u.tag,attributes:s({},u.attributes,p.path)},h))]},b={tag:"g",attributes:s({},p.outer),children:[v]},m="mask-".concat(i||Ot()),g="clip-".concat(i||Ot()),y={tag:"mask",attributes:s({},At,{id:m,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[d,b]},w={tag:"defs",children:[{tag:"clipPath",attributes:{id:g},children:Pt(f)},y]};return e.push(w,{tag:"rect",attributes:s({fill:"currentColor","clip-path":"url(#".concat(g,")"),mask:"url(#".concat(m,")")},At)}),{children:e,attributes:n}}function Tt(t){var e=t.children,n=t.attributes,r=t.main,o=t.transform,i=t.styles,c=_t(i);if(c.length>0&&(n["style"]=c),St(o)){var a=kt({transform:o,containerWidth:r.width,iconWidth:r.width});e.push({tag:"g",attributes:s({},a.outer),children:[{tag:"g",attributes:s({},a.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:s({},r.icon.attributes,a.path)}]}]})}else e.push(r.icon);return{children:e,attributes:n}}function It(t){var e=t.children,n=t.main,r=t.mask,o=t.attributes,i=t.styles,c=t.transform;if(St(c)&&n.found&&!r.found){var a=n.width,u=n.height,l={x:a/u/2,y:.5};o["style"]=_t(s({},i,{"transform-origin":"".concat(l.x+c.x/16,"em ").concat(l.y+c.y/16,"em")}))}return[{tag:"svg",attributes:o,children:e}]}function Rt(t){var e=t.prefix,n=t.iconName,r=t.children,o=t.attributes,i=t.symbol,c=!0===i?"".concat(e,"-").concat($.familyPrefix,"-").concat(n):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:s({},o,{id:c}),children:r}]}]}function Mt(t){var e=t.icons,n=e.main,r=e.mask,o=t.prefix,i=t.iconName,c=t.transform,a=t.symbol,u=t.title,l=t.maskId,f=t.titleId,p=t.extra,d=t.watchable,h=void 0!==d&&d,v=r.found?r:n,b=v.width,m=v.height,g="fak"===o,y=g?"":"fa-w-".concat(Math.ceil(b/m*16)),w=[$.replacementClass,i?"".concat($.familyPrefix,"-").concat(i):"",y].filter((function(t){return-1===p.classes.indexOf(t)})).filter((function(t){return""!==t||!!t})).concat(p.classes).join(" "),O={children:[],attributes:s({},p.attributes,{"data-prefix":o,"data-icon":i,class:w,role:p.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(b," ").concat(m)})},j=g&&!~p.classes.indexOf("fa-fw")?{width:"".concat(b/m*16*.0625,"em")}:{};h&&(O.attributes[I]=""),u&&O.children.push({tag:"title",attributes:{id:O.attributes["aria-labelledby"]||"title-".concat(f||Ot())},children:[u]});var x=s({},O,{prefix:o,iconName:i,main:n,mask:r,maskId:l,transform:c,symbol:a,styles:s({},j,p.styles)}),_=r.found&&n.found?Lt(x):Tt(x),S=_.children,k=_.attributes;return x.children=S,x.attributes=k,a?Rt(x):It(x)}function Ft(t){var e=t.content,n=t.width,r=t.height,o=t.transform,i=t.title,c=t.extra,a=t.watchable,u=void 0!==a&&a,l=s({},c.attributes,i?{title:i}:{},{class:c.classes.join(" ")});u&&(l[I]="");var f=s({},c.styles);St(o)&&(f["transform"]=Et({transform:o,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f["transform"]);var p=_t(f);p.length>0&&(l["style"]=p);var d=[];return d.push({tag:"span",attributes:l,children:[e]}),i&&d.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),d}var Nt=function(){},zt=($.measurePerformance&&k&&k.mark&&k.measure,function(t,e){return function(n,r,o,i){return t.call(e,n,r,o,i)}}),Ut=function(t,e,n,r){var o,i,c,a=Object.keys(t),s=a.length,u=void 0!==r?zt(e,r):e;for(void 0===n?(o=1,c=t[a[0]]):(o=0,c=n);o2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,o=void 0!==r&&r,i=Object.keys(e).reduce((function(t,n){var r=e[n],o=!!r.icon;return o?t[r.iconName]=r.icon:t[n]=r,t}),{});"function"!==typeof H.hooks.addPack||o?H.styles[t]=s({},H.styles[t]||{},i):H.hooks.addPack(t,i),"fas"===t&&Bt("fa",e)}var Dt=H.styles,Vt=H.shims,$t=function(){var t=function(t){return Ut(Dt,(function(e,n,r){return e[r]=Ut(n,t,{}),e}),{})};t((function(t,e,n){return e[3]&&(t[e[3]]=n),t})),t((function(t,e,n){var r=e[2];return t[n]=n,r.forEach((function(e){t[e]=n})),t}));var e="far"in Dt;Ut(Vt,(function(t,n){var r=n[0],o=n[1],i=n[2];return"far"!==o||e||(o="fas"),t[r]={prefix:o,iconName:i},t}),{})};$t();H.styles;function qt(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}function Ht(t){var e=t.tag,n=t.attributes,r=void 0===n?{}:n,o=t.children,i=void 0===o?[]:o;return"string"===typeof t?jt(t):"<".concat(e," ").concat(xt(r),">").concat(i.map(Ht).join(""),"")}var Wt=function(t){var e={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return t?t.toLowerCase().split(" ").reduce((function(t,e){var n=e.toLowerCase().split("-"),r=n[0],o=n.slice(1).join("-");if(r&&"h"===o)return t.flipX=!0,t;if(r&&"v"===o)return t.flipY=!0,t;if(o=parseFloat(o),isNaN(o))return t;switch(r){case"grow":t.size=t.size+o;break;case"shrink":t.size=t.size-o;break;case"left":t.x=t.x-o;break;case"right":t.x=t.x+o;break;case"up":t.y=t.y-o;break;case"down":t.y=t.y+o;break;case"rotate":t.rotate=t.rotate+o;break}return t}),e):e};function Gt(t){this.name="MissingIcon",this.message=t||"Icon unavailable",this.stack=(new Error).stack}Gt.prototype=Object.create(Error.prototype),Gt.prototype.constructor=Gt;var Kt={fill:"currentColor"},Yt={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},Xt=(s({},Kt,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}),s({},Yt,{attributeName:"opacity"}));s({},Kt,{cx:"256",cy:"364",r:"28"}),s({},Yt,{attributeName:"r",values:"28;14;28;28;14;28;"}),s({},Xt,{values:"1;0;1;1;0;1;"}),s({},Kt,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),s({},Xt,{values:"1;0;0;0;0;1;"}),s({},Kt,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),s({},Xt,{values:"0;0;1;1;0;0;"}),H.styles;function Jt(t){var e=t[0],n=t[1],r=t.slice(4),o=u(r,1),i=o[0],c=null;return c=Array.isArray(i)?{tag:"g",attributes:{class:"".concat($.familyPrefix,"-").concat(F.GROUP)},children:[{tag:"path",attributes:{class:"".concat($.familyPrefix,"-").concat(F.SECONDARY),fill:"currentColor",d:i[0]}},{tag:"path",attributes:{class:"".concat($.familyPrefix,"-").concat(F.PRIMARY),fill:"currentColor",d:i[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:i}},{found:!0,width:e,height:n,icon:c}}H.styles;var Zt='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';function Qt(){var t=L,e=T,n=$.familyPrefix,r=$.replacementClass,o=Zt;if(n!==t||r!==e){var i=new RegExp("\\.".concat(t,"\\-"),"g"),c=new RegExp("\\--".concat(t,"\\-"),"g"),a=new RegExp("\\.".concat(e),"g");o=o.replace(i,".".concat(n,"-")).replace(c,"--".concat(n,"-")).replace(a,".".concat(r))}return o}var te=function(){function t(){o(this,t),this.definitions={}}return c(t,[{key:"add",value:function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},r=(e||{}).icon?e:re(e||{}),o=n.mask;return o&&(o=(o||{}).icon?o:re(o||{})),t(r,s({},n,{mask:o}))}}var ie=new te,ce=!1,ae={transform:function(t){return Wt(t)}},se=oe((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.transform,r=void 0===n?gt:n,o=e.symbol,i=void 0!==o&&o,c=e.mask,a=void 0===c?null:c,u=e.maskId,l=void 0===u?null:u,f=e.title,p=void 0===f?null:f,d=e.titleId,h=void 0===d?null:d,v=e.classes,b=void 0===v?[]:v,m=e.attributes,g=void 0===m?{}:m,y=e.styles,w=void 0===y?{}:y;if(t){var O=t.prefix,j=t.iconName,x=t.icon;return ne(s({type:"icon"},t),(function(){return ee(),$.autoA11y&&(p?g["aria-labelledby"]="".concat($.replacementClass,"-title-").concat(h||Ot()):(g["aria-hidden"]="true",g["focusable"]="false")),Mt({icons:{main:Jt(x),mask:a?Jt(a.icon):{found:!1,width:null,height:null,icon:{}}},prefix:O,iconName:j,transform:s({},gt,r),symbol:i,title:p,maskId:l,titleId:h,extra:{attributes:g,styles:w,classes:b}})}))}})),ue=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.transform,r=void 0===n?gt:n,o=e.title,i=void 0===o?null:o,c=e.classes,a=void 0===c?[]:c,u=e.attributes,f=void 0===u?{}:u,p=e.styles,d=void 0===p?{}:p;return ne({type:"text",content:t},(function(){return ee(),Ft({content:t,transform:s({},gt,r),title:i,extra:{attributes:f,styles:d,classes:["".concat($.familyPrefix,"-layers-text")].concat(l(a))}})}))}}).call(this,n("c8ba"))},f069:function(t,e,n){"use strict";var r=n("1c0b"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},f2d1:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o})); -/*! - * Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -var r={prefix:"fab",iconName:"github",icon:[496,512,[],"f09b","M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"]},o={prefix:"fab",iconName:"gitter",icon:[384,512,[],"f426","M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"]}},f5df:function(t,e,n){var r=n("00ee"),o=n("c6b6"),i=n("b622"),c=i("toStringTag"),a="Arguments"==o(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(n){}};t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),c))?n:a?o(e):"Object"==(r=o(e))&&"function"==typeof e.callee?"Arguments":r}},f772:function(t,e,n){var r=n("5692"),o=n("90e3"),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},f947:function(t,e,n){"use strict";n.d(e,"a",(function(){return _})),n.d(e,"b",(function(){return g}));var r=n("a1e9"),o=n("5c40");function i(t){return Object(r["g"])(t)?t:Object(r["l"])(t)}Array.isArray;const c=t=>"boolean"===typeof t,a=t=>"number"===typeof t,s=t=>null!==t&&"object"===typeof t,u=t=>s(t)&&!!t.tagName;const l=()=>{},f={passive:!0};function p(t){return new Promise(e=>{setTimeout(e,t)})}const d="undefined"!=typeof window;function h(t,e,n,r){let c=l;if(t){const a=i(t),s=t=>t.removeEventListener(e,n),u=t=>t.addEventListener(e,n,r),l=Object(o["M"])(a,(t,e,n)=>{t&&(u(t),n(()=>s(t)))},{immediate:!0});c=()=>{s(a.value),l()}}return c}function v(t,e,n){return b(t,e,n)}function b(t,e=50,n={isImmediate:!1}){let r;return function(...o){const i=this,c=function(){r=void 0,n.isImmediate||t.apply(i,o)},a=n.isImmediate&&void 0===r;void 0!==r&&clearTimeout(r),r=setTimeout(c,e),a&&t.apply(i,o)}}const m=["scrollBy","scrollTo","scrollIntoView"];function g(t,e,n){const s=t=>!(a(t)||c(t)||!u(t)&&!Object(r["g"])(t)||!t),l=s(t)?i(t):Object(r["l"])(d&&window||void 0),p=s(t)?l:Object(r["l"])(d&&window.document.scrollingElement||void 0),b=Object(r["l"])(p.value&&p.value.scrollTop||0),g=Object(r["l"])(p.value&&p.value.scrollLeft||0);let y=()=>{b.value=p.value.scrollTop,g.value=p.value.scrollLeft};const w=m.reduce((t,e)=>(t[e]=(...t)=>p.value&&p.value[e]&&p.value[e].apply(p.value,t),t),{}),O=t=>w.scrollTo({top:t}),j=t=>w.scrollTo({left:t}),[x,_]=a(t)||!t?[f,t]:a(e)?[f,e]:[e,n];_&&(y=v(y,n));const S=h(l,"scroll",y,x),k=Object(o["M"])(b,O,{immediate:!1}),E=Object(o["M"])(g,j,{immediate:!1}),A=()=>{S(),E(),k()};return{scrollTop:b,scrollLeft:g,remove:A,scrollTopTo:O,scrollLeftTo:j,...w}}Symbol("");let y=void 0;async function w(t,e,n){setTimeout(async()=>{const r=["addTimelineLayer","addInspector","sendInspectorTree","sendInspectorState","addTimelineEvent"];for(const e of r){for(const r of n.filter(t=>t.type===e))t[e](...r.args);await p(20)}new Set(n.filter(t=>"notifyComponentUpdate"===t.type).map(t=>t.args[0])).forEach(e=>t.notifyComponentUpdate(e)),e.forEach(e=>t.on[e.type](...e.args)),e.length=0,n.length=0},100)}y=t=>{let e;const n=[],r=[],o=new Proxy({},{get:(t,r)=>e?e.on[r]:r in t?t[r]:t[r]=(...t)=>{n.push({type:r,args:t})}}),i=new Proxy({on:o},{get:(t,n)=>"on"===n?t.on:e?e[n]:n in t?t[n]:t[n]=(...t)=>{r.push({type:n,args:t})}});return t.then(t=>{e=t,w(e,n,r)}),i};function O(t){const e=!!d&&"matchMedia"in window;let n=void 0,i=void 0,c=l;if(e){n=Object(r["l"])(matchMedia(t)),i=Object(r["l"])(n.value.matches);const e=t=>{i.value=t.matches};n.value.addEventListener("change",e,f);const c=()=>n.value.removeEventListener("change",e);Object(o["y"])(c)}else n=Object(r["l"])({}),i=Object(r["l"])(!1);return{supported:e,mediaQueryList:n,matches:i,remove:c}}function j(t){if(t)return a(t)?t:x(t)}const x=t=>{const e=t.match(/^(\d+)px$/);if(e)return+e[1]};function _(t){const e={},n=new Map,i=Object(r["l"])();let c=[];const a=[];for(const o in t){const i=t[o],s=j(i);if(void 0!==s){const t=Object(r["l"])(!1);e[o]=t,n.set(s,{name:o,valid:t}),c.push(s)}else{const{matches:t,remove:n}=O(i);e[o]=t,a.push(n)}}c=c.sort((t,e)=>e-t);const s=d?()=>{const t=window.innerWidth;let e=void 0;for(let r=0;r=o,t>=o&&void 0===e&&(e=i.name)}i.value=e}:l,u=v(s,10),p=d?()=>window.removeEventListener("resize",u):l;return d&&(Object(o["x"])(()=>{s(),window.addEventListener("resize",u,f)}),Object(o["y"])(()=>{p(),a.forEach(t=>t())})),{...e,remove:p,current:i}}Symbol("");Symbol("");Symbol("");Symbol("")},fc6a:function(t,e,n){var r=n("44ad"),o=n("1d80");t.exports=function(t){return r(o(t))}},fdbc:function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(t,e,n){var r=n("4930");t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},fea9:function(t,e,n){var r=n("da84");t.exports=r.Promise}}]); -//# sourceMappingURL=chunk-vendors.4e02d2c7.js.map \ No newline at end of file diff --git a/dist/js/chunk-vendors.4e02d2c7.js.map b/dist/js/chunk-vendors.4e02d2c7.js.map deleted file mode 100644 index ad7b9c6..0000000 --- a/dist/js/chunk-vendors.4e02d2c7.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/@fortawesome/vue-fontawesome/index.es.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/@fortawesome/free-brands-svg-icons/index.es.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/vue-composable/dist/vue-composable.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js"],"names":["wellKnownSymbol","TO_STRING_TAG","test","module","exports","String","aFunction","fn","that","length","undefined","call","a","b","c","apply","arguments","toIndexedObject","nativeGetOwnPropertyNames","f","toString","windowNames","window","Object","getOwnPropertyNames","getWindowNames","it","error","slice","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","toObject","floor","Math","replace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","m","symbols","match","ch","capture","charAt","n","fails","createElement","defineProperty","get","IS_PURE","ITERATOR","url","URL","searchParams","result","pathname","forEach","value","key","toJSON","sort","href","URLSearchParams","username","host","hash","is","x","y","classof","regexpExec","R","S","exec","TypeError","Constructor","name","getBuiltIn","SAFE_CLOSING","called","iteratorWithReturn","next","done","this","Array","from","SKIP_CLOSING","ITERATION_SUPPORT","object","userAgent","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","anObject","isArrayIteratorMethod","toLength","bind","getIteratorMethod","iteratorClose","Result","stopped","iterable","unboundFunction","options","iterator","iterFn","index","step","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","toInteger","max","min","integer","global","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","source","FORCED","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","prototype","noTargetGet","forced","sham","internalObjectKeys","enumBugKeys","hiddenKeys","concat","flags","TO_STRING","RegExpPrototype","RegExp","nativeToString","NOT_GENERIC","INCORRECT_NAME","p","rf","unsafe","definePropertyModule","CONSTRUCTOR_NAME","configurable","returnMethod","EOF","$","USE_NATIVE_URL","defineProperties","anInstance","assign","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","NativeURL","getInternalSearchParamsState","getState","setInternalState","set","getInternalURLState","getterFor","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","input","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","number","ipv4","parts","split","pop","parseInt","push","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","join","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","string","normalized","second","startsWithWindowsDriveLetter","third","shortenURLsPath","path","pathSize","isSingleDot","segment","toLowerCase","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","state","buffer","seenAt","seenBracket","seenPasswordToken","port","query","fragment","i","codePoint","encodedCodePoints","shift","URLConstructor","baseState","urlString","type","searchParamsState","updateSearchParams","updateURL","serializeURL","origin","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","output","accessorDescriptor","getter","setter","enumerable","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","defer","channel","html","IS_IOS","IS_NODE","location","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","run","id","hasOwnProperty","runner","listener","event","data","post","postMessage","args","Function","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","version","versions","v8","Iterators","objectKeys","Properties","keys","isObject","defineIterator","STRING_ITERATOR","getInternalState","iterated","point","propertyIsEnumerable","create","UNSCOPABLES","ArrayPrototype","console","defaultConstructor","C","getOwnPropertySymbols","Symbol","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","indexOf","$filter","filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","proto","callbackfn","callWithSafeIterationClosing","createProperty","arrayLike","argumentsLength","mapfn","mapping","iteratorMethod","argument","fixRegExpWellKnownSymbolLogic","requireObjectCoercible","advanceStringIndex","getSubstitution","regExpExec","maybeToString","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","regexp","res","rx","functionalReplace","fullUnicode","unicode","lastIndex","results","matchStr","accumulatedResult","nextSourcePosition","j","groups","replacerArgs","store","mode","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","whitespaces","whitespace","ltrim","rtrim","TYPE","start","end","trim","stack","warn","msg","instance","component","appWarnHandler","appContext","config","warnHandler","trace","getComponentTrace","callWithErrorHandling","proxy","map","vnode","formatComponentName","warnArgs","formatTrace","currentVNode","normalizedStack","last","recurseCount","parentInstance","parent","logs","entry","formatTraceEntry","postfix","isRoot","open","close","props","formatProps","formatProp","raw","JSON","stringify","err","handleError","callWithAsyncErrorHandling","catch","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","errorHandler","logError","isFlushing","isFlushPending","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","Promise","resolve","currentFlushPromise","currentPreFlushParentJob","then","findInsertionIndex","job","jobId","getId","middle","middleJobId","queueJob","allowRecurse","pos","splice","queueFlush","flushJobs","invalidateJob","queueCb","cb","activeQueue","pendingQueue","queuePreFlushCb","queuePostFlushCb","flushPreFlushCbs","seen","parentJob","Set","flushPostFlushCbs","deduped","Infinity","Map","emit","rawArgs","isModelListener","startsWith","modelArg","modifiersKey","handlerName","handler","onceHandler","emitted","normalizeEmitsOptions","comp","asMixin","deopt","__emits","emits","hasExtends","extendEmits","mixins","extends","isEmitListener","currentRenderingInstance","setCurrentRenderingInstance","renderComponentRoot","Component","withProxy","propsOptions","slots","attrs","render","renderCache","setupState","ctx","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","root","inheritAttrs","some","filterModelListeners","cloneVNode","dirs","transition","createVNode","Comment","filterSingleRoot","children","singleRoot","child","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","subTree","isSuspense","__isSuspense","normalizeSuspenseChildren","content","fallback","normalizeSuspenseSlot","default","s","singleChild","queueEffectWithSuspense","suspense","pendingBranch","effects","isRenderingCompiledSlot","setCompiledSlotRendering","withCtx","renderFnWithContext","openBlock","owner","closeBlock","_c","currentScopeId","scopeIdStack","pushScopeId","popScopeId","withScopeId","initProps","rawProps","isStateful","isSSR","InternalObjectKey","setFullProps","updateProps","rawPrevProps","rawCurrentProps","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","camelKey","opt","hasDefault","defaultValue","setCurrentInstance","normalizePropsOptions","__props","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","len","injectHook","hook","currentInstance","prepend","hooks","wrappedHook","__weh","isUnmounted","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onRenderTriggered","onRenderTracked","onErrorCaptured","watchEffect","effect","doWatch","INITIAL_WATCHER_VALUE","watch","immediate","deep","flush","onTrack","onTrigger","cleanup","forceTrigger","_shallow","traverse","onInvalidate","baseGetter","onStop","oldValue","active","newValue","scheduler","queuePostRenderEffect","isMounted","lazy","recordInstanceBoundEffect","instanceWatch","publicThis","add","v","useTransitionState","isLeaving","isUnmounting","leavingVNodes","TransitionHookValidator","BaseTransitionImpl","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","isSameVNodeType","leavingHooks","afterLeave","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","leavingVNode","afterHook","cancelHook","_enterCb","cancelled","remove","isKeepAlive","ssContent","clone","ssFallback","keepComment","ret","keyedFragmentCount","Fragment","__isKeepAlive","KeepAliveImpl","include","exclude","Number","cache","current","parentSuspense","sharedContext","renderer","patch","move","um","_unmount","o","storageContainer","unmount","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","cached","delete","activate","container","anchor","isSVG","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","onVnodeUnmounted","matches","pendingCacheKey","cacheSubtree","getInnerChild","rawVNode","cachedVNode","size","KeepAlive","pattern","onActivated","registerKeepAliveHook","onDeactivated","__wdc","injectToKeepAliveRoot","keepAliveRoot","injected","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","_","updateSlots","needDeletionCheck","deletionComparisonTarget","withDirectives","directives","internalInstance","bindings","dir","arg","modifiers","mounted","updated","invokeDirectiveHook","oldBindings","binding","createAppContext","app","isNativeTag","performance","globalProperties","optionMergeStrategies","isCustomElement","components","provides","uid","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","_uid","_component","_props","_container","_context","plugin","install","mixin","directive","rootContainer","isHydrate","__vue_app__","hasMismatch","isSVGContainer","namespaceURI","tagName","isComment","node","nodeType","createHydrationFunctions","rendererInternals","mt","mountComponent","patchProp","nextSibling","parentNode","insert","createComment","hydrateNode","firstChild","parentComponent","isFragmentStart","onMismatch","handleMismatch","ref","domType","nextNode","Text","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","hydrateComponent","loadAsync","__asyncLoader","locateClosingAsyncAnchor","hydrateChildren","setRef","dynamicChildren","onClick","vnodeHooks","onVnodeBeforeMount","innerHTML","textContent","parentVNode","l","isFragment","initFeatureFlags","defineComponent","setup","isAsyncWrapper","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","timeout","suspensible","onError","userOnError","resolvedComp","pendingRequest","retries","retry","load","thisRequest","Error","reject","userRetry","userFail","__esModule","toStringTag","createInnerComp","loaded","delayed","prodEffectOptions","rawRef","oldRawRef","r","exposed","oldRef","refs","doSet","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","forcePatchProp","hostForcePatchProp","hostCreateElement","createText","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","cloneNode","hostCloneNode","insertStaticContent","hostInsertStaticContent","n1","n2","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","scopeId","mountChildren","unmountChildren","needCallTransitionHooks","beforeEnter","enter","treeOwnerId","__scopeId","cloneIfMounted","oldProps","newProps","onVnodeBeforeUpdate","patchProps","class","style","prev","areChildrenSVG","patchBlockChildren","patchChildren","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","createComponentInstance","setupComponent","asyncDep","registerDep","setupRenderEffect","placeholder","asyncResolved","updateComponentPreRender","bu","u","originNext","nextTree","prevTree","bm","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition","leave","performLeave","doRemove","shouldInvokeDirs","onVnodeBeforeUnmount","unmountComponent","isTeleportDisabled","removeFragment","performRemove","bum","suspenseId","pendingId","deps","_vnode","mc","pc","pbc","createApp","shallow","ch1","ch2","arr","arrI","isTeleport","__isTeleport","disabled","COMPONENTS","resolveComponent","resolveAsset","NULL_DYNAMIC_COMPONENT","warnMissing","selfName","registry","blockStack","currentBlock","disableTracking","shouldTrack","createBlock","__v_isVNode","normalizeKey","normalizeRef","_createVNode","isBlockNode","cloned","normalizeChildren","isClassComponent","__vccOpts","klass","targetAnchor","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","slot","slotFlag","toMerge","existing","incoming","provide","parentProvides","inject","treatDefaultAsFactory","isInBeforeCreate","applyOptions","deferredData","deferredWatch","deferredProvide","extendsOptions","dataOptions","computed","computedOptions","methods","watchOptions","provideOptions","injectOptions","beforeMount","beforeUpdate","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","expose","globalMixins","callSyncHook","applyMixins","methodHandler","dataFn","resolveData","createWatcher","Reflect","ownKeys","callHookFromMixins","callHookFromExtends","selfHook","baseHook","chainedMixins","createPathGetter","segments","resolveMergedOptions","__merged","mergeOptions","to","strats","getPublicInstance","isStatefulComponent","publicPropertiesMap","$el","$data","$props","$attrs","$slots","$refs","$parent","$root","$emit","$options","$forceUpdate","$nextTick","$watch","PublicInstanceProxyHandlers","accessCache","normalizedProps","publicGetter","cssModule","__cssModules","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","emptyAppContext","uid$1","setupContext","bc","rtg","rtc","compile","setupResult","setupStatefulComponent","Proxy","createSetupContext","resolvedResult","handleSetupResult","finishComponentSetup","isRuntimeOnly","template","delimiters","_rc","classifyRE","classify","toUpperCase","displayName","__file","inferFromRegistry","getterOrOptions","h","propsOrChildren","initCustomFormatter","renderList","renderItem","bitmap","writable","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","charCodeAt","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","label","encoded","labels","IndexedObject","nativeAssign","A","B","symbol","alphabet","chr","T","CONVERT_TO_STRING","first","isArray","originalArray","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","WeakMap","enforce","wmget","wmhas","wmset","metadata","facade","STATE","inspectSource","enforceInternalState","TEMPLATE","simple","setPrototypeOf","dummy","Wrapper","NewTarget","NewTargetPrototype","wrappedWellKnownSymbolModule","NAME","svgNS","doc","document","tempContainer","tempSVGContainer","nodeOps","insertBefore","tag","createElementNS","createTextNode","nodeValue","querySelector","selector","setAttribute","temp","patchClass","transitionClasses","_vtc","className","patchStyle","display","cssText","setStyle","removeAttribute","importantRE","val","setProperty","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","isBoolean","patchDOMProp","e","_value","_getNow","Date","createEvent","timeStamp","cachedNow","getNow","removeEventListener","patchEvent","prevValue","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","initialValue","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","css","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","classList","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","body","offsetHeight","systemModifiers","modifierGuards","stopPropagation","prevent","preventDefault","self","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","left","button","right","exact","withModifiers","guard","vShow","_vod","setDisplay","rendererOptions","ensureRenderer","mount","containerOrSelector","normalizeContainer","Element","activeXDocument","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","src","contentWindow","F","NullProtoObject","domain","ActiveXObject","$find","find","addToUnscopables","FIND","SKIPS_HOLES","createIteratorConstructor","getPrototypeOf","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","propertyKey","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","functionToString","random","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","re","sticky","charsAdded","strCopy","multiline","feature","detection","normalize","POLYFILL","NATIVE","redefineAll","hasOwn","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","percentDecode","sequence","decodeURIComponent","deserialize","serialize","parseSearchParams","attribute","attributes","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","kind","URLSearchParamsConstructor","entryIterator","entryNext","init","URLSearchParamsPrototype","append","getAll","found","entriesIndex","sliceIndex","callback","boundFunction","fetch","headers","nativeDefineProperty","Attributes","RE","makeMap","expectsLowerCase","list","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","specialBooleanAttrs","isSpecialBooleanAttr","normalizeStyle","item","isString","parseStringStyle","listDelimiterRE","propertyDelimiterRE","tmp","normalizeClass","HTML_TAGS","SVG_TAGS","isHTMLTag","isSVGTag","looseCompareArrays","equal","looseEqual","aValidType","isDate","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","findIndex","toDisplayString","_key","isMap","reduce","isSet","isPlainObject","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","extend","toTypeString","isFunction","isSymbol","isPromise","objectToString","toRawType","isIntegerKey","isReservedProp","cacheStringFunction","hit","camelizeRE","camelize","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","invokeArrayFns","fns","def","obj","toNumber","parseFloat","isNaN","targetMap","effectStack","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","isEffect","_isEffect","createReactiveEffect","enableTracking","resetTracking","trackStack","pauseTracking","track","depsMap","dep","trigger","oldTarget","effectsToAdd","isNonTrackableKeys","builtInSymbols","createGetter","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","isReadonly","receiver","readonlyMap","reactiveMap","targetIsArray","isRef","shouldUnwrap","readonly","reactive","method","toRaw","createSetter","shallowSet","hadKey","deleteProperty","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toReactive","toReadonly","toShallow","getProto","get$1","isShallow","rawTarget","rawKey","wrap","has$1","set$1","deleteEntry","hadItems","createForEach","thisArg","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","iteratorMethods","createInstrumentationGetter","instrumentations","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isReactive","isProxy","convert","__v_isRef","createRef","RefImpl","_rawValue","newVal","rawValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","customRef","ObjectRefImpl","_object","toRef","ComputedRefImpl","_setter","_dirty","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","$forEach","HIDDEN","SYMBOL","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","V","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","space","$replacer","valueOf","ceil","NativePromise","speciesConstructor","promiseResolve","NON_GENERIC","real","onFinally","inheritIfRequired","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","maxCode","digits","NaN","NumberWrapper","commonjsGlobal","createCommonjsModule","humps","_processKeys","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","_isArray","separateWords","separator","_isNumerical","substr","pascalize","camelized","decamelize","_processor","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","_typeof","_extends","objectWithoutProperties","toConsumableArray","arr2","styleToObject","pair","idx","classToObject","classes","abstractElement","renderFn","_attrs$style","aStyle","otherAttrs","PRODUCTION","log","_console","objectWithKey","_classes","spin","pulse","fixedWidth","border","listItem","inverse","flip","rotation","pull","swapOpacity","normalizeIconArgs","icon$$1","prefix","iconName","FontAwesomeIcon","validator","icon","mask","transform","title","_ref","renderedIcon","abstract","familyPrefix","renderedText","ignoreCase","dotAll","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TO_STRING_TAG_SUPPORT","FunctionPrototype","FunctionPrototypeToString","nameRE","head","notify","toggle","promise","macrotask","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","observe","characterData","task","createWellKnownSymbol","withoutSetter","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","specificCreate","every","filterOut","PREFERRED_STRING","faBook","faRocket","faSignInAlt","SHARED","$findIndex","FIND_INDEX","g","EXISTS","newPromiseCapability","promiseCapability","variable","namespace","NASHORN_BUG","1","aPossiblePrototype","CORRECT_SETTER","__proto__","TAG","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","check","globalThis","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","CORRECT_PROTOTYPE_GETTER","ARRAY_ITERATOR","Arguments","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","setSpecies","iterate","checkCorrectnessOfIteration","microtask","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","newGenericPromiseCapability","DISPATCH_EVENT","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","initEvent","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","_defineProperty","_objectSpread","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","_arr","_n","_d","_e","_s","_i","noop","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","measure","navigator","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","documentElement","IS_IE","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_FAMILY_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","FontAwesomeConfig","getAttrConfig","attr","element","getAttribute","coerce","_ref2","_default","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","_config","w","shims","functions","doScroll","readyState","asyncTimer","SETTLED","isNode","asyncSetTimer","asyncQueue","asyncFlush","asyncCall","invokeResolver","resolver","resolvePromise","rejectPromise","invokeCallback","subscriber","settled","_state","_data","handleThenable","resolved","fulfill","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","onFulfillment","onRejection","fulfilled","rejected","promises","meaninglessTransform","rotate","flipX","flipY","insertCss","headChildren","childNodes","beforeChild","idPool","nextUniqueId","htmlEscape","joinAttributes","acc","attributeName","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","transformForCss","_ref2$width","width","_ref2$height","height","_ref2$startCentered","startCentered","ALL_SPACE","fillBlack","force","fill","deGroup","makeIconMasking","main","explicitMaskId","maskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconStandard","styleString","asIcon","offset","asSymbol","makeInlineSvgAbstract","_params$icons","icons","titleId","_params$watchable","watchable","isUploadedIcon","widthClass","attrClass","role","uploadedIconWidthStyle","makeLayersTextAbstract","_params$watchable2","noop$1","bindInternal4","func","thisContext","subject","defineIcons","_params$skipHooks","skipHooks","expanded","addPack","build","lookup","reducer","ligatures","ligature","hasRegular","shim","oldName","iconFromMapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","parseTransformString","transformString","rest","MissingIcon","message","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","cx","cy","opacity","asFoundIcon","_icon$slice","_icon$slice2","vectorData","baseStyles","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","Library","definitions","_this","_len","additions","_pullDefinitions","definition","0","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","findIconDefinition","iconLookup","_iconLookup$prefix","library","resolveIcons","maybeIconDefinition","iconDefinition","parse","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","PromiseCapability","$$resolve","$$reject","faGithub","faGitter","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","isNumber","isElement","NO_OP","PASSIVE_EV","passive","promisedTimeout","isClient","useEvent","removeWatch","cleanUp","useDebounce","wait","debounce","waitMilliseconds","isImmediate","timeoutId","doLater","shouldCallNow","clearTimeout","SCROLL_METHODS","useOnScroll","isValidElement","scrollableElement","scrollingElement","scrollTop","scrollLeft","scrollTopTo","top","scrollTo","scrollLeftTo","eventOptions","ms","eventRemove","watchRemoveTop","watchRemoveLeft","apiProxyFactory","async","pushEventsToApi","api","EventQueue","ApiQueue","priority","notifyComponentUpdate","on","promiseApi","onProxy","useMatchMedia","supported","mediaQueryList","matchMedia","getBreakpointWidth","bp","isValidWidthBreakpoint","useBreakpoint","breakpoints","sorted","removeMedia","valid","resize","innerWidth","processResize","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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","file":"js/chunk-vendors.4e02d2c7.js","sourcesContent":["var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\t\\u000A\\u000D #%/:?@[\\\\]]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\t\\u000A\\u000D #/:?@[\\\\]]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\u000A\\u000D]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n /* global Symbol -- required for testing */\n return !Symbol.sham &&\n // Chrome 38 Symbol has incorrect toString conversion\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n (IS_NODE ? V8_VERSION === 38 : V8_VERSION > 37 && V8_VERSION < 41);\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.9.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","import { pauseTracking, resetTracking, isRef, toRaw, shallowReactive, trigger, isReactive, effect, stop, ref, isProxy, proxyRefs, toRef, reactive, shallowReadonly, track, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { customRef, isProxy, isReactive, isReadonly, isRef, markRaw, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, def, isReservedProp, EMPTY_ARR, isObject, capitalize, toRawType, makeMap, remove, NOOP, hasChanged, isSet, isMap, invokeArrayFns, NO, getGlobalThis, normalizeClass, normalizeStyle, isGloballyWhitelisted } from '@vue/shared';\nexport { camelize, capitalize, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-next'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPreFlushCbs = [];\r\nlet activePreFlushCbs = null;\r\nlet preFlushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet currentPreFlushParentJob = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(job) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n const jobId = getId(job);\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < jobId ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if ((!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&\r\n job !== currentPreFlushParentJob) {\r\n const pos = findInsertionIndex(job);\r\n if (pos > -1) {\r\n queue.splice(pos, 0, job);\r\n }\r\n else {\r\n queue.push(job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > -1) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\r\n if (!isArray(cb)) {\r\n if (!activeQueue ||\r\n !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\r\n pendingQueue.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingQueue.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queuePreFlushCb(cb) {\r\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\r\n}\r\nfunction flushPreFlushCbs(seen, parentJob = null) {\r\n if (pendingPreFlushCbs.length) {\r\n currentPreFlushParentJob = parentJob;\r\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\r\n pendingPreFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex]);\r\n }\r\n activePreFlushCbs[preFlushIndex]();\r\n }\r\n activePreFlushCbs = null;\r\n preFlushIndex = 0;\r\n currentPreFlushParentJob = null;\r\n // recursively flush until it drains\r\n flushPreFlushCbs(seen, parentJob);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex]);\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n flushPreFlushCbs(seen);\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, job);\r\n }\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length || pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n throw new Error(`Maximum recursive updates exceeded. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const globalObject = typeof global !== 'undefined'\r\n ? global\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : {};\r\n globalObject.__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, component) {\r\n if (!component) {\r\n warn(`HMR API usage is out of date.\\n` +\r\n `Please upgrade vue-loader/vite/rollup-plugin-vue or other relevant ` +\r\n `dependency that handles Vue SFC compilation.`);\r\n component = {};\r\n }\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n component: isClassComponent(component) ? component.__vccOpts : component,\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n if (newRender)\r\n record.component.render = newRender;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n Array.from(record.instances).forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n const { component, instances } = record;\r\n if (!hmrDirtyComponents.has(component)) {\r\n // 1. Update existing comp definition to match new one\r\n newComp = isClassComponent(newComp) ? newComp.__vccOpts : newComp;\r\n extend(component, newComp);\r\n for (const key in component) {\r\n if (!(key in newComp)) {\r\n delete component[key];\r\n }\r\n }\r\n // 2. Mark component dirty. This forces the renderer to replace the component\r\n // on patch.\r\n hmrDirtyComponents.add(component);\r\n // 3. Make sure to unmark the component after the reload.\r\n queuePostFlushCb(() => {\r\n hmrDirtyComponents.delete(component);\r\n });\r\n }\r\n Array.from(instances).forEach(instance => {\r\n if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n });\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nfunction setDevtoolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n // TODO queue if devtools is undefined\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = /*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n if (!devtools)\r\n return;\r\n devtools.emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit(instance, event, ...rawArgs) {\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions)) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n else if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n // convert handler name to camelCase. See issue #2249\r\n let handlerName = toHandlerKey(camelize(event));\r\n let handler = props[handlerName];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handlerName = toHandlerKey(hyphenate(event));\r\n handler = props[handlerName];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n (instance.emitted = {})[handlerName] = true;\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n if (!appContext.deopt && comp.__emits !== undefined) {\r\n return comp.__emits;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n hasExtends = true;\r\n extend(normalized, normalizeEmitsOptions(raw, appContext, true));\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n return (comp.__emits = null);\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n return (comp.__emits = normalized);\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nfunction setCurrentRenderingInstance(instance) {\r\n currentRenderingInstance = instance;\r\n}\r\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx } = instance;\r\n let result;\r\n currentRenderingInstance = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n let fallthroughAttrs;\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n ;\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (Component.inheritAttrs !== false && fallthroughAttrs) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & 1 /* ELEMENT */ ||\r\n shapeFlag & 6 /* COMPONENT */) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n }\r\n catch (err) {\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n currentRenderingInstance = null;\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & 6 /* COMPONENT */ ||\r\n vnode.shapeFlag & 1 /* ELEMENT */ ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl\r\n );\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n const onPending = n2.props && n2.props.onPending;\r\n if (isFunction(onPending)) {\r\n onPending();\r\n }\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n const onResolve = vnode.props && vnode.props.onResolve;\r\n if (isFunction(onResolve)) {\r\n onResolve();\r\n }\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n const onFallback = vnode.props && vnode.props.onFallback;\r\n if (isFunction(onFallback)) {\r\n onFallback();\r\n }\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n suspense.isInFallback = true;\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n let content;\r\n let fallback;\r\n if (shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n content = normalizeSuspenseSlot(children.default);\r\n fallback = normalizeSuspenseSlot(children.fallback);\r\n }\r\n else {\r\n content = normalizeSuspenseSlot(children);\r\n fallback = normalizeVNode(null);\r\n }\r\n return {\r\n content,\r\n fallback\r\n };\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n if (isFunction(s)) {\r\n s = s();\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n return normalizeVNode(s);\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nlet isRenderingCompiledSlot = 0;\r\nconst setCompiledSlotRendering = (n) => (isRenderingCompiledSlot += n);\r\n/**\r\n * Compiler runtime helper for rendering ``\r\n * @private\r\n */\r\nfunction renderSlot(slots, name, props = {}, \r\n// this is not a user-facing function, so the fallback is always generated by\r\n// the compiler and guaranteed to be a function returning an array\r\nfallback) {\r\n let slot = slots[name];\r\n if ((process.env.NODE_ENV !== 'production') && slot && slot.length > 1) {\r\n warn(`SSR-optimized slot function detected in a non-SSR-optimized render ` +\r\n `function. You need to mark this component with $dynamic-slots in the ` +\r\n `parent template.`);\r\n slot = () => [];\r\n }\r\n // a compiled slot disables block tracking by default to avoid manual\r\n // invocation interfering with template-based block tracking, but in\r\n // `renderSlot` we can be sure that it's template-based so we can force\r\n // enable it.\r\n isRenderingCompiledSlot++;\r\n openBlock();\r\n const validSlotContent = slot && ensureValidVNode(slot(props));\r\n const rendered = createBlock(Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* STABLE */\r\n ? 64 /* STABLE_FRAGMENT */\r\n : -2 /* BAIL */);\r\n isRenderingCompiledSlot--;\r\n return rendered;\r\n}\r\nfunction ensureValidVNode(vnodes) {\r\n return vnodes.some(child => {\r\n if (!isVNode(child))\r\n return true;\r\n if (child.type === Comment)\r\n return false;\r\n if (child.type === Fragment &&\r\n !ensureValidVNode(child.children))\r\n return false;\r\n return true;\r\n })\r\n ? vnodes\r\n : null;\r\n}\n\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance) {\r\n if (!ctx)\r\n return fn;\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we need to push a null block to\r\n // avoid that. This isn't necessary if rendering a compiled ``.\r\n if (!isRenderingCompiledSlot) {\r\n openBlock(true /* null block that disables tracking */);\r\n }\r\n const owner = currentRenderingInstance;\r\n setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(owner);\r\n if (!isRenderingCompiledSlot) {\r\n closeBlock();\r\n }\r\n return res;\r\n };\r\n renderFnWithContext._c = true;\r\n return renderFnWithContext;\r\n}\n\n// SFC scoped style ID management.\r\nlet currentScopeId = null;\r\nconst scopeIdStack = [];\r\n/**\r\n * @private\r\n */\r\nfunction pushScopeId(id) {\r\n scopeIdStack.push((currentScopeId = id));\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n scopeIdStack.pop();\r\n currentScopeId = scopeIdStack[scopeIdStack.length - 1] || null;\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction withScopeId(id) {\r\n return ((fn) => withCtx(function () {\r\n pushScopeId(id);\r\n const res = fn.apply(this, arguments);\r\n popScopeId();\r\n return res;\r\n }));\r\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(props, instance);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = instance.propsOptions;\r\n if (\r\n // always force full diff in dev\r\n // - #1942 if hmr is enabled with sfc component\r\n // - vite#872 non-sfc component used by sfc component\r\n !((process.env.NODE_ENV !== 'production') &&\r\n (instance.type.__hmrId ||\r\n (instance.parent && instance.parent.type.__hmrId))) &&\r\n (optimized || patchFlag > 0) &&\r\n !(patchFlag & 16 /* FULL_PROPS */)) {\r\n if (patchFlag & 8 /* PROPS */) {\r\n // Compiler-generated props & no keys change, just set the updated\r\n // the props.\r\n const propsToUpdate = instance.vnode.dynamicProps;\r\n for (let i = 0; i < propsToUpdate.length; i++) {\r\n const key = propsToUpdate[i];\r\n // PROPS flag guarantees rawProps to be non-null\r\n const value = rawProps[key];\r\n if (options) {\r\n // attr / props separation was done on init and will be consistent\r\n // in this code path, so just check if attrs have it.\r\n if (hasOwn(attrs, key)) {\r\n attrs[key] = value;\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance);\r\n }\r\n }\r\n else {\r\n attrs[key] = value;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n setFullProps(instance, rawProps, props, attrs);\r\n // in case of dynamic props, check if we need to delete keys from\r\n // the props object\r\n let kebabKey;\r\n for (const key in rawCurrentProps) {\r\n if (!rawProps ||\r\n // for camelCase\r\n (!hasOwn(rawProps, key) &&\r\n // it's possible the original props was passed in as kebab-case\r\n // and converted to camelCase (#955)\r\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\r\n if (options) {\r\n if (rawPrevProps &&\r\n // for camelCase\r\n (rawPrevProps[key] !== undefined ||\r\n // for kebab-case\r\n rawPrevProps[kebabKey] !== undefined)) {\r\n props[key] = resolvePropValue(options, rawProps || EMPTY_OBJ, key, undefined, instance);\r\n }\r\n }\r\n else {\r\n delete props[key];\r\n }\r\n }\r\n }\r\n // in the case of functional component w/o props declaration, props and\r\n // attrs point to the same object so it should already have been updated.\r\n if (attrs !== rawCurrentProps) {\r\n for (const key in attrs) {\r\n if (!rawProps || !hasOwn(rawProps, key)) {\r\n delete attrs[key];\r\n }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n if ((process.env.NODE_ENV !== 'production') && rawProps) {\r\n validateProps(props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n if (rawProps) {\r\n for (const key in rawProps) {\r\n const value = rawProps[key];\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\r\n // prop option names are camelized during normalization, so to support\r\n // kebab -> camel conversion here we need to camelize the key.\r\n let camelKey;\r\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\r\n props[camelKey] = value;\r\n }\r\n else if (!isEmitListener(instance.emitsOptions, key)) {\r\n // Any non-declared (either as a prop or an emitted event) props are put\r\n // into a separate `attrs` object for spreading. Make sure to preserve\r\n // original key casing\r\n attrs[key] = value;\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, rawCurrentProps[key], instance);\r\n }\r\n }\r\n}\r\nfunction resolvePropValue(options, props, key, value, instance) {\r\n const opt = options[key];\r\n if (opt != null) {\r\n const hasDefault = hasOwn(opt, 'default');\r\n // default values\r\n if (hasDefault && value === undefined) {\r\n const defaultValue = opt.default;\r\n if (opt.type !== Function && isFunction(defaultValue)) {\r\n setCurrentInstance(instance);\r\n value = defaultValue(props);\r\n setCurrentInstance(null);\r\n }\r\n else {\r\n value = defaultValue;\r\n }\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (!hasOwn(props, key) && !hasDefault) {\r\n value = false;\r\n }\r\n else if (opt[1 /* shouldCastTrue */] &&\r\n (value === '' || value === hyphenate(key))) {\r\n value = true;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\r\n if (!appContext.deopt && comp.__props) {\r\n return comp.__props;\r\n }\r\n const raw = comp.props;\r\n const normalized = {};\r\n const needCastKeys = [];\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendProps = (raw) => {\r\n hasExtends = true;\r\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\r\n extend(normalized, props);\r\n if (keys)\r\n needCastKeys.push(...keys);\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendProps);\r\n }\r\n if (comp.extends) {\r\n extendProps(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendProps);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n return (comp.__props = EMPTY_ARR);\r\n }\r\n if (isArray(raw)) {\r\n for (let i = 0; i < raw.length; i++) {\r\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\r\n warn(`props must be strings when using array syntax.`, raw[i]);\r\n }\r\n const normalizedKey = camelize(raw[i]);\r\n if (validatePropName(normalizedKey)) {\r\n normalized[normalizedKey] = EMPTY_OBJ;\r\n }\r\n }\r\n }\r\n else if (raw) {\r\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\r\n warn(`invalid props options`, raw);\r\n }\r\n for (const key in raw) {\r\n const normalizedKey = camelize(key);\r\n if (validatePropName(normalizedKey)) {\r\n const opt = raw[key];\r\n const prop = (normalized[normalizedKey] =\r\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\r\n if (prop) {\r\n const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n const stringIndex = getTypeIndex(String, prop.type);\r\n prop[0 /* shouldCast */] = booleanIndex > -1;\r\n prop[1 /* shouldCastTrue */] =\r\n stringIndex < 0 || booleanIndex < stringIndex;\r\n // if the prop needs boolean casting or default value\r\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\r\n needCastKeys.push(normalizedKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return (comp.__props = [normalized, needCastKeys]);\r\n}\r\nfunction validatePropName(key) {\r\n if (key[0] !== '$') {\r\n return true;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\r\n }\r\n return false;\r\n}\r\n// use function string name to check type constructors\r\n// so that it works across vms / iframes.\r\nfunction getType(ctor) {\r\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\r\n return match ? match[1] : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (isArray(expectedTypes)) {\r\n for (let i = 0, len = expectedTypes.length; i < len; i++) {\r\n if (isSameType(expectedTypes[i], type)) {\r\n return i;\r\n }\r\n }\r\n }\r\n else if (isFunction(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(props, instance) {\r\n const rawValues = toRaw(props);\r\n const options = instance.propsOptions[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, rawValues[key], opt, !hasOwn(rawValues, key));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else {\r\n valid = value instanceof type;\r\n }\r\n return {\r\n valid,\r\n expectedType\r\n };\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n ` Expected ${expectedTypes.map(capitalize).join(', ')}`;\r\n const expectedType = expectedTypes[0];\r\n const receivedType = toRawType(value);\r\n const expectedValue = styleValue(value, expectedType);\r\n const receivedValue = styleValue(value, receivedType);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += ` with value ${expectedValue}`;\r\n }\r\n message += `, got ${receivedType} `;\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += `with value ${receivedValue}.`;\r\n }\r\n return message;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return `\"${value}\"`;\r\n }\r\n else if (type === 'Number') {\r\n return `${Number(value)}`;\r\n }\r\n else {\r\n return `${value}`;\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isExplicable(type) {\r\n const explicitTypes = ['string', 'number', 'boolean'];\r\n return explicitTypes.some(elem => type.toLowerCase() === elem);\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isBoolean(...args) {\r\n return args.some(elem => elem.toLowerCase() === 'boolean');\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n setCurrentInstance(null);\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n (` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR\r\n!isInSSRComponentSetup && injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nconst onErrorCaptured = (hook, target = currentInstance) => {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n};\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ, instance = currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n let getter;\r\n let forceTrigger = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = !!source._shallow;\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */, [\r\n instance && instance.proxy\r\n ]);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */, [\r\n instance && instance.proxy\r\n ]);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onInvalidate]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n const onInvalidate = (fn) => {\r\n cleanup = runner.options.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n let oldValue = isArray(source) ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!runner.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = runner();\r\n if (deep || forceTrigger || hasChanged(newValue, oldValue)) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onInvalidate\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n runner();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job;\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n scheduler = () => {\r\n if (!instance || instance.isMounted) {\r\n queuePreFlushCb(job);\r\n }\r\n else {\r\n // with 'pre' option, the first call must happen before\r\n // the component is mounted so it is called synchronously.\r\n job();\r\n }\r\n };\r\n }\r\n const runner = effect(getter, {\r\n lazy: true,\r\n onTrack,\r\n onTrigger,\r\n scheduler\r\n });\r\n recordInstanceBoundEffect(runner, instance);\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = runner();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(runner, instance && instance.suspense);\r\n }\r\n else {\r\n runner();\r\n }\r\n return () => {\r\n stop(runner);\r\n if (instance) {\r\n remove(instance.effects, runner);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, cb, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? () => publicThis[source]\r\n : source.bind(publicThis);\r\n return doWatch(getter, cb.bind(publicThis), options, this);\r\n}\r\nfunction traverse(value, seen = new Set()) {\r\n if (!isObject(value) || seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if ((process.env.NODE_ENV !== 'production') && children.length > 1) {\r\n warn(' can only be used on a single element or component. Use ' +\r\n ' for lists.');\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') && mode && !['in-out', 'out-in', 'default'].includes(mode)) {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n // at this point children has a guaranteed length of 1.\r\n const child = children[0];\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out') {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n const instance = getCurrentInstance();\r\n const parentSuspense = instance.suspense;\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n const name = getComponentName(comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return rawVNode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n // injectHook wraps the original for error handling, so make sure to remove\r\n // the wrapped version.\r\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\r\nfunction getInnerChild(vnode) {\r\n return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;\r\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\r\nconst normalizeSlotValue = (value) => isArray(value)\r\n ? value.map(normalizeVNode)\r\n : [normalizeVNode(value)];\r\nconst normalizeSlot = (key, rawSlot, ctx) => withCtx((props) => {\r\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\r\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\r\n `this will not track dependencies used in the slot. ` +\r\n `Invoke the slot function inside the render function instead.`);\r\n }\r\n return normalizeSlotValue(rawSlot(props));\r\n}, ctx);\r\nconst normalizeObjectSlots = (rawSlots, slots) => {\r\n const ctx = rawSlots._ctx;\r\n for (const key in rawSlots) {\r\n if (isInternalKey(key))\r\n continue;\r\n const value = rawSlots[key];\r\n if (isFunction(value)) {\r\n slots[key] = normalizeSlot(key, value, ctx);\r\n }\r\n else if (value != null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Non-function value encountered for slot \"${key}\". ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(value);\r\n slots[key] = () => normalized;\r\n }\r\n }\r\n};\r\nconst normalizeVNodeSlots = (instance, children) => {\r\n if ((process.env.NODE_ENV !== 'production') && !isKeepAlive(instance.vnode)) {\r\n warn(`Non-function value encountered for default slot. ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(children);\r\n instance.slots.default = () => normalized;\r\n};\r\nconst initSlots = (instance, children) => {\r\n if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n instance.slots = children;\r\n // make compiler marker non-enumerable\r\n def(children, '_', type);\r\n }\r\n else {\r\n normalizeObjectSlots(children, (instance.slots = {}));\r\n }\r\n }\r\n else {\r\n instance.slots = {};\r\n if (children) {\r\n normalizeVNodeSlots(instance, children);\r\n }\r\n }\r\n def(instance.slots, InternalObjectKey, 1);\r\n};\r\nconst updateSlots = (instance, children) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text');\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n const hook = binding.dir[name];\r\n if (hook) {\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n }\r\n }\r\n}\n\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n isCustomElement: NO,\r\n errorHandler: undefined,\r\n warnHandler: undefined\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null)\r\n };\r\n}\r\nlet uid = 0;\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (rootProps != null && !isObject(rootProps)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = new Set();\r\n let isMounted = false;\r\n const app = (context.app = {\r\n _uid: uid++,\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`app.config cannot be replaced. Modify individual options instead.`);\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\r\n }\r\n else if (plugin && isFunction(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n }\r\n else if (isFunction(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`A plugin must either be a function or an object with an \"install\" ` +\r\n `function.`);\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n // global mixin with props/emits de-optimizes props/emits\r\n // normalization caching.\r\n if (mixin.props || mixin.emits) {\r\n context.deopt = true;\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixin has already been applied to target app' +\r\n (mixin.name ? `: ${mixin.name}` : ''));\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixins are only available in builds supporting Options API');\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\r\n warn(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\r\n warn(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n mount(rootContainer, isHydrate) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsInitApp(app, version);\r\n }\r\n return vnode.component.proxy;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`App has already been mounted.\\n` +\r\n `If you want to remount the same app, move your app creation logic ` +\r\n `into a factory function and create fresh app instances for each ` +\r\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\r\n }\r\n },\r\n unmount() {\r\n if (isMounted) {\r\n render(null, app._container);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsUnmountApp(app);\r\n }\r\n delete app._container.__vue_app__;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\nlet hasMismatch = false;\r\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\r\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\r\n// Note: hydration is DOM-specific\r\n// But we have to place it in core due to tight coupling with core - splitting\r\n// it out creates a ton of unnecessary complexity.\r\n// Hydration also depends on some renderer internal logic which needs to be\r\n// passed in via arguments.\r\nfunction createHydrationFunctions(rendererInternals) {\r\n const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\r\n const hydrate = (vnode, container) => {\r\n if ((process.env.NODE_ENV !== 'production') && !container.hasChildNodes()) {\r\n warn(`Attempting to hydrate existing markup but container is empty. ` +\r\n `Performing full mount instead.`);\r\n patch(null, vnode, container);\r\n return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, null, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type !== node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n const container = parentNode(node);\r\n const hydrateComponent = () => {\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n };\r\n // async component\r\n const loadAsync = vnode.type.__asyncLoader;\r\n if (loadAsync) {\r\n loadAsync().then(hydrateComponent);\r\n }\r\n else {\r\n hydrateComponent();\r\n }\r\n // component may be async, so in the case of fragments we cannot rely\r\n // on component's rendered output to determine the end of the fragment\r\n // instead, we do a lookahead to find the end anchor node.\r\n nextNode = isFragmentStart\r\n ? locateClosingAsyncAnchor(node)\r\n : nextSibling(node);\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n if (domType !== 8 /* COMMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null) {\r\n setRef(ref, null, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { props, patchFlag, shapeFlag, dirs } = vnode;\r\n // skip props & children if this is hoisted static nodes\r\n if (patchFlag !== -1 /* HOISTED */) {\r\n if (dirs) {\r\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\r\n }\r\n // props\r\n if (props) {\r\n if (!optimized ||\r\n (patchFlag & 16 /* FULL_PROPS */ ||\r\n patchFlag & 32 /* HYDRATE_EVENTS */)) {\r\n for (const key in props) {\r\n if (!isReservedProp(key) && isOn(key)) {\r\n patchProp(el, key, null, props[key]);\r\n }\r\n }\r\n }\r\n else if (props.onClick) {\r\n // Fast path for click listeners (which is most often) to avoid\r\n // iterating through props.\r\n patchProp(el, 'onClick', null, props.onClick);\r\n }\r\n }\r\n // vnode / directive hooks\r\n let vnodeHooks;\r\n if ((vnodeHooks = props && props.onVnodeBeforeMount)) {\r\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n }\r\n if (dirs) {\r\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\r\n }\r\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {\r\n queueEffectWithSuspense(() => {\r\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\r\n }, parentSuspense);\r\n }\r\n // children\r\n if (shapeFlag & 16 /* ARRAY_CHILDREN */ &&\r\n // skip if element has innerHTML / textContent\r\n !(props && (props.innerHTML || props.textContent))) {\r\n let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, optimized);\r\n let hasWarned = false;\r\n while (next) {\r\n hasMismatch = true;\r\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n warn(`Hydration children mismatch in <${vnode.type}>: ` +\r\n `server rendered element contains more child nodes than client vdom.`);\r\n hasWarned = true;\r\n }\r\n // The SSRed DOM contains more nodes than it should. Remove them.\r\n const cur = next;\r\n next = next.nextSibling;\r\n remove(cur);\r\n }\r\n }\r\n else if (shapeFlag & 8 /* TEXT_CHILDREN */) {\r\n if (el.textContent !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text content mismatch in <${vnode.type}>:\\n` +\r\n `- Client: ${el.textContent}\\n` +\r\n `- Server: ${vnode.children}`);\r\n el.textContent = vnode.children;\r\n }\r\n }\r\n }\r\n return el.nextSibling;\r\n };\r\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, optimized) => {\r\n optimized = optimized || !!parentVNode.dynamicChildren;\r\n const children = parentVNode.children;\r\n const l = children.length;\r\n let hasWarned = false;\r\n for (let i = 0; i < l; i++) {\r\n const vnode = optimized\r\n ? children[i]\r\n : (children[i] = normalizeVNode(children[i]));\r\n if (node) {\r\n node = hydrateNode(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n else {\r\n hasMismatch = true;\r\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n warn(`Hydration children mismatch in <${container.tagName.toLowerCase()}>: ` +\r\n `server rendered element contains fewer child nodes than client vdom.`);\r\n hasWarned = true;\r\n }\r\n // the SSRed DOM didn't contain enough nodes. Mount the missing ones.\r\n patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container));\r\n }\r\n }\r\n return node;\r\n };\r\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, optimized) => {\r\n const container = parentNode(node);\r\n const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, optimized);\r\n if (next && isComment(next) && next.data === ']') {\r\n return nextSibling((vnode.anchor = next));\r\n }\r\n else {\r\n // fragment didn't hydrate successfully, since we didn't get a end anchor\r\n // back. This should have led to node/children mismatch warnings.\r\n hasMismatch = true;\r\n // since the anchor is missing, we need to create one and insert it\r\n insert((vnode.anchor = createComment(`]`)), container, next);\r\n return next;\r\n }\r\n };\r\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, isFragment) => {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration node mismatch:\\n- Client vnode:`, vnode.type, `\\n- Server rendered DOM:`, node, node.nodeType === 3 /* TEXT */\r\n ? `(text)`\r\n : isComment(node) && node.data === '['\r\n ? `(start of fragment)`\r\n : ``);\r\n vnode.el = null;\r\n if (isFragment) {\r\n // remove excessive fragment nodes\r\n const end = locateClosingAsyncAnchor(node);\r\n while (true) {\r\n const next = nextSibling(node);\r\n if (next && next !== end) {\r\n remove(next);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n const next = nextSibling(node);\r\n const container = parentNode(node);\r\n remove(node);\r\n patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container));\r\n return next;\r\n };\r\n const locateClosingAsyncAnchor = (node) => {\r\n let match = 0;\r\n while (node) {\r\n node = nextSibling(node);\r\n if (node && isComment(node)) {\r\n if (node.data === '[')\r\n match++;\r\n if (node.data === ']') {\r\n if (match === 0) {\r\n return nextSibling(node);\r\n }\r\n else {\r\n match--;\r\n }\r\n }\r\n }\r\n }\r\n return node;\r\n };\r\n return [hydrate, hydrateNode];\r\n}\n\nlet supported;\r\nlet perf;\r\nfunction startMeasure(instance, type) {\r\n if (instance.appContext.config.performance && isSupported()) {\r\n perf.mark(`vue-${type}-${instance.uid}`);\r\n }\r\n}\r\nfunction endMeasure(instance, type) {\r\n if (instance.appContext.config.performance && isSupported()) {\r\n const startTag = `vue-${type}-${instance.uid}`;\r\n const endTag = startTag + `:end`;\r\n perf.mark(endTag);\r\n perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n }\r\n}\r\nfunction isSupported() {\r\n if (supported !== undefined) {\r\n return supported;\r\n }\r\n /* eslint-disable no-restricted-globals */\r\n if (typeof window !== 'undefined' && window.performance) {\r\n supported = true;\r\n perf = window.performance;\r\n }\r\n else {\r\n supported = false;\r\n }\r\n /* eslint-enable no-restricted-globals */\r\n return supported;\r\n}\n\n/**\r\n * This is only called in esm-bundler builds.\r\n * It is called when a renderer is created, in `baseCreateRenderer` so that\r\n * importing runtime-core is side-effects free.\r\n *\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_OPTIONS_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_OPTIONS_API__ = true;\r\n }\r\n if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of Vue. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle. ` +\r\n `See http://link.vuejs.org/feature-flags for more details.`);\r\n }\r\n}\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest = loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n __asyncLoader: load,\r\n name: 'AsyncComponentWrapper',\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (false )) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children } }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst prodEffectOptions = {\r\n scheduler: queueJob,\r\n // #1801, #2043 component render effects should allow recursive updates\r\n allowRecurse: true\r\n};\r\nfunction createDevEffectOptions(instance) {\r\n return {\r\n scheduler: queueJob,\r\n allowRecurse: true,\r\n onTrack: instance.rtc ? e => invokeArrayFns(instance.rtc, e) : void 0,\r\n onTrigger: instance.rtg ? e => invokeArrayFns(instance.rtg, e) : void 0\r\n };\r\n}\r\nconst queuePostRenderEffect = queueEffectWithSuspense\r\n ;\r\nconst setRef = (rawRef, oldRawRef, parentSuspense, vnode) => {\r\n if (isArray(rawRef)) {\r\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode));\r\n return;\r\n }\r\n let value;\r\n if (!vnode || isAsyncWrapper(vnode)) {\r\n value = null;\r\n }\r\n else {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n value = vnode.component.exposed || vnode.component.proxy;\r\n }\r\n else {\r\n value = vnode.el;\r\n }\r\n }\r\n const { i: owner, r: ref } = rawRef;\r\n if ((process.env.NODE_ENV !== 'production') && !owner) {\r\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\r\n `A vnode with ref must be created inside the render function.`);\r\n return;\r\n }\r\n const oldRef = oldRawRef && oldRawRef.r;\r\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\r\n const setupState = owner.setupState;\r\n // unset old ref\r\n if (oldRef != null && oldRef !== ref) {\r\n if (isString(oldRef)) {\r\n refs[oldRef] = null;\r\n if (hasOwn(setupState, oldRef)) {\r\n setupState[oldRef] = null;\r\n }\r\n }\r\n else if (isRef(oldRef)) {\r\n oldRef.value = null;\r\n }\r\n }\r\n if (isString(ref)) {\r\n const doSet = () => {\r\n refs[ref] = value;\r\n if (hasOwn(setupState, ref)) {\r\n setupState[ref] = value;\r\n }\r\n };\r\n // #1789: for non-null values, set them after render\r\n // null values means this is unmount and it should not overwrite another\r\n // ref with the same key\r\n if (value) {\r\n doSet.id = -1;\r\n queuePostRenderEffect(doSet, parentSuspense);\r\n }\r\n else {\r\n doSet();\r\n }\r\n }\r\n else if (isRef(ref)) {\r\n const doSet = () => {\r\n ref.value = value;\r\n };\r\n if (value) {\r\n doSet.id = -1;\r\n queuePostRenderEffect(doSet, parentSuspense);\r\n }\r\n else {\r\n doSet();\r\n }\r\n }\r\n else if (isFunction(ref)) {\r\n callWithErrorHandling(ref, owner, 12 /* FUNCTION_REF */, [value, refs]);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', value, `(${typeof value})`);\r\n }\r\n};\r\n/**\r\n * The createRenderer function accepts two generic arguments:\r\n * HostNode and HostElement, corresponding to Node and Element types in the\r\n * host environment. For example, for runtime-dom, HostNode would be the DOM\r\n * `Node` interface and HostElement would be the DOM `Element` interface.\r\n *\r\n * Custom renderers can pass in the platform specific types like this:\r\n *\r\n * ``` js\r\n * const { render, createApp } = createRenderer({\r\n * patchProp,\r\n * ...nodeOps\r\n * })\r\n * ```\r\n */\r\nfunction createRenderer(options) {\r\n return baseCreateRenderer(options);\r\n}\r\n// Separate API for creating hydration-enabled renderer.\r\n// Hydration logic is only used when calling this function, making it\r\n// tree-shakable.\r\nfunction createHydrationRenderer(options) {\r\n return baseCreateRenderer(options, createHydrationFunctions);\r\n}\r\n// implementation\r\nfunction baseCreateRenderer(options, createHydrationFns) {\r\n // compile-time feature flags check\r\n {\r\n initFeatureFlags();\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__VUE__ = true;\r\n setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__);\r\n }\r\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, forcePatchProp: hostForcePatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options;\r\n // Note: functions inside this closure should use `const xxx = () => {}`\r\n // style in order to prevent being inlined by minifiers.\r\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, optimized = false) => {\r\n // patching & not same type, unmount old tree\r\n if (n1 && !isSameVNodeType(n1, n2)) {\r\n anchor = getNextHostNode(n1);\r\n unmount(n1, parentComponent, parentSuspense, true);\r\n n1 = null;\r\n }\r\n if (n2.patchFlag === -2 /* BAIL */) {\r\n optimized = false;\r\n n2.dynamicChildren = null;\r\n }\r\n const { type, ref, shapeFlag } = n2;\r\n switch (type) {\r\n case Text:\r\n processText(n1, n2, container, anchor);\r\n break;\r\n case Comment:\r\n processCommentNode(n1, n2, container, anchor);\r\n break;\r\n case Static:\r\n if (n1 == null) {\r\n mountStaticNode(n2, container, anchor, isSVG);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n patchStaticNode(n1, n2, container, isSVG);\r\n }\r\n break;\r\n case Fragment:\r\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals);\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid VNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n // set ref\r\n if (ref != null && parentComponent) {\r\n setRef(ref, n1 && n1.ref, parentSuspense, n2);\r\n }\r\n };\r\n const processText = (n1, n2, container, anchor) => {\r\n if (n1 == null) {\r\n hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);\r\n }\r\n else {\r\n const el = (n2.el = n1.el);\r\n if (n2.children !== n1.children) {\r\n hostSetText(el, n2.children);\r\n }\r\n }\r\n };\r\n const processCommentNode = (n1, n2, container, anchor) => {\r\n if (n1 == null) {\r\n hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);\r\n }\r\n else {\r\n // there's no support for dynamic comments\r\n n2.el = n1.el;\r\n }\r\n };\r\n const mountStaticNode = (n2, container, anchor, isSVG) => {\r\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n };\r\n /**\r\n * Dev / HMR only\r\n */\r\n const patchStaticNode = (n1, n2, container, isSVG) => {\r\n // static nodes are only patched during dev for HMR\r\n if (n2.children !== n1.children) {\r\n const anchor = hostNextSibling(n1.anchor);\r\n // remove existing\r\n removeStaticNode(n1);\r\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n }\r\n else {\r\n n2.el = n1.el;\r\n n2.anchor = n1.anchor;\r\n }\r\n };\r\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\r\n let next;\r\n while (el && el !== anchor) {\r\n next = hostNextSibling(el);\r\n hostInsert(el, container, nextSibling);\r\n el = next;\r\n }\r\n hostInsert(anchor, container, nextSibling);\r\n };\r\n const removeStaticNode = ({ el, anchor }) => {\r\n let next;\r\n while (el && el !== anchor) {\r\n next = hostNextSibling(el);\r\n hostRemove(el);\r\n el = next;\r\n }\r\n hostRemove(anchor);\r\n };\r\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\r\n isSVG = isSVG || n2.type === 'svg';\r\n if (n1 == null) {\r\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else {\r\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n };\r\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\r\n let el;\r\n let vnodeHook;\r\n const { type, props, shapeFlag, transition, scopeId, patchFlag, dirs } = vnode;\r\n if (!(process.env.NODE_ENV !== 'production') &&\r\n vnode.el &&\r\n hostCloneNode !== undefined &&\r\n patchFlag === -1 /* HOISTED */) {\r\n // If a vnode has non-null el, it means it's being reused.\r\n // Only static vnodes can be reused, so its mounted DOM nodes should be\r\n // exactly the same, and we can simply do a clone here.\r\n // only do this in production since cloned trees cannot be HMR updated.\r\n el = vnode.el = hostCloneNode(vnode.el);\r\n }\r\n else {\r\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is);\r\n // mount children first, since some props may rely on child content\r\n // being already rendered, e.g. `