From 79c8688f93d85dcedd6ee718a843eb214c9af59a Mon Sep 17 00:00:00 2001 From: 3lviend Date: Thu, 8 Aug 2024 13:32:36 +0700 Subject: [PATCH] Databases tree element with tailwind & remove custom styles --- public/css/app.min.css | 2 +- public/css/sequenceserver.css | 24 - public/js/cloud_share_modal.js | 9 +- public/js/databases_tree.js | 32 +- public/js/hit.js | 2 +- public/js/report.js | 2 +- public/js/share_url.js | 2 +- public/js/sidebar.js | 72 +- public/sequenceserver-report.min.js | 79474 +++++++++++++++++++++- public/sequenceserver-report.min.js.map | 2 +- public/sequenceserver-search.min.js | 77975 ++++++++++++++++++++- public/sequenceserver-search.min.js.map | 2 +- 12 files changed, 157522 insertions(+), 76 deletions(-) diff --git a/public/css/app.min.css b/public/css/app.min.css index 3f1313c4b..7761f799a 100644 --- a/public/css/app.min.css +++ b/public/css/app.min.css @@ -1 +1 @@ -/*! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.bottom-12{bottom:3rem}.end-1{inset-inline-end:.25rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-full{left:100%}.right-2{right:.5rem}.start-1{inset-inline-start:.25rem}.top-0{top:0}.top-2{top:.5rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-40{z-index:40}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-start-1{grid-column-start:1}.col-end-7{grid-column-end:7}.m-0{margin:0}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-ml-8{margin-left:-2rem}.-mr-\[1px\]{margin-right:-1px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-9{margin-bottom:2.25rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-5{margin-top:1.25rem}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.grid{display:grid}.contents{display:contents}.list-item{display:list-item}.\!hidden{display:none!important}.hidden{display:none}.h-0{height:0}.h-1{height:.25rem}.h-2{height:.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.max-h-8{max-height:2rem}.max-h-96{max-height:24rem}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0}.w-3{width:.75rem}.w-32{width:8rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-6\/12{width:50%}.w-\[300px\]{width:300px}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.max-w-7xl{max-width:80rem}.max-w-lg{max-width:32rem}.max-w-screen-xl{max-width:1280px}.flex-none{flex:none}.shrink{flex-shrink:1}.flex-grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y:-100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-\[5px\]{border-radius:5px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-tr-lg{border-top-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-b-\[7px\]{border-bottom-width:7px}.border-r-\[7px\]{border-right-width:7px}.border-t{border-top-width:1px}.border-t-\[8px\]{border-top-width:8px}.border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.border-seqblue{--tw-border-opacity:1;border-color:rgb(27 85 122/var(--tw-border-opacity))}.border-seqorange{--tw-border-opacity:1;border-color:rgb(199 79 19/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.border-b-transparent{border-bottom-color:#0000}.border-r-black{--tw-border-opacity:1;border-right-color:rgb(0 0 0/var(--tw-border-opacity))}.border-t-transparent{border-top-color:#0000}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity))}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(147 197 253/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.bg-inherit{background-color:inherit}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-seqblue{--tw-bg-opacity:1;background-color:rgb(27 85 122/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-white\/90{--tw-gradient-from:#ffffffe6 var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-gray-100\/90{--tw-gradient-to:#f3f4f6e6 var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-4{padding-bottom:1rem}.pb-px{padding-bottom:1px}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-5{padding-left:1.25rem}.pl-px{padding-left:1px}.pr-0{padding-right:0}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-px{padding-top:1px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-6{line-height:1.5rem}.tracking-tighter{letter-spacing:-.05em}.tracking-wider{letter-spacing:.05em}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-inherit{color:inherit}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-seqblue{--tw-text-opacity:1;color:rgb(27 85 122/var(--tw-text-opacity))}.text-seqorange{--tw-text-opacity:1;color:rgb(199 79 19/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.\!shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a!important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-inset{--tw-ring-inset:inset}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity))}.ring-seqorange{--tw-ring-opacity:1;--tw-ring-color:rgb(199 79 19/var(--tw-ring-opacity))}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!invert{--tw-invert:invert(100%)!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.invert{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:.15s!important}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.tooltip{position:absolute;z-index:1070;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:12px;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:#0000;border-style:solid}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.hover\:bg-blue-400:hover{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-seqorange:hover{--tw-bg-opacity:1;background-color:rgb(199 79 19/var(--tw-bg-opacity))}.hover\:bg-yellow-100:hover{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.focus\:text-seqorange:focus,.hover\:text-seqorange:hover{--tw-text-opacity:1;color:rgb(199 79 19/var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-inset:focus{--tw-ring-inset:inset}.focus\:ring-seqblue:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(27 85 122/var(--tw-ring-opacity))}.focus\:ring-seqorange:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(199 79 19/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.group:hover .group-hover\:flex{display:flex}@media (min-width:640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:ml-3{margin-left:.75rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-screen-md{max-width:768px}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-center{align-items:center}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-4{padding-bottom:1rem}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:leading-6{line-height:1.5rem}}@media (min-width:768px){.md\:my-2{margin-top:.5rem;margin-bottom:.5rem}.md\:flex{display:flex}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}} \ No newline at end of file +/*! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.bottom-12{bottom:3rem}.end-1{inset-inline-end:.25rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-full{left:100%}.right-2{right:.5rem}.start-1{inset-inline-start:.25rem}.top-0{top:0}.top-2{top:.5rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-40{z-index:40}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-start-1{grid-column-start:1}.col-end-7{grid-column-end:7}.m-0{margin:0}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-ml-8{margin-left:-2rem}.-mr-\[1px\]{margin-right:-1px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-9{margin-bottom:2.25rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-5{margin-top:1.25rem}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.grid{display:grid}.contents{display:contents}.list-item{display:list-item}.\!hidden{display:none!important}.hidden{display:none}.h-0{height:0}.h-1{height:.25rem}.h-2{height:.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.max-h-8{max-height:2rem}.max-h-96{max-height:24rem}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0}.w-3{width:.75rem}.w-32{width:8rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-6\/12{width:50%}.w-\[300px\]{width:300px}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.max-w-7xl{max-width:80rem}.max-w-lg{max-width:32rem}.max-w-screen-xl{max-width:1280px}.flex-none{flex:none}.shrink{flex-shrink:1}.flex-grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y:-100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-\[5px\]{border-radius:5px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-tr-lg{border-top-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-b-\[7px\]{border-bottom-width:7px}.border-r-\[7px\]{border-right-width:7px}.border-t{border-top-width:1px}.border-t-\[8px\]{border-top-width:8px}.border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.border-seqblue{--tw-border-opacity:1;border-color:rgb(27 85 122/var(--tw-border-opacity))}.border-seqorange{--tw-border-opacity:1;border-color:rgb(199 79 19/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.border-b-transparent{border-bottom-color:#0000}.border-r-black{--tw-border-opacity:1;border-right-color:rgb(0 0 0/var(--tw-border-opacity))}.border-t-transparent{border-top-color:#0000}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity))}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(147 197 253/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity))}.bg-inherit{background-color:inherit}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-seqblue{--tw-bg-opacity:1;background-color:rgb(27 85 122/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-white\/90{--tw-gradient-from:#ffffffe6 var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-gray-100\/90{--tw-gradient-to:#f3f4f6e6 var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-4{padding-bottom:1rem}.pb-px{padding-bottom:1px}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-5{padding-left:1.25rem}.pl-px{padding-left:1px}.pr-0{padding-right:0}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-px{padding-top:1px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-6{line-height:1.5rem}.tracking-tighter{letter-spacing:-.05em}.tracking-wider{letter-spacing:.05em}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-inherit{color:inherit}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-seqblue{--tw-text-opacity:1;color:rgb(27 85 122/var(--tw-text-opacity))}.text-seqorange{--tw-text-opacity:1;color:rgb(199 79 19/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.\!shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a!important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-inset{--tw-ring-inset:inset}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity))}.ring-seqorange{--tw-ring-opacity:1;--tw-ring-color:rgb(199 79 19/var(--tw-ring-opacity))}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!invert{--tw-invert:invert(100%)!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.invert{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:.15s!important}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.tooltip{position:absolute;z-index:1070;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:12px;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:#0000;border-style:solid}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.hover\:bg-blue-400:hover{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-seqorange:hover{--tw-bg-opacity:1;background-color:rgb(199 79 19/var(--tw-bg-opacity))}.hover\:bg-yellow-100:hover{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.focus\:text-seqorange:focus,.hover\:text-seqorange:hover{--tw-text-opacity:1;color:rgb(199 79 19/var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-inset:focus{--tw-ring-inset:inset}.focus\:ring-seqblue:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(27 85 122/var(--tw-ring-opacity))}.focus\:ring-seqorange:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(199 79 19/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.group:hover .group-hover\:flex{display:flex}@media (min-width:640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:ml-3{margin-left:.75rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-screen-md{max-width:768px}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-center{align-items:center}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-4{padding-bottom:1rem}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:leading-6{line-height:1.5rem}}@media (min-width:768px){.md\:my-2{margin-top:.5rem;margin-bottom:.5rem}.md\:flex{display:flex}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}} \ No newline at end of file diff --git a/public/css/sequenceserver.css b/public/css/sequenceserver.css index d2744c3f8..1aae7b654 100644 --- a/public/css/sequenceserver.css +++ b/public/css/sequenceserver.css @@ -81,14 +81,6 @@ a.disabled:hover, overflow-wrap: break-word; } -/** - * Set max-width and font-family on tooltips. - */ -.tooltip-inner { - max-width: 350px; - font-family: "Source sans pro", "Helvetica Neue", Helvetica, Arial, sans-serif; -} - /** * Do not wrap text or show horizontal scrollbar if text overflows the width of * the element. Show ellipsis instead. @@ -166,22 +158,6 @@ td.nowrap-ellipsis { border-left: 2px solid #c74f14; } -.btn-primary { - background-color: #1b557a; - border-color: #174465; -} - -.btn-primary:hover { - background-color: #174465; - border-color: #174465; -} - -.btn-primary:disabled, -.btn-primary[disabled]:hover { - background-color: #881c14; - border-color: #881c14; -} - /* CSS class to facilitate the hit header wrapping */ .hit-header { display: table-cell; diff --git a/public/js/cloud_share_modal.js b/public/js/cloud_share_modal.js index 3654cea65..3924f4d7f 100644 --- a/public/js/cloud_share_modal.js +++ b/public/js/cloud_share_modal.js @@ -148,9 +148,14 @@ export default class CloudShareModal extends React.Component {
- +
) diff --git a/public/js/databases_tree.js b/public/js/databases_tree.js index ede5a5de9..f01356ef4 100644 --- a/public/js/databases_tree.js +++ b/public/js/databases_tree.js @@ -59,15 +59,18 @@ export default class extends Databases { // Panel name and column width. var panelTitle = category[0].toUpperCase() + category.substring(1).toLowerCase() + ' databases'; - var columnClass = this.categories().length === 1 ? 'col-md-12' : - 'col-md-6'; + var columnClass = this.categories().length === 1 ? 'col-span-2' : ''; // Toggle button. var toggleState = '[Select all]'; - var toggleClass = 'btn-link'; + var toggleClass = 'px-2 text-sm'; var toggleShown = this.databases(category).length > 1; var toggleDisabled = this.state.type && this.state.type !== category; - if (toggleShown && toggleDisabled) toggleClass += ' disabled'; + if (toggleShown && toggleDisabled) { + toggleClass += ' text-gray-400'; + } else { + toggleClass += ' text-seqblue'; + } if (!toggleShown) toggleClass += ' hidden'; if (this.nselected() === this.databases(category).length) { toggleState = '[Deselect all]'; @@ -76,22 +79,29 @@ export default class extends Databases { // JSX. return (
-
-
-

{panelTitle}

   +
+
+

{panelTitle}

{ this.renderDatabaseSearch(category) } -
-
    +
      { _.map(this.databases(category), _.bind(function (database, index) { return ( -
    • +
    • {this.renderDatabase(database)}
    • ); diff --git a/public/js/hit.js b/public/js/hit.js index cd9b7ff4a..3ed5649f6 100644 --- a/public/js/hit.js +++ b/public/js/hit.js @@ -115,7 +115,7 @@ export default class extends Component { } return
      -

      +

        {this.props.hit.id}  {this.props.hit.title} diff --git a/public/js/report.js b/public/js/report.js index e580683af..95046b7d6 100644 --- a/public/js/report.js +++ b/public/js/report.js @@ -231,7 +231,7 @@ class Report extends Component { })}

      - + View results in browser anyway

      diff --git a/public/js/share_url.js b/public/js/share_url.js index a2451563e..401c28bda 100644 --- a/public/js/share_url.js +++ b/public/js/share_url.js @@ -13,7 +13,7 @@ const ShareURLComponent = ({ querydb, program, queryLength, url }) => {
      - + Share via email
      diff --git a/public/js/sidebar.js b/public/js/sidebar.js index 30b9334a7..3e2bf6b7d 100644 --- a/public/js/sidebar.js +++ b/public/js/sidebar.js @@ -285,22 +285,26 @@ export default class extends Component {

    {!this.props.cloudSharingEnabled && -
  • - - Copy URL to clipboard - -
    - copied! -
    +
  • + +
    + +
    + Copy URL to clipboard +
    +
    +
    + + Copied! + +
    +
    +
    +
    +
  • } {!this.props.cloudSharingEnabled && @@ -431,23 +445,23 @@ export default class extends Component { } {this.props.cloudSharingEnabled &&
  • -
- - + + } { diff --git a/public/sequenceserver-report.min.js b/public/sequenceserver-report.min.js index 38b6e4968..9df13aed8 100644 --- a/public/sequenceserver-report.min.js +++ b/public/sequenceserver-report.min.js @@ -1,3 +1,79473 @@ -/*! For license information please see sequenceserver-report.min.js.LICENSE.txt */ -(()=>{var e={190:(e,t,n)=>{var r;function i(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=o(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}e=n.nmd(e);var a,s=[].indexOf||function(e){for(var t=0,n=this.length;th?{in:n.in-h,out:n.in}:{in:t[0].out,out:t[0].out+h}},null!==e&&(e.exports=a),a.checkParent=function(e,t,n,r){return e in n||(a.log(1,"datum","unknown parent id",{line:t+1,value:e,header:r,layoutSummary:n}),!1)},a.checkNumber=function(e,t){var n,r;for(n in e)if(r=e[n],isNaN(r))return a.log(1,"datum","not a number",{line:t+1,value:r,header:n}),!1;return!0},a.parseSpanValueData=function(e,t){var n;return e.length>0?("parent_id"in(n=e[0])&&"start"in n&&"end"in n&&"value"in n&&(e=e.map((function(e){return[e.parent_id,e.start,e.end,e.value]}))),e=e.filter((function(e,n){return a.checkParent(e[0],n,t,"parent")})).filter((function(e,t){return a.checkNumber({start:e[1],end:e[2],value:e[3]},t)})).map((function(e){return(e[1]<0||e[2]>t[e[0]])&&a.log(2,"position","position inconsistency",{datum:e,layoutSummary:t}),{block_id:e[0],start:Math.max(0,parseFloat(e[1])),end:Math.min(t[e[0]],parseFloat(e[2])),value:parseFloat(e[3])||1}})),{data:d3.nest().key((function(e){return e.block_id})).entries(e),meta:{min:d3.min(e,(function(e){return e.value})),max:d3.max(e,(function(e){return e.value}))}}):{data:[],meta:{min:null,max:null}}},a.parseSpanStringData=function(e,t){var n;return"parent_id"in(n=e[0])&&"start"in n&&"end"in n&&"value"in n&&(e=e.map((function(e){return[e.parent_id,e.start,e.end,e.value]}))),e=e.filter((function(e,n){return a.checkParent(e[0],n,t,"parent")})).filter((function(e,t){return a.checkNumber({start:e[1],end:e[2]},t)})).map((function(e){var n;return(e[1]<0||e[2]>t[e[0]])&&a.log(2,"position","position inconsistency",{datum:e,layoutSummary:t}),n=null!=e[3]?e[3]:null,{block_id:e[0],start:Math.max(0,parseFloat(e[1])),end:Math.min(t[e[0]],parseFloat(e[2])),value:n}})),{data:d3.nest().key((function(e){return e.block_id})).entries(e),meta:{min:d3.min(e,(function(e){return e.value})),max:d3.max(e,(function(e){return e.value}))}}},a.parsePositionValueData=function(e,t){var n;return"parent_id"in(n=e[0])&&"position"in n&&(e=e.map((function(e){return[e.parent_id,e.position,e.value]}))),e=e.filter((function(e,n){return a.checkParent(e[0],n,t,"parent")})).filter((function(e,t){return a.checkNumber({position:e[1],value:e[2]},t)})).map((function(e){return{block_id:e[0],position:Math.min(t[e[0]],parseFloat(e[1])),value:parseFloat(e[2])||1}})),{data:d3.nest().key((function(e){return e.block_id})).entries(e),meta:{min:d3.min(e,(function(e){return e.value})),max:d3.max(e,(function(e){return e.value}))}}},a.parsePositionTextData=function(e,t){var n;return"parent_id"in(n=e[0])&&"position"in n&&(e=e.map((function(e){return[e.parent_id,e.position,e.value]}))),e=e.filter((function(e,n){return a.checkParent(e[0],n,t,"parent")})).filter((function(e,t){return a.checkNumber({position:e[1]},t)})).map((function(e){return{block_id:e[0],position:Math.min(t[e[0]],parseFloat(e[1])),value:e[2]}})),{data:d3.nest().key((function(e){return e.block_id})).entries(e),meta:{min:d3.min(e,(function(e){return e.value})),max:d3.max(e,(function(e){return e.value}))}}},a.parseChordData=function(e,t){var n;return"source_id"in(n=e[0])&&"source_start"in n&&"target_id"in n&&"target_start"in n&&"target_end"in n&&(e=e.map((function(e){var t;return t=[e.source_id,e.source_start,e.source_end,e.target_id,e.target_start,e.target_end],null!=e.value&&t.push(e.value),t}))),{data:e=e.filter((function(e,n){return a.checkParent(e[0],n,t,"source_id")})).filter((function(e,n){return a.checkParent(e[3],n,t,"target_id")})).filter((function(e,t){return a.checkNumber({source_start:e[1],source_end:e[2],target_start:e[4],target_end:e[5],value:e[6]||1},t)})).map((function(e){return{source:{id:e[0],start:Math.max(0,parseFloat(e[1])),end:Math.min(t[e[0]],parseFloat(e[2]))},target:{id:e[3],start:Math.max(0,parseFloat(e[4])),end:Math.min(t[e[3]],parseFloat(e[5]))},value:parseFloat(e[6]),hsp:e[7]}})),meta:{min:d3.min(e,(function(e){return e.value})),max:d3.max(e,(function(e){return e.value}))}}},a.Layout=function(e,t){var n,r,i,o,s,l,u,c;for(i in null==t&&a.log(2,"no layout data",""),this.conf=a.mixConf(e,JSON.parse(JSON.stringify(this.defaultConf))),this.data=t,this.blocks={},this.size=0,o=0,s=this.data)c=s[i],this.blocks[c.id]={label:c.label,len:c.len,color:c.color,offset:o},c.offset=o,o+=c.len;for(i in this.size=o,r=this.conf.gap,u=this.size,n=this.data.length,l=this.data)c=l[i],this.blocks[c.id].start=c.offset/u*(2*Math.PI-n*r)+i*r,this.blocks[c.id].end=(c.offset+c.len)/u*(2*Math.PI-n*r)+i*r,c.start=c.offset/u*(2*Math.PI-n*r)+i*r,c.end=(c.offset+c.len)/u*(2*Math.PI-n*r)+i*r;return this.getAngle=function(e,t){var n;return n=this.blocks[e].start/this._size,"deg"===t?360*n:"rad"===t?2*n*Math.PI:null},this.summary=function(){var e,t,n,r,i;for(n={},t=0,r=(i=this._data).length;tt.end?-1:e.start===t.start&&e.end===t.end?0:1})),l=[],a=0,u=(d=n.values).length;a0?e<=n:e>=n;a=e+=r)i.push(a);return i}()),o=d3.svg.arc().innerRadius((function(e){return e})).outerRadius((function(e){return e})).startAngle(0).endAngle((function(e,t,i){var o;return(o=n.blocks[r[i].key]).end-o.start})),e.selectAll(".axis").data(i).enter().append("path").attr("opacity",t.opacity).attr("class","axis").attr("d",o).attr("stroke-width",(function(e,n){return n%t.axes.major.spacing==0?t.axes.major.thickness:t.axes.minor.thickness})).attr("stroke",(function(e,n){return n%t.axes.major.spacing==0?t.axes.major.color:t.axes.minor.color}))},this.theta=function(e,t){return e/t.len*(t.end-t.start)},this.x=function(e){return function(t,n,r){var i,o,a;return o=e.ratio(t.value,r.cmin,r.cmax,r.outerRadius-r.innerRadius,!1,r.logscale),a="in"===r.direction?r.outerRadius-o:r.innerRadius+o,i=e.theta(t.position,n.blocks[t.block_id])-Math.PI/2,a*Math.cos(i)}}(this),this.y=function(e){return function(t,n,r){var i,o,a;return o=e.ratio(t.value,r.cmin,r.cmax,r.outerRadius-r.innerRadius,!1,r.logscale),a="in"===r.direction?r.outerRadius-o:r.innerRadius+o,i=e.theta(t.position,n.blocks[t.block_id])-Math.PI/2,a*Math.sin(i)}}(this),this.ratio=function(e,t,n,r,i,o){var a,s,l;return s=o?2.3:1,t===n||e===t&&!i||e===n&&i?0:e===n||e===t&&i?r-1:(a=(e-t)/(n-t),l=Math.exp(1/s*Math.log(a)),i&&(l=1-l),Math.floor(r*l))},this},a.renderLayout=function(e,t,n){var r,i,o,s;if(i=n._layout.conf,t.select(".cs-layout").remove(),r=(s=t.append("g").attr("class","cs-layout").attr("z-index",i.zIndex).on("click",i.onClick)).selectAll("g").data(n._layout.data).enter().append("g").attr("class",(function(e){return e.id})).attr("opacity",i.opacity),o=e.svg.arc().innerRadius(i.innerRadius).outerRadius(i.outerRadius).cornerRadius(i.cornerRadius).startAngle((function(e){return e.start})).endAngle((function(e){return e.end})),r.append("path").attr("d",o).attr("fill",(function(e){return e.color})).attr("id",(function(e){return e.id})),i.labels.display&&a.renderLayoutLabels(i,e,r),i.ticks.display)return a.renderLayoutTicks(i,s,e,n)},a.renderLayoutLabels=function(e,t,n){var r,i;return i=e.innerRadius+e.labels.radialOffset,r=t.svg.arc().innerRadius(i).outerRadius(i).startAngle((function(e,t){return e.start})).endAngle((function(e,t){return e.end})),n.append("path").attr("fill","none").attr("stroke","none").attr("d",r).attr("id",(function(e){return"arc-label"+e.id})),n.append("text").attr("font-size",e.labels.size).attr("text-anchor","middle").append("textPath").attr("startOffset","25%").attr("xlink:href",(function(e){return"#arc-label"+e.id})).style("fill",e.labels.color).text((function(e){var t=e.end-e.start;return e.label.slice(0,Math.floor(21*t))+".."}))},a.renderLayoutTicks=function(e,t,n,r){var i,o;return i=function(t){var r,i;r=(t.end-t.start)/t.len,t.end-t.start>1.57?i=8:t.end-t.start>.785?i=4:t.end-t.start>.3925?i=2:t.end-t.start>0&&(i=0);var o=[],a={angle:0*r+t.start,label:0};o.push(a);var s=n.scale.linear().domain([1,t.len]).range([t.start,t.end]),l=s.ticks(i).length;return s.ticks(i).map((function(n,i){t.start,t.len,t.start;var a={angle:n*r+t.start,label:n/e.ticks.labelDenominator+e.ticks.labelSuffix};o.push(a)})),o.splice(l,1),a={angle:t.len*r+t.start-.006,label:t.len/e.ticks.labelDenominator+e.ticks.labelSuffix},o.push(a),o},(o=t.append("g").selectAll("g").data(r._layout.data).enter().append("g").selectAll("g").data(i).enter().append("g").attr("transform",(function(t){return"rotate("+(180*t.angle/Math.PI-90)+")translate("+e.outerRadius+",0)"}))).append("line").attr("x1",0).attr("y1",1).attr("x2",(function(t,n){return e.ticks.size.major})).attr("y2",1).style("stroke",e.ticks.color),o.append("text").attr("x",8).attr("dy",".35em").attr("transform",(function(e){return e.angle>Math.PI?"rotate(180)translate(-16)":null})).attr("text-anchor",(function(e){return e.angle>Math.PI?"end":null})).attr("font-size",e.ticks.labelSize).style("fill",e.ticks.labelColor).text((function(e){return e.label}))},a.Core.prototype.render=function(e,t){var n,r,i,o,l,u,c,h,f,d;if(void 0===e&&(o=!0,e=[]),t)for(h in r=this.tracks)for(n in c=r[h])u=c[n],l.select("."+n).remove();for(h in(d=(l=d3.select(this.conf.container).attr("width",this.conf.width).attr("height",this.conf.height)).select(".all")).empty()&&(d=l.append("g").attr("class","all").attr("transform","translate("+parseInt(this.conf.width/2)+","+parseInt(this.conf.height/2)+")")),i=this.tracks)for(n in c=i[h])u=c[n],(o||s.call(e,n)>=0)&&u.render(this,d,n);return(o||s.call(e,"layout")>=0)&&a.renderLayout(d3,d,this),(f=l.selectAll(".all > g").remove())[0].sort((function(e,t){return parseInt(e.getAttribute("z-index"))parseInt(t.getAttribute("z-index"))?1:0})),l.select(".all").selectAll("g").data(f[0]).enter().append((function(e){return e})),this},a.Core.prototype.defaultConf={width:700,height:700,container:"circos",defaultTrackWidth:10},a.Layout.prototype.defaultConf={innerRadius:250,outerRadius:300,cornerRadius:5,gap:.04,opacity:1,labels:{position:"center",display:!0,size:14,color:"#000",radialOffset:20},ticks:{display:!0,color:"grey",spacing:1e7,labels:!0,labelSpacing:10,labelSuffix:"Mb",labelDenominator:1e6,labelDisplay0:!0,labelSize:10,labelColor:"#000",labelFont:"default",majorSpacing:5,size:{minor:2,major:5}},onClick:null,onMouseOver:null,zIndex:100},a.axes={display:!1,minor:{spacing:5,spacingType:"pixel",color:"#d3d3d3",thickness:2},major:{spacing:5,color:"#000000",thickness:2}},a.Heatmap.prototype.defaultConf={innerRadius:0,outerRadius:0,min:"smart",max:"smart",colorPalette:"YlGnBu",colorPaletteSize:9,colorPaletteReverse:!1,logScale:!1,rules:[],backgrounds:[],zIndex:1,opacity:1,tooltipContent:null},a.Histogram.prototype.defaultConf={innerRadius:0,outerRadius:0,min:"smart",max:"smart",direction:"out",colorPaletteSize:9,colorPalette:"YlGnBu",usePalette:!0,colorPaletteReverse:!1,color:"#fd6a62",logScale:!1,axes:a.axes,rules:[],backgrounds:[],zIndex:1,opacity:1,tooltipContent:null},a.Chord.prototype.defaultConf={colorPaletteSize:9,colorPalette:"PuBuGn",usePalette:!0,colorPaletteReverse:!1,color:"#fd6a62",opacity:.7,min:"smart",max:"smart",logScale:!1,rules:[],backgrounds:[],zIndex:1,tooltipContent:null},a.Scatter.prototype.defaultConf={innerRadius:0,outerRadius:0,min:"smart",max:"smart",direction:"out",logScale:!1,glyph:{color:"#fd6a62",fill:!0,size:15,shape:"circle",strokeColor:"#d3d3d3",strokeWidth:2},axes:a.axes,rules:[],backgrounds:[],zIndex:1,opacity:1,tooltipContent:null},a.Line.prototype.defaultConf={innerRadius:0,outerRadius:0,min:"smart",max:"smart",direction:"out",logScale:!1,color:"#fd6a62",fill:!0,fill_color:"#d3d3d3",thickness:2,max_gap:1e7,interpolation:"linear",axes:a.axes,rules:[],backgrounds:[],zIndex:1,opacity:1,tooltipContent:null},a.Stack.prototype.defaultConf=(i(i(i(i(i(i(i(i(i(i(r={innerRadius:0,outerRadius:0,colorPaletteSize:9,colorPalette:"PuBuGn",usePalette:!0,colorPaletteReverse:!1,color:"#fd6a62",min:"smart",max:"smart",direction:"out",logScale:!1},"color","#fd6a62"),"thickness",10),"radialMargin",2),"margin",2),"strokeWidth",1),"strokeColor","#000000"),"axes",a.axes),"rules",[]),"backgrounds",[]),"zIndex",1),i(i(r,"opacity",1),"tooltipContent",null)),a.Highlight.prototype.defaultConf={innerRadius:0,outerRadius:0,defaultColor:"#fd6a62",opacity:.5,rules:[],zIndex:101,strokeColor:"#d3d3d3",strokeWidth:0,tooltipContent:null},a.Text.prototype.defaultConf={innerRadius:0,outerRadius:0,rules:[],backgrounds:[],zIndex:1,style:{},tooltipContent:null},a.registerTooltip=function(e,t,n,r){return t.tip=d3.tip().direction("s").offset([20,0]).html(r.tooltipContent),n.call(t.tip),t.dispatch.on("mouseover",(function(e,n,r){return t.tip.attr("class","d3-tip appear").show(e)})),t.dispatch.on("mouseout",(function(e,n,r){return t.tip.attr("class","d3-tip").show(e),t.tip.hide()}))}},311:(e,t,n)=>{var r,i,o;function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}!function(s){"use strict";i=[n(692)],r=function(e){e.ui=e.ui||{},e.ui.version="1.13.3";var t,n=0,r=Array.prototype.hasOwnProperty,i=Array.prototype.slice;e.cleanData=(t=e.cleanData,function(n){var r,i,o;for(o=0;null!=(i=n[o]);o++)(r=e._data(i,"events"))&&r.remove&&e(i).triggerHandler("remove");t(n)}),e.widget=function(t,n,r){var i,o,a,s={},l=t.split(".")[0],u=l+"-"+(t=t.split(".")[1]);return r||(r=n,n=e.Widget),Array.isArray(r)&&(r=e.extend.apply(null,[{}].concat(r))),e.expr.pseudos[u.toLowerCase()]=function(t){return!!e.data(t,u)},e[l]=e[l]||{},i=e[l][t],o=e[l][t]=function(e,t){if(!this||!this._createWidget)return new o(e,t);arguments.length&&this._createWidget(e,t)},e.extend(o,i,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),(a=new n).options=e.widget.extend({},a.options),e.each(r,(function(e,t){s[e]="function"==typeof t?function(){function r(){return n.prototype[e].apply(this,arguments)}function i(t){return n.prototype[e].apply(this,t)}return function(){var e,n=this._super,o=this._superApply;return this._super=r,this._superApply=i,e=t.apply(this,arguments),this._super=n,this._superApply=o,e}}():t})),o.prototype=e.widget.extend(a,{widgetEventPrefix:i&&a.widgetEventPrefix||t},s,{constructor:o,namespace:l,widgetName:t,widgetFullName:u}),i?(e.each(i._childConstructors,(function(t,n){var r=n.prototype;e.widget(r.namespace+"."+r.widgetName,o,n._proto)})),delete i._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var n,o,a=i.call(arguments,1),s=0,l=a.length;s",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),this.classesElementLookup={},r!==this&&(e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){var t=this;this._destroy(),e.each(this.classesElementLookup,(function(e,n){t._removeClass(n,e)})),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:e.noop,widget:function(){return this.element},option:function(t,n){var r,i,o,a=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(a={},r=t.split("."),t=r.shift(),r.length){for(i=a[t]=e.widget.extend({},this.options[t]),o=0;o
"),o=i.children()[0];return e("body").append(i),n=o.offsetWidth,i.css("overflow","scroll"),n===(r=o.offsetWidth)&&(r=i[0].clientWidth),i.remove(),t=n-r},getScrollInfo:function(t){var n=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),r=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),i="scroll"===n||"auto"===n&&t.width0?"right":"center",vertical:c<0?"top":l>0?"bottom":"middle"};dn(r(l),r(c))?h.important="horizontal":h.important="vertical",t.using.call(this,e,h)}),a.offset(e.extend(C,{using:o}))}))},e.ui.position={fit:{left:function(e,t){var r,i=t.within,o=i.isWindow?i.scrollLeft:i.offset.left,a=i.width,s=e.left-t.collisionPosition.marginLeft,l=o-s,u=s+t.collisionWidth-a-o;t.collisionWidth>a?l>0&&u<=0?(r=e.left+l+t.collisionWidth-a-o,e.left+=l-r):e.left=u>0&&l<=0?o:l>u?o+a-t.collisionWidth:o:l>0?e.left+=l:u>0?e.left-=u:e.left=n(e.left-s,e.left)},top:function(e,t){var r,i=t.within,o=i.isWindow?i.scrollTop:i.offset.top,a=t.within.height,s=e.top-t.collisionPosition.marginTop,l=o-s,u=s+t.collisionHeight-a-o;t.collisionHeight>a?l>0&&u<=0?(r=e.top+l+t.collisionHeight-a-o,e.top+=l-r):e.top=u>0&&l<=0?o:l>u?o+a-t.collisionHeight:o:l>0?e.top+=l:u>0?e.top-=u:e.top=n(e.top-s,e.top)}},flip:{left:function(e,t){var n,i,o=t.within,a=o.offset.left+o.scrollLeft,s=o.width,l=o.isWindow?o.scrollLeft:o.offset.left,u=e.left-t.collisionPosition.marginLeft,c=u-l,h=u+t.collisionWidth-s-l,f="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,d="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,p=-2*t.offset[0];c<0?((n=e.left+f+d+p+t.collisionWidth-s-a)<0||n0&&((i=e.left-t.collisionPosition.marginLeft+f+d+p-l)>0||r(i)0&&((n=e.top-t.collisionPosition.marginTop+f+d+p-l)>0||r(n)")[0],y=l.each;function b(e){return null==e?e+"":"object"===a(e)?u[c.call(e)]||"object":a(e)}function _(e,t,n){var r=m[t.type]||{};return null==e?n||!t.def?null:t.def:(e=r.floor?~~e:parseFloat(e),isNaN(e)?t.def:r.mod?(e+r.mod)%r.mod:Math.min(r.max,Math.max(0,e)))}function w(e){var t=d(),n=t._rgba=[];return e=e.toLowerCase(),y(f,(function(r,i){var o,a=i.re.exec(e),s=a&&i.parse(a),l=i.space||"rgba";if(s)return o=t[l](s),t[p[l].cache]=o[p[l].cache],n=t._rgba=o._rgba,!1})),n.length?("0,0,0,0"===n.join()&&l.extend(n,o.transparent),t):o[e]}function x(e,t,n){return 6*(n=(n+1)%1)<1?e+(t-e)*n*6:2*n<1?t:3*n<2?e+(t-e)*(2/3-n)*6:e}v.style.cssText="background-color:rgba(1,1,1,.5)",g.rgba=v.style.backgroundColor.indexOf("rgba")>-1,y(p,(function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}})),l.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),(function(e,t){u["[object "+t+"]"]=t.toLowerCase()})),d.fn=l.extend(d.prototype,{parse:function(e,t,n,r){if(void 0===e)return this._rgba=[null,null,null,null],this;(e.jquery||e.nodeType)&&(e=l(e).css(t),t=void 0);var i=this,a=b(e),s=this._rgba=[];return void 0!==t&&(e=[e,t,n,r],a="array"),"string"===a?this.parse(w(e)||o._default):"array"===a?(y(p.rgba.props,(function(t,n){s[n.idx]=_(e[n.idx],n)})),this):"object"===a?(y(p,e instanceof d?function(t,n){e[n.cache]&&(i[n.cache]=e[n.cache].slice())}:function(t,n){var r=n.cache;y(n.props,(function(t,o){if(!i[r]&&n.to){if("alpha"===t||null==e[t])return;i[r]=n.to(i._rgba)}i[r][o.idx]=_(e[t],o,!0)})),i[r]&&l.inArray(null,i[r].slice(0,3))<0&&(null==i[r][3]&&(i[r][3]=1),n.from&&(i._rgba=n.from(i[r])))}),this):void 0},is:function(e){var t=d(e),n=!0,r=this;return y(p,(function(e,i){var o,a=t[i.cache];return a&&(o=r[i.cache]||i.to&&i.to(r._rgba)||[],y(i.props,(function(e,t){if(null!=a[t.idx])return n=a[t.idx]===o[t.idx]}))),n})),n},_space:function(){var e=[],t=this;return y(p,(function(n,r){t[r.cache]&&e.push(n)})),e.pop()},transition:function(e,t){var n=d(e),r=n._space(),i=p[r],o=0===this.alpha()?d("transparent"):this,a=o[i.cache]||i.to(o._rgba),s=a.slice();return n=n[i.cache],y(i.props,(function(e,r){var i=r.idx,o=a[i],l=n[i],u=m[r.type]||{};null!==l&&(null===o?s[i]=l:(u.mod&&(l-o>u.mod/2?o+=u.mod:o-l>u.mod/2&&(o-=u.mod)),s[i]=_((l-o)*t+o,r)))})),this[r](s)},blend:function(e){if(1===this._rgba[3])return this;var t=this._rgba.slice(),n=t.pop(),r=d(e)._rgba;return d(l.map(t,(function(e,t){return(1-n)*r[t]+n*e})))},toRgbaString:function(){var e="rgba(",t=l.map(this._rgba,(function(e,t){return null!=e?e:t>2?1:0}));return 1===t[3]&&(t.pop(),e="rgb("),e+t.join()+")"},toHslaString:function(){var e="hsla(",t=l.map(this.hsla(),(function(e,t){return null==e&&(e=t>2?1:0),t&&t<3&&(e=Math.round(100*e)+"%"),e}));return 1===t[3]&&(t.pop(),e="hsl("),e+t.join()+")"},toHexString:function(e){var t=this._rgba.slice(),n=t.pop();return e&&t.push(~~(255*n)),"#"+l.map(t,(function(e){return 1===(e=(e||0).toString(16)).length?"0"+e:e})).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),d.fn.parse.prototype=d.fn,p.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,n,r=e[0]/255,i=e[1]/255,o=e[2]/255,a=e[3],s=Math.max(r,i,o),l=Math.min(r,i,o),u=s-l,c=s+l,h=.5*c;return t=l===s?0:r===s?60*(i-o)/u+360:i===s?60*(o-r)/u+120:60*(r-i)/u+240,n=0===u?0:h<=.5?u/c:u/(2-c),[Math.round(t)%360,n,h,null==a?1:a]},p.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],o=r<=.5?r*(1+n):r+n-r*n,a=2*r-o;return[Math.round(255*x(a,o,t+1/3)),Math.round(255*x(a,o,t)),Math.round(255*x(a,o,t-1/3)),i]},y(p,(function(e,t){var n=t.props,r=t.cache,i=t.to,o=t.from;d.fn[e]=function(e){if(i&&!this[r]&&(this[r]=i(this._rgba)),void 0===e)return this[r].slice();var t,a=b(e),s="array"===a||"object"===a?e:arguments,l=this[r].slice();return y(n,(function(e,t){var n=s["object"===a?e:t.idx];null==n&&(n=l[t.idx]),l[t.idx]=_(n,t)})),o?((t=d(o(l)))[r]=l,t):d(l)},y(n,(function(t,n){d.fn[t]||(d.fn[t]=function(r){var i,o,a,s,l=b(r);return o=(i=this[s="alpha"===t?this._hsla?"hsla":"rgba":e]())[n.idx],"undefined"===l?o:("function"===l&&(l=b(r=r.call(this,o))),null==r&&n.empty?this:("string"===l&&(a=h.exec(r))&&(r=o+parseFloat(a[2])*("+"===a[1]?1:-1)),i[n.idx]=r,this[s](i)))})}))})),d.hook=function(e){var t=e.split(" ");y(t,(function(e,t){l.cssHooks[t]={set:function(e,n){var r,i,o="";if("transparent"!==n&&("string"!==b(n)||(r=w(n)))){if(n=d(r||n),!g.rgba&&1!==n._rgba[3]){for(i="backgroundColor"===t?e.parentNode:e;(""===o||"transparent"===o)&&i&&i.style;)try{o=l.css(i,"backgroundColor"),i=i.parentNode}catch(e){}n=n.blend(o&&"transparent"!==o?o:"_default")}n=n.toRgbaString()}try{e.style[t]=n}catch(e){}}},l.fx.step[t]=function(e){e.colorInit||(e.start=d(e.elem,t),e.end=d(e.end),e.colorInit=!0),l.cssHooks[t].set(e.elem,e.start.transition(e.end,e.pos))}}))},d.hook("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"),l.cssHooks.borderColor={expand:function(e){var t={};return y(["Top","Right","Bottom","Left"],(function(n,r){t["border"+r+"Color"]=e})),t}},o=l.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"};var k,S,C="ui-effects-",T="ui-effects-style",E="ui-effects-animated";if(e.effects={effect:{}},function(){var t=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};function r(e){var t,n,r,i=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(i&&i.length&&i[0]&&i[i[0]])for(n=i.length;n--;)"string"==typeof i[t=i[n]]&&(o[(r=t,r.replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()})))]=i[t]);else for(t in i)"string"==typeof i[t]&&(o[t]=i[t]);return o}e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],(function(t,n){e.fx.step[n]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(l.style(e.elem,n,e.end),e.setAttr=!0)}})),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(i,o,a,s){var l=e.speed(o,a,s);return this.queue((function(){var o,a=e(this),s=a.attr("class")||"",u=l.children?a.find("*").addBack():a;u=u.map((function(){return{el:e(this),start:r(this)}})),(o=function(){e.each(t,(function(e,t){i[t]&&a[t+"Class"](i[t])}))})(),u=u.map((function(){return this.end=r(this.el[0]),this.diff=function(t,r){var i,o,a={};for(i in r)o=r[i],t[i]!==o&&(n[i]||!e.fx.step[i]&&isNaN(parseFloat(o))||(a[i]=o));return a}(this.start,this.end),this})),a.attr("class",s),u=u.map((function(){var t=this,n=e.Deferred(),r=e.extend({},l,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()})),e.when.apply(e,u.get()).done((function(){o(),e.each(arguments,(function(){var t=this.el;e.each(this.diff,(function(e){t.css(e,"")}))})),l.complete.call(a[0])}))}))},e.fn.extend({addClass:function(t){return function(n,r,i,o){return r?e.effects.animateClass.call(this,{add:n},r,i,o):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(n,r,i,o){return arguments.length>1?e.effects.animateClass.call(this,{remove:n},r,i,o):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(t){return function(n,r,i,o,a){return"boolean"==typeof r||void 0===r?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,o,a):t.apply(this,arguments):e.effects.animateClass.call(this,{toggle:n},r,i,o)}}(e.fn.toggleClass),switchClass:function(t,n,r,i,o){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,o)}})}(),function(){function t(t,n,r,i){return e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},null==n&&(n={}),"function"==typeof n&&(i=n,r=null,n={}),("number"==typeof n||e.fx.speeds[n])&&(i=r,r=n,n={}),"function"==typeof r&&(i=r,r=null),n&&e.extend(t,n),r=r||n.duration,t.duration=e.fx.off?0:"number"==typeof r?r:r in e.fx.speeds?e.fx.speeds[r]:e.fx.speeds._default,t.complete=i||n.complete,t}function n(t){return!(t&&"number"!=typeof t&&!e.fx.speeds[t])||"string"==typeof t&&!e.effects.effect[t]||"function"==typeof t||"object"===a(t)&&!t.effect}function r(e,t){var n=t.outerWidth(),r=t.outerHeight(),i=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/.exec(e)||["",0,n,r,0];return{top:parseFloat(i[1])||0,right:"auto"===i[2]?n:parseFloat(i[2]),bottom:"auto"===i[3]?r:parseFloat(i[3]),left:parseFloat(i[4])||0}}e.expr&&e.expr.pseudos&&e.expr.pseudos.animated&&(e.expr.pseudos.animated=function(t){return function(n){return!!e(n).data(E)||t(n)}}(e.expr.pseudos.animated)),!1!==e.uiBackCompat&&e.extend(e.effects,{save:function(e,t){for(var n=0,r=t.length;n
").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},o=document.activeElement;try{o.id}catch(e){o=document.body}return t.wrap(r),(t[0]===o||e.contains(t[0],o))&&e(o).trigger("focus"),r=t.parent(),"static"===t.css("position")?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],(function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")})),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).trigger("focus")),t}}),e.extend(e.effects,{version:"1.13.3",define:function(t,n,r){return r||(r=n,n="effect"),e.effects.effect[t]=r,e.effects.effect[t].mode=n,r},scaledDimensions:function(e,t,n){if(0===t)return{height:0,width:0,outerHeight:0,outerWidth:0};var r="horizontal"!==n?(t||100)/100:1,i="vertical"!==n?(t||100)/100:1;return{height:e.height()*i,width:e.width()*r,outerHeight:e.outerHeight()*i,outerWidth:e.outerWidth()*r}},clipToBox:function(e){return{width:e.clip.right-e.clip.left,height:e.clip.bottom-e.clip.top,left:e.clip.left,top:e.clip.top}},unshift:function(e,t,n){var r=e.queue();t>1&&r.splice.apply(r,[1,0].concat(r.splice(t,n))),e.dequeue()},saveStyle:function(e){e.data(T,e[0].style.cssText)},restoreStyle:function(e){e[0].style.cssText=e.data(T)||"",e.removeData(T)},mode:function(e,t){var n=e.is(":hidden");return"toggle"===t&&(t=n?"show":"hide"),(n?"hide"===t:"show"===t)&&(t="none"),t},getBaseline:function(e,t){var n,r;switch(e[0]){case"top":n=0;break;case"middle":n=.5;break;case"bottom":n=1;break;default:n=e[0]/t.height}switch(e[1]){case"left":r=0;break;case"center":r=.5;break;case"right":r=1;break;default:r=e[1]/t.width}return{x:r,y:n}},createPlaceholder:function(t){var n,r=t.css("position"),i=t.position();return t.css({marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()),/^(static|relative)/.test(r)&&(r="absolute",n=e("<"+t[0].nodeName+">").insertAfter(t).css({display:/^(inline|ruby)/.test(t.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight"),float:t.css("float")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"),t.data(C+"placeholder",n)),t.css({position:r,left:i.left,top:i.top}),n},removePlaceholder:function(e){var t=C+"placeholder",n=e.data(t);n&&(n.remove(),e.removeData(t))},cleanUp:function(t){e.effects.restoreStyle(t),e.effects.removePlaceholder(t)},setTransition:function(t,n,r,i){return i=i||{},e.each(n,(function(e,n){var o=t.cssUnit(n);o[0]>0&&(i[n]=o[0]*r+o[1])})),i}}),e.fn.extend({effect:function(){var n=t.apply(this,arguments),r=e.effects.effect[n.effect],i=r.mode,o=n.queue,a=o||"fx",s=n.complete,l=n.mode,u=[],c=function(t){var n=e(this),r=e.effects.mode(n,l)||i;n.data(E,!0),u.push(r),i&&("show"===r||r===i&&"hide"===r)&&n.show(),i&&"none"===r||e.effects.saveStyle(n),"function"==typeof t&&t()};if(e.fx.off||!r)return l?this[l](n.duration,s):this.each((function(){s&&s.call(this)}));function h(t){var o=e(this);function a(){"function"==typeof s&&s.call(o[0]),"function"==typeof t&&t()}n.mode=u.shift(),!1===e.uiBackCompat||i?"none"===n.mode?(o[l](),a()):r.call(o[0],n,(function(){o.removeData(E),e.effects.cleanUp(o),"hide"===n.mode&&o.hide(),a()})):(o.is(":hidden")?"hide"===l:"show"===l)?(o[l](),a()):r.call(o[0],n,a)}return!1===o?this.each(c).each(h):this.queue(a,c).queue(a,h)},show:function(e){return function(r){if(n(r))return e.apply(this,arguments);var i=t.apply(this,arguments);return i.mode="show",this.effect.call(this,i)}}(e.fn.show),hide:function(e){return function(r){if(n(r))return e.apply(this,arguments);var i=t.apply(this,arguments);return i.mode="hide",this.effect.call(this,i)}}(e.fn.hide),toggle:function(e){return function(r){if(n(r)||"boolean"==typeof r)return e.apply(this,arguments);var i=t.apply(this,arguments);return i.mode="toggle",this.effect.call(this,i)}}(e.fn.toggle),cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],(function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])})),r},cssClip:function(e){return e?this.css("clip","rect("+e.top+"px "+e.right+"px "+e.bottom+"px "+e.left+"px)"):r(this.css("clip"),this)},transfer:function(t,n){var r=e(this),i=e(t.to),o="fixed"===i.css("position"),a=e("body"),s=o?a.scrollTop():0,l=o?a.scrollLeft():0,u=i.offset(),c={top:u.top-s,left:u.left-l,height:i.innerHeight(),width:i.innerWidth()},h=r.offset(),f=e("
");f.appendTo("body").addClass(t.className).css({top:h.top-s,left:h.left-l,height:r.innerHeight(),width:r.innerWidth(),position:o?"fixed":"absolute"}).animate(c,t.duration,t.easing,(function(){f.remove(),"function"==typeof n&&n()}))}}),e.fx.step.clip=function(t){t.clipInit||(t.start=e(t.elem).cssClip(),"string"==typeof t.end&&(t.end=r(t.end,t.elem)),t.clipInit=!0),e(t.elem).cssClip({top:t.pos*(t.end.top-t.start.top)+t.start.top,right:t.pos*(t.end.right-t.start.right)+t.start.right,bottom:t.pos*(t.end.bottom-t.start.bottom)+t.start.bottom,left:t.pos*(t.end.left-t.start.left)+t.start.left})}}(),k={},e.each(["Quad","Cubic","Quart","Quint","Expo"],(function(e,t){k[t]=function(t){return Math.pow(t,e+2)}})),e.extend(k,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,n=4;e<((t=Math.pow(2,--n))-1)/11;);return 1/Math.pow(4,3-n)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(k,(function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(2*e)/2:1-n(-2*e+2)/2}})),e.effects,e.effects.define("blind","hide",(function(t,n){var r={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},i=e(this),o=t.direction||"up",a=i.cssClip(),s={clip:e.extend({},a)},l=e.effects.createPlaceholder(i);s.clip[r[o][0]]=s.clip[r[o][1]],"show"===t.mode&&(i.cssClip(s.clip),l&&l.css(e.effects.clipToBox(s)),s.clip=a),l&&l.animate(e.effects.clipToBox(s),t.duration,t.easing),i.animate(s,{queue:!1,duration:t.duration,easing:t.easing,complete:n})})),e.effects.define("bounce",(function(t,n){var r,i,o,a=e(this),s=t.mode,l="hide"===s,u="show"===s,c=t.direction||"up",h=t.distance,f=t.times||5,d=2*f+(u||l?1:0),p=t.duration/d,m=t.easing,g="up"===c||"down"===c?"top":"left",v="up"===c||"left"===c,y=0,b=a.queue().length;for(e.effects.createPlaceholder(a),o=a.css(g),h||(h=a["top"===g?"outerHeight":"outerWidth"]()/3),u&&((i={opacity:1})[g]=o,a.css("opacity",0).css(g,v?2*-h:2*h).animate(i,p,m)),l&&(h/=Math.pow(2,f-1)),(i={})[g]=o;y").css({position:"absolute",visibility:"visible",left:-i*p,top:-r*m}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:p,height:m,left:o+(f?s*p:0),top:a+(f?l*m:0),opacity:f?0:1}).animate({left:o+(f?0:s*p),top:a+(f?0:l*m),opacity:f?1:0},t.duration||500,t.easing,v)})),e.effects.define("fade","toggle",(function(t,n){var r="show"===t.mode;e(this).css("opacity",r?0:1).animate({opacity:r?1:0},{queue:!1,duration:t.duration,easing:t.easing,complete:n})})),e.effects.define("fold","hide",(function(t,n){var r=e(this),i=t.mode,o="show"===i,a="hide"===i,s=t.size||15,l=/([0-9]+)%/.exec(s),u=t.horizFirst?["right","bottom"]:["bottom","right"],c=t.duration/2,h=e.effects.createPlaceholder(r),f=r.cssClip(),d={clip:e.extend({},f)},p={clip:e.extend({},f)},m=[f[u[0]],f[u[1]]],g=r.queue().length;l&&(s=parseInt(l[1],10)/100*m[a?0:1]),d.clip[u[0]]=s,p.clip[u[0]]=s,p.clip[u[1]]=0,o&&(r.cssClip(p.clip),h&&h.css(e.effects.clipToBox(p)),p.clip=f),r.queue((function(n){h&&h.animate(e.effects.clipToBox(d),c,t.easing).animate(e.effects.clipToBox(p),c,t.easing),n()})).animate(d,c,t.easing).animate(p,c,t.easing).queue(n),e.effects.unshift(r,g,4)})),e.effects.define("highlight","show",(function(t,n){var r=e(this),i={backgroundColor:r.css("backgroundColor")};"hide"===t.mode&&(i.opacity=0),e.effects.saveStyle(r),r.css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(i,{queue:!1,duration:t.duration,easing:t.easing,complete:n})})),e.effects.define("size",(function(t,n){var r,i,o,a=e(this),s=["fontSize"],l=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],u=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=t.mode,h="effect"!==c,f=t.scale||"both",d=t.origin||["middle","center"],p=a.css("position"),m=a.position(),g=e.effects.scaledDimensions(a),v=t.from||g,y=t.to||e.effects.scaledDimensions(a,0);e.effects.createPlaceholder(a),"show"===c&&(o=v,v=y,y=o),i={from:{y:v.height/g.height,x:v.width/g.width},to:{y:y.height/g.height,x:y.width/g.width}},"box"!==f&&"both"!==f||(i.from.y!==i.to.y&&(v=e.effects.setTransition(a,l,i.from.y,v),y=e.effects.setTransition(a,l,i.to.y,y)),i.from.x!==i.to.x&&(v=e.effects.setTransition(a,u,i.from.x,v),y=e.effects.setTransition(a,u,i.to.x,y))),"content"!==f&&"both"!==f||i.from.y!==i.to.y&&(v=e.effects.setTransition(a,s,i.from.y,v),y=e.effects.setTransition(a,s,i.to.y,y)),d&&(r=e.effects.getBaseline(d,g),v.top=(g.outerHeight-v.outerHeight)*r.y+m.top,v.left=(g.outerWidth-v.outerWidth)*r.x+m.left,y.top=(g.outerHeight-y.outerHeight)*r.y+m.top,y.left=(g.outerWidth-y.outerWidth)*r.x+m.left),delete v.outerHeight,delete v.outerWidth,a.css(v),"content"!==f&&"both"!==f||(l=l.concat(["marginTop","marginBottom"]).concat(s),u=u.concat(["marginLeft","marginRight"]),a.find("*[width]").each((function(){var n=e(this),r=e.effects.scaledDimensions(n),o={height:r.height*i.from.y,width:r.width*i.from.x,outerHeight:r.outerHeight*i.from.y,outerWidth:r.outerWidth*i.from.x},a={height:r.height*i.to.y,width:r.width*i.to.x,outerHeight:r.height*i.to.y,outerWidth:r.width*i.to.x};i.from.y!==i.to.y&&(o=e.effects.setTransition(n,l,i.from.y,o),a=e.effects.setTransition(n,l,i.to.y,a)),i.from.x!==i.to.x&&(o=e.effects.setTransition(n,u,i.from.x,o),a=e.effects.setTransition(n,u,i.to.x,a)),h&&e.effects.saveStyle(n),n.css(o),n.animate(a,t.duration,t.easing,(function(){h&&e.effects.restoreStyle(n)}))}))),a.animate(y,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){var t=a.offset();0===y.opacity&&a.css("opacity",v.opacity),h||(a.css("position","static"===p?"relative":p).offset(t),e.effects.saveStyle(a)),n()}})})),e.effects.define("scale",(function(t,n){var r=e(this),i=t.mode,o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)||"effect"!==i?0:100),a=e.extend(!0,{from:e.effects.scaledDimensions(r),to:e.effects.scaledDimensions(r,o,t.direction||"both"),origin:t.origin||["middle","center"]},t);t.fade&&(a.from.opacity=1,a.to.opacity=0),e.effects.effect.size.call(this,a,n)})),e.effects.define("puff","hide",(function(t,n){var r=e.extend(!0,{},t,{fade:!0,percent:parseInt(t.percent,10)||150});e.effects.effect.scale.call(this,r,n)})),e.effects.define("pulsate","show",(function(t,n){var r=e(this),i=t.mode,o="show"===i,a=o||"hide"===i,s=2*(t.times||5)+(a?1:0),l=t.duration/s,u=0,c=1,h=r.queue().length;for(!o&&r.is(":visible")||(r.css("opacity",0).show(),u=1);c0&&o.is(":visible")):(/^(input|select|textarea|button|object)$/.test(l)?(a=!t.disabled)&&(s=e(t).closest("fieldset")[0])&&(a=!s.disabled):a="a"===l&&t.href||n,a&&e(t).is(":visible")&&function(e){for(var t=e.css("visibility");"inherit"===t;)t=(e=e.parent()).css("visibility");return"visible"===t}(e(t)))},e.extend(e.expr.pseudos,{focusable:function(t){return e.ui.focusable(t,null!=e.attr(t,"tabindex"))}}),e.ui.focusable,e.fn._form=function(){return"string"==typeof this[0].form?this.closest("form"):e(this[0].form)},e.ui.formResetMixin={_formResetHandler:function(){var t=e(this);setTimeout((function(){var n=t.data("ui-form-reset-instances");e.each(n,(function(){this.refresh()}))}))},_bindFormResetHandler:function(){if(this.form=this.element._form(),this.form.length){var e=this.form.data("ui-form-reset-instances")||[];e.length||this.form.on("reset.ui-form-reset",this._formResetHandler),e.push(this),this.form.data("ui-form-reset-instances",e)}},_unbindFormResetHandler:function(){if(this.form.length){var t=this.form.data("ui-form-reset-instances");t.splice(e.inArray(this,t),1),t.length?this.form.data("ui-form-reset-instances",t):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},e.expr.pseudos||(e.expr.pseudos=e.expr[":"]),e.uniqueSort||(e.uniqueSort=e.unique),!e.escapeSelector){var P=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,D=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e};e.escapeSelector=function(e){return(e+"").replace(P,D)}}e.fn.even&&e.fn.odd||e.fn.extend({even:function(){return this.filter((function(e){return e%2==0}))},odd:function(){return this.filter((function(e){return e%2==1}))}}),e.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},e.fn.labels=function(){var t,n,r,i,o;return this.length?this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(i=this.eq(0).parents("label"),(r=this.attr("id"))&&(o=(t=this.eq(0).parents().last()).add(t.length?t.siblings():this.siblings()),n="label[for='"+e.escapeSelector(r)+"']",i=i.add(o.find(n).addBack(n))),this.pushStack(i)):this.pushStack([])},e.fn.scrollParent=function(t){var n=this.css("position"),r="absolute"===n,i=t?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter((function(){var t=e(this);return(!r||"static"!==t.css("position"))&&i.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))})).eq(0);return"fixed"!==n&&o.length?o:e(this[0].ownerDocument||document)},e.extend(e.expr.pseudos,{tabbable:function(t){var n=e.attr(t,"tabindex"),r=null!=n;return(!r||n>=0)&&e.ui.focusable(t,r)}}),e.fn.extend({uniqueId:(S=0,function(){return this.each((function(){this.id||(this.id="ui-id-"+ ++S)}))}),removeUniqueId:function(){return this.each((function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")}))}}),e.widget("ui.accordion",{version:"1.13.3",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:function(e){return e.find("> li > :first-child").add(e.find("> :not(li)").even())},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t,n,r=this.options.icons;r&&(t=e(""),this._addClass(t,"ui-accordion-header-icon","ui-icon "+r.header),t.prependTo(this.headers),n=this.active.children(".ui-accordion-header-icon"),this._removeClass(n,r.header)._addClass(n,null,r.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){"active"!==e?("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||!1!==this.options.active||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons())):this._activate(t)},_setOptionDisabled:function(e){this._super(e),this.element.attr("aria-disabled",e),this._toggleClass(null,"ui-state-disabled",!!e),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!e)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var n=e.ui.keyCode,r=this.headers.length,i=this.headers.index(t.target),o=!1;switch(t.keyCode){case n.RIGHT:case n.DOWN:o=this.headers[(i+1)%r];break;case n.LEFT:case n.UP:o=this.headers[(i-1+r)%r];break;case n.SPACE:case n.ENTER:this._eventHandler(t);break;case n.HOME:o=this.headers[0];break;case n.END:o=this.headers[r-1]}o&&(e(t.target).attr("tabIndex",-1),e(o).attr("tabIndex",0),e(o).trigger("focus"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().trigger("focus")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=e()):!1===t.active?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;"function"==typeof this.options.header?this.headers=this.options.header(this.element):this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var t,n=this.options,r=n.heightStyle,i=this.element.parent();this.active=this._findActive(n.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each((function(){var t=e(this),n=t.uniqueId().attr("id"),r=t.next(),i=r.uniqueId().attr("id");t.attr("aria-controls",i),r.attr("aria-labelledby",n)})).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(n.event),"fill"===r?(t=i.height(),this.element.siblings(":visible").each((function(){var n=e(this),r=n.css("position");"absolute"!==r&&"fixed"!==r&&(t-=n.outerHeight(!0))})),this.headers.each((function(){t-=e(this).outerHeight(!0)})),this.headers.next().each((function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))})).css("overflow","auto")):"auto"===r&&(t=0,this.headers.next().each((function(){var n=e(this).is(":visible");n||e(this).show(),t=Math.max(t,e(this).css("height","").height()),n||e(this).hide()})).height(t))},_activate:function(t){var n=this._findActive(t)[0];n!==this.active[0]&&(n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var n={keydown:"_keydown"};t&&e.each(t.split(" "),(function(e,t){n[t]="_eventHandler"})),this._off(this.headers.add(this.headers.next())),this._on(this.headers,n),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var n,r,i=this.options,o=this.active,a=e(t.currentTarget),s=a[0]===o[0],l=s&&i.collapsible,u=l?e():a.next(),c=o.next(),h={oldHeader:o,oldPanel:c,newHeader:l?e():a,newPanel:u};t.preventDefault(),s&&!i.collapsible||!1===this._trigger("beforeActivate",t,h)||(i.active=!l&&this.headers.index(a),this.active=s?e():a,this._toggle(h),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),i.icons&&(n=o.children(".ui-accordion-header-icon"),this._removeClass(n,null,i.icons.activeHeader)._addClass(n,null,i.icons.header)),s||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),i.icons&&(r=a.children(".ui-accordion-header-icon"),this._removeClass(r,null,i.icons.header)._addClass(r,null,i.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(t){var n=t.newPanel,r=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=r,this.options.animate?this._animate(n,r,t):(r.hide(),n.show(),this._toggleComplete(t)),r.attr({"aria-hidden":"true"}),r.prev().attr({"aria-selected":"false","aria-expanded":"false"}),n.length&&r.length?r.prev().attr({tabIndex:-1,"aria-expanded":"false"}):n.length&&this.headers.filter((function(){return 0===parseInt(e(this).attr("tabIndex"),10)})).attr("tabIndex",-1),n.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,t,n){var r,i,o,a=this,s=0,l=e.css("box-sizing"),u=e.length&&(!t.length||e.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault(),this._activateItem(e)},"click .ui-menu-item":function(t){var n=e(t.target),r=e(e.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&n.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),n.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&r.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this._menuItems().first();t||this.focus(e,n)},blur:function(t){this._delay((function(){!e.contains(this.element[0],e.ui.safeActiveElement(this.document[0]))&&this.collapseAll(t)}))},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e,!0),this.mouseHandled=!1}})},_activateItem:function(t){if(!this.previousFilter&&(t.clientX!==this.lastMousePosition.x||t.clientY!==this.lastMousePosition.y)){this.lastMousePosition={x:t.clientX,y:t.clientY};var n=e(t.target).closest(".ui-menu-item"),r=e(t.currentTarget);n[0]===r[0]&&(r.is(".ui-state-active")||(this._removeClass(r.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,r)))}},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each((function(){var t=e(this);t.data("ui-menu-submenu-caret")&&t.remove()}))},_keydown:function(t){var n,r,i,o,a=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:a=!1,r=this.previousFilter||"",o=!1,i=t.keyCode>=96&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===r?o=!0:i=r+i,n=this._filterMenuItems(i),(n=o&&-1!==n.index(this.active.next())?this.active.nextAll(".ui-menu-item"):n).length||(i=String.fromCharCode(t.keyCode),n=this._filterMenuItems(i)),n.length?(this.focus(t,n),this.previousFilter=i,this.filterTimer=this._delay((function(){delete this.previousFilter}),1e3)):delete this.previousFilter}a&&t.preventDefault()},_activate:function(e){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n,r,i,o=this,a=this.options.icons.submenu,s=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),n=s.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each((function(){var t=e(this),n=t.prev(),r=e("").data("ui-menu-submenu-caret",!0);o._addClass(r,"ui-menu-icon","ui-icon "+a),n.attr("aria-haspopup","true").prepend(r),t.attr("aria-labelledby",n.attr("id"))})),this._addClass(n,"ui-menu","ui-widget ui-widget-content ui-front"),(t=s.add(this.element).find(this.options.items)).not(".ui-menu-item").each((function(){var t=e(this);o._isDivider(t)&&o._addClass(t,"ui-menu-divider","ui-widget-content")})),i=(r=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(r,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){if("icons"===e){var n=this.element.find(".ui-menu-icon");this._removeClass(n,null,this.options.icons.submenu)._addClass(n,null,t.submenu)}this._super(e,t)},_setOptionDisabled:function(e){this._super(e),this.element.attr("aria-disabled",String(e)),this._toggleClass(null,"ui-state-disabled",!!e)},focus:function(e,t){var n,r,i;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),r=this.active.children(".ui-menu-item-wrapper"),this._addClass(r,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay((function(){this._close()}),this.delay),(n=t.children(".ui-menu")).length&&e&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,r,i,o,a,s;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),s=t.outerHeight(),i<0?this.activeMenu.scrollTop(o+i):i+s>a&&this.activeMenu.scrollTop(o+i-a+s))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",e,{item:this.active}),this.active=null)},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay((function(){this._close(),this._open(e)}),this.delay))},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay((function(){var r=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));r.length||(r=this.element),this._close(r),this.blur(t),this._removeClass(r.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=r}),n?0:this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this._menuItems(this.active.children(".ui-menu")).first();t&&t.length&&(this._open(t.parent()),this._delay((function(){this.focus(e,t)})))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_menuItems:function(e){return(e||this.element).find(this.options.items).filter(".ui-menu-item")},_move:function(e,t,n){var r;this.active&&(r="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").last():this.active[e+"All"](".ui-menu-item").first()),r&&r.length&&this.active||(r=this._menuItems(this.activeMenu)[t]()),this.focus(n,r)},nextPage:function(t){var n,r,i;this.active?this.isLastItem()||(this._hasScroll()?(r=this.active.offset().top,i=this.element.innerHeight(),0===e.fn.jquery.indexOf("3.2.")&&(i+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.nextAll(".ui-menu-item").each((function(){return(n=e(this)).offset().top-r-i<0})),this.focus(t,n)):this.focus(t,this._menuItems(this.activeMenu)[this.active?"last":"first"]())):this.next(t)},previousPage:function(t){var n,r,i;this.active?this.isFirstItem()||(this._hasScroll()?(r=this.active.offset().top,i=this.element.innerHeight(),0===e.fn.jquery.indexOf("3.2.")&&(i+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.prevAll(".ui-menu-item").each((function(){return(n=e(this)).offset().top-r+i>0})),this.focus(t,n)):this.focus(t,this._menuItems(this.activeMenu).first())):this.next(t)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var t,n,r,i=this.element[0].nodeName.toLowerCase(),o="textarea"===i,a="input"===i;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(i){if(this.element.prop("readOnly"))return t=!0,r=!0,void(n=!0);t=!1,r=!1,n=!1;var o=e.ui.keyCode;switch(i.keyCode){case o.PAGE_UP:t=!0,this._move("previousPage",i);break;case o.PAGE_DOWN:t=!0,this._move("nextPage",i);break;case o.UP:t=!0,this._keyEvent("previous",i);break;case o.DOWN:t=!0,this._keyEvent("next",i);break;case o.ENTER:this.menu.active&&(t=!0,i.preventDefault(),this.menu.select(i));break;case o.TAB:this.menu.active&&this.menu.select(i);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(i),i.preventDefault());break;default:n=!0,this._searchTimeout(i)}},keypress:function(r){if(t)return t=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||r.preventDefault());if(!n){var i=e.ui.keyCode;switch(r.keyCode){case i.PAGE_UP:this._move("previousPage",r);break;case i.PAGE_DOWN:this._move("nextPage",r);break;case i.UP:this._keyEvent("previous",r);break;case i.DOWN:this._keyEvent("next",r)}}},input:function(e){if(r)return r=!1,void e.preventDefault();this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){clearTimeout(this.searching),this.close(e),this._change(e)}}),this._initSource(),this.menu=e("
    ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault()},menufocus:function(t,n){var r,i;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",(function(){e(t.target).trigger(t.originalEvent)}));i=n.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:i})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(i.value),(r=n.item.attr("aria-label")||i.value)&&String.prototype.trim.call(r).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay((function(){this.liveRegion.html(e("
    ").text(r))}),100))},menuselect:function(t,n){var r=n.item.data("ui-autocomplete-item"),i=this.previous;this.element[0]!==e.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=i,this._delay((function(){this.previous=i,this.selectedItem=r}))),!1!==this._trigger("select",t,{item:r})&&this._value(r.value),this.term=this._value(),this.close(t),this.selectedItem=r}}),this.liveRegion=e("
    ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var n=this.menu.element[0];return t.target===this.element[0]||t.target===n||e.contains(n,t.target)},_closeOnClickOutside:function(e){this._isEventTargetInWidget(e)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front, dialog")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,n,r=this;Array.isArray(this.options.source)?(t=this.options.source,this.source=function(n,r){r(e.ui.autocomplete.filter(t,n.term))}):"string"==typeof this.options.source?(n=this.options.source,this.source=function(t,i){r.xhr&&r.xhr.abort(),r.xhr=e.ajax({url:n,data:t,dataType:"json",success:function(e){i(e)},error:function(){i([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay((function(){var t=this.term===this._value(),n=this.menu.element.is(":visible"),r=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;t&&(!t||n||r)||(this.selectedItem=null,this.search(null,e))}),this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length").append(e("
    ").text(n.label)).appendTo(t)},_move:function(e,t){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[e](t);this.search(null,t)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(e,t),t.preventDefault())},_isContentEditable:function(e){if(!e.length)return!1;var t=e.prop("contentEditable");return"inherit"===t?this._isContentEditable(e.parent()):"true"===t}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,n){var r=new RegExp(e.ui.autocomplete.escapeRegex(n),"i");return e.grep(t,(function(e){return r.test(e.label||e.value||e)}))}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var n;this._superApply(arguments),this.options.disabled||this.cancelSearch||(n=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay((function(){this.liveRegion.html(e("
    ").text(n))}),100))}}),e.ui.autocomplete;var M,N=/ui-corner-([a-z]){2,6}/g;function O(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:"",selectMonthLabel:"Select month",selectYearLabel:"Select year"},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,onUpdateDatepicker:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=R(e("
    "))}function R(t){var n="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.on("mouseout",n,(function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")})).on("mouseover",n,j)}function j(){e.datepicker._isDisabledDatepicker(M.inline?M.dpDiv.parent()[0]:M.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function I(t,n){for(var r in e.extend(t,n),n)null==n[r]&&(t[r]=n[r]);return t}e.widget("ui.controlgroup",{version:"1.13.3",defaultElement:"
    ",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var t=this,n=[];e.each(this.options.items,(function(r,i){var o,a={};if(i)return"controlgroupLabel"===r?((o=t.element.find(i)).each((function(){var t=e(this);t.children(".ui-controlgroup-label-contents").length||t.contents().wrapAll("")})),t._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),void(n=n.concat(o.get()))):void(e.fn[r]&&(a=t["_"+r+"Options"]?t["_"+r+"Options"]("middle"):{classes:{}},t.element.find(i).each((function(){var i=e(this),o=i[r]("instance"),s=e.widget.extend({},a);if("button"!==r||!i.parent(".ui-spinner").length){o||(o=i[r]()[r]("instance")),o&&(s.classes=t._resolveClassesValues(s.classes,o)),i[r](s);var l=i[r]("widget");e.data(l[0],"ui-controlgroup-data",o||i[r]("instance")),n.push(l[0])}}))))})),this.childWidgets=e(e.uniqueSort(n)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(t){this.childWidgets.each((function(){var n=e(this).data("ui-controlgroup-data");n&&n[t]&&n[t]()}))},_updateCornerClass:function(e,t){var n=this._buildSimpleOptions(t,"label").classes.label;this._removeClass(e,null,"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"),this._addClass(e,null,n)},_buildSimpleOptions:function(e,t){var n="vertical"===this.options.direction,r={classes:{}};return r.classes[t]={middle:"",first:"ui-corner-"+(n?"top":"left"),last:"ui-corner-"+(n?"bottom":"right"),only:"ui-corner-all"}[e],r},_spinnerOptions:function(e){var t=this._buildSimpleOptions(e,"ui-spinner");return t.classes["ui-spinner-up"]="",t.classes["ui-spinner-down"]="",t},_buttonOptions:function(e){return this._buildSimpleOptions(e,"ui-button")},_checkboxradioOptions:function(e){return this._buildSimpleOptions(e,"ui-checkboxradio-label")},_selectmenuOptions:function(e){var t="vertical"===this.options.direction;return{width:!!t&&"auto",classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(t?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(t?"top":"left")},last:{"ui-selectmenu-button-open":t?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(t?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[e]}},_resolveClassesValues:function(t,n){var r={};return e.each(t,(function(e){var i=n.options.classes[e]||"";i=String.prototype.trim.call(i.replace(N,"")),r[e]=(i+" "+t[e]).replace(/\s+/g," ")})),r},_setOption:function(e,t){"direction"===e&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(e,t),"disabled"!==e?this.refresh():this._callChildMethod(t?"disable":"enable")},refresh:function(){var t,n=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),t=this.childWidgets,this.options.onlyVisible&&(t=t.filter(":visible")),t.length&&(e.each(["first","last"],(function(e,r){var i=t[r]().data("ui-controlgroup-data");if(i&&n["_"+i.widgetName+"Options"]){var o=n["_"+i.widgetName+"Options"](1===t.length?"only":r);o.classes=n._resolveClassesValues(o.classes,i),i.element[i.widgetName](o)}else n._updateCornerClass(t[r](),r)})),this._callChildMethod("refresh"))}}),e.widget("ui.checkboxradio",[e.ui.formResetMixin,{version:"1.13.3",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var t,n,r,i=this._super()||{};return this._readType(),n=this.element.labels(),this.label=e(n[n.length-1]),this.label.length||e.error("No label found for checkboxradio widget"),this.originalLabel="",(r=this.label.contents().not(this.element[0])).length&&(this.originalLabel+=r.clone().wrapAll("
    ").parent().html()),this.originalLabel&&(i.label=this.originalLabel),null!=(t=this.element[0].disabled)&&(i.disabled=t),i},_create:function(){var e=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),e&&this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var t=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===t&&/radio|checkbox/.test(this.type)||e.error("Can't create checkboxradio on element.nodeName="+t+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var t=this.element[0].name,n="input[name='"+e.escapeSelector(t)+"']";return t?(this.form.length?e(this.form[0].elements).filter(n):e(n).filter((function(){return 0===e(this)._form().length}))).not(this.element):e([])},_toggleClasses:function(){var t=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",t)._toggleClass(this.icon,null,"ui-icon-blank",!t),"radio"===this.type&&this._getRadioGroup().each((function(){var t=e(this).checkboxradio("instance");t&&t._removeClass(t.label,"ui-checkboxradio-checked","ui-state-active")}))},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(e,t){if("label"!==e||t){if(this._super(e,t),"disabled"===e)return this._toggleClass(this.label,null,"ui-state-disabled",t),void(this.element[0].disabled=t);this.refresh()}},_updateIcon:function(t){var n="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=e(""),this.iconSpace=e(" "),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(n+=t?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,t?"ui-icon-blank":"ui-icon-check")):n+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",n),t||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var e=this.label.contents().not(this.element[0]);this.icon&&(e=e.not(this.icon[0])),this.iconSpace&&(e=e.not(this.iconSpace[0])),e.remove(),this.label.append(this.options.label)},refresh:function(){var e=this.element[0].checked,t=this.element[0].disabled;this._updateIcon(e),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),null!==this.options.label&&this._updateLabel(),t!==this.options.disabled&&this._setOptions({disabled:t})}}]),e.ui.checkboxradio,e.widget("ui.button",{version:"1.13.3",defaultElement:"
    "+(Y[0]>0&&C===Y[1]-1?"
    ":""):"")}w+=S}return w+=c,t._keyEvent=!1,w},_generateMonthYearHeader:function(e,t,n,r,i,o,a,s){var l,u,c,h,f,d,p,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b=this._get(e,"selectMonthLabel"),_=this._get(e,"selectYearLabel"),w="
    ",x="";if(o||!g)x+=""+a[t]+"";else{for(l=r&&r.getFullYear()===n,u=i&&i.getFullYear()===n,x+=""}if(y||(w+=x+(!o&&g&&v?"":" ")),!e.yearshtml)if(e.yearshtml="",o||!v)w+=""+n+"";else{for(h=this._get(e,"yearRange").split(":"),f=(new Date).getFullYear(),d=function(e){var t=e.match(/c[+\-].*/)?n+parseInt(e.substring(1),10):e.match(/[+\-].*/)?f+parseInt(e,10):parseInt(e,10);return isNaN(t)?f:t},p=d(h[0]),m=Math.max(p,d(h[1]||"")),p=r?Math.max(p,r.getFullYear()):p,m=i?Math.min(m,i.getFullYear()):m,e.yearshtml+="",w+=e.yearshtml,e.yearshtml=null}return w+=this._get(e,"yearSuffix"),y&&(w+=(!o&&g&&v?"":" ")+x),w+"
    "},_adjustInstDate:function(e,t,n){var r=e.selectedYear+("Y"===n?t:0),i=e.selectedMonth+("M"===n?t:0),o=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+("D"===n?t:0),a=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,o)));e.selectedDay=a.getDate(),e.drawMonth=e.selectedMonth=a.getMonth(),e.drawYear=e.selectedYear=a.getFullYear(),"M"!==n&&"Y"!==n||this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&tr?r:i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),o=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(e,o)},_isInRange:function(e,t){var n,r,i=this._getMinMaxDate(e,"min"),o=this._getMinMaxDate(e,"max"),a=null,s=null,l=this._get(e,"yearRange");return l&&(n=l.split(":"),r=(new Date).getFullYear(),a=parseInt(n[0],10),s=parseInt(n[1],10),n[0].match(/[+\-].*/)&&(a+=r),n[1].match(/[+\-].*/)&&(s+=r)),(!i||t.getTime()>=i.getTime())&&(!o||t.getTime()<=o.getTime())&&(!a||t.getFullYear()>=a)&&(!s||t.getFullYear()<=s)},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return{shortYearCutoff:t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?"object"===a(t)?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).on("mousedown",e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var n=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(n)):this.each((function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(n)):e.datepicker._attachDatepicker(this,t)})):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(n))},e.datepicker=new O,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.13.3",e.datepicker,e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var A,L=!1;function z(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e(document).on("mouseup",(function(){L=!1})),e.widget("ui.mouse",{version:"1.13.3",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.on("mousedown."+this.widgetName,(function(e){return t._mouseDown(e)})).on("click."+this.widgetName,(function(n){if(!0===e.data(n.target,t.widgetName+".preventClickEvent"))return e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1})),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!L){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var n=this,r=1===t.which,i=!("string"!=typeof this.options.cancel||!t.target.nodeName)&&e(t.target).closest(this.options.cancel).length;return!(r&&!i&&this._mouseCapture(t)&&(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout((function(){n.mouseDelayMet=!0}),this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return n._mouseMove(e)},this._mouseUpDelegate=function(e){return n._mouseUp(e)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),L=!0,0)))}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,L=!1,t.preventDefault()},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),e.ui.plugin={add:function(t,n,r){var i,o=e.ui[t].prototype;for(i in r)o.plugins[i]=o.plugins[i]||[],o.plugins[i].push([n,r[i]])},call:function(e,t,n,r){var i,o=e.plugins[t];if(o&&(r||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(i=0;i0||(this.handle=this._getHandle(t),!this.handle||(this._blurActiveElement(t),this._blockFrames(!0===n.iframeFix?"iframe":n.iframeFix),0)))},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map((function(){var t=e(this);return e("
    ").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]}))},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var n=e.ui.safeActiveElement(this.document[0]);e(t.target).closest(n).length||e.ui.safeBlur(n)},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter((function(){return"fixed"===e(this).css("position")})).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),this._setContainment(),!1===this._trigger("start",t)?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,n){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!n){var r=this._uiHash();if(!1===this._trigger("drag",t,r))return this._mouseUp(new e.Event("mouseup",t)),!1;this.position=r.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=this,r=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(r=e.ui.ddmanager.drop(this,t)),this.dropped&&(r=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!r||"valid"===this.options.revert&&r||!0===this.options.revert||"function"==typeof this.options.revert&&this.options.revert.call(this.element,r)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),(function(){!1!==n._trigger("stop",t)&&n._clear()})):!1!==this._trigger("stop",t)&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.trigger("focus"),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new e.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(t){return!this.options.handle||!!e(t.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(t){var n=this.options,r="function"==typeof n.helper,i=r?e(n.helper.apply(this.element[0],[t])):"clone"===n.helper?this.element.clone().removeAttr("id"):this.element;return i.parents("body").length||i.appendTo("parent"===n.appendTo?this.element[0].parentNode:n.appendTo),r&&i[0]===this.element[0]&&this._setPositionRelative(),i[0]===this.element[0]||/(fixed|absolute)/.test(i.css("position"))||i.css("position","absolute"),i},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),Array.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),n=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==n&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,r,i=this.options,o=this.document[0];this.relativeContainer=null,i.containment?"window"!==i.containment?"document"!==i.containment?i.containment.constructor!==Array?("parent"===i.containment&&(i.containment=this.helper[0].parentNode),(r=(n=e(i.containment))[0])&&(t=/(scroll|auto)/.test(n.css("overflow")),this.containment=[(parseInt(n.css("borderLeftWidth"),10)||0)+(parseInt(n.css("paddingLeft"),10)||0),(parseInt(n.css("borderTopWidth"),10)||0)+(parseInt(n.css("paddingTop"),10)||0),(t?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(n.css("borderRightWidth"),10)||0)-(parseInt(n.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(n.css("borderBottomWidth"),10)||0)-(parseInt(n.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=n)):this.containment=i.containment:this.containment=[0,0,e(o).width()-this.helperProportions.width-this.margins.left,(e(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=null},_convertPositionTo:function(e,t){t||(t=this.position);var n="absolute"===e?1:-1,r=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*n+this.offset.parent.top*n-("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top)*n,left:t.left+this.offset.relative.left*n+this.offset.parent.left*n-("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)*n}},_generatePosition:function(e,t){var n,r,i,o,a=this.options,s=this._isRootNode(this.scrollParent[0]),l=e.pageX,u=e.pageY;return s&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relativeContainer?(r=this.relativeContainer.offset(),n=[this.containment[0]+r.left,this.containment[1]+r.top,this.containment[2]+r.left,this.containment[3]+r.top]):n=this.containment,e.pageX-this.offset.click.leftn[2]&&(l=n[2]+this.offset.click.left),e.pageY-this.offset.click.top>n[3]&&(u=n[3]+this.offset.click.top)),a.grid&&(i=a.grid[1]?this.originalPageY+Math.round((u-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,u=n?i-this.offset.click.top>=n[1]||i-this.offset.click.top>n[3]?i:i-this.offset.click.top>=n[1]?i-a.grid[1]:i+a.grid[1]:i,o=a.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,l=n?o-this.offset.click.left>=n[0]||o-this.offset.click.left>n[2]?o:o-this.offset.click.left>=n[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(l=this.originalPageX),"x"===a.axis&&(u=this.originalPageY)),{top:u-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,n,r){return r=r||this._uiHash(),e.ui.plugin.call(this,t,[n,r,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),r.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,n,r)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,n,r){var i=e.extend({},n,{item:r.element});r.sortables=[],e(r.options.connectToSortable).each((function(){var n=e(this).sortable("instance");n&&!n.options.disabled&&(r.sortables.push(n),n.refreshPositions(),n._trigger("activate",t,i))}))},stop:function(t,n,r){var i=e.extend({},n,{item:r.element});r.cancelHelperRemoval=!1,e.each(r.sortables,(function(){var e=this;e.isOver?(e.isOver=0,r.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,i))}))},drag:function(t,n,r){e.each(r.sortables,(function(){var i=!1,o=this;o.positionAbs=r.positionAbs,o.helperProportions=r.helperProportions,o.offset.click=r.offset.click,o._intersectsWith(o.containerCache)&&(i=!0,e.each(r.sortables,(function(){return this.positionAbs=r.positionAbs,this.helperProportions=r.helperProportions,this.offset.click=r.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&e.contains(o.element[0],this.element[0])&&(i=!1),i}))),i?(o.isOver||(o.isOver=1,r._parent=n.helper.parent(),o.currentItem=n.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return n.helper[0]},t.target=o.currentItem[0],o._mouseCapture(t,!0),o._mouseStart(t,!0,!0),o.offset.click.top=r.offset.click.top,o.offset.click.left=r.offset.click.left,o.offset.parent.left-=r.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=r.offset.parent.top-o.offset.parent.top,r._trigger("toSortable",t),r.dropped=o.element,e.each(r.sortables,(function(){this.refreshPositions()})),r.currentItem=r.element,o.fromOutside=r),o.currentItem&&(o._mouseDrag(t),n.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",t,o._uiHash(o)),o._mouseStop(t,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),n.helper.appendTo(r._parent),r._refreshOffsets(t),n.position=r._generatePosition(t,!0),r._trigger("fromSortable",t),r.dropped=!1,e.each(r.sortables,(function(){this.refreshPositions()})))}))}}),e.ui.plugin.add("draggable","cursor",{start:function(t,n,r){var i=e("body"),o=r.options;i.css("cursor")&&(o._cursor=i.css("cursor")),i.css("cursor",o.cursor)},stop:function(t,n,r){var i=r.options;i._cursor&&e("body").css("cursor",i._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n,r){var i=e(n.helper),o=r.options;i.css("opacity")&&(o._opacity=i.css("opacity")),i.css("opacity",o.opacity)},stop:function(t,n,r){var i=r.options;i._opacity&&e(n.helper).css("opacity",i._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&"HTML"!==n.scrollParentNotHidden[0].tagName&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(t,n,r){var i=r.options,o=!1,a=r.scrollParentNotHidden[0],s=r.document[0];a!==s&&"HTML"!==a.tagName?(i.axis&&"x"===i.axis||(r.overflowOffset.top+a.offsetHeight-t.pageY=0;f--)u=(l=r.snapElements[f].left-r.margins.left)+r.snapElements[f].width,h=(c=r.snapElements[f].top-r.margins.top)+r.snapElements[f].height,vu+m||bh+m||!e.contains(r.snapElements[f].item.ownerDocument,r.snapElements[f].item)?(r.snapElements[f].snapping&&r.options.snap.release&&r.options.snap.release.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[f].item})),r.snapElements[f].snapping=!1):("inner"!==p.snapMode&&(i=Math.abs(c-b)<=m,o=Math.abs(h-y)<=m,a=Math.abs(l-v)<=m,s=Math.abs(u-g)<=m,i&&(n.position.top=r._convertPositionTo("relative",{top:c-r.helperProportions.height,left:0}).top),o&&(n.position.top=r._convertPositionTo("relative",{top:h,left:0}).top),a&&(n.position.left=r._convertPositionTo("relative",{top:0,left:l-r.helperProportions.width}).left),s&&(n.position.left=r._convertPositionTo("relative",{top:0,left:u}).left)),d=i||o||a||s,"outer"!==p.snapMode&&(i=Math.abs(c-y)<=m,o=Math.abs(h-b)<=m,a=Math.abs(l-g)<=m,s=Math.abs(u-v)<=m,i&&(n.position.top=r._convertPositionTo("relative",{top:c,left:0}).top),o&&(n.position.top=r._convertPositionTo("relative",{top:h-r.helperProportions.height,left:0}).top),a&&(n.position.left=r._convertPositionTo("relative",{top:0,left:l}).left),s&&(n.position.left=r._convertPositionTo("relative",{top:0,left:u-r.helperProportions.width}).left)),!r.snapElements[f].snapping&&(i||o||a||s||d)&&r.options.snap.snap&&r.options.snap.snap.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[f].item})),r.snapElements[f].snapping=i||o||a||s||d)}}),e.ui.plugin.add("draggable","stack",{start:function(t,n,r){var i,o=r.options,a=e.makeArray(e(o.stack)).sort((function(t,n){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(n).css("zIndex"),10)||0)}));a.length&&(i=parseInt(e(a[0]).css("zIndex"),10)||0,e(a).each((function(t){e(this).css("zIndex",i+t)})),this.css("zIndex",i+a.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,n,r){var i=e(n.helper),o=r.options;i.css("zIndex")&&(o._zIndex=i.css("zIndex")),i.css("zIndex",o.zIndex)},stop:function(t,n,r){var i=r.options;i._zIndex&&e(n.helper).css("zIndex",i._zIndex)}}),e.ui.draggable,e.widget("ui.resizable",e.ui.mouse,{version:"1.13.3",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseFloat(e)||0},_isNumber:function(e){return!isNaN(parseFloat(e))},_hasScroll:function(t,n){if("hidden"===e(t).css("overflow"))return!1;var r=n&&"left"===n?"scrollLeft":"scrollTop",i=!1;if(t[r]>0)return!0;try{t[r]=1,i=t[r]>0,t[r]=0}catch(e){}return i},_create:function(){var t,n=this.options,r=this;this._addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!n.aspectRatio,aspectRatio:n.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:n.helper||n.ghost||n.animate?n.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("
    ").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),n.autoHide&&e(this.element).on("mouseenter",(function(){n.disabled||(r._removeClass("ui-resizable-autohide"),r._handles.show())})).on("mouseleave",(function(){n.disabled||r.resizing||(r._addClass("ui-resizable-autohide"),r._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();var t,n=function(t){e(t).removeData("resizable").removeData("ui-resizable").off(".resizable")};return this.elementIsWrapper&&(n(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),n(this.originalElement),this},_setOption:function(e,t){switch(this._super(e,t),e){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!t}},_setupHandles:function(){var t,n,r,i,o,a=this.options,s=this;if(this.handles=a.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e(),this._addedHandles=e(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),r=this.handles.split(","),this.handles={},n=0;n"),this._addClass(o,"ui-resizable-handle "+i),o.css({zIndex:a.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(o),this._addedHandles=this._addedHandles.add(o));this._renderAxis=function(t){var n,r,i,o;for(n in t=t||this.element,this.handles)this.handles[n].constructor===String?this.handles[n]=this.element.children(this.handles[n]).first().show():(this.handles[n].jquery||this.handles[n].nodeType)&&(this.handles[n]=e(this.handles[n]),this._on(this.handles[n],{mousedown:s._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(r=e(this.handles[n],this.element),o=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth(),i=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join(""),t.css(i,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[n])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",(function(){s.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),s.axis=o&&o[1]?o[1]:"se")})),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var n,r,i=!1;for(n in this.handles)((r=e(this.handles[n])[0])===t.target||e.contains(r,t.target))&&(i=!0);return!this.options.disabled&&i},_mouseStart:function(t){var n,r,i,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),n=this._num(this.helper.css("left")),r=this._num(this.helper.css("top")),o.containment&&(n+=e(o.containment).scrollLeft()||0,r+=e(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:n,top:r},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:n,top:r},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,i=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===i?this.axis+"-resize":i),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var n,r,i=this.originalMousePosition,o=this.axis,a=t.pageX-i.left||0,s=t.pageY-i.top||0,l=this._change[o];return this._updatePrevProperties(),!!l&&(n=l.apply(this,[t,a,s]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(n=this._updateRatio(n,t)),n=this._respectSize(n,t),this._updateCache(n),this._propagate("resize",t),r=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(r)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1)},_mouseStop:function(t){this.resizing=!1;var n,r,i,o,a,s,l,u=this.options,c=this;return this._helper&&(i=(r=(n=this._proportionallyResizeElements).length&&/textarea/i.test(n[0].nodeName))&&this._hasScroll(n[0],"left")?0:c.sizeDiff.height,o=r?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-i},s=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,l=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,u.animate||this.element.css(e.extend(a,{top:l,left:s})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!u.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.helper.css(e),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px",this.helper.width(e.width)),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px",this.helper.height(e.height)),e},_updateVirtualBoundaries:function(e){var t,n,r,i,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||e)&&(t=o.minHeight*this.aspectRatio,r=o.minWidth/this.aspectRatio,n=o.maxHeight*this.aspectRatio,i=o.maxWidth/this.aspectRatio,t>o.minWidth&&(o.minWidth=t),r>o.minHeight&&(o.minHeight=r),ne.width,a=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,s=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,u=/sw|nw|w/.test(n),c=/nw|ne|n/.test(n);return o&&(e.width=t.minWidth),a&&(e.height=t.minHeight),r&&(e.width=t.maxWidth),i&&(e.height=t.maxHeight),o&&u&&(e.left=s-t.minWidth),r&&u&&(e.left=s-t.maxWidth),a&&c&&(e.top=l-t.minHeight),i&&c&&(e.top=l-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,n=[],r=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],i=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];t<4;t++)n[t]=parseFloat(r[t])||0,n[t]+=parseFloat(i[t])||0;return{height:n[0]+n[2],width:n[1]+n[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,n=this.helper||this.element;t
    ").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var n=this.originalSize;return{left:this.originalPosition.left+t,width:n.width-t}},n:function(e,t,n){var r=this.originalSize;return{top:this.originalPosition.top+n,height:r.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),"resize"!==t&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var n=e(this).resizable("instance"),r=n.options,i=n._proportionallyResizeElements,o=i.length&&/textarea/i.test(i[0].nodeName),a=o&&n._hasScroll(i[0],"left")?0:n.sizeDiff.height,s=o?0:n.sizeDiff.width,l={width:n.size.width-s,height:n.size.height-a},u=parseFloat(n.element.css("left"))+(n.position.left-n.originalPosition.left)||null,c=parseFloat(n.element.css("top"))+(n.position.top-n.originalPosition.top)||null;n.element.animate(e.extend(l,c&&u?{top:c,left:u}:{}),{duration:r.animateDuration,easing:r.animateEasing,step:function(){var r={width:parseFloat(n.element.css("width")),height:parseFloat(n.element.css("height")),top:parseFloat(n.element.css("top")),left:parseFloat(n.element.css("left"))};i&&i.length&&e(i[0]).css({width:r.width,height:r.height}),n._updateCache(r),n._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,n,r,i,o,a,s,l=e(this).resizable("instance"),u=l.options,c=l.element,h=u.containment,f=h instanceof e?h.get(0):/parent/.test(h)?c.parent().get(0):h;f&&(l.containerElement=e(f),/document/.test(h)||h===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(f),n=[],e(["Top","Right","Left","Bottom"]).each((function(e,r){n[e]=l._num(t.css("padding"+r))})),l.containerOffset=t.offset(),l.containerPosition=t.position(),l.containerSize={height:t.innerHeight()-n[3],width:t.innerWidth()-n[1]},r=l.containerOffset,i=l.containerSize.height,o=l.containerSize.width,a=l._hasScroll(f,"left")?f.scrollWidth:o,s=l._hasScroll(f)?f.scrollHeight:i,l.parentData={element:f,left:r.left,top:r.top,width:a,height:s}))},resize:function(t){var n,r,i,o,a=e(this).resizable("instance"),s=a.options,l=a.containerOffset,u=a.position,c=a._aspectRatio||t.shiftKey,h={top:0,left:0},f=a.containerElement,d=!0;f[0]!==document&&/static/.test(f.css("position"))&&(h=l),u.left<(a._helper?l.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-l.left:a.position.left-h.left),c&&(a.size.height=a.size.width/a.aspectRatio,d=!1),a.position.left=s.helper?l.left:0),u.top<(a._helper?l.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-l.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,d=!1),a.position.top=a._helper?l.top:0),i=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),i&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),n=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-h.left:a.offset.left-l.left)),r=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-h.top:a.offset.top-l.top)),n+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-n,c&&(a.size.height=a.size.width/a.aspectRatio,d=!1)),r+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-r,c&&(a.size.width=a.size.height*a.aspectRatio,d=!1)),d||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),n=t.options,r=t.containerOffset,i=t.containerPosition,o=t.containerElement,a=e(t.helper),s=a.offset(),l=a.outerWidth()-t.sizeDiff.width,u=a.outerHeight()-t.sizeDiff.height;t._helper&&!n.animate&&/relative/.test(o.css("position"))&&e(this).css({left:s.left-i.left-r.left,width:l,height:u}),t._helper&&!n.animate&&/static/.test(o.css("position"))&&e(this).css({left:s.left-i.left-r.left,width:l,height:u})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance").options;e(t.alsoResize).each((function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.css("width")),height:parseFloat(t.css("height")),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})}))},resize:function(t,n){var r=e(this).resizable("instance"),i=r.options,o=r.originalSize,a=r.originalPosition,s={height:r.size.height-o.height||0,width:r.size.width-o.width||0,top:r.position.top-a.top||0,left:r.position.left-a.left||0};e(i.alsoResize).each((function(){var t=e(this),r=e(this).data("ui-resizable-alsoresize"),i={},o=t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,(function(e,t){var n=(r[t]||0)+(s[t]||0);n&&n>=0&&(i[t]=n||null)})),t.css(i)}))},stop:function(){e(this).removeData("ui-resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),n=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:n.height,width:n.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==e.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,n=e(this).resizable("instance"),r=n.options,i=n.size,o=n.originalSize,a=n.originalPosition,s=n.axis,l="number"==typeof r.grid?[r.grid,r.grid]:r.grid,u=l[0]||1,c=l[1]||1,h=Math.round((i.width-o.width)/u)*u,f=Math.round((i.height-o.height)/c)*c,d=o.width+h,p=o.height+f,m=r.maxWidth&&r.maxWidthd,y=r.minHeight&&r.minHeight>p;r.grid=l,v&&(d+=u),y&&(p+=c),m&&(d-=u),g&&(p-=c),/^(se|s|e)$/.test(s)?(n.size.width=d,n.size.height=p):/^(ne)$/.test(s)?(n.size.width=d,n.size.height=p,n.position.top=a.top-f):/^(sw)$/.test(s)?(n.size.width=d,n.size.height=p,n.position.left=a.left-h):((p-c<=0||d-u<=0)&&(t=n._getPaddingPlusBorderDimensions(this)),p-c>0?(n.size.height=p,n.position.top=a.top-f):(p=c-t.height,n.size.height=p,n.position.top=a.top+o.height-p),d-u>0?(n.size.width=d,n.position.left=a.left-h):(d=u-t.width,n.size.width=d,n.position.left=a.left+o.width-d))}}),e.ui.resizable,e.widget("ui.dialog",{version:"1.13.3",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),(e=t.parent.children().eq(t.index)).length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var n=this;this._isOpen&&!1!==this._trigger("beforeClose",t)&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||e.ui.safeBlur(e.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,(function(){n._trigger("close",t)})))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,n){var r=!1,i=this.uiDialog.siblings(".ui-front:visible").map((function(){return+e(this).css("z-index")})).get(),o=Math.max.apply(null,i);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),r=!0),r&&!n&&this._trigger("focus",t),r},open:function(){var t=this;this._isOpen?this._moveToTop()&&this._focusTabbable():(this._isOpen=!0,this.opener=e(e.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,(function(){t._focusTabbable(),t._trigger("focus")})),this._makeFocusTarget(),this._trigger("open"))},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).trigger("focus")},_restoreTabbableFocus:function(){var t=e.ui.safeActiveElement(this.document[0]);this.uiDialog[0]===t||e.contains(this.uiDialog[0],t)||this._focusTabbable()},_keepFocus:function(e){e.preventDefault(),this._restoreTabbableFocus(),this._delay(this._restoreTabbableFocus)},_createWrapper:function(){this.uiDialog=e("
    ").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),void this.close(t);if(t.keyCode===e.ui.keyCode.TAB&&!t.isDefaultPrevented()){var n=this.uiDialog.find(":tabbable"),r=n.first(),i=n.last();t.target!==i[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==r[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay((function(){i.trigger("focus")})),t.preventDefault()):(this._delay((function(){r.trigger("focus")})),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("
    "),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=e("").button({label:e("").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(t,"ui-dialog-title"),this._title(t),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title?e.text(this.options.title):e.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=e("
    "),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("
    ").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var t=this,n=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(n)||Array.isArray(n)&&!n.length?this._removeClass(this.uiDialog,"ui-dialog-buttons"):(e.each(n,(function(n,r){var i,o;r="function"==typeof r?{click:r,text:n}:r,r=e.extend({type:"button"},r),i=r.click,o={icon:r.icon,iconPosition:r.iconPosition,showLabel:r.showLabel,icons:r.icons,text:r.text},delete r.click,delete r.icon,delete r.iconPosition,delete r.showLabel,delete r.icons,"boolean"==typeof r.text&&delete r.text,e("",r).button(o).appendTo(t.uiButtonSet).on("click",(function(){i.apply(t.element[0],arguments)}))})),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){var t=this,n=this.options;function r(e){return{position:e.position,offset:e.offset}}this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){t._addClass(e(this),"ui-dialog-dragging"),t._blockFrames(),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,o){var a=o.offset.left-t.document.scrollLeft(),s=o.offset.top-t.document.scrollTop();n.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" top"+(s>=0?"+":"")+s,of:t.window},t._removeClass(e(this),"ui-dialog-dragging"),t._unblockFrames(),t._trigger("dragStop",i,r(o))}})},_makeResizable:function(){var t=this,n=this.options,r=n.resizable,i=this.uiDialog.css("position"),o="string"==typeof r?r:"n,e,s,w,se,sw,ne,nw";function a(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:n.maxWidth,maxHeight:n.maxHeight,minWidth:n.minWidth,minHeight:this._minHeight(),handles:o,start:function(n,r){t._addClass(e(this),"ui-dialog-resizing"),t._blockFrames(),t._trigger("resizeStart",n,a(r))},resize:function(e,n){t._trigger("resize",e,a(n))},stop:function(r,i){var o=t.uiDialog.offset(),s=o.left-t.document.scrollLeft(),l=o.top-t.document.scrollTop();n.height=t.uiDialog.height(),n.width=t.uiDialog.width(),n.position={my:"left top",at:"left"+(s>=0?"+":"")+s+" top"+(l>=0?"+":"")+l,of:t.window},t._removeClass(e(this),"ui-dialog-resizing"),t._unblockFrames(),t._trigger("resizeStop",r,a(i))}}).css("position",i)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=e(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),n=e.inArray(this,t);-1!==n&&t.splice(n,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var n=this,r=!1,i={};e.each(t,(function(e,t){n._setOption(e,t),e in n.sizeRelatedOptions&&(r=!0),e in n.resizableRelatedOptions&&(i[e]=t)})),r&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",i)},_setOption:function(t,n){var r,i,o=this.uiDialog;"disabled"!==t&&(this._super(t,n),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:e("").text(""+this.options.closeText).html()}),"draggable"===t&&((r=o.is(":data(ui-draggable)"))&&!n&&o.draggable("destroy"),!r&&n&&this._makeDraggable()),"position"===t&&this._position(),"resizable"===t&&((i=o.is(":data(ui-resizable)"))&&!n&&o.resizable("destroy"),i&&"string"==typeof n&&o.resizable("option","handles",n),i||!1===n||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,n,r=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),r.minWidth>r.width&&(r.width=r.minWidth),e=this.uiDialog.css({height:"auto",width:r.width}).outerHeight(),t=Math.max(0,r.minHeight-e),n="number"==typeof r.maxHeight?Math.max(0,r.maxHeight-e):"none","auto"===r.height?this.element.css({minHeight:t,maxHeight:n,height:"auto"}):this.element.height(Math.max(0,r.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map((function(){var t=e(this);return e("
    ").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]}))},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return!!e(t.target).closest(".ui-dialog").length||!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=e.fn.jquery.substring(0,4),n=!0;this._delay((function(){n=!1})),this.document.data("ui-dialog-overlays")||this.document.on("focusin.ui-dialog",function(e){if(!n){var r=this._trackingInstances()[0];r._allowInteraction(e)||(e.preventDefault(),r._focusTabbable(),"3.4."!==t&&"3.5."!==t&&"3.6."!==t||r._delay(r._restoreTabbableFocus))}}.bind(this)),this.overlay=e("
    ").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):(this.document.off("focusin.ui-dialog"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),!1!==e.uiBackCompat&&e.widget("ui.dialog",e.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(e,t){"dialogClass"===e&&this.uiDialog.removeClass(this.options.dialogClass).addClass(t),this._superApply(arguments)}}),e.ui.dialog,e.widget("ui.droppable",{version:"1.13.3",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,t=this.options,n=t.accept;this.isover=!1,this.isout=!0,this.accept="function"==typeof n?n:function(e){return e.is(n)},this.proportions=function(){if(!arguments.length)return e||(e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight});e=arguments[0]},this._addToManager(t.scope),t.addClasses&&this._addClass("ui-droppable")},_addToManager:function(t){e.ui.ddmanager.droppables[t]=e.ui.ddmanager.droppables[t]||[],e.ui.ddmanager.droppables[t].push(this)},_splice:function(e){for(var t=0;t=t&&e=c&&a<=f||l>=c&&l<=f||af)&&(o>=u&&o<=h||s>=u&&s<=h||oh);default:return!1}}}(),e.ui.ddmanager={current:null,droppables:{default:[]},prepareOffsets:function(t,n){var r,i,o=e.ui.ddmanager.droppables[t.options.scope]||[],a=n?n.type:null,s=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(r=0;r").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(e){if(void 0===e)return this.options.value;this.options.value=this._constrainedValue(e),this._refreshValue()},_constrainedValue:function(e){return void 0===e&&(e=this.options.value),this.indeterminate=!1===e,"number"!=typeof e&&(e=0),!this.indeterminate&&Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){"max"===e&&(t=Math.max(this.min,t)),this._super(e,t)},_setOptionDisabled:function(e){this._super(e),this.element.attr("aria-disabled",e),this._toggleClass(null,"ui-state-disabled",!!e)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,n=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).width(n.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,t===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("
    ").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),e.widget("ui.selectable",e.ui.mouse,{version:"1.13.3",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t.elementPos=e(t.element[0]).offset(),t.selectees=e(t.options.filter,t.element[0]),t._addClass(t.selectees,"ui-selectee"),t.selectees.each((function(){var n=e(this),r=n.offset(),i={left:r.left-t.elementPos.left,top:r.top-t.elementPos.top};e.data(this,"selectable-item",{element:this,$element:n,left:i.left,top:i.top,right:i.left+n.outerWidth(),bottom:i.top+n.outerHeight(),startselected:!1,selected:n.hasClass("ui-selected"),selecting:n.hasClass("ui-selecting"),unselecting:n.hasClass("ui-unselecting")})}))},this.refresh(),this._mouseInit(),this.helper=e("
    "),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(t){var n=this,r=this.options;this.opos=[t.pageX,t.pageY],this.elementPos=e(this.element[0]).offset(),this.options.disabled||(this.selectees=e(r.filter,this.element[0]),this._trigger("start",t),e(r.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),r.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each((function(){var r=e.data(this,"selectable-item");r.startselected=!0,t.metaKey||t.ctrlKey||(n._removeClass(r.$element,"ui-selected"),r.selected=!1,n._addClass(r.$element,"ui-unselecting"),r.unselecting=!0,n._trigger("unselecting",t,{unselecting:r.element}))})),e(t.target).parents().addBack().each((function(){var r,i=e.data(this,"selectable-item");if(i)return r=!t.metaKey&&!t.ctrlKey||!i.$element.hasClass("ui-selected"),n._removeClass(i.$element,r?"ui-unselecting":"ui-selected")._addClass(i.$element,r?"ui-selecting":"ui-unselecting"),i.unselecting=!r,i.selecting=r,i.selected=r,r?n._trigger("selecting",t,{selecting:i.element}):n._trigger("unselecting",t,{unselecting:i.element}),!1})))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var n,r=this,i=this.options,o=this.opos[0],a=this.opos[1],s=t.pageX,l=t.pageY;return o>s&&(n=s,s=o,o=n),a>l&&(n=l,l=a,a=n),this.helper.css({left:o,top:a,width:s-o,height:l-a}),this.selectees.each((function(){var n=e.data(this,"selectable-item"),u=!1,c={};n&&n.element!==r.element[0]&&(c.left=n.left+r.elementPos.left,c.right=n.right+r.elementPos.left,c.top=n.top+r.elementPos.top,c.bottom=n.bottom+r.elementPos.top,"touch"===i.tolerance?u=!(c.left>s||c.rightl||c.bottomo&&c.righta&&c.bottom",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var t=this.element.uniqueId().attr("id");this.ids={element:t,button:t+"-button",menu:t+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=e()},_drawButton:function(){var t,n=this,r=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(e){this.button.trigger("focus"),e.preventDefault()}}),this.element.hide(),this.button=e("",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),t=e("").appendTo(this.button),this._addClass(t,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(r).appendTo(this.button),!1!==this.options.width&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",(function(){n._rendered||n._refreshMenu()}))},_drawMenu:function(){var t=this;this.menu=e("
      ",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=e("
      ").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(e,n){e.preventDefault(),t._setSelection(),t._select(n.item.data("ui-selectmenu-item"),e)},focus:function(e,n){var r=n.item.data("ui-selectmenu-item");null!=t.focusIndex&&r.index!==t.focusIndex&&(t._trigger("focus",e,{item:r}),t.isOpen||t._select(r,e)),t.focusIndex=r.index,t.button.attr("aria-activedescendant",t.menuItems.eq(r.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var e,t=this.element.find("option");this.menu.empty(),this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,t.length&&(e=this._getSelectedItem(),this.menuInstance.focus(null,e),this._setAria(e.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(e){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",e)))},_position:function(){this.menuWrap.position(e.extend({of:this.button},this.options.position))},close:function(e){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",e))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(t){var n=e("");return this._setText(n,t.label),this._addClass(n,"ui-selectmenu-text"),n},_renderMenu:function(t,n){var r=this,i="";e.each(n,(function(n,o){var a;o.optgroup!==i&&(a=e("
    • ",{text:o.optgroup}),r._addClass(a,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),a.appendTo(t),i=o.optgroup),r._renderItemData(t,o)}))},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-selectmenu-item",t)},_renderItem:function(t,n){var r=e("
    • "),i=e("
      ",{title:n.element.attr("title")});return n.disabled&&this._addClass(r,null,"ui-state-disabled"),n.hidden?r.prop("hidden",!0):this._setText(i,n.label),r.append(i).appendTo(t)},_setText:function(e,t){t?e.text(t):e.html(" ")},_move:function(e,t){var n,r,i=".ui-menu-item";this.isOpen?n=this.menuItems.eq(this.focusIndex).parent("li"):(n=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),i+=":not(.ui-state-disabled)"),(r="first"===e||"last"===e?n["first"===e?"prevAll":"nextAll"](i).eq(-1):n[e+"All"](i).eq(0)).length&&this.menuInstance.focus(t,r)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(e){this[this.isOpen?"close":"open"](e)},_setSelection:function(){var e;this.range&&(window.getSelection?((e=window.getSelection()).removeAllRanges(),e.addRange(this.range)):this.range.select(),this.button.trigger("focus"))},_documentClick:{mousedown:function(t){this.isOpen&&(e(t.target).closest(".ui-selectmenu-menu, #"+e.escapeSelector(this.ids.button)).length||this.close(t))}},_buttonEvents:{mousedown:function(){var e;window.getSelection?(e=window.getSelection()).rangeCount&&(this.range=e.getRangeAt(0)):this.range=document.selection.createRange()},click:function(e){this._setSelection(),this._toggle(e)},keydown:function(t){var n=!0;switch(t.keyCode){case e.ui.keyCode.TAB:case e.ui.keyCode.ESCAPE:this.close(t),n=!1;break;case e.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case e.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case e.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case e.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case e.ui.keyCode.LEFT:this._move("prev",t);break;case e.ui.keyCode.RIGHT:this._move("next",t);break;case e.ui.keyCode.HOME:case e.ui.keyCode.PAGE_UP:this._move("first",t);break;case e.ui.keyCode.END:case e.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),n=!1}n&&t.preventDefault()}},_selectFocusedItem:function(e){var t=this.menuItems.eq(this.focusIndex).parent("li");t.hasClass("ui-state-disabled")||this._select(t.data("ui-selectmenu-item"),e)},_select:function(e,t){var n=this.element[0].selectedIndex;this.element[0].selectedIndex=e.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(e)),this._setAria(e),this._trigger("select",t,{item:e}),e.index!==n&&this._trigger("change",t,{item:e}),this.close(t)},_setAria:function(e){var t=this.menuItems.eq(e.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(e,t){if("icons"===e){var n=this.button.find("span.ui-icon");this._removeClass(n,null,this.options.icons.button)._addClass(n,null,t.button)}this._super(e,t),"appendTo"===e&&this.menuWrap.appendTo(this._appendTo()),"width"===e&&this._resizeButton()},_setOptionDisabled:function(e){this._super(e),this.menuInstance.option("disabled",e),this.button.attr("aria-disabled",e),this._toggleClass(this.button,null,"ui-state-disabled",e),this.element.prop("disabled",e),e?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front, dialog")),t.length||(t=this.document[0].body),t},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var e=this.options.width;!1!==e?(null===e&&(e=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(e)):this.button.css("width","")},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var e=this._super();return e.disabled=this.element.prop("disabled"),e},_parseOptions:function(t){var n=this,r=[];t.each((function(t,i){r.push(n._parseOption(e(i),t))})),this.items=r},_parseOption:function(e,t){var n=e.parent("optgroup");return{element:e,index:t,value:e.val(),label:e.text(),hidden:n.prop("hidden")||e.prop("hidden"),optgroup:n.attr("label")||"",disabled:n.prop("disabled")||e.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),e.widget("ui.slider",e.ui.mouse,{version:"1.13.3",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,n,r=this.options,i=this.element.find(".ui-slider-handle"),o=[];for(n=r.values&&r.values.length||1,i.length>n&&(i.slice(n).remove(),i=i.slice(0,n)),t=i.length;t");this.handles=i.add(e(o.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each((function(t){e(this).data("ui-slider-handle-index",t).attr("tabIndex",0)}))},_createRange:function(){var t=this.options;t.range?(!0===t.range&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:Array.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=e("
      ").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),"min"!==t.range&&"max"!==t.range||this._addClass(this.range,"ui-slider-range-"+t.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(t){var n,r,i,o,a,s,l,u=this,c=this.options;return!c.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),n={x:t.pageX,y:t.pageY},r=this._normValueFromMouse(n),i=this._valueMax()-this._valueMin()+1,this.handles.each((function(t){var n=Math.abs(r-u.values(t));(i>n||i===n&&(t===u._lastChangedValue||u.values(t)===c.min))&&(i=n,o=e(this),a=t)})),!1!==this._start(t,a)&&(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),s=o.offset(),l=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:t.pageX-s.left-o.width()/2,top:t.pageY-s.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,a,r),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,o;return"horizontal"===this.orientation?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),(r=n/t)>1&&(r=1),r<0&&(r=0),"vertical"===this.orientation&&(r=1-r),i=this._valueMax()-this._valueMin(),o=this._valueMin()+r*i,this._trimAlignValue(o)},_uiHash:function(e,t,n){var r={handle:this.handles[e],handleIndex:e,value:void 0!==t?t:this.value()};return this._hasMultipleValues()&&(r.value=void 0!==t?t:this.values(e),r.values=n||this.values()),r},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(e,t){return this._trigger("start",e,this._uiHash(t))},_slide:function(e,t,n){var r,i=this.value(),o=this.values();this._hasMultipleValues()&&(r=this.values(t?0:1),i=this.values(t),2===this.options.values.length&&!0===this.options.range&&(n=0===t?Math.min(r,n):Math.max(r,n)),o[t]=n),n!==i&&!1!==this._trigger("slide",e,this._uiHash(t,n,o))&&(this._hasMultipleValues()?this.values(t,n):this.value(n))},_stop:function(e,t){this._trigger("stop",e,this._uiHash(t))},_change:function(e,t){this._keySliding||this._mouseSliding||(this._lastChangedValue=t,this._trigger("change",e,this._uiHash(t)))},value:function(e){return arguments.length?(this.options.value=this._trimAlignValue(e),this._refreshValue(),void this._change(null,0)):this._value()},values:function(e,t){var n,r,i;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(t),this._refreshValue(),void this._change(null,e);if(!arguments.length)return this._values();if(!Array.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(n=this.options.values,r=arguments[0],i=0;i=0;n--)this._change(null,n);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(e){this._super(e),this._toggleClass(null,"ui-state-disabled",!!e)},_value:function(){var e=this.options.value;return this._trimAlignValue(e)},_values:function(e){var t,n,r;if(arguments.length)return t=this.options.values[e],this._trimAlignValue(t);if(this._hasMultipleValues()){for(n=this.options.values.slice(),r=0;r=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return 2*Math.abs(n)>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_calculateNewMax:function(){var e=this.options.max,t=this._valueMin(),n=this.options.step;(e=Math.round((e-t)/n)*n+t)>this.options.max&&(e-=n),this.max=parseFloat(e.toFixed(this._precision()))},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return-1===n?0:t.length-n-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(e){"vertical"===e&&this.range.css({width:"",left:""}),"horizontal"===e&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var t,n,r,i,o,a=this.options.range,s=this.options,l=this,u=!this._animateOff&&s.animate,c={};this._hasMultipleValues()?this.handles.each((function(r){n=(l.values(r)-l._valueMin())/(l._valueMax()-l._valueMin())*100,c["horizontal"===l.orientation?"left":"bottom"]=n+"%",e(this).stop(1,1)[u?"animate":"css"](c,s.animate),!0===l.options.range&&("horizontal"===l.orientation?(0===r&&l.range.stop(1,1)[u?"animate":"css"]({left:n+"%"},s.animate),1===r&&l.range[u?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:s.animate})):(0===r&&l.range.stop(1,1)[u?"animate":"css"]({bottom:n+"%"},s.animate),1===r&&l.range[u?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:s.animate}))),t=n})):(r=this.value(),i=this._valueMin(),o=this._valueMax(),n=o!==i?(r-i)/(o-i)*100:0,c["horizontal"===this.orientation?"left":"bottom"]=n+"%",this.handle.stop(1,1)[u?"animate":"css"](c,s.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[u?"animate":"css"]({width:n+"%"},s.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[u?"animate":"css"]({width:100-n+"%"},s.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[u?"animate":"css"]({height:n+"%"},s.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[u?"animate":"css"]({height:100-n+"%"},s.animate))},_handleEvents:{keydown:function(t){var n,r,i,o=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(e(t.target),null,"ui-state-active"),!1===this._start(t,o)))return}switch(i=this.options.step,n=r=this._hasMultipleValues()?this.values(o):this.value(),t.keyCode){case e.ui.keyCode.HOME:r=this._valueMin();break;case e.ui.keyCode.END:r=this._valueMax();break;case e.ui.keyCode.PAGE_UP:r=this._trimAlignValue(n+(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.PAGE_DOWN:r=this._trimAlignValue(n-(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(n===this._valueMax())return;r=this._trimAlignValue(n+i);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(n===this._valueMin())return;r=this._trimAlignValue(n-i)}this._slide(t,o,r)},keyup:function(t){var n=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,n),this._change(t,n),this._removeClass(e(t.target),null,"ui-state-active"))}}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.13.3",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,n){return e>=t&&e=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,n){var r=null,i=!1,o=this;return!(this.reverting||this.options.disabled||"static"===this.options.type||(this._refreshItems(t),e(t.target).parents().each((function(){if(e.data(this,o.widgetName+"-item")===o)return r=e(this),!1})),e.data(t.target,o.widgetName+"-item")===o&&(r=e(t.target)),!r||this.options.handle&&!n&&(e(this.options.handle,r).find("*").addBack().each((function(){this===t.target&&(i=!0)})),!i)||(this.currentItem=r,this._removeCurrentsFromItems(),0)))},_mouseStart:function(t,n,r){var i,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.appendTo=e("parent"!==a.appendTo?a.appendTo:this.currentItem.parent()),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),this.scrollParent=this.placeholder.scrollParent(),e.extend(this.offset,{parent:this._getParentOffset()}),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=e("").appendTo(o)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!r)for(i=this.containers.length-1;i>=0;i--)this.containers[i]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!a.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this.helper.parent().is(this.appendTo)||(this.helper.detach().appendTo(this.appendTo),this.offset.parent=this._getParentOffset()),this.position=this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,this.lastPositionAbs=this.positionAbs=this._convertPositionTo("absolute"),this._mouseDrag(t),!0},_scroll:function(e){var t=this.options,n=!1;return this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY=0;n--)if(i=(r=this.items[n]).item[0],(o=this._intersectsWithPointer(r))&&r.instance===this.currentContainer&&!(i===this.currentItem[0]||this.placeholder[1===o?"next":"prev"]()[0]===i||e.contains(this.placeholder[0],i)||"semi-dynamic"===this.options.type&&e.contains(this.element[0],i))){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(r))break;this._rearrange(t,r),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var r=this,i=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(a,parseInt(this.options.revert,10)||500,(function(){r._clear(t)}))}else this._clear(t,n);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new e.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each((function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))})),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each((function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")})),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,o=e.left,a=o+e.width,s=e.top,l=s+e.height,u=this.offset.click.top,c=this.offset.click.left,h="x"===this.options.axis||r+u>s&&r+uo&&t+ce[this.floating?"width":"height"]?d:o0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var n,r,i,o,a=[],s=[],l=this._connectWith();if(l&&t)for(n=l.length-1;n>=0;n--)for(r=(i=e(l[n],this.document[0])).length-1;r>=0;r--)(o=e.data(i[r],this.widgetFullName))&&o!==this&&!o.options.disabled&&s.push(["function"==typeof o.options.items?o.options.items.call(o.element):e(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);function u(){a.push(this)}for(s.push(["function"==typeof this.options.items?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),n=s.length-1;n>=0;n--)s[n][0].each(u);return e(a)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,(function(e){for(var n=0;n=0;n--)for(r=(i=e(f[n],this.document[0])).length-1;r>=0;r--)(o=e.data(i[r],this.widgetFullName))&&o!==this&&!o.options.disabled&&(h.push(["function"==typeof o.options.items?o.options.items.call(o.element[0],t,{item:this.currentItem}):e(o.options.items,o.element),o]),this.containers.push(o));for(n=h.length-1;n>=0;n--)for(a=h[n][1],r=0,u=(s=h[n][0]).length;r=0;n--)r=this.items[n],this.currentContainer&&r.instance!==this.currentContainer&&r.item[0]!==this.currentItem[0]||(i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item,t||(r.width=i.outerWidth(),r.height=i.outerHeight()),o=i.offset(),r.left=o.left,r.top=o.top)},refreshPositions:function(e){var t,n;if(this.floating=!!this.items.length&&("x"===this.options.axis||this._isFloating(this.items[0].item)),this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset()),this._refreshItemPositions(e),this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(t=this.containers.length-1;t>=0;t--)n=this.containers[t].element.offset(),this.containers[t].containerCache.left=n.left,this.containers[t].containerCache.top=n.top,this.containers[t].containerCache.width=this.containers[t].element.outerWidth(),this.containers[t].containerCache.height=this.containers[t].element.outerHeight();return this},_createPlaceholder:function(t){var n,r,i=(t=t||this).options;i.placeholder&&i.placeholder.constructor!==String||(n=i.placeholder,r=t.currentItem[0].nodeName.toLowerCase(),i.placeholder={element:function(){var i=e("<"+r+">",t.document[0]);return t._addClass(i,"ui-sortable-placeholder",n||t.currentItem[0].className)._removeClass(i,"ui-sortable-helper"),"tbody"===r?t._createTrPlaceholder(t.currentItem.find("tr").eq(0),e("",t.document[0]).appendTo(i)):"tr"===r?t._createTrPlaceholder(t.currentItem,i):"img"===r&&i.attr("src",t.currentItem.attr("src")),n||i.css("visibility","hidden"),i},update:function(e,o){n&&!i.forcePlaceholderSize||(o.height()&&(!i.forcePlaceholderSize||"tbody"!==r&&"tr"!==r)||o.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),o.width()||o.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(i.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),i.placeholder.update(t,t.placeholder)},_createTrPlaceholder:function(t,n){var r=this;t.children().each((function(){e(" ",r.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(n)}))},_contactContainers:function(t){var n,r,i,o,a,s,l,u,c,h,f=null,d=null;for(n=this.containers.length-1;n>=0;n--)if(!e.contains(this.currentItem[0],this.containers[n].element[0]))if(this._intersectsWith(this.containers[n].containerCache)){if(f&&e.contains(this.containers[n].element[0],f.element[0]))continue;f=this.containers[n],d=n}else this.containers[n].containerCache.over&&(this.containers[n]._trigger("out",t,this._uiHash(this)),this.containers[n].containerCache.over=0);if(f)if(1===this.containers.length)this.containers[d].containerCache.over||(this.containers[d]._trigger("over",t,this._uiHash(this)),this.containers[d].containerCache.over=1);else{for(i=1e4,o=null,a=(c=f.floating||this._isFloating(this.currentItem))?"left":"top",s=c?"width":"height",h=c?"pageX":"pageY",r=this.items.length-1;r>=0;r--)e.contains(this.containers[d].element[0],this.items[r].item[0])&&this.items[r].item[0]!==this.currentItem[0]&&(l=this.items[r].item.offset()[a],u=!1,t[h]-l>this.items[r][s]/2&&(u=!0),Math.abs(t[h]-l)this.containment[2]&&(o=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),i.grid&&(n=this.originalPageY+Math.round((a-this.originalPageY)/i.grid[1])*i.grid[1],a=this.containment?n-this.offset.click.top>=this.containment[1]&&n-this.offset.click.top<=this.containment[3]?n:n-this.offset.click.top>=this.containment[1]?n-i.grid[1]:n+i.grid[1]:n,r=this.originalPageX+Math.round((o-this.originalPageX)/i.grid[0])*i.grid[0],o=this.containment?r-this.offset.click.left>=this.containment[0]&&r-this.offset.click.left<=this.containment[2]?r:r-this.offset.click.left>=this.containment[0]?r-i.grid[0]:r+i.grid[0]:r)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():l?0:s.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():l?0:s.scrollLeft())}},_rearrange:function(e,t,n,r){n?n[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var i=this.counter;this._delay((function(){i===this.counter&&this.refreshPositions(!r)}))},_clear:function(e,t){this.reverting=!1;var n,r=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(n in this._storedCSS)"auto"!==this._storedCSS[n]&&"static"!==this._storedCSS[n]||(this._storedCSS[n]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();function i(e,t,n){return function(r){n._trigger(e,r,t._uiHash(t))}}for(this.fromOutside&&!t&&r.push((function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))})),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||r.push((function(e){this._trigger("update",e,this._uiHash())})),this!==this.currentContainer&&(t||(r.push((function(e){this._trigger("remove",e,this._uiHash())})),r.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),r.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),n=this.containers.length-1;n>=0;n--)t||r.push(i("deactivate",this,this.containers[n])),this.containers[n].containerCache.over&&(r.push(i("out",this,this.containers[n])),this.containers[n].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!t){for(n=0;n",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t=this._super(),n=this.element;return e.each(["min","max","step"],(function(e,r){var i=n.attr(r);null!=i&&i.length&&(t[r]=i)})),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){this.cancelBlur?delete this.cancelBlur:(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e))},mousewheel:function(t,n){var r=e.ui.safeActiveElement(this.document[0]);if(this.element[0]===r&&n){if(!this.spinning&&!this._start(t))return!1;this._spin((n>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay((function(){this.spinning&&this._stop(t)}),100),t.preventDefault()}},"mousedown .ui-spinner-button":function(t){var n;function r(){this.element[0]===e.ui.safeActiveElement(this.document[0])||(this.element.trigger("focus"),this.previous=n,this._delay((function(){this.previous=n})))}n=this.element[0]===e.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),t.preventDefault(),r.call(this),this.cancelBlur=!0,this._delay((function(){delete this.cancelBlur,r.call(this)})),!1!==this._start(t)&&this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(e(t.currentTarget).hasClass("ui-state-active"))return!1!==this._start(t)&&void this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("").parent().append("")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(t){var n=this.options,r=e.ui.keyCode;switch(t.keyCode){case r.UP:return this._repeat(null,1,t),!0;case r.DOWN:return this._repeat(null,-1,t),!0;case r.PAGE_UP:return this._repeat(null,n.page,t),!0;case r.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_start:function(e){return!(!this.spinning&&!1===this._trigger("start",e)||(this.counter||(this.counter=1),this.spinning=!0,0))},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay((function(){this._repeat(40,t,n)}),e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter)),this.spinning&&!1===this._trigger("spin",t,{value:n})||(this._value(n),this.counter++)},_increment:function(e){var t=this.options.incremental;return t?"function"==typeof t?t(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return-1===n?0:t.length-n-1},_adjustValue:function(e){var t,n,r=this.options;return n=e-(t=null!==r.min?r.min:0),e=t+(n=Math.round(n/r.step)*r.step),e=parseFloat(e.toFixed(this._precision())),null!==r.max&&e>r.max?r.max:null!==r.min&&e"},_buttonHtml:function(){return""}}),e.ui.spinner,e.widget("ui.tabs",{version:"1.13.3",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:(A=/#.*$/,function(e){var t,n;t=e.href.replace(A,""),n=location.href.replace(A,"");try{t=decodeURIComponent(t)}catch(e){}try{n=decodeURIComponent(n)}catch(e){}return e.hash.length>1&&t===n}),_create:function(){var t=this,n=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,n.collapsible),this._processTabs(),n.active=this._initialActive(),Array.isArray(n.disabled)&&(n.disabled=e.uniqueSort(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),(function(e){return t.tabs.index(e)})))).sort()),!1!==this.options.active&&this.anchors.length?this.active=this._findActive(n.active):this.active=e(),this._refresh(),this.active.length&&this.load(n.active)},_initialActive:function(){var t=this.options.active,n=this.options.collapsible,r=location.hash.substring(1);return null===t&&(r&&this.tabs.each((function(n,i){if(e(i).attr("aria-controls")===r)return t=n,!1})),null===t&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),null!==t&&-1!==t||(t=!!this.tabs.length&&0)),!1!==t&&-1===(t=this.tabs.index(this.tabs.eq(t)))&&(t=!n&&0),!n&&!1===t&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(e.ui.safeActiveElement(this.document[0])).closest("li"),r=this.tabs.index(n),i=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),void this._activate(r);case e.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),void this._activate(r!==this.options.active&&r);default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),t.ctrlKey||t.metaKey||(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay((function(){this.option("active",r)}),this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(t){return t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,n){var r=this.tabs.length-1;for(;-1!==e.inArray((t>r&&(t=0),t<0&&(t=r),t),this.options.disabled);)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).trigger("focus"),e},_setOption:function(e,t){"active"!==e?(this._super(e,t),"collapsible"===e&&(this._toggleClass("ui-tabs-collapsible",null,t),t||!1!==this.options.active||this._activate(0)),"event"===e&&this._setupEvents(t),"heightStyle"===e&&this._setupHeightStyle(t)):this._activate(t)},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,n=this.tablist.children(":has(a[href])");t.disabled=e.map(n.filter(".ui-state-disabled"),(function(e){return n.index(e)})),this._processTabs(),!1!==t.active&&this.anchors.length?this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=e()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this,n=this.tabs,r=this.anchors,i=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",(function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()})).on("focus"+this.eventNamespace,".ui-tabs-anchor",(function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()})),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map((function(){return e("a",this)[0]})).attr({tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=e(),this.anchors.each((function(n,r){var i,o,a,s=e(r).uniqueId().attr("id"),l=e(r).closest("li"),u=l.attr("aria-controls");t._isLocal(r)?(a=(i=r.hash).substring(1),o=t.element.find(t._sanitizeSelector(i))):(i="#"+(a=l.attr("aria-controls")||e({}).uniqueId()[0].id),(o=t.element.find(i)).length||(o=t._createPanel(a)).insertAfter(t.panels[n-1]||t.tablist),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),u&&l.data("ui-tabs-aria-controls",u),l.attr({"aria-controls":a,"aria-labelledby":s}),o.attr("aria-labelledby",s)})),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),n&&(this._off(n.not(this.tabs)),this._off(r.not(this.anchors)),this._off(i.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(t){return e("
      ").attr("id",t).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(t){var n,r,i;for(Array.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1),i=0;r=this.tabs[i];i++)n=e(r),!0===t||-1!==e.inArray(i,t)?(n.attr("aria-disabled","true"),this._addClass(n,null,"ui-state-disabled")):(n.removeAttr("aria-disabled"),this._removeClass(n,null,"ui-state-disabled"));this.options.disabled=t,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!0===t)},_setupEvents:function(t){var n={};t&&e.each(t.split(" "),(function(e,t){n[t]="_eventHandler"})),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(e){e.preventDefault()}}),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r=this.element.parent();"fill"===t?(n=r.height(),n-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each((function(){var t=e(this),r=t.css("position");"absolute"!==r&&"fixed"!==r&&(n-=t.outerHeight(!0))})),this.element.children().not(this.panels).each((function(){n-=e(this).outerHeight(!0)})),this.panels.each((function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))})).css("overflow","auto")):"auto"===t&&(n=0,this.panels.each((function(){n=Math.max(n,e(this).height("").height())})).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget).closest("li"),o=i[0]===r[0],a=o&&n.collapsible,s=a?e():this._getPanelForTab(i),l=r.length?this._getPanelForTab(r):e(),u={oldTab:r,oldPanel:l,newTab:a?e():i,newPanel:s};t.preventDefault(),i.hasClass("ui-state-disabled")||i.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||!1===this._trigger("beforeActivate",t,u)||(n.active=!a&&this.tabs.index(i),this.active=o?e():i,this.xhr&&this.xhr.abort(),l.length||s.length||e.error("jQuery UI Tabs: Mismatching fragment identifier."),s.length&&this.load(this.tabs.index(i),t),this._toggle(t,u))},_toggle:function(t,n){var r=this,i=n.newPanel,o=n.oldPanel;function a(){r.running=!1,r._trigger("activate",t,n)}function s(){r._addClass(n.newTab.closest("li"),"ui-tabs-active","ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,a):(i.show(),a())}this.running=!0,o.length&&this.options.hide?this._hide(o,this.options.hide,(function(){r._removeClass(n.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),s()})):(this._removeClass(n.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),o.hide(),s()),o.attr("aria-hidden","true"),n.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&o.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter((function(){return 0===e(this).attr("tabIndex")})).attr("tabIndex",-1),i.attr("aria-hidden","false"),n.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);r[0]!==this.active[0]&&(r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop}))},_findActive:function(t){return!1===t?e():this.tabs.eq(t)},_getIndex:function(t){return"string"==typeof t&&(t=this.anchors.index(this.anchors.filter("[href$='"+e.escapeSelector(t)+"']"))),t},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each((function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")})),this.tabs.each((function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")})),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(t){var n=this.options.disabled;!1!==n&&(void 0===t?n=!1:(t=this._getIndex(t),n=Array.isArray(n)?e.map(n,(function(e){return e!==t?e:null})):e.map(this.tabs,(function(e,n){return n!==t?n:null}))),this._setOptionDisabled(n))},disable:function(t){var n=this.options.disabled;if(!0!==n){if(void 0===t)n=!0;else{if(t=this._getIndex(t),-1!==e.inArray(t,n))return;n=Array.isArray(n)?e.merge([t],n).sort():[t]}this._setOptionDisabled(n)}},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),o=i.find(".ui-tabs-anchor"),a=this._getPanelForTab(i),s={tab:i,panel:a},l=function(e,t){"abort"===t&&r.panels.stop(!1,!0),r._removeClass(i,"ui-tabs-loading"),a.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr};this._isLocal(o[0])||(this.xhr=e.ajax(this._ajaxSettings(o,n,s)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(i,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done((function(e,t,i){setTimeout((function(){a.html(e),r._trigger("load",n,s),l(i,t)}),1)})).fail((function(e,t){setTimeout((function(){l(e,t)}),1)}))))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href").replace(/#.*$/,""),beforeSend:function(t,o){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:o},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),!1!==e.uiBackCompat&&e.widget("ui.tabs",e.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),e.ui.tabs,e.widget("ui.tooltip",{version:"1.13.3",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var t=e(this).attr("title");return e("").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,t){var n=(e.attr("aria-describedby")||"").split(/\s+/);n.push(t),e.data("ui-tooltip-id",t).attr("aria-describedby",String.prototype.trim.call(n.join(" ")))},_removeDescribedBy:function(t){var n=t.data("ui-tooltip-id"),r=(t.attr("aria-describedby")||"").split(/\s+/),i=e.inArray(n,r);-1!==i&&r.splice(i,1),t.removeData("ui-tooltip-id"),(r=String.prototype.trim.call(r.join(" ")))?t.attr("aria-describedby",r):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=e("
      ").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=e([])},_setOption:function(t,n){var r=this;this._super(t,n),"content"===t&&e.each(this.tooltips,(function(e,t){r._updateContent(t.element)}))},_setOptionDisabled:function(e){this[e?"_disable":"_enable"]()},_disable:function(){var t=this;e.each(this.tooltips,(function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r.element[0],t.close(i,!0)})),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter((function(){var t=e(this);if(t.is("[title]"))return t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")})))},_enable:function(){this.disabledTitles.each((function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})),this.disabledTitles=e([])},open:function(t){var n=this,r=e(t?t.target:this.element).closest(this.options.items);r.length&&!r.data("ui-tooltip-id")&&(r.attr("title")&&r.data("ui-tooltip-title",r.attr("title")),r.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&r.parents().each((function(){var t,r=e(this);r.data("ui-tooltip-open")&&((t=e.Event("blur")).target=t.currentTarget=this,n.close(t,!0)),r.attr("title")&&(r.uniqueId(),n.parents[this.id]={element:this,title:r.attr("title")},r.attr("title",""))})),this._registerCloseHandlers(t,r),this._updateContent(r,t))},_updateContent:function(e,t){var n,r=this.options.content,i=this,o=t?t.type:null;if("string"==typeof r||r.nodeType||r.jquery)return this._open(t,e,r);(n=r.call(e[0],(function(n){i._delay((function(){e.data("ui-tooltip-open")&&(t&&(t.type=o),this._open(t,e,n))}))})))&&this._open(t,e,n)},_open:function(t,n,r){var i,o,a,s,l=e.extend({},this.options.position);function u(e){l.of=e,o.is(":hidden")||o.position(l)}r&&((i=this._find(n))?i.tooltip.find(".ui-tooltip-content").html(r):(n.is("[title]")&&(t&&"mouseover"===t.type?n.attr("title",""):n.removeAttr("title")),i=this._tooltip(n),o=i.tooltip,this._addDescribedBy(n,o.attr("id")),o.find(".ui-tooltip-content").html(r),this.liveRegion.children().hide(),(s=e("
      ").html(o.find(".ui-tooltip-content").html())).removeAttr("name").find("[name]").removeAttr("name"),s.removeAttr("id").find("[id]").removeAttr("id"),s.appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:u}),u(t)):o.position(e.extend({of:n},this.options.position)),o.hide(),this._show(o,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(a=this.delayedShow=setInterval((function(){o.is(":visible")&&(u(l.of),clearInterval(a))}),13)),this._trigger("open",t,{tooltip:o})))},_registerCloseHandlers:function(t,n){var r={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var r=e.Event(t);r.currentTarget=n[0],this.close(r,!0)}}};n[0]!==this.element[0]&&(r.remove=function(){var e=this._find(n);e&&this._removeTooltip(e.tooltip)}),t&&"mouseover"!==t.type||(r.mouseleave="close"),t&&"focusin"!==t.type||(r.focusout="close"),this._on(!0,n,r)},close:function(t){var n,r=this,i=e(t?t.currentTarget:this.element),o=this._find(i);o?(n=o.tooltip,o.closing||(clearInterval(this.delayedShow),i.data("ui-tooltip-title")&&!i.attr("title")&&i.attr("title",i.data("ui-tooltip-title")),this._removeDescribedBy(i),o.hiding=!0,n.stop(!0),this._hide(n,this.options.hide,(function(){r._removeTooltip(e(this))})),i.removeData("ui-tooltip-open"),this._off(i,"mouseleave focusout keyup"),i[0]!==this.element[0]&&this._off(i,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,(function(t,n){e(n.element).attr("title",n.title),delete r.parents[t]})),o.closing=!0,this._trigger("close",t,{tooltip:n}),o.hiding||(o.closing=!1))):i.removeData("ui-tooltip-open")},_tooltip:function(t){var n=e("
      ").attr("role","tooltip"),r=e("
      ").appendTo(n),i=n.uniqueId().attr("id");return this._addClass(r,"ui-tooltip-content"),this._addClass(n,"ui-tooltip","ui-widget ui-widget-content"),n.appendTo(this._appendTo(t)),this.tooltips[i]={element:t,tooltip:n}},_find:function(e){var t=e.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(e){clearInterval(this.delayedShow),e.remove(),delete this.tooltips[e.attr("id")]},_appendTo:function(e){var t=e.closest(".ui-front, dialog");return t.length||(t=this.document[0].body),t},_destroy:function(){var t=this;e.each(this.tooltips,(function(n,r){var i=e.Event("blur"),o=r.element;i.target=i.currentTarget=o[0],t.close(i,!0),e("#"+n).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))})),this.liveRegion.remove()}}),!1!==e.uiBackCompat&&e.widget("ui.tooltip",e.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var e=this._superApply(arguments);return this.options.tooltipClass&&e.tooltip.addClass(this.options.tooltipClass),e}}),e.ui.tooltip},void 0===(o=r.apply(t,i))||(e.exports=o)}()},125:(e,t,n)=>{n(234),n(303),n(45),n(355),n(694),n(912),n(296),n(898),n(856),n(208),n(954),n(159)},159:(e,t,n)=>{!function(e){"use strict";var t=function(n,r){this.options=e.extend({},t.DEFAULTS,r);var i=this.options.target===t.DEFAULTS.target?e(this.options.target):e(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(n),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.affix"),o="object"==typeof n&&n;i||r.data("bs.affix",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.RESET="affix affix-top affix-bottom",t.DEFAULTS={offset:0,target:window},t.prototype.getState=function(e,t,n,r){var i=this.$target.scrollTop(),o=this.$element.offset(),a=this.$target.height();if(null!=n&&"top"==this.affixed)return i=e-r&&"bottom"},t.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(t.RESET).addClass("affix");var e=this.$target.scrollTop(),n=this.$element.offset();return this.pinnedOffset=n.top-e},t.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},t.prototype.checkPosition=function(){if(this.$element.is(":visible")){var n=this.$element.height(),r=this.options.offset,i=r.top,o=r.bottom,a=Math.max(e(document).height(),e(document.body).height());"object"!=typeof r&&(o=i=r),"function"==typeof i&&(i=r.top(this.$element)),"function"==typeof o&&(o=r.bottom(this.$element));var s=this.getState(a,n,i,o);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var l="affix"+(s?"-"+s:""),u=e.Event(l+".bs.affix");if(this.$element.trigger(u),u.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(t.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:a-n-o})}};var r=e.fn.affix;e.fn.affix=n,e.fn.affix.Constructor=t,e.fn.affix.noConflict=function(){return e.fn.affix=r,this},e(window).on("load",(function(){e('[data-spy="affix"]').each((function(){var t=e(this),r=t.data();r.offset=r.offset||{},null!=r.offsetBottom&&(r.offset.bottom=r.offsetBottom),null!=r.offsetTop&&(r.offset.top=r.offsetTop),n.call(t,r)}))}))}(n(692))},303:(e,t,n)=>{!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.VERSION="3.4.1",n.TRANSITION_DURATION=150,n.prototype.close=function(t){var r=e(this),i=r.attr("data-target");i||(i=(i=r.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),i="#"===i?[]:i;var o=e(document).find(i);function a(){o.detach().trigger("closed.bs.alert").remove()}t&&t.preventDefault(),o.length||(o=r.closest(".alert")),o.trigger(t=e.Event("close.bs.alert")),t.isDefaultPrevented()||(o.removeClass("in"),e.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",a).emulateTransitionEnd(n.TRANSITION_DURATION):a())};var r=e.fn.alert;e.fn.alert=function(t){return this.each((function(){var r=e(this),i=r.data("bs.alert");i||r.data("bs.alert",i=new n(this)),"string"==typeof t&&i[t].call(r)}))},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.bs.alert.data-api",t,n.prototype.close)}(n(692))},45:(e,t,n)=>{!function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.isLoading=!1};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.button"),o="object"==typeof n&&n;i||r.data("bs.button",i=new t(this,o)),"toggle"==n?i.toggle():n&&i.setState(n)}))}t.VERSION="3.4.1",t.DEFAULTS={loadingText:"loading..."},t.prototype.setState=function(t){var n="disabled",r=this.$element,i=r.is("input")?"val":"html",o=r.data();t+="Text",null==o.resetText&&r.data("resetText",r[i]()),setTimeout(e.proxy((function(){r[i](null==o[t]?this.options[t]:o[t]),"loadingText"==t?(this.isLoading=!0,r.addClass(n).attr(n,n).prop(n,!0)):this.isLoading&&(this.isLoading=!1,r.removeClass(n).removeAttr(n).prop(n,!1))}),this),0)},t.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(e=!1),t.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(e=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),e&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var r=e.fn.button;e.fn.button=n,e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=r,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var r=e(t.target).closest(".btn");n.call(r,"toggle"),e(t.target).is('input[type="radio"], input[type="checkbox"]')||(t.preventDefault(),r.is("input,button")?r.trigger("focus"):r.find("input:visible,button:visible").first().trigger("focus"))})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){e(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))}))}(n(692))},355:(e,t,n)=>{!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",e.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",e.proxy(this.pause,this)).on("mouseleave.bs.carousel",e.proxy(this.cycle,this))};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.carousel"),o=e.extend({},t.DEFAULTS,r.data(),"object"==typeof n&&n),a="string"==typeof n?n:o.slide;i||r.data("bs.carousel",i=new t(this,o)),"number"==typeof n?i.to(n):a?i[a]():o.interval&&i.pause().cycle()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=600,t.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},t.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},t.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},t.prototype.getItemIndex=function(e){return this.$items=e.parent().children(".item"),this.$items.index(e||this.$active)},t.prototype.getItemForDirection=function(e,t){var n=this.getItemIndex(t);if(("prev"==e&&0===n||"next"==e&&n==this.$items.length-1)&&!this.options.wrap)return t;var r=(n+("prev"==e?-1:1))%this.$items.length;return this.$items.eq(r)},t.prototype.to=function(e){var t=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(e>this.$items.length-1||e<0))return this.sliding?this.$element.one("slid.bs.carousel",(function(){t.to(e)})):n==e?this.pause().cycle():this.slide(e>n?"next":"prev",this.$items.eq(e))},t.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},t.prototype.next=function(){if(!this.sliding)return this.slide("next")},t.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},t.prototype.slide=function(n,r){var i=this.$element.find(".item.active"),o=r||this.getItemForDirection(n,i),a=this.interval,s="next"==n?"left":"right",l=this;if(o.hasClass("active"))return this.sliding=!1;var u=o[0],c=e.Event("slide.bs.carousel",{relatedTarget:u,direction:s});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var h=e(this.$indicators.children()[this.getItemIndex(o)]);h&&h.addClass("active")}var f=e.Event("slid.bs.carousel",{relatedTarget:u,direction:s});return e.support.transition&&this.$element.hasClass("slide")?(o.addClass(n),"object"==typeof o&&o.length&&o[0].offsetWidth,i.addClass(s),o.addClass(s),i.one("bsTransitionEnd",(function(){o.removeClass([n,s].join(" ")).addClass("active"),i.removeClass(["active",s].join(" ")),l.sliding=!1,setTimeout((function(){l.$element.trigger(f)}),0)})).emulateTransitionEnd(t.TRANSITION_DURATION)):(i.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(f)),a&&this.cycle(),this}};var r=e.fn.carousel;e.fn.carousel=n,e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=r,this};var i=function(t){var r=e(this),i=r.attr("href");i&&(i=i.replace(/.*(?=#[^\s]+$)/,""));var o=r.attr("data-target")||i,a=e(document).find(o);if(a.hasClass("carousel")){var s=e.extend({},a.data(),r.data()),l=r.attr("data-slide-to");l&&(s.interval=!1),n.call(a,s),l&&a.data("bs.carousel").to(l),t.preventDefault()}};e(document).on("click.bs.carousel.data-api","[data-slide]",i).on("click.bs.carousel.data-api","[data-slide-to]",i),e(window).on("load",(function(){e('[data-ride="carousel"]').each((function(){var t=e(this);n.call(t,t.data())}))}))}(n(692))},694:(e,t,n)=>{!function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.$trigger=e('[data-toggle="collapse"][href="#'+n.id+'"],[data-toggle="collapse"][data-target="#'+n.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function n(t){var n,r=t.attr("data-target")||(n=t.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return e(document).find(r)}function r(n){return this.each((function(){var r=e(this),i=r.data("bs.collapse"),o=e.extend({},t.DEFAULTS,r.data(),"object"==typeof n&&n);!i&&o.toggle&&/show|hide/.test(n)&&(o.toggle=!1),i||r.data("bs.collapse",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=350,t.DEFAULTS={toggle:!0},t.prototype.dimension=function(){return this.$element.hasClass("width")?"width":"height"},t.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var n,i=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(i&&i.length&&(n=i.data("bs.collapse"))&&n.transitioning)){var o=e.Event("show.bs.collapse");if(this.$element.trigger(o),!o.isDefaultPrevented()){i&&i.length&&(r.call(i,"hide"),n||i.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var s=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return s.call(this);var l=e.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",e.proxy(s,this)).emulateTransitionEnd(t.TRANSITION_DURATION)[a](this.$element[0][l])}}}},t.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var n=e.Event("hide.bs.collapse");if(this.$element.trigger(n),!n.isDefaultPrevented()){var r=this.dimension();this.$element[r](this.$element[r]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!e.support.transition)return i.call(this);this.$element[r](0).one("bsTransitionEnd",e.proxy(i,this)).emulateTransitionEnd(t.TRANSITION_DURATION)}}},t.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},t.prototype.getParent=function(){return e(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(e.proxy((function(t,r){var i=e(r);this.addAriaAndCollapsedClass(n(i),i)}),this)).end()},t.prototype.addAriaAndCollapsedClass=function(e,t){var n=e.hasClass("in");e.attr("aria-expanded",n),t.toggleClass("collapsed",!n).attr("aria-expanded",n)};var i=e.fn.collapse;e.fn.collapse=r,e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=i,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){var i=e(this);i.attr("data-target")||t.preventDefault();var o=n(i),a=o.data("bs.collapse")?"toggle":i.data();r.call(o,a)}))}(n(692))},912:(e,t,n)=>{!function(e){"use strict";var t='[data-toggle="dropdown"]',n=function(t){e(t).on("click.bs.dropdown",this.toggle)};function r(t){var n=t.attr("data-target");n||(n=(n=t.attr("href"))&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r="#"!==n?e(document).find(n):null;return r&&r.length?r:t.parent()}function i(n){n&&3===n.which||(e(".dropdown-backdrop").remove(),e(t).each((function(){var t=e(this),i=r(t),o={relatedTarget:this};i.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&e.contains(i[0],n.target)||(i.trigger(n=e.Event("hide.bs.dropdown",o)),n.isDefaultPrevented()||(t.attr("aria-expanded","false"),i.removeClass("open").trigger(e.Event("hidden.bs.dropdown",o)))))})))}n.VERSION="3.4.1",n.prototype.toggle=function(t){var n=e(this);if(!n.is(".disabled, :disabled")){var o=r(n),a=o.hasClass("open");if(i(),!a){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click",i);var s={relatedTarget:this};if(o.trigger(t=e.Event("show.bs.dropdown",s)),t.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),o.toggleClass("open").trigger(e.Event("shown.bs.dropdown",s))}return!1}},n.prototype.keydown=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)){var i=e(this);if(n.preventDefault(),n.stopPropagation(),!i.is(".disabled, :disabled")){var o=r(i),a=o.hasClass("open");if(!a&&27!=n.which||a&&27==n.which)return 27==n.which&&o.find(t).trigger("focus"),i.trigger("click");var s=o.find(".dropdown-menu li:not(.disabled):visible a");if(s.length){var l=s.index(n.target);38==n.which&&l>0&&l--,40==n.which&&l{!function(e){"use strict";var t=function(t,n){this.options=n,this.$body=e(document.body),this.$element=e(t),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.fixedContent=".navbar-fixed-top, .navbar-fixed-bottom",this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,e.proxy((function(){this.$element.trigger("loaded.bs.modal")}),this))};function n(n,r){return this.each((function(){var i=e(this),o=i.data("bs.modal"),a=e.extend({},t.DEFAULTS,i.data(),"object"==typeof n&&n);o||i.data("bs.modal",o=new t(this,a)),"string"==typeof n?o[n](r):a.show&&o.show(r)}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=300,t.BACKDROP_TRANSITION_DURATION=150,t.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},t.prototype.toggle=function(e){return this.isShown?this.hide():this.show(e)},t.prototype.show=function(n){var r=this,i=e.Event("show.bs.modal",{relatedTarget:n});this.$element.trigger(i),this.isShown||i.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',e.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",(function(){r.$element.one("mouseup.dismiss.bs.modal",(function(t){e(t.target).is(r.$element)&&(r.ignoreBackdropClick=!0)}))})),this.backdrop((function(){var i=e.support.transition&&r.$element.hasClass("fade");r.$element.parent().length||r.$element.appendTo(r.$body),r.$element.show().scrollTop(0),r.adjustDialog(),i&&r.$element[0].offsetWidth,r.$element.addClass("in"),r.enforceFocus();var o=e.Event("shown.bs.modal",{relatedTarget:n});i?r.$dialog.one("bsTransitionEnd",(function(){r.$element.trigger("focus").trigger(o)})).emulateTransitionEnd(t.TRANSITION_DURATION):r.$element.trigger("focus").trigger(o)})))},t.prototype.hide=function(n){n&&n.preventDefault(),n=e.Event("hide.bs.modal"),this.$element.trigger(n),this.isShown&&!n.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),e(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),e.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",e.proxy(this.hideModal,this)).emulateTransitionEnd(t.TRANSITION_DURATION):this.hideModal())},t.prototype.enforceFocus=function(){e(document).off("focusin.bs.modal").on("focusin.bs.modal",e.proxy((function(e){document===e.target||this.$element[0]===e.target||this.$element.has(e.target).length||this.$element.trigger("focus")}),this))},t.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",e.proxy((function(e){27==e.which&&this.hide()}),this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},t.prototype.resize=function(){this.isShown?e(window).on("resize.bs.modal",e.proxy(this.handleUpdate,this)):e(window).off("resize.bs.modal")},t.prototype.hideModal=function(){var e=this;this.$element.hide(),this.backdrop((function(){e.$body.removeClass("modal-open"),e.resetAdjustments(),e.resetScrollbar(),e.$element.trigger("hidden.bs.modal")}))},t.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},t.prototype.backdrop=function(n){var r=this,i=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var o=e.support.transition&&i;if(this.$backdrop=e(document.createElement("div")).addClass("modal-backdrop "+i).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",e.proxy((function(e){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide())}),this)),o&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!n)return;o?this.$backdrop.one("bsTransitionEnd",n).emulateTransitionEnd(t.BACKDROP_TRANSITION_DURATION):n()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){r.removeBackdrop(),n&&n()};e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(t.BACKDROP_TRANSITION_DURATION):a()}else n&&n()},t.prototype.handleUpdate=function(){this.adjustDialog()},t.prototype.adjustDialog=function(){var e=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:""})},t.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},t.prototype.checkScrollbar=function(){var e=window.innerWidth;if(!e){var t=document.documentElement.getBoundingClientRect();e=t.right-Math.abs(t.left)}this.bodyIsOverflowing=document.body.clientWidth{!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");t.VERSION="3.4.1",t.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),(t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype)).constructor=t,t.prototype.getDefaults=function(){return t.DEFAULTS},t.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();if(this.options.html){var r=typeof n;this.options.sanitize&&(t=this.sanitizeHtml(t),"string"===r&&(n=this.sanitizeHtml(n))),e.find(".popover-title").html(t),e.find(".popover-content").children().detach().end()["string"===r?"html":"append"](n)}else e.find(".popover-title").text(t),e.find(".popover-content").children().detach().end().text(n);e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},t.prototype.hasContent=function(){return this.getTitle()||this.getContent()},t.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var n=e.fn.popover;e.fn.popover=function(n){return this.each((function(){var r=e(this),i=r.data("bs.popover"),o="object"==typeof n&&n;!i&&/destroy|hide/.test(n)||(i||r.data("bs.popover",i=new t(this,o)),"string"==typeof n&&i[n]())}))},e.fn.popover.Constructor=t,e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(n(692))},208:(e,t,n)=>{!function(e){"use strict";function t(n,r){this.$body=e(document.body),this.$scrollElement=e(n).is(document.body)?e(window):e(n),this.options=e.extend({},t.DEFAULTS,r),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each((function(){var r=e(this),i=r.data("bs.scrollspy"),o="object"==typeof n&&n;i||r.data("bs.scrollspy",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.DEFAULTS={offset:10},t.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},t.prototype.refresh=function(){var t=this,n="offset",r=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),e.isWindow(this.$scrollElement[0])||(n="position",r=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map((function(){var t=e(this),i=t.data("target")||t.attr("href"),o=/^#./.test(i)&&e(i);return o&&o.length&&o.is(":visible")&&[[o[n]().top+r,i]]||null})).sort((function(e,t){return e[0]-t[0]})).each((function(){t.offsets.push(this[0]),t.targets.push(this[1])}))},t.prototype.process=function(){var e,t=this.$scrollElement.scrollTop()+this.options.offset,n=this.getScrollHeight(),r=this.options.offset+n-this.$scrollElement.height(),i=this.offsets,o=this.targets,a=this.activeTarget;if(this.scrollHeight!=n&&this.refresh(),t>=r)return a!=(e=o[o.length-1])&&this.activate(e);if(a&&t=i[e]&&(void 0===i[e+1]||t{!function(e){"use strict";var t=function(t){this.element=e(t)};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.tab");i||r.data("bs.tab",i=new t(this)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=150,t.prototype.show=function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.data("target");if(r||(r=(r=t.attr("href"))&&r.replace(/.*(?=#[^\s]*$)/,"")),!t.parent("li").hasClass("active")){var i=n.find(".active:last a"),o=e.Event("hide.bs.tab",{relatedTarget:t[0]}),a=e.Event("show.bs.tab",{relatedTarget:i[0]});if(i.trigger(o),t.trigger(a),!a.isDefaultPrevented()&&!o.isDefaultPrevented()){var s=e(document).find(r);this.activate(t.closest("li"),n),this.activate(s,s.parent(),(function(){i.trigger({type:"hidden.bs.tab",relatedTarget:t[0]}),t.trigger({type:"shown.bs.tab",relatedTarget:i[0]})}))}}},t.prototype.activate=function(n,r,i){var o=r.find("> .active"),a=i&&e.support.transition&&(o.length&&o.hasClass("fade")||!!r.find("> .fade").length);function s(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),n.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),a?(n[0].offsetWidth,n.addClass("in")):n.removeClass("fade"),n.parent(".dropdown-menu").length&&n.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&a?o.one("bsTransitionEnd",s).emulateTransitionEnd(t.TRANSITION_DURATION):s(),o.removeClass("in")};var r=e.fn.tab;e.fn.tab=n,e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=r,this};var i=function(t){t.preventDefault(),n.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(n(692))},898:(e,t,n)=>{!function(e){"use strict";var t=["sanitize","whiteList","sanitizeFn"],n=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],r=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,i=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function o(t,o){var a=t.nodeName.toLowerCase();if(-1!==e.inArray(a,o))return-1===e.inArray(a,n)||Boolean(t.nodeValue.match(r)||t.nodeValue.match(i));for(var s=e(o).filter((function(e,t){return t instanceof RegExp})),l=0,u=s.length;l
      ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]}},s.prototype.init=function(t,n,r){if(this.enabled=!0,this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.$viewport=this.options.viewport&&e(document).find(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var i=this.options.trigger.split(" "),o=i.length;o--;){var a=i[o];if("click"==a)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=a){var s="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},s.prototype.getDefaults=function(){return s.DEFAULTS},s.prototype.getOptions=function(n){var r=this.$element.data();for(var i in r)r.hasOwnProperty(i)&&-1!==e.inArray(i,t)&&delete r[i];return(n=e.extend({},this.getDefaults(),r,n)).delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),n.sanitize&&(n.template=a(n.template,n.whiteList,n.sanitizeFn)),n},s.prototype.getDelegateOptions=function(){var t={},n=this.getDefaults();return this._options&&e.each(this._options,(function(e,r){n[e]!=r&&(t[e]=r)})),t},s.prototype.enter=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusin"==t.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState)n.hoverState="in";else{if(clearTimeout(n.timeout),n.hoverState="in",!n.options.delay||!n.options.delay.show)return n.show();n.timeout=setTimeout((function(){"in"==n.hoverState&&n.show()}),n.options.delay.show)}},s.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},s.prototype.leave=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusout"==t.type?"focus":"hover"]=!1),!n.isInStateTrue()){if(clearTimeout(n.timeout),n.hoverState="out",!n.options.delay||!n.options.delay.hide)return n.hide();n.timeout=setTimeout((function(){"out"==n.hoverState&&n.hide()}),n.options.delay.hide)}},s.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var n=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!n)return;var r=this,i=this.tip(),o=this.getUID(this.type);this.setContent(),i.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&i.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,u=l.test(a);u&&(a=a.replace(l,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?i.appendTo(e(document).find(this.options.container)):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),h=i[0].offsetWidth,f=i[0].offsetHeight;if(u){var d=a,p=this.getPosition(this.$viewport);a="bottom"==a&&c.bottom+f>p.bottom?"top":"top"==a&&c.top-fp.width?"left":"left"==a&&c.left-ha.top+a.height&&(i.top=a.top+a.height-l)}else{var u=t.left-o,c=t.left+o+n;ua.right&&(i.left=a.left+a.width-c)}return i},s.prototype.getTitle=function(){var e=this.$element,t=this.options;return e.attr("data-original-title")||("function"==typeof t.title?t.title.call(e[0]):t.title)},s.prototype.getUID=function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},s.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},s.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},s.prototype.enable=function(){this.enabled=!0},s.prototype.disable=function(){this.enabled=!1},s.prototype.toggleEnabled=function(){this.enabled=!this.enabled},s.prototype.toggle=function(t){var n=this;t&&((n=e(t.currentTarget).data("bs."+this.type))||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n))),t?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},s.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide((function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null,e.$element=null}))},s.prototype.sanitizeHtml=function(e){return a(e,this.options.whiteList,this.options.sanitizeFn)};var l=e.fn.tooltip;e.fn.tooltip=function(t){return this.each((function(){var n=e(this),r=n.data("bs.tooltip"),i="object"==typeof t&&t;!r&&/destroy|hide/.test(t)||(r||n.data("bs.tooltip",r=new s(this,i)),"string"==typeof t&&r[t]())}))},e.fn.tooltip.Constructor=s,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=l,this}}(n(692))},234:(e,t,n)=>{!function(e){"use strict";e.fn.emulateTransitionEnd=function(t){var n=!1,r=this;return e(this).one("bsTransitionEnd",(function(){n=!0})),setTimeout((function(){n||e(r).trigger(e.support.transition.end)}),t),this},e((function(){e.support.transition=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return{end:t[n]};return!1}(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})}))}(n(692))},143:(e,t,n)=>{var r,i;!function(){var o={version:"3.5.17"},a=[].slice,s=function(e){return a.call(e)},l=this.document;function u(e){return e&&(e.ownerDocument||e.document||e).documentElement}function c(e){return e&&(e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView)}if(l)try{s(l.documentElement.childNodes)[0].nodeType}catch(e){s=function(e){for(var t=e.length,n=new Array(t);t--;)n[t]=e[t];return n}}if(Date.now||(Date.now=function(){return+new Date}),l)try{l.createElement("DIV").style.setProperty("opacity",0,"")}catch(e){var h=this.Element.prototype,f=h.setAttribute,d=h.setAttributeNS,p=this.CSSStyleDeclaration.prototype,m=p.setProperty;h.setAttribute=function(e,t){f.call(this,e,t+"")},h.setAttributeNS=function(e,t,n){d.call(this,e,t,n+"")},p.setProperty=function(e,t,n){m.call(this,e,t+"",n)}}function g(e,t){return et?1:e>=t?0:NaN}function v(e){return null===e?NaN:+e}function y(e){return!isNaN(e)}function b(e){return{left:function(t,n,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);r>>1;e(t[o],n)<0?r=o+1:i=o}return r},right:function(t,n,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);r>>1;e(t[o],n)>0?i=o:r=o+1}return r}}}o.ascending=g,o.descending=function(e,t){return te?1:t>=e?0:NaN},o.min=function(e,t){var n,r,i=-1,o=e.length;if(1===arguments.length){for(;++i=r){n=r;break}for(;++ir&&(n=r)}else{for(;++i=r){n=r;break}for(;++ir&&(n=r)}return n},o.max=function(e,t){var n,r,i=-1,o=e.length;if(1===arguments.length){for(;++i=r){n=r;break}for(;++in&&(n=r)}else{for(;++i=r){n=r;break}for(;++in&&(n=r)}return n},o.extent=function(e,t){var n,r,i,o=-1,a=e.length;if(1===arguments.length){for(;++o=r){n=i=r;break}for(;++or&&(n=r),i=r){n=i=r;break}for(;++or&&(n=r),i1)return a/(l-1)},o.deviation=function(){var e=o.variance.apply(this,arguments);return e?Math.sqrt(e):e};var _=b(g);function w(e){return e.length}o.bisectLeft=_.left,o.bisect=o.bisectRight=_.right,o.bisector=function(e){return b(1===e.length?function(t,n){return g(e(t),n)}:e)},o.shuffle=function(e,t,n){(o=arguments.length)<3&&(n=e.length,o<2&&(t=0));for(var r,i,o=n-t;o;)i=Math.random()*o--|0,r=e[o+t],e[o+t]=e[i+t],e[i+t]=r;return e},o.permute=function(e,t){for(var n=t.length,r=new Array(n);n--;)r[n]=e[t[n]];return r},o.pairs=function(e){for(var t=0,n=e.length-1,r=e[0],i=new Array(n<0?0:n);t=0;)for(t=(r=e[i]).length;--t>=0;)n[--a]=r[t];return n};var x=Math.abs;function k(e,t){for(var n in t)Object.defineProperty(e.prototype,n,{value:t[n],enumerable:!1})}function S(){this._=Object.create(null)}o.range=function(e,t,n){if(arguments.length<3&&(n=1,arguments.length<2&&(t=e,e=0)),(t-e)/n==1/0)throw new Error("infinite range");var r,i=[],o=function(e){for(var t=1;e*t%1;)t*=10;return t}(x(n)),a=-1;if(e*=o,t*=o,(n*=o)<0)for(;(r=e+n*++a)>t;)i.push(r/o);else for(;(r=e+n*++a)=r.length)return t?t.call(n,o):e?o.sort(e):o;for(var l,u,c,h,f=-1,d=o.length,p=r[s++],m=new S;++f=r.length)return e;var n=[],o=i[t++];return e.forEach((function(e,r){n.push({key:e,values:s(r,t)})})),o?n.sort((function(e,t){return o(e.key,t.key)})):n}return n.map=function(e,t){return a(t,e,0)},n.entries=function(e){return s(a(o.map,e,0),0)},n.key=function(e){return r.push(e),n},n.sortKeys=function(e){return i[r.length-1]=e,n},n.sortValues=function(t){return e=t,n},n.rollup=function(e){return t=e,n},n},o.set=function(e){var t=new j;if(e)for(var n=0,r=e.length;n=0&&(r=e.slice(n+1),e=e.slice(0,n)),e)return arguments.length<2?this[e].on(r):this[e].on(r,t);if(2===arguments.length){if(null==t)for(e in this)this.hasOwnProperty(e)&&this[e].on(r,null);return this}},o.event=null,o.requote=function(e){return e.replace($,"\\$&")};var $=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,V={}.__proto__?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)e[n]=t[n]};function Y(e){return V(e,G),e}var X=function(e,t){return t.querySelector(e)},Q=function(e,t){return t.querySelectorAll(e)},K=function(e,t){var n=e.matches||e[L(e,"matchesSelector")];return K=function(e,t){return n.call(e,t)},K(e,t)};"function"==typeof Sizzle&&(X=function(e,t){return Sizzle(e,t)[0]||null},Q=Sizzle,K=Sizzle.matchesSelector),o.selection=function(){return o.select(l.documentElement)};var G=o.selection.prototype=[];function J(e){return"function"==typeof e?e:function(){return X(e,this)}}function Z(e){return"function"==typeof e?e:function(){return Q(e,this)}}G.select=function(e){var t,n,r,i,o=[];e=J(e);for(var a=-1,s=this.length;++a=0&&"xmlns"!==(n=e.slice(0,t))&&(e=e.slice(t+1)),te.hasOwnProperty(n)?{space:te[n],local:e}:e}},G.attr=function(e,t){if(arguments.length<2){if("string"==typeof e){var n=this.node();return(e=o.ns.qualify(e)).local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(t in e)this.each(ne(t,e[t]));return this}return this.each(ne(e,t))},G.classed=function(e,t){if(arguments.length<2){if("string"==typeof e){var n=this.node(),r=(e=oe(e)).length,i=-1;if(t=n.classList){for(;++i=0;)(n=r[i])&&(o&&o!==n.nextSibling&&o.parentNode.insertBefore(n,o),o=n);return this},G.sort=function(e){e=pe.apply(this,arguments);for(var t=-1,n=this.length;++t0&&(e=e.slice(0,i));var l=be.get(e);function u(){var t=this[r];t&&(this.removeEventListener(e,t,t.$),delete this[r])}return l&&(e=l,a=we),i?t?function(){var i=a(t,s(arguments));u.call(this),this.addEventListener(e,this[r]=i,i.$=n),i._=t}:u:t?q:function(){var t,n=new RegExp("^__on([^.]+)"+o.requote(e)+"$");for(var r in this)if(t=r.match(n)){var i=this[r];this.removeEventListener(t[1],i,i.$),delete this[r]}}}o.selection.enter=ge,o.selection.enter.prototype=ve,ve.append=G.append,ve.empty=G.empty,ve.node=G.node,ve.call=G.call,ve.size=G.size,ve.select=function(e){for(var t,n,r,i,o,a=[],s=-1,l=this.length;++s=r&&(r=t+1);!(a=s[r])&&++r0?1:e<0?-1:0}function Le(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])}function ze(e){return e>1?0:e<-1?Me:Math.acos(e)}function qe(e){return e>1?Re:e<-1?-Re:Math.asin(e)}function He(e){return((e=Math.exp(e))+1/e)/2}function Fe(e){return(e=Math.sin(e/2))*e}var Ue=Math.SQRT2;o.interpolateZoom=function(e,t){var n,r,i=e[0],o=e[1],a=e[2],s=t[0],l=t[1],u=t[2],c=s-i,h=l-o,f=c*c+h*h;if(f0&&(e=e.transition().duration(m)),e.call(x.event)}function E(){s&&s.domain(a.range().map((function(e){return(e-f.x)/f.k})).map(a.invert)),h&&h.domain(u.range().map((function(e){return(e-f.y)/f.k})).map(u.invert))}function P(e){g++||e({type:"zoomstart"})}function D(e){E(),e({type:"zoom",scale:f.k,translate:[f.x,f.y]})}function M(e){--g||(e({type:"zoomend"}),t=null)}function N(){var e=this,t=w.of(e,arguments),n=0,r=o.select(c(e)).on(y,(function(){n=1,C(o.mouse(e),i),D(t)})).on(b,(function(){r.on(y,null).on(b,null),a(n),M(t)})),i=k(o.mouse(e)),a=Se(e);Ns.call(e),P(t)}function O(){var e,t=this,n=w.of(t,arguments),r={},a=0,s=".zoom-"+o.event.changedTouches[0].identifier,l="touchmove"+s,u="touchend"+s,c=[],h=o.select(t),d=Se(t);function p(){var n=o.touches(t);return e=f.k,n.forEach((function(e){e.identifier in r&&(r[e.identifier]=k(e))})),n}function m(){var e=o.event.target;o.select(e).on(l,g).on(u,y),c.push(e);for(var n=o.event.changedTouches,s=0,h=n.length;s1){v=d[0];var b=d[1],_=v[0]-b[0],w=v[1]-b[1];a=_*_+w*w}}function g(){var s,l,u,c,h=o.touches(t);Ns.call(t);for(var f=0,d=h.length;f360?e-=360:e<0&&(e+=360),e<60?r+(i-r)*e/60:e<180?i:e<240?r+(i-r)*(240-e)/60:r}(e))}return e=isNaN(e)?0:(e%=360)<0?e+360:e,t=isNaN(t)||t<0?0:t>1?1:t,r=2*(n=n<0?0:n>1?1:n)-(i=n<=.5?n*(1+t):n+t-n*t),new ut(o(e+120),o(e),o(e-120))}function Ke(e,t,n){return this instanceof Ke?(this.h=+e,this.c=+t,void(this.l=+n)):arguments.length<2?e instanceof Ke?new Ke(e.h,e.c,e.l):function(e,t,n){return e>0?new Ke(Math.atan2(n,t)*Ie,Math.sqrt(t*t+n*n),e):new Ke(NaN,NaN,e)}(e instanceof Ze?e.l:(e=gt((e=o.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new Ke(e,t,n)}Xe.brighter=function(e){return e=Math.pow(.7,arguments.length?e:1),new Ye(this.h,this.s,this.l/e)},Xe.darker=function(e){return e=Math.pow(.7,arguments.length?e:1),new Ye(this.h,this.s,e*this.l)},Xe.rgb=function(){return Qe(this.h,this.s,this.l)},o.hcl=Ke;var Ge=Ke.prototype=new Ve;function Je(e,t,n){return isNaN(e)&&(e=0),isNaN(t)&&(t=0),new Ze(n,Math.cos(e*=je)*t,Math.sin(e)*t)}function Ze(e,t,n){return this instanceof Ze?(this.l=+e,this.a=+t,void(this.b=+n)):arguments.length<2?e instanceof Ze?new Ze(e.l,e.a,e.b):e instanceof Ke?Je(e.h,e.c,e.l):gt((e=ut(e)).r,e.g,e.b):new Ze(e,t,n)}Ge.brighter=function(e){return new Ke(this.h,this.c,Math.min(100,this.l+et*(arguments.length?e:1)))},Ge.darker=function(e){return new Ke(this.h,this.c,Math.max(0,this.l-et*(arguments.length?e:1)))},Ge.rgb=function(){return Je(this.h,this.c,this.l).rgb()},o.lab=Ze;var et=18,tt=.95047,nt=1,rt=1.08883,it=Ze.prototype=new Ve;function ot(e,t,n){var r=(e+16)/116,i=r+t/500,o=r-n/200;return new ut(lt(3.2404542*(i=at(i)*tt)-1.5371385*(r=at(r)*nt)-.4985314*(o=at(o)*rt)),lt(-.969266*i+1.8760108*r+.041556*o),lt(.0556434*i-.2040259*r+1.0572252*o))}function at(e){return e>.206893034?e*e*e:(e-4/29)/7.787037}function st(e){return e>.008856?Math.pow(e,1/3):7.787037*e+4/29}function lt(e){return Math.round(255*(e<=.00304?12.92*e:1.055*Math.pow(e,1/2.4)-.055))}function ut(e,t,n){return this instanceof ut?(this.r=~~e,this.g=~~t,void(this.b=~~n)):arguments.length<2?e instanceof ut?new ut(e.r,e.g,e.b):pt(""+e,ut,Qe):new ut(e,t,n)}function ct(e){return new ut(e>>16,e>>8&255,255&e)}function ht(e){return ct(e)+""}it.brighter=function(e){return new Ze(Math.min(100,this.l+et*(arguments.length?e:1)),this.a,this.b)},it.darker=function(e){return new Ze(Math.max(0,this.l-et*(arguments.length?e:1)),this.a,this.b)},it.rgb=function(){return ot(this.l,this.a,this.b)},o.rgb=ut;var ft=ut.prototype=new Ve;function dt(e){return e<16?"0"+Math.max(0,e).toString(16):Math.min(255,e).toString(16)}function pt(e,t,n){var r,i,o,a=0,s=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(e=e.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return n(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(yt(i[0]),yt(i[1]),yt(i[2]))}return(o=bt.get(e))?t(o.r,o.g,o.b):(null==e||"#"!==e.charAt(0)||isNaN(o=parseInt(e.slice(1),16))||(4===e.length?(a=(3840&o)>>4,a|=a>>4,s=240&o,s|=s>>4,l=15&o,l|=l<<4):7===e.length&&(a=(16711680&o)>>16,s=(65280&o)>>8,l=255&o)),t(a,s,l))}function mt(e,t,n){var r,i,o=Math.min(e/=255,t/=255,n/=255),a=Math.max(e,t,n),s=a-o,l=(a+o)/2;return s?(i=l<.5?s/(a+o):s/(2-a-o),r=e==a?(t-n)/s+(t0&&l<1?0:r),new Ye(r,i,l)}function gt(e,t,n){var r=st((.4124564*(e=vt(e))+.3575761*(t=vt(t))+.1804375*(n=vt(n)))/tt),i=st((.2126729*e+.7151522*t+.072175*n)/nt);return Ze(116*i-16,500*(r-i),200*(i-st((.0193339*e+.119192*t+.9503041*n)/rt)))}function vt(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function yt(e){var t=parseFloat(e);return"%"===e.charAt(e.length-1)?Math.round(2.55*t):t}ft.brighter=function(e){e=Math.pow(.7,arguments.length?e:1);var t=this.r,n=this.g,r=this.b,i=30;return t||n||r?(t&&t=200&&t<300||304===t){try{e=n.call(i,u)}catch(e){return void a.error.call(i,e)}a.load.call(i,e)}else a.error.call(i,u)}return this.XDomainRequest&&!("withCredentials"in u)&&/^(http(s)?:)?\/\//.test(e)&&(u=new XDomainRequest),"onload"in u?u.onload=u.onerror=h:u.onreadystatechange=function(){u.readyState>3&&h()},u.onprogress=function(e){var t=o.event;o.event=e;try{a.progress.call(i,u)}finally{o.event=t}},i.header=function(e,t){return e=(e+"").toLowerCase(),arguments.length<2?l[e]:(null==t?delete l[e]:l[e]=t+"",i)},i.mimeType=function(e){return arguments.length?(t=null==e?null:e+"",i):t},i.responseType=function(e){return arguments.length?(c=e,i):c},i.response=function(e){return n=e,i},["get","post"].forEach((function(e){i[e]=function(){return i.send.apply(i,[e].concat(s(arguments)))}})),i.send=function(n,r,o){if(2===arguments.length&&"function"==typeof r&&(o=r,r=null),u.open(n,e,!0),null==t||"accept"in l||(l.accept=t+",*/*"),u.setRequestHeader)for(var s in l)u.setRequestHeader(s,l[s]);return null!=t&&u.overrideMimeType&&u.overrideMimeType(t),null!=c&&(u.responseType=c),null!=o&&i.on("error",o).on("load",(function(e){o(null,e)})),a.beforesend.call(i,u),u.send(null==r?null:r),i},i.abort=function(){return u.abort(),i},o.rebind(i,a,"on"),null==r?i:i.get(function(e){return 1===e.length?function(t,n){e(null==t?n:null)}:e}(r))}bt.forEach((function(e,t){bt.set(e,ct(t))})),o.functor=_t,o.xhr=wt(I),o.dsv=function(e,t){var n=new RegExp('["'+e+"\n]"),r=e.charCodeAt(0);function i(e,n,r){arguments.length<3&&(r=n,n=null);var i=xt(e,t,null==n?o:a(n),r);return i.row=function(e){return arguments.length?i.response(null==(n=e)?o:a(e)):n},i}function o(e){return i.parse(e.responseText)}function a(e){return function(t){return i.parse(t.responseText,e)}}function s(t){return t.map(l).join(e)}function l(e){return n.test(e)?'"'+e.replace(/\"/g,'""')+'"':e}return i.parse=function(e,t){var n;return i.parseRows(e,(function(e,r){if(n)return n(e,r-1);var i=new Function("d","return {"+e.map((function(e,t){return JSON.stringify(e)+": d["+t+"]"})).join(",")+"}");n=t?function(e,n){return t(i(e),n)}:i}))},i.parseRows=function(e,t){var n,i,o={},a={},s=[],l=e.length,u=0,c=0;function h(){if(u>=l)return a;if(i)return i=!1,o;var t=u;if(34===e.charCodeAt(t)){for(var n=t;n++24?(isFinite(t)&&(clearTimeout(Tt),Tt=setTimeout(Dt,t)),Ct=0):(Ct=1,Et(Dt))}function Mt(){for(var e=Date.now(),t=kt;t;)e>=t.t&&t.c(e-t.t)&&(t.c=null),t=t.n;return e}function Nt(){for(var e,t=kt,n=1/0;t;)t.c?(t.t8?function(e){return e/n}:function(e){return e*n},symbol:e}}));function jt(e){var t=e.decimal,n=e.thousands,r=e.grouping,i=e.currency,a=r&&n?function(e,t){for(var i=e.length,o=[],a=0,s=r[0],l=0;i>0&&s>0&&(l+s+1>t&&(s=Math.max(1,t-l)),o.push(e.substring(i-=s,i+s)),!((l+=s+1)>t));)s=r[a=(a+1)%r.length];return o.reverse().join(n)}:I;return function(e){var n=It.exec(e),r=n[1]||" ",s=n[2]||">",l=n[3]||"-",u=n[4]||"",c=n[5],h=+n[6],f=n[7],d=n[8],p=n[9],m=1,g="",v="",y=!1,b=!0;switch(d&&(d=+d.substring(1)),(c||"0"===r&&"="===s)&&(c=r="0",s="="),p){case"n":f=!0,p="g";break;case"%":m=100,v="%",p="f";break;case"p":m=100,v="%",p="r";break;case"b":case"o":case"x":case"X":"#"===u&&(g="0"+p.toLowerCase());case"c":b=!1;case"d":y=!0,d=0;break;case"s":m=-1,p="r"}"$"===u&&(g=i[0],v=i[1]),"r"!=p||d||(p="g"),null!=d&&("g"==p?d=Math.max(1,Math.min(21,d)):"e"!=p&&"f"!=p||(d=Math.max(0,Math.min(20,d)))),p=At.get(p)||Lt;var _=c&&f;return function(e){var n=v;if(y&&e%1)return"";var i=e<0||0===e&&1/e<0?(e=-e,"-"):"-"===l?"":l;if(m<0){var u=o.formatPrefix(e,d);e=u.scale(e),n=u.symbol+v}else e*=m;var w,x,k=(e=p(e,d)).lastIndexOf(".");if(k<0){var S=b?e.lastIndexOf("e"):-1;S<0?(w=e,x=""):(w=e.substring(0,S),x=e.substring(S))}else w=e.substring(0,k),x=t+e.substring(k+1);!c&&f&&(w=a(w,1/0));var C=g.length+w.length+x.length+(_?0:i.length),T=C"===s?T+i+e:"^"===s?T.substring(0,C>>=1)+i+e+T.substring(C):i+(_?e:T+e))+n}}}o.formatPrefix=function(e,t){var n=0;return(e=+e)&&(e<0&&(e*=-1),t&&(e=o.round(e,Ot(e,t))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),Rt[8+n/3]};var It=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,At=o.map({b:function(e){return e.toString(2)},c:function(e){return String.fromCharCode(e)},o:function(e){return e.toString(8)},x:function(e){return e.toString(16)},X:function(e){return e.toString(16).toUpperCase()},g:function(e,t){return e.toPrecision(t)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},r:function(e,t){return(e=o.round(e,Ot(e,t))).toFixed(Math.max(0,Math.min(20,Ot(e*(1+1e-15),t))))}});function Lt(e){return e+""}var zt=o.time={},qt=Date;function Ht(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}Ht.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){Ft.setUTCDate.apply(this._,arguments)},setDay:function(){Ft.setUTCDay.apply(this._,arguments)},setFullYear:function(){Ft.setUTCFullYear.apply(this._,arguments)},setHours:function(){Ft.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){Ft.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){Ft.setUTCMinutes.apply(this._,arguments)},setMonth:function(){Ft.setUTCMonth.apply(this._,arguments)},setSeconds:function(){Ft.setUTCSeconds.apply(this._,arguments)},setTime:function(){Ft.setTime.apply(this._,arguments)}};var Ft=Date.prototype;function Ut(e,t,n){function r(t){var n=e(t),r=o(n,1);return t-n1)for(;a=u)return-1;if(37===(i=t.charCodeAt(s++))){if(a=t.charAt(s++),!(o=x[a in $t?t.charAt(s++):a])||(r=o(e,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}c.utc=function(e){var t=c(e);function n(e){try{var n=new(qt=Ht);return n._=e,t(n)}finally{qt=Date}}return n.parse=function(e){try{qt=Ht;var n=t.parse(e);return n&&n._}finally{qt=Date}},n.toString=t.toString,n},c.multi=c.utc.multi=dn;var f=o.map(),d=Qt(a),p=Kt(a),m=Qt(s),g=Kt(s),v=Qt(l),y=Kt(l),b=Qt(u),_=Kt(u);i.forEach((function(e,t){f.set(e.toLowerCase(),t)}));var w={a:function(e){return s[e.getDay()]},A:function(e){return a[e.getDay()]},b:function(e){return u[e.getMonth()]},B:function(e){return l[e.getMonth()]},c:c(t),d:function(e,t){return Xt(e.getDate(),t,2)},e:function(e,t){return Xt(e.getDate(),t,2)},H:function(e,t){return Xt(e.getHours(),t,2)},I:function(e,t){return Xt(e.getHours()%12||12,t,2)},j:function(e,t){return Xt(1+zt.dayOfYear(e),t,3)},L:function(e,t){return Xt(e.getMilliseconds(),t,3)},m:function(e,t){return Xt(e.getMonth()+1,t,2)},M:function(e,t){return Xt(e.getMinutes(),t,2)},p:function(e){return i[+(e.getHours()>=12)]},S:function(e,t){return Xt(e.getSeconds(),t,2)},U:function(e,t){return Xt(zt.sundayOfYear(e),t,2)},w:function(e){return e.getDay()},W:function(e,t){return Xt(zt.mondayOfYear(e),t,2)},x:c(n),X:c(r),y:function(e,t){return Xt(e.getFullYear()%100,t,2)},Y:function(e,t){return Xt(e.getFullYear()%1e4,t,4)},Z:hn,"%":function(){return"%"}},x={a:function(e,t,n){m.lastIndex=0;var r=m.exec(t.slice(n));return r?(e.w=g.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(e,t,n){d.lastIndex=0;var r=d.exec(t.slice(n));return r?(e.w=p.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(e,t,n){b.lastIndex=0;var r=b.exec(t.slice(n));return r?(e.m=_.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(e,t,n){v.lastIndex=0;var r=v.exec(t.slice(n));return r?(e.m=y.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(e,t,n){return h(e,w.c.toString(),t,n)},d:on,e:on,H:sn,I:sn,j:an,L:cn,m:rn,M:ln,p:function(e,t,n){var r=f.get(t.slice(n,n+=2).toLowerCase());return null==r?-1:(e.p=r,n)},S:un,U:Jt,w:Gt,W:Zt,x:function(e,t,n){return h(e,w.x.toString(),t,n)},X:function(e,t,n){return h(e,w.X.toString(),t,n)},y:tn,Y:en,Z:nn,"%":fn};return c}zt.year=Ut((function(e){return(e=zt.day(e)).setMonth(0,1),e}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e){return e.getFullYear()})),zt.years=zt.year.range,zt.years.utc=zt.year.utc.range,zt.day=Ut((function(e){var t=new qt(2e3,0);return t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),t}),(function(e,t){e.setDate(e.getDate()+t)}),(function(e){return e.getDate()-1})),zt.days=zt.day.range,zt.days.utc=zt.day.utc.range,zt.dayOfYear=function(e){var t=zt.year(e);return Math.floor((e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach((function(e,t){t=7-t;var n=zt[e]=Ut((function(e){return(e=zt.day(e)).setDate(e.getDate()-(e.getDay()+t)%7),e}),(function(e,t){e.setDate(e.getDate()+7*Math.floor(t))}),(function(e){var n=zt.year(e).getDay();return Math.floor((zt.dayOfYear(e)+(n+t)%7)/7)-(n!==t)}));zt[e+"s"]=n.range,zt[e+"s"].utc=n.utc.range,zt[e+"OfYear"]=function(e){var n=zt.year(e).getDay();return Math.floor((zt.dayOfYear(e)+(n+t)%7)/7)}})),zt.week=zt.sunday,zt.weeks=zt.sunday.range,zt.weeks.utc=zt.sunday.utc.range,zt.weekOfYear=zt.sundayOfYear;var $t={"-":"",_:" ",0:"0"},Vt=/^\s*\d+/,Yt=/^%/;function Xt(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o68?1900:2e3)}(+r[0]),n+r[0].length):-1}function nn(e,t,n){return/^[+-]\d{4}$/.test(t=t.slice(n,n+5))?(e.Z=-t,n+5):-1}function rn(e,t,n){Vt.lastIndex=0;var r=Vt.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function on(e,t,n){Vt.lastIndex=0;var r=Vt.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function an(e,t,n){Vt.lastIndex=0;var r=Vt.exec(t.slice(n,n+3));return r?(e.j=+r[0],n+r[0].length):-1}function sn(e,t,n){Vt.lastIndex=0;var r=Vt.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function ln(e,t,n){Vt.lastIndex=0;var r=Vt.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function un(e,t,n){Vt.lastIndex=0;var r=Vt.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function cn(e,t,n){Vt.lastIndex=0;var r=Vt.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function hn(e){var t=e.getTimezoneOffset(),n=t>0?"-":"+",r=x(t)/60|0,i=x(t)%60;return n+Xt(r,"0",2)+Xt(i,"0",2)}function fn(e,t,n){Yt.lastIndex=0;var r=Yt.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function dn(e){for(var t=e.length,n=-1;++n=0?1:-1,s=a*o,l=Math.cos(t),u=Math.sin(t),c=i*u,h=r*l+c*Math.cos(s),f=c*a*Math.sin(s);In.add(Math.atan2(f,h)),n=e,r=l,i=u}An.point=function(a,s){An.point=o,n=(e=a)*je,r=Math.cos(s=(t=s)*je/2+Me/4),i=Math.sin(s)},An.lineEnd=function(){o(e,t)}}function zn(e){var t=e[0],n=e[1],r=Math.cos(n);return[r*Math.cos(t),r*Math.sin(t),Math.sin(n)]}function qn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Hn(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function Fn(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function Un(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function Wn(e){var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}function Bn(e){return[Math.atan2(e[1],e[0]),qe(e[2])]}function $n(e,t){return x(e[0]-t[0])Pe?r=90:u<-Pe&&(t=-90),h[0]=e,h[1]=n}};function d(i,o){c.push(h=[e=i,n=i]),or&&(r=o)}function p(o,a){var s=zn([o*je,a*je]);if(l){var u=Hn(l,s),c=Hn([u[1],-u[0],0],u);Wn(c),c=Bn(c);var h=o-i,f=h>0?1:-1,p=c[0]*Ie*f,m=x(h)>180;if(m^(f*ir&&(r=g);else if(m^(f*i<(p=(p+360)%360-180)&&pr&&(r=a);m?o_(e,n)&&(n=o):_(o,n)>_(e,n)&&(e=o):n>=e?(on&&(n=o)):o>i?_(e,o)>_(e,n)&&(n=o):_(o,n)>_(e,n)&&(e=o)}else d(o,a);l=s,i=o}function m(){f.point=p}function g(){h[0]=e,h[1]=n,f.point=d,l=null}function v(e,t){if(l){var n=e-i;u+=x(n)>180?n+(n>0?360:-360):n}else a=e,s=t;An.point(e,t),p(e,t)}function y(){An.lineStart()}function b(){v(a,s),An.lineEnd(),x(u)>Pe&&(e=-(n=180)),h[0]=e,h[1]=n,l=null}function _(e,t){return(t-=e)<0?t+360:t}function w(e,t){return e[0]-t[0]}function k(e,t){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e_(m[0],m[1])&&(m[1]=d[1]),_(d[0],m[1])>_(m[0],m[1])&&(m[0]=d[0])):s.push(m=d);for(var l,u,d,p=-1/0,m=(a=0,s[u=s.length-1]);a<=u;m=d,++a)d=s[a],(l=_(m[1],d[0]))>p&&(p=l,e=d[0],n=m[1])}return c=h=null,e===1/0||t===1/0?[[NaN,NaN],[NaN,NaN]]:[[e,t],[n,r]]}}(),o.geo.centroid=function(e){Sn=Cn=Tn=En=Pn=Dn=Mn=Nn=On=Rn=jn=0,o.geo.stream(e,Vn);var t=On,n=Rn,r=jn,i=t*t+n*n+r*r;return i=0;--s)i.point((h=c[s])[0],h[1]);else r(d.x,d.p.x,-1,i);d=d.p}c=(d=d.o).z,p=!p}while(!d.v);i.lineEnd()}}}function tr(e){if(t=e.length){for(var t,n,r=0,i=e[0];++r=0?1:-1,k=x*w,S=k>Me,C=p*b;if(In.add(Math.atan2(C*x*Math.sin(k),m*_+C*Math.cos(k))),o+=S?w+x*Ne:w,S^f>=n^v>=n){var T=Hn(zn(h),zn(e));Wn(T);var E=Hn(i,T);Wn(E);var P=(S^w>=0?-1:1)*qe(E[2]);(r>P||r===P&&(T[0]||T[1]))&&(a+=S^w>=0?1:-1)}if(!g++)break;f=v,p=b,m=_,h=e}}return(o<-Pe||o0){for(b||(a.polygonStart(),b=!0),a.lineStart();++o1&&2&t&&n.push(n.pop().concat(n.shift())),s.push(n.filter(ir))}return c}}function ir(e){return e.length>1}function or(){var e,t=[];return{lineStart:function(){t.push(e=[])},point:function(t,n){e.push([t,n])},lineEnd:q,buffer:function(){var n=t;return t=[],e=null,n},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function ar(e,t){return((e=e.x)[0]<0?e[1]-Re-Pe:Re-e[1])-((t=t.x)[0]<0?t[1]-Re-Pe:Re-t[1])}var sr=rr(Zn,(function(e){var t,n=NaN,r=NaN,i=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(o,a){var s=o>0?Me:-Me,l=x(o-n);x(l-Me)0?Re:-Re),e.point(i,r),e.lineEnd(),e.lineStart(),e.point(s,r),e.point(o,r),t=0):i!==s&&l>=Me&&(x(n-i)Pe?Math.atan((Math.sin(t)*(o=Math.cos(r))*Math.sin(n)-Math.sin(r)*(i=Math.cos(t))*Math.sin(e))/(i*o*a)):(t+r)/2}(n,r,o,a),e.point(i,r),e.lineEnd(),e.lineStart(),e.point(s,r),t=0),e.point(n=o,r=a),i=s},lineEnd:function(){e.lineEnd(),n=r=NaN},clean:function(){return 2-t}}}),(function(e,t,n,r){var i;if(null==e)i=n*Re,r.point(-Me,i),r.point(0,i),r.point(Me,i),r.point(Me,0),r.point(Me,-i),r.point(0,-i),r.point(-Me,-i),r.point(-Me,0),r.point(-Me,i);else if(x(e[0]-t[0])>Pe){var o=e[0]0)){if(o/=f,f<0){if(o0){if(o>h)return;o>c&&(c=o)}if(o=n-l,f||!(o<0)){if(o/=f,f<0){if(o>h)return;o>c&&(c=o)}else if(f>0){if(o0)){if(o/=d,d<0){if(o0){if(o>h)return;o>c&&(c=o)}if(o=r-u,d||!(o<0)){if(o/=d,d<0){if(o>h)return;o>c&&(c=o)}else if(d>0){if(o0&&(i.a={x:l+c*f,y:u+c*d}),h<1&&(i.b={x:l+h*f,y:u+h*d}),i}}}}}}var ur=1e9;function cr(e,t,n,r){return function(l){var u,c,h,f,d,p,m,g,v,y,b,_=l,w=or(),x=lr(e,t,n,r),k={point:T,lineStart:function(){k.point=E,c&&c.push(h=[]),y=!0,v=!1,m=g=NaN},lineEnd:function(){u&&(E(f,d),p&&v&&w.rejoin(),u.push(w.buffer())),k.point=T,v&&l.lineEnd()},polygonStart:function(){l=w,u=[],c=[],b=!0},polygonEnd:function(){l=_,u=o.merge(u);var t=function(e){for(var t=0,n=c.length,r=e[1],i=0;ir&&Le(u,o,e)>0&&++t:o[1]<=r&&Le(u,o,e)<0&&--t,u=o;return 0!==t}([e,r]),n=b&&t,i=u.length;(n||i)&&(l.polygonStart(),n&&(l.lineStart(),S(null,null,1,l),l.lineEnd()),i&&er(u,a,t,S,l),l.polygonEnd()),u=c=h=null}};function S(o,a,l,u){var c=0,h=0;if(null==o||(c=i(o,l))!==(h=i(a,l))||s(o,a)<0^l>0)do{u.point(0===c||3===c?e:n,c>1?r:t)}while((c=(c+l+4)%4)!==h);else u.point(a[0],a[1])}function C(i,o){return e<=i&&i<=n&&t<=o&&o<=r}function T(e,t){C(e,t)&&l.point(e,t)}function E(e,t){var n=C(e=Math.max(-ur,Math.min(ur,e)),t=Math.max(-ur,Math.min(ur,t)));if(c&&h.push([e,t]),y)f=e,d=t,p=n,y=!1,n&&(l.lineStart(),l.point(e,t));else if(n&&v)l.point(e,t);else{var r={a:{x:m,y:g},b:{x:e,y:t}};x(r)?(v||(l.lineStart(),l.point(r.a.x,r.a.y)),l.point(r.b.x,r.b.y),n||l.lineEnd(),b=!1):n&&(l.lineStart(),l.point(e,t),b=!1)}m=e,g=t,v=n}return k};function i(r,i){return x(r[0]-e)0?0:3:x(r[0]-n)0?2:1:x(r[1]-t)0?1:0:i>0?3:2}function a(e,t){return s(e.x,t.x)}function s(e,t){var n=i(e,1),r=i(t,1);return n!==r?n-r:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}}function hr(e){var t=0,n=Me/3,r=Ir(e),i=r(t,n);return i.parallels=function(e){return arguments.length?r(t=e[0]*Me/180,n=e[1]*Me/180):[t/Me*180,n/Me*180]},i}function fr(e,t){var n=Math.sin(e),r=(n+Math.sin(t))/2,i=1+n*(2*r-n),o=Math.sqrt(i)/r;function a(e,t){var n=Math.sqrt(i-2*r*Math.sin(t))/r;return[n*Math.sin(e*=r),o-n*Math.cos(e)]}return a.invert=function(e,t){var n=o-t;return[Math.atan2(e,n)/r,qe((i-(e*e+n*n)*r*r)/(2*r))]},a}o.geo.clipExtent=function(){var e,t,n,r,i,o,a={stream:function(e){return i&&(i.valid=!1),(i=o(e)).valid=!0,i},extent:function(s){return arguments.length?(o=cr(e=+s[0][0],t=+s[0][1],n=+s[1][0],r=+s[1][1]),i&&(i.valid=!1,i=null),a):[[e,t],[n,r]]}};return a.extent([[0,0],[960,500]])},(o.geo.conicEqualArea=function(){return hr(fr)}).raw=fr,o.geo.albers=function(){return o.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},o.geo.albersUsa=function(){var e,t,n,r,i=o.geo.albers(),a=o.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=o.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){e=[t,n]}};function u(i){var o=i[0],a=i[1];return e=null,t(o,a),e||(n(o,a),e)||r(o,a),e}return u.invert=function(e){var t=i.scale(),n=i.translate(),r=(e[0]-n[0])/t,o=(e[1]-n[1])/t;return(o>=.12&&o<.234&&r>=-.425&&r<-.214?a:o>=.166&&o<.234&&r>=-.214&&r<-.115?s:i).invert(e)},u.stream=function(e){var t=i.stream(e),n=a.stream(e),r=s.stream(e);return{point:function(e,i){t.point(e,i),n.point(e,i),r.point(e,i)},sphere:function(){t.sphere(),n.sphere(),r.sphere()},lineStart:function(){t.lineStart(),n.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),n.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),n.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),n.polygonEnd(),r.polygonEnd()}}},u.precision=function(e){return arguments.length?(i.precision(e),a.precision(e),s.precision(e),u):i.precision()},u.scale=function(e){return arguments.length?(i.scale(e),a.scale(.35*e),s.scale(e),u.translate(i.translate())):i.scale()},u.translate=function(e){if(!arguments.length)return i.translate();var o=i.scale(),c=+e[0],h=+e[1];return t=i.translate(e).clipExtent([[c-.455*o,h-.238*o],[c+.455*o,h+.238*o]]).stream(l).point,n=a.translate([c-.307*o,h+.201*o]).clipExtent([[c-.425*o+Pe,h+.12*o+Pe],[c-.214*o-Pe,h+.234*o-Pe]]).stream(l).point,r=s.translate([c-.205*o,h+.212*o]).clipExtent([[c-.214*o+Pe,h+.166*o+Pe],[c-.115*o-Pe,h+.234*o-Pe]]).stream(l).point,u},u.scale(1070)};var dr,pr,mr,gr,vr,yr,br={point:q,lineStart:q,lineEnd:q,polygonStart:function(){pr=0,br.lineStart=_r},polygonEnd:function(){br.lineStart=br.lineEnd=br.point=q,dr+=x(pr/2)}};function _r(){var e,t,n,r;function i(e,t){pr+=r*e-n*t,n=e,r=t}br.point=function(o,a){br.point=i,e=n=o,t=r=a},br.lineEnd=function(){i(e,t)}}var wr={point:function(e,t){evr&&(vr=e),tyr&&(yr=t)},lineStart:q,lineEnd:q,polygonStart:q,polygonEnd:q};function xr(){var e=kr(4.5),t=[],n={point:r,lineStart:function(){n.point=i},lineEnd:a,polygonStart:function(){n.lineEnd=s},polygonEnd:function(){n.lineEnd=a,n.point=r},pointRadius:function(t){return e=kr(t),n},result:function(){if(t.length){var e=t.join("");return t=[],e}}};function r(n,r){t.push("M",n,",",r,e)}function i(e,r){t.push("M",e,",",r),n.point=o}function o(e,n){t.push("L",e,",",n)}function a(){n.point=r}function s(){t.push("Z")}return n}function kr(e){return"m0,"+e+"a"+e+","+e+" 0 1,1 0,"+-2*e+"a"+e+","+e+" 0 1,1 0,"+2*e+"z"}var Sr,Cr={point:Tr,lineStart:Er,lineEnd:Pr,polygonStart:function(){Cr.lineStart=Dr},polygonEnd:function(){Cr.point=Tr,Cr.lineStart=Er,Cr.lineEnd=Pr}};function Tr(e,t){Tn+=e,En+=t,++Pn}function Er(){var e,t;function n(n,r){var i=n-e,o=r-t,a=Math.sqrt(i*i+o*o);Dn+=a*(e+n)/2,Mn+=a*(t+r)/2,Nn+=a,Tr(e=n,t=r)}Cr.point=function(r,i){Cr.point=n,Tr(e=r,t=i)}}function Pr(){Cr.point=Tr}function Dr(){var e,t,n,r;function i(e,t){var i=e-n,o=t-r,a=Math.sqrt(i*i+o*o);Dn+=a*(n+e)/2,Mn+=a*(r+t)/2,Nn+=a,On+=(a=r*e-n*t)*(n+e),Rn+=a*(r+t),jn+=3*a,Tr(n=e,r=t)}Cr.point=function(o,a){Cr.point=i,Tr(e=n=o,t=r=a)},Cr.lineEnd=function(){i(e,t)}}function Mr(e){var t=4.5,n={point:r,lineStart:function(){n.point=i},lineEnd:a,polygonStart:function(){n.lineEnd=s},polygonEnd:function(){n.lineEnd=a,n.point=r},pointRadius:function(e){return t=e,n},result:q};function r(n,r){e.moveTo(n+t,r),e.arc(n,r,t,0,Ne)}function i(t,r){e.moveTo(t,r),n.point=o}function o(t,n){e.lineTo(t,n)}function a(){n.point=r}function s(){e.closePath()}return n}function Nr(e){var t=.5,n=Math.cos(30*je),r=16;function i(e){return(r?a:o)(e)}function o(t){return Rr(t,(function(n,r){n=e(n,r),t.point(n[0],n[1])}))}function a(t){var n,i,o,a,l,u,c,h,f,d,p,m,g={point:v,lineStart:y,lineEnd:_,polygonStart:function(){t.polygonStart(),g.lineStart=w},polygonEnd:function(){t.polygonEnd(),g.lineStart=y}};function v(n,r){n=e(n,r),t.point(n[0],n[1])}function y(){h=NaN,g.point=b,t.lineStart()}function b(n,i){var o=zn([n,i]),a=e(n,i);s(h,f,c,d,p,m,h=a[0],f=a[1],c=n,d=o[0],p=o[1],m=o[2],r,t),t.point(h,f)}function _(){g.point=v,t.lineEnd()}function w(){y(),g.point=x,g.lineEnd=k}function x(e,t){b(n=e,t),i=h,o=f,a=d,l=p,u=m,g.point=b}function k(){s(h,f,c,d,p,m,i,o,n,a,l,u,r,t),g.lineEnd=_,_()}return g}function s(r,i,o,a,l,u,c,h,f,d,p,m,g,v){var y=c-r,b=h-i,_=y*y+b*b;if(_>4*t&&g--){var w=a+d,k=l+p,S=u+m,C=Math.sqrt(w*w+k*k+S*S),T=Math.asin(S/=C),E=x(x(S)-1)t||x((y*N+b*O)/_-.5)>.3||a*d+l*p+u*m0&&16,i):Math.sqrt(t)},i}function Or(e){this.stream=e}function Rr(e,t){return{point:t,sphere:function(){e.sphere()},lineStart:function(){e.lineStart()},lineEnd:function(){e.lineEnd()},polygonStart:function(){e.polygonStart()},polygonEnd:function(){e.polygonEnd()}}}function jr(e){return Ir((function(){return e}))()}function Ir(e){var t,n,r,i,a,s,l=Nr((function(e,n){return[(e=t(e,n))[0]*u+i,a-e[1]*u]})),u=150,c=480,h=250,f=0,d=0,p=0,m=0,g=0,v=sr,y=I,b=null,_=null;function w(e){return[(e=r(e[0]*je,e[1]*je))[0]*u+i,a-e[1]*u]}function k(e){return(e=r.invert((e[0]-i)/u,(a-e[1])/u))&&[e[0]*Ie,e[1]*Ie]}function S(){r=Jn(n=qr(p,m,g),t);var e=t(f,d);return i=c-e[0]*u,a=h+e[1]*u,C()}function C(){return s&&(s.valid=!1,s=null),w}return w.stream=function(e){return s&&(s.valid=!1),(s=Ar(v(n,l(y(e))))).valid=!0,s},w.clipAngle=function(e){return arguments.length?(v=null==e?(b=e,sr):function(e){var t=Math.cos(e),n=t>0,r=x(t)>Pe;return rr(i,(function(e){var t,s,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(h,f){var d,p=[h,f],m=i(h,f),g=n?m?0:a(h,f):m?a(h+(h<0?Me:-Me),f):0;if(!t&&(u=l=m)&&e.lineStart(),m!==l&&(d=o(t,p),($n(t,d)||$n(p,d))&&(p[0]+=Pe,p[1]+=Pe,m=i(p[0],p[1]))),m!==l)c=0,m?(e.lineStart(),d=o(p,t),e.point(d[0],d[1])):(d=o(t,p),e.point(d[0],d[1]),e.lineEnd()),t=d;else if(r&&t&&n^m){var v;g&s||!(v=o(p,t,!0))||(c=0,n?(e.lineStart(),e.point(v[0][0],v[0][1]),e.point(v[1][0],v[1][1]),e.lineEnd()):(e.point(v[1][0],v[1][1]),e.lineEnd(),e.lineStart(),e.point(v[0][0],v[0][1])))}!m||t&&$n(t,p)||e.point(p[0],p[1]),t=p,l=m,s=g},lineEnd:function(){l&&e.lineEnd(),t=null},clean:function(){return c|(u&&l)<<1}}}),Wr(e,6*je),n?[0,-e]:[-Me,e-Me]);function i(e,n){return Math.cos(e)*Math.cos(n)>t}function o(e,n,r){var i=[1,0,0],o=Hn(zn(e),zn(n)),a=qn(o,o),s=o[0],l=a-s*s;if(!l)return!r&&e;var u=t*a/l,c=-t*s/l,h=Hn(i,o),f=Un(i,u);Fn(f,Un(o,c));var d=h,p=qn(f,d),m=qn(d,d),g=p*p-m*(qn(f,f)-1);if(!(g<0)){var v=Math.sqrt(g),y=Un(d,(-p-v)/m);if(Fn(y,f),y=Bn(y),!r)return y;var b,_=e[0],w=n[0],k=e[1],S=n[1];w<_&&(b=_,_=w,w=b);var C=w-_,T=x(C-Me)0^y[1]<(x(y[0]-_)Me^(_<=y[0]&&y[0]<=w)){var E=Un(d,(-p+v)/m);return Fn(E,f),[y,Bn(E)]}}}function a(t,r){var i=n?e:Me-e,o=0;return t<-i?o|=1:t>i&&(o|=2),r<-i?o|=4:r>i&&(o|=8),o}}((b=+e)*je),C()):b},w.clipExtent=function(e){return arguments.length?(_=e,y=e?cr(e[0][0],e[0][1],e[1][0],e[1][1]):I,C()):_},w.scale=function(e){return arguments.length?(u=+e,S()):u},w.translate=function(e){return arguments.length?(c=+e[0],h=+e[1],S()):[c,h]},w.center=function(e){return arguments.length?(f=e[0]%360*je,d=e[1]%360*je,S()):[f*Ie,d*Ie]},w.rotate=function(e){return arguments.length?(p=e[0]%360*je,m=e[1]%360*je,g=e.length>2?e[2]%360*je:0,S()):[p*Ie,m*Ie,g*Ie]},o.rebind(w,l,"precision"),function(){return t=e.apply(this,arguments),w.invert=t.invert&&k,S()}}function Ar(e){return Rr(e,(function(t,n){e.point(t*je,n*je)}))}function Lr(e,t){return[e,t]}function zr(e,t){return[e>Me?e-Ne:e<-Me?e+Ne:e,t]}function qr(e,t,n){return e?t||n?Jn(Fr(e),Ur(t,n)):Fr(e):t||n?Ur(t,n):zr}function Hr(e){return function(t,n){return[(t+=e)>Me?t-Ne:t<-Me?t+Ne:t,n]}}function Fr(e){var t=Hr(e);return t.invert=Hr(-e),t}function Ur(e,t){var n=Math.cos(e),r=Math.sin(e),i=Math.cos(t),o=Math.sin(t);function a(e,t){var a=Math.cos(t),s=Math.cos(e)*a,l=Math.sin(e)*a,u=Math.sin(t),c=u*n+s*r;return[Math.atan2(l*i-c*o,s*n-u*r),qe(c*i+l*o)]}return a.invert=function(e,t){var a=Math.cos(t),s=Math.cos(e)*a,l=Math.sin(e)*a,u=Math.sin(t),c=u*i-l*o;return[Math.atan2(l*i+u*o,s*n+c*r),qe(c*n-s*r)]},a}function Wr(e,t){var n=Math.cos(e),r=Math.sin(e);return function(i,o,a,s){var l=a*t;null!=i?(i=Br(n,i),o=Br(n,o),(a>0?io)&&(i+=a*Ne)):(i=e+a*Ne,o=e-.5*l);for(var u,c=i;a>0?c>o:c2?e[2]*je:0),t.invert=function(t){return(t=e.invert(t[0]*je,t[1]*je))[0]*=Ie,t[1]*=Ie,t},t},zr.invert=Lr,o.geo.circle=function(){var e,t,n=[0,0],r=6;function i(){var e="function"==typeof n?n.apply(this,arguments):n,r=qr(-e[0]*je,-e[1]*je,0).invert,i=[];return t(null,null,1,{point:function(e,t){i.push(e=r(e,t)),e[0]*=Ie,e[1]*=Ie}}),{type:"Polygon",coordinates:[i]}}return i.origin=function(e){return arguments.length?(n=e,i):n},i.angle=function(n){return arguments.length?(t=Wr((e=+n)*je,r*je),i):e},i.precision=function(n){return arguments.length?(t=Wr(e*je,(r=+n)*je),i):r},i.angle(90)},o.geo.distance=function(e,t){var n,r=(t[0]-e[0])*je,i=e[1]*je,o=t[1]*je,a=Math.sin(r),s=Math.cos(r),l=Math.sin(i),u=Math.cos(i),c=Math.sin(o),h=Math.cos(o);return Math.atan2(Math.sqrt((n=h*a)*n+(n=u*c-l*h*s)*n),l*c+u*h*s)},o.geo.graticule=function(){var e,t,n,r,i,a,s,l,u,c,h,f,d=10,p=d,m=90,g=360,v=2.5;function y(){return{type:"MultiLineString",coordinates:b()}}function b(){return o.range(Math.ceil(r/m)*m,n,m).map(h).concat(o.range(Math.ceil(l/g)*g,s,g).map(f)).concat(o.range(Math.ceil(t/d)*d,e,d).filter((function(e){return x(e%m)>Pe})).map(u)).concat(o.range(Math.ceil(a/p)*p,i,p).filter((function(e){return x(e%g)>Pe})).map(c))}return y.lines=function(){return b().map((function(e){return{type:"LineString",coordinates:e}}))},y.outline=function(){return{type:"Polygon",coordinates:[h(r).concat(f(s).slice(1),h(n).reverse().slice(1),f(l).reverse().slice(1))]}},y.extent=function(e){return arguments.length?y.majorExtent(e).minorExtent(e):y.minorExtent()},y.majorExtent=function(e){return arguments.length?(r=+e[0][0],n=+e[1][0],l=+e[0][1],s=+e[1][1],r>n&&(e=r,r=n,n=e),l>s&&(e=l,l=s,s=e),y.precision(v)):[[r,l],[n,s]]},y.minorExtent=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],a=+n[0][1],i=+n[1][1],t>e&&(n=t,t=e,e=n),a>i&&(n=a,a=i,i=n),y.precision(v)):[[t,a],[e,i]]},y.step=function(e){return arguments.length?y.majorStep(e).minorStep(e):y.minorStep()},y.majorStep=function(e){return arguments.length?(m=+e[0],g=+e[1],y):[m,g]},y.minorStep=function(e){return arguments.length?(d=+e[0],p=+e[1],y):[d,p]},y.precision=function(o){return arguments.length?(v=+o,u=$r(a,i,90),c=Vr(t,e,v),h=$r(l,s,90),f=Vr(r,n,v),y):v},y.majorExtent([[-180,-90+Pe],[180,90-Pe]]).minorExtent([[-180,-80-Pe],[180,80+Pe]])},o.geo.greatArc=function(){var e,t,n=Yr,r=Xr;function i(){return{type:"LineString",coordinates:[e||n.apply(this,arguments),t||r.apply(this,arguments)]}}return i.distance=function(){return o.geo.distance(e||n.apply(this,arguments),t||r.apply(this,arguments))},i.source=function(t){return arguments.length?(n=t,e="function"==typeof t?null:t,i):n},i.target=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,i):r},i.precision=function(){return arguments.length?i:0},i},o.geo.interpolate=function(e,t){return function(e,t,n,r){var i=Math.cos(t),o=Math.sin(t),a=Math.cos(r),s=Math.sin(r),l=i*Math.cos(e),u=i*Math.sin(e),c=a*Math.cos(n),h=a*Math.sin(n),f=2*Math.asin(Math.sqrt(Fe(r-t)+i*a*Fe(n-e))),d=1/Math.sin(f),p=f?function(e){var t=Math.sin(e*=f)*d,n=Math.sin(f-e)*d,r=n*l+t*c,i=n*u+t*h,a=n*o+t*s;return[Math.atan2(i,r)*Ie,Math.atan2(a,Math.sqrt(r*r+i*i))*Ie]}:function(){return[e*Ie,t*Ie]};return p.distance=f,p}(e[0]*je,e[1]*je,t[0]*je,t[1]*je)},o.geo.length=function(e){return Sr=0,o.geo.stream(e,Qr),Sr};var Qr={sphere:q,point:q,lineStart:function(){var e,t,n;function r(r,i){var o=Math.sin(i*=je),a=Math.cos(i),s=x((r*=je)-e),l=Math.cos(s);Sr+=Math.atan2(Math.sqrt((s=a*Math.sin(s))*s+(s=n*o-t*a*l)*s),t*o+n*a*l),e=r,t=o,n=a}Qr.point=function(i,o){e=i*je,t=Math.sin(o*=je),n=Math.cos(o),Qr.point=r},Qr.lineEnd=function(){Qr.point=Qr.lineEnd=q}},lineEnd:q,polygonStart:q,polygonEnd:q};function Kr(e,t){function n(t,n){var r=Math.cos(t),i=Math.cos(n),o=e(r*i);return[o*i*Math.sin(t),o*Math.sin(n)]}return n.invert=function(e,n){var r=Math.sqrt(e*e+n*n),i=t(r),o=Math.sin(i),a=Math.cos(i);return[Math.atan2(e*o,r*a),Math.asin(r&&n*o/r)]},n}var Gr=Kr((function(e){return Math.sqrt(2/(1+e))}),(function(e){return 2*Math.asin(e/2)}));(o.geo.azimuthalEqualArea=function(){return jr(Gr)}).raw=Gr;var Jr=Kr((function(e){var t=Math.acos(e);return t&&t/Math.sin(t)}),I);function Zr(e,t){var n=Math.cos(e),r=function(e){return Math.tan(Me/4+e/2)},i=e===t?Math.sin(e):Math.log(n/Math.cos(t))/Math.log(r(t)/r(e)),o=n*Math.pow(r(e),i)/i;if(!i)return ni;function a(e,t){o>0?t<-Re+Pe&&(t=-Re+Pe):t>Re-Pe&&(t=Re-Pe);var n=o/Math.pow(r(t),i);return[n*Math.sin(i*e),o-n*Math.cos(i*e)]}return a.invert=function(e,t){var n=o-t,r=Ae(i)*Math.sqrt(e*e+n*n);return[Math.atan2(e,n)/i,2*Math.atan(Math.pow(o/r,1/i))-Re]},a}function ei(e,t){var n=Math.cos(e),r=e===t?Math.sin(e):(n-Math.cos(t))/(t-e),i=n/r+e;if(x(r)1&&Le(e[n[r-2]],e[n[r-1]],e[i])<=0;)--r;n[r++]=i}return n.slice(0,r)}function ci(e,t){return e[0]-t[0]||e[1]-t[1]}(o.geo.stereographic=function(){return jr(oi)}).raw=oi,ai.invert=function(e,t){return[-t,2*Math.atan(Math.exp(e))-Re]},(o.geo.transverseMercator=function(){var e=ri(ai),t=e.center,n=e.rotate;return e.center=function(e){return e?t([-e[1],e[0]]):[(e=t())[1],-e[0]]},e.rotate=function(e){return e?n([e[0],e[1],e.length>2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90])}).raw=ai,o.geom={},o.geom.hull=function(e){var t=si,n=li;if(arguments.length)return r(e);function r(e){if(e.length<3)return[];var r,i=_t(t),o=_t(n),a=e.length,s=[],l=[];for(r=0;r=0;--r)d.push(e[s[u[r]][2]]);for(r=+h;rPe)s=s.L;else{if(!((i=o-Pi(s,a))>Pe)){r>-Pe?(t=s.P,n=s):i>-Pe?(t=s,n=s.N):t=n=s;break}if(!s.R){t=s;break}s=s.R}var l=ki(e);if(vi.insert(t,l),t||n){if(t===n)return Ri(t),n=ki(t.site),vi.insert(l,n),l.edge=n.edge=Ai(t.site,l.site),Oi(t),void Oi(n);if(n){Ri(t),Ri(n);var u=t.site,c=u.x,h=u.y,f=e.x-c,d=e.y-h,p=n.site,m=p.x-c,g=p.y-h,v=2*(f*g-d*m),y=f*f+d*d,b=m*m+g*g,_={x:(g*y-d*b)/v+c,y:(f*b-m*y)/v+h};Li(n.edge,u,p,_),l.edge=Ai(u,e,null,_),n.edge=Ai(e,p,null,_),Oi(t),Oi(n)}else l.edge=Ai(t.site,l.site)}}function Ei(e,t){var n=e.site,r=n.x,i=n.y,o=i-t;if(!o)return r;var a=e.P;if(!a)return-1/0;var s=(n=a.site).x,l=n.y,u=l-t;if(!u)return s;var c=s-r,h=1/o-1/u,f=c/u;return h?(-f+Math.sqrt(f*f-2*h*(c*c/(-2*u)-l+u/2+i-o/2)))/h+r:(r+s)/2}function Pi(e,t){var n=e.N;if(n)return Ei(n,t);var r=e.site;return r.y===t?r.x:1/0}function Di(e){this.site=e,this.edges=[]}function Mi(e,t){return t.angle-e.angle}function Ni(){Hi(this),this.x=this.y=this.arc=this.site=this.cy=null}function Oi(e){var t=e.P,n=e.N;if(t&&n){var r=t.site,i=e.site,o=n.site;if(r!==o){var a=i.x,s=i.y,l=r.x-a,u=r.y-s,c=o.x-a,h=2*(l*(g=o.y-s)-u*c);if(!(h>=-De)){var f=l*l+u*u,d=c*c+g*g,p=(g*f-u*d)/h,m=(l*d-c*f)/h,g=m+s,v=wi.pop()||new Ni;v.arc=e,v.site=i,v.x=p+a,v.y=g+Math.sqrt(p*p+m*m),v.cy=g,e.circle=v;for(var y=null,b=bi._;b;)if(v.y=s)return;if(f>p){if(o){if(o.y>=u)return}else o={x:g,y:l};n={x:g,y:u}}else{if(o){if(o.y1)if(f>p){if(o){if(o.y>=u)return}else o={x:(l-i)/r,y:l};n={x:(u-i)/r,y:u}}else{if(o){if(o.y=s)return}else o={x:a,y:r*a+i};n={x:s,y:r*s+i}}else{if(o){if(o.xPe||x(i-n)>Pe)&&(s.splice(a,0,new zi((v=o.site,y=c,b=x(r-h)Pe?{x:h,y:x(t-h)Pe?{x:x(n-p)Pe?{x:f,y:x(t-f)Pe?{x:x(n-d)=n&&u.x<=i&&u.y>=r&&u.y<=a?[[n,a],[i,a],[i,r],[n,r]]:[]).point=e[s]})),t}function s(e){return e.map((function(e,t){return{x:Math.round(r(e,t)/Pe)*Pe,y:Math.round(i(e,t)/Pe)*Pe,i:t}}))}return a.links=function(e){return Bi(s(e)).edges.filter((function(e){return e.l&&e.r})).map((function(t){return{source:e[t.l.i],target:e[t.r.i]}}))},a.triangles=function(e){var t=[];return Bi(s(e)).cells.forEach((function(n,r){for(var i,o=n.site,a=n.edges.sort(Mi),s=-1,l=a.length,u=a[l-1].edge,c=u.l===o?u.r:u.l;++so&&(i=t.slice(o,i),s[a]?s[a]+=i:s[++a]=i),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,l.push({i:a,x:Zi(n,r)})),o=no.lastIndex;return om&&(m=l.x),l.y>g&&(g=l.y),u.push(l.x),c.push(l.y);else for(h=0;hm&&(m=b),_>g&&(g=_),u.push(b),c.push(_)}var w=m-d,k=g-p;function S(e,t,n,r,i,o,a,s){if(!isNaN(n)&&!isNaN(r))if(e.leaf){var l=e.x,u=e.y;if(null!=l)if(x(l-n)+x(u-r)<.01)C(e,t,n,r,i,o,a,s);else{var c=e.point;e.x=e.y=e.point=null,C(e,c,l,u,i,o,a,s),C(e,t,n,r,i,o,a,s)}else e.x=n,e.y=r,e.point=t}else C(e,t,n,r,i,o,a,s)}function C(e,t,n,r,i,o,a,s){var l=.5*(i+a),u=.5*(o+s),c=n>=l,h=r>=u,f=h<<1|c;e.leaf=!1,c?i=l:a=l,h?o=u:s=u,S(e=e.nodes[f]||(e.nodes[f]={leaf:!0,nodes:[],point:null,x:null,y:null}),t,n,r,i,o,a,s)}w>k?g=p+w:m=d+k;var T={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(e){S(T,e,+v(e,++h),+y(e,h),d,p,m,g)}};if(T.visit=function(e){Ki(e,T,d,p,m,g)},T.find=function(e){return function(e,t,n,r,i,o,a){var s,l=1/0;return function e(u,c,h,f,d){if(!(c>o||h>a||f=w)<<1|t>=_,k=x+4;x=0&&!(n=o.interpolators[r](e,t)););return n}function io(e,t){var n,r=[],i=[],o=e.length,a=t.length,s=Math.min(e.length,t.length);for(n=0;n=1)return 1;var t=e*e,n=t*e;return 4*(e<.5?n:3*(e-t)+n-.75)}function po(e){return 1-Math.cos(e*Re)}function mo(e){return Math.pow(2,10*(e-1))}function go(e){return 1-Math.sqrt(1-e*e)}function vo(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}function yo(e,t){return t-=e,function(n){return Math.round(e+t*n)}}function bo(e){var t=[e.a,e.b],n=[e.c,e.d],r=wo(t),i=_o(t,n),o=wo(function(e,t,n){return e[0]+=n*t[0],e[1]+=n*t[1],e}(n,t,-i))||0;t[0]*n[1]=0?e.slice(0,n):e,i=n>=0?e.slice(n+1):"in";return r=ao.get(r)||oo,i=so.get(i)||I,t=i(r.apply(null,a.call(arguments,1))),function(e){return e<=0?0:e>=1?1:t(e)}},o.interpolateHcl=function(e,t){e=o.hcl(e),t=o.hcl(t);var n=e.h,r=e.c,i=e.l,a=t.h-n,s=t.c-r,l=t.l-i;return isNaN(s)&&(s=0,r=isNaN(r)?t.c:r),isNaN(a)?(a=0,n=isNaN(n)?t.h:n):a>180?a-=360:a<-180&&(a+=360),function(e){return Je(n+a*e,r+s*e,i+l*e)+""}},o.interpolateHsl=function(e,t){e=o.hsl(e),t=o.hsl(t);var n=e.h,r=e.s,i=e.l,a=t.h-n,s=t.s-r,l=t.l-i;return isNaN(s)&&(s=0,r=isNaN(r)?t.s:r),isNaN(a)?(a=0,n=isNaN(n)?t.h:n):a>180?a-=360:a<-180&&(a+=360),function(e){return Qe(n+a*e,r+s*e,i+l*e)+""}},o.interpolateLab=function(e,t){e=o.lab(e),t=o.lab(t);var n=e.l,r=e.a,i=e.b,a=t.l-n,s=t.a-r,l=t.b-i;return function(e){return ot(n+a*e,r+s*e,i+l*e)+""}},o.interpolateRound=yo,o.transform=function(e){var t=l.createElementNS(o.ns.prefix.svg,"g");return(o.transform=function(e){if(null!=e){t.setAttribute("transform",e);var n=t.transform.baseVal.consolidate()}return new bo(n?n.matrix:xo)})(e)},bo.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var xo={a:1,b:0,c:0,d:1,e:0,f:0};function ko(e){return e.length?e.pop()+",":""}function So(e,t){var n=[],r=[];return e=o.transform(e),t=o.transform(t),function(e,t,n,r){if(e[0]!==t[0]||e[1]!==t[1]){var i=n.push("translate(",null,",",null,")");r.push({i:i-4,x:Zi(e[0],t[0])},{i:i-2,x:Zi(e[1],t[1])})}else(t[0]||t[1])&&n.push("translate("+t+")")}(e.translate,t.translate,n,r),function(e,t,n,r){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),r.push({i:n.push(ko(n)+"rotate(",null,")")-2,x:Zi(e,t)})):t&&n.push(ko(n)+"rotate("+t+")")}(e.rotate,t.rotate,n,r),function(e,t,n,r){e!==t?r.push({i:n.push(ko(n)+"skewX(",null,")")-2,x:Zi(e,t)}):t&&n.push(ko(n)+"skewX("+t+")")}(e.skew,t.skew,n,r),function(e,t,n,r){if(e[0]!==t[0]||e[1]!==t[1]){var i=n.push(ko(n)+"scale(",null,",",null,")");r.push({i:i-4,x:Zi(e[0],t[0])},{i:i-2,x:Zi(e[1],t[1])})}else 1===t[0]&&1===t[1]||n.push(ko(n)+"scale("+t+")")}(e.scale,t.scale,n,r),e=t=null,function(e){for(var t,i=-1,o=r.length;++i0?n=t:(e.c=null,e.t=NaN,e=null,l.end({type:"end",alpha:n=0})):t>0&&(l.start({type:"start",alpha:n=t}),e=Pt(s.tick)),s):n},s.start=function(){var e,t,n,o=v.length,l=y.length,c=u[0],p=u[1];for(e=0;e=0;)n.push(i[r])}function qo(e,t){for(var n=[e],r=[];null!=(e=n.pop());)if(r.push(e),(o=e.children)&&(i=o.length))for(var i,o,a=-1;++a=0;)a.push(c=u[l]),c.parent=o,c.depth=o.depth+1;n&&(o.value=0),o.children=u}else n&&(o.value=+n.call(r,o,o.depth)||0),delete o.children;return qo(i,(function(t){var r,i;e&&(r=t.children)&&r.sort(e),n&&(i=t.parent)&&(i.value+=t.value)})),s}return r.sort=function(t){return arguments.length?(e=t,r):e},r.children=function(e){return arguments.length?(t=e,r):t},r.value=function(e){return arguments.length?(n=e,r):n},r.revalue=function(e){return n&&(zo(e,(function(e){e.children&&(e.value=0)})),qo(e,(function(e){var t;e.children||(e.value=+n.call(r,e,e.depth)||0),(t=e.parent)&&(t.value+=e.value)}))),e},r},o.layout.partition=function(){var e=o.layout.hierarchy(),t=[1,1];function n(e,t,r,i){var o=e.children;if(e.x=t,e.y=e.depth*i,e.dx=r,e.dy=i,o&&(a=o.length)){var a,s,l,u=-1;for(r=e.value?r/e.value:0;++us&&(s=r),a.push(r)}for(n=0;ni&&(r=n,i=t);return r}function Zo(e){return e.reduce(ea,0)}function ea(e,t){return e+t[1]}function ta(e,t){return na(e,Math.ceil(Math.log(t.length)/Math.LN2+1))}function na(e,t){for(var n=-1,r=+e[0],i=(e[1]-r)/t,o=[];++n<=t;)o[n]=i*n+r;return o}function ra(e){return[o.min(e),o.max(e)]}function ia(e,t){return e.value-t.value}function oa(e,t){var n=e._pack_next;e._pack_next=t,t._pack_prev=e,t._pack_next=n,n._pack_prev=t}function aa(e,t){e._pack_next=t,t._pack_prev=e}function sa(e,t){var n=t.x-e.x,r=t.y-e.y,i=e.r+t.r;return.999*i*i>n*n+r*r}function la(e){if((t=e.children)&&(l=t.length)){var t,n,r,i,o,a,s,l,u=1/0,c=-1/0,h=1/0,f=-1/0;if(t.forEach(ua),(n=t[0]).x=-n.r,n.y=0,b(n),l>1&&((r=t[1]).x=r.r,r.y=0,b(r),l>2))for(fa(n,r,i=t[2]),b(i),oa(n,i),n._pack_prev=i,oa(i,r),r=n._pack_next,o=3;o0)for(a=-1;++a=h[0]&&l<=h[1]&&((s=u[o.bisect(f,l,1,p)-1]).y+=m,s.push(i[a]));return u}return i.value=function(e){return arguments.length?(t=e,i):t},i.range=function(e){return arguments.length?(n=_t(e),i):n},i.bins=function(e){return arguments.length?(r="number"==typeof e?function(t){return na(t,e)}:_t(e),i):r},i.frequency=function(t){return arguments.length?(e=!!t,i):e},i},o.layout.pack=function(){var e,t=o.layout.hierarchy().sort(ia),n=0,r=[1,1];function i(i,o){var a=t.call(this,i,o),s=a[0],l=r[0],u=r[1],c=null==e?Math.sqrt:"function"==typeof e?e:function(){return e};if(s.x=s.y=0,qo(s,(function(e){e.r=+c(e.value)})),qo(s,la),n){var h=n*(e?1:Math.max(2*s.r/l,2*s.r/u))/2;qo(s,(function(e){e.r+=h})),qo(s,la),qo(s,(function(e){e.r-=h}))}return ha(s,l/2,u/2,e?1:1/Math.max(2*s.r/l,2*s.r/u)),a}return i.size=function(e){return arguments.length?(r=e,i):r},i.radius=function(t){return arguments.length?(e=null==t||"function"==typeof t?t:+t,i):e},i.padding=function(e){return arguments.length?(n=+e,i):n},Lo(i,t)},o.layout.tree=function(){var e=o.layout.hierarchy().sort(null).value(null),t=da,n=[1,1],r=null;function i(i,o){var u=e.call(this,i,o),c=u[0],h=function(e){for(var t,n={A:null,children:[e]},r=[n];null!=(t=r.pop());)for(var i,o=t.children,a=0,s=o.length;ad.x&&(d=e),e.depth>p.depth&&(p=e)}));var m=t(f,d)/2-f.x,g=n[0]/(d.x+t(d,f)/2+m),v=n[1]/(p.depth||1);zo(c,(function(e){e.x=(e.x+m)*g,e.y=e.depth*v}))}return u}function a(e){var n=e.children,r=e.parent.children,i=e.i?r[e.i-1]:null;if(n.length){!function(e){for(var t,n=0,r=0,i=e.children,o=i.length;--o>=0;)(t=i[o]).z+=n,t.m+=n,n+=t.s+(r+=t.c)}(e);var o=(n[0].z+n[n.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-o):e.z=o}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,n,r){if(n){for(var i,o=e,a=e,s=n,l=o.parent.children[0],u=o.m,c=a.m,h=s.m,f=l.m;s=ma(s),o=pa(o),s&&o;)l=pa(l),(a=ma(a)).a=e,(i=s.z+h-o.z-u+t(s._,o._))>0&&(ga(va(s,e,r),e,i),u+=i,c+=i),h+=s.m,u+=o.m,f+=l.m,c+=a.m;s&&!ma(a)&&(a.t=s,a.m+=h-c),o&&!pa(l)&&(l.t=o,l.m+=u-f,r=e)}return r}(e,i,e.parent.A||r[0])}function s(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function l(e){e.x*=n[0],e.y=e.depth*n[1]}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(e){return arguments.length?(r=null==(n=e)?l:null,i):r?null:n},i.nodeSize=function(e){return arguments.length?(r=null==(n=e)?null:l,i):r?n:null},Lo(i,e)},o.layout.cluster=function(){var e=o.layout.hierarchy().sort(null).value(null),t=da,n=[1,1],r=!1;function i(i,a){var s,l=e.call(this,i,a),u=l[0],c=0;qo(u,(function(e){var n=e.children;n&&n.length?(e.x=function(e){return e.reduce((function(e,t){return e+t.x}),0)/e.length}(n),e.y=function(e){return 1+o.max(e,(function(e){return e.y}))}(n)):(e.x=s?c+=t(e,s):0,e.y=0,s=e)}));var h=ya(u),f=ba(u),d=h.x-t(h,f)/2,p=f.x+t(f,h)/2;return qo(u,r?function(e){e.x=(e.x-u.x)*n[0],e.y=(u.y-e.y)*n[1]}:function(e){e.x=(e.x-d)/(p-d)*n[0],e.y=(1-(u.y?e.y/u.y:1))*n[1]}),l}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(e){return arguments.length?(r=null==(n=e),i):r?null:n},i.nodeSize=function(e){return arguments.length?(r=null!=(n=e),i):r?n:null},Lo(i,e)},o.layout.treemap=function(){var e,t=o.layout.hierarchy(),n=Math.round,r=[1,1],i=null,a=_a,s=!1,l="squarify",u=.5*(1+Math.sqrt(5));function c(e,t){for(var n,r,i=-1,o=e.length;++i0;)s.push(n=u[i-1]),s.area+=n.area,"squarify"!==l||(r=d(s,m))<=f?(u.pop(),f=r):(s.area-=s.pop().area,p(s,m,o,!1),m=Math.min(o.dx,o.dy),s.length=s.area=0,f=1/0);s.length&&(p(s,m,o,!0),s.length=s.area=0),t.forEach(h)}}function f(e){var t=e.children;if(t&&t.length){var n,r=a(e),i=t.slice(),o=[];for(c(i,r.dx*r.dy/e.value),o.area=0;n=i.pop();)o.push(n),o.area+=n.area,null!=n.z&&(p(o,n.z?r.dx:r.dy,r,!i.length),o.length=o.area=0);t.forEach(f)}}function d(e,t){for(var n,r=e.area,i=0,o=1/0,a=-1,s=e.length;++ai&&(i=n));return t*=t,(r*=r)?Math.max(t*i*u/r,r/(t*o*u)):1/0}function p(e,t,r,i){var o,a=-1,s=e.length,l=r.x,u=r.y,c=t?n(e.area/t):0;if(t==r.dx){for((i||c>r.dy)&&(c=r.dy);++ar.dx)&&(c=r.dx);++a1);return e+t*n*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var e=o.random.normal.apply(o,arguments);return function(){return Math.exp(e())}},bates:function(e){var t=o.random.irwinHall(e);return function(){return t()/e}},irwinHall:function(e){return function(){for(var t=0,n=0;n2?Pa:Sa,l=r?To:Co;return i=a(e,t,l,n),o=a(t,e,l,ro),s}function s(e){return i(e)}return s.invert=function(e){return o(e)},s.domain=function(t){return arguments.length?(e=t.map(Number),a()):e},s.range=function(e){return arguments.length?(t=e,a()):t},s.rangeRound=function(e){return s.range(e).interpolate(yo)},s.clamp=function(e){return arguments.length?(r=e,a()):r},s.interpolate=function(e){return arguments.length?(n=e,a()):n},s.ticks=function(t){return Ra(e,t)},s.tickFormat=function(t,n){return ja(e,t,n)},s.nice=function(t){return Na(e,t),a()},s.copy=function(){return Da(e,t,n,r)},a()}function Ma(e,t){return o.rebind(e,t,"range","rangeRound","interpolate","clamp")}function Na(e,t){return Ca(e,Ta(Oa(e,t)[2])),Ca(e,Ta(Oa(e,t)[2])),e}function Oa(e,t){null==t&&(t=10);var n=xa(e),r=n[1]-n[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),o=t/r*i;return o<=.15?i*=10:o<=.35?i*=5:o<=.75&&(i*=2),n[0]=Math.ceil(n[0]/i)*i,n[1]=Math.floor(n[1]/i)*i+.5*i,n[2]=i,n}function Ra(e,t){return o.range.apply(o,Oa(e,t))}function ja(e,t,n){var r=Oa(e,t);if(n){var i=It.exec(n);if(i.shift(),"s"===i[8]){var a=o.formatPrefix(Math.max(x(r[0]),x(r[1])));return i[7]||(i[7]="."+Aa(a.scale(r[2]))),i[8]="f",n=o.format(i.join("")),function(e){return n(a.scale(e))+a.symbol}}i[7]||(i[7]="."+function(e,t){var n=Aa(t[2]);return e in Ia?Math.abs(n-Aa(Math.max(x(t[0]),x(t[1]))))+ +("e"!==e):n-2*("%"===e)}(i[8],r)),n=i.join("")}else n=",."+Aa(r[2])+"f";return o.format(n)}o.scale.linear=function(){return Da([0,1],[0,1],ro,!1)};var Ia={s:1,g:1,p:1,r:1,e:1};function Aa(e){return-Math.floor(Math.log(e)/Math.LN10+.01)}function La(e,t,n,r){function i(e){return(n?Math.log(e<0?0:e):-Math.log(e>0?0:-e))/Math.log(t)}function a(e){return n?Math.pow(t,e):-Math.pow(t,-e)}function s(t){return e(i(t))}return s.invert=function(t){return a(e.invert(t))},s.domain=function(t){return arguments.length?(n=t[0]>=0,e.domain((r=t.map(Number)).map(i)),s):r},s.base=function(n){return arguments.length?(t=+n,e.domain(r.map(i)),s):t},s.nice=function(){var t=Ca(r.map(i),n?Math:qa);return e.domain(t),r=t.map(a),s},s.ticks=function(){var e=xa(r),o=[],s=e[0],l=e[1],u=Math.floor(i(s)),c=Math.ceil(i(l)),h=t%1?2:t;if(isFinite(c-u)){if(n){for(;u0;f--)o.push(a(u)*f);for(u=0;o[u]l;c--);o=o.slice(u,c)}return o},s.tickFormat=function(e,n){if(!arguments.length)return za;arguments.length<2?n=za:"function"!=typeof n&&(n=o.format(n));var r=Math.max(1,t*e/s.ticks().length);return function(e){var o=e/a(Math.round(i(e)));return o*t0?n[r-1]:e[0],rh?0:1;if(u=Oe)return l(u,d)+(s?l(s,1-d):"")+"Z";var p,m,g,v,y,b,_,w,x,k,S,C,T=0,E=0,P=[];if((v=(+a.apply(this,arguments)||0)/2)&&(g=r===Ja?Math.sqrt(s*s+u*u):+r.apply(this,arguments),d||(E*=-1),u&&(E=qe(g/u*Math.sin(v))),s&&(T=qe(g/s*Math.sin(v)))),u){y=u*Math.cos(c+E),b=u*Math.sin(c+E),_=u*Math.cos(h-E),w=u*Math.sin(h-E);var D=Math.abs(h-c-2*E)<=Me?0:1;if(E&&is(y,b,_,w)===d^D){var M=(c+h)/2;y=u*Math.cos(M),b=u*Math.sin(M),_=w=null}}else y=b=0;if(s){x=s*Math.cos(h-T),k=s*Math.sin(h-T),S=s*Math.cos(c+T),C=s*Math.sin(c+T);var N=Math.abs(c-h+2*T)<=Me?0:1;if(T&&is(x,k,S,C)===1-d^N){var O=(c+h)/2;x=s*Math.cos(O),k=s*Math.sin(O),S=C=null}}else x=k=0;if(f>Pe&&(p=Math.min(Math.abs(u-s)/2,+n.apply(this,arguments)))>.001){m=s0?0:1}function os(e,t,n,r,i){var o=e[0]-t[0],a=e[1]-t[1],s=(i?r:-r)/Math.sqrt(o*o+a*a),l=s*a,u=-s*o,c=e[0]+l,h=e[1]+u,f=t[0]+l,d=t[1]+u,p=(c+f)/2,m=(h+d)/2,g=f-c,v=d-h,y=g*g+v*v,b=n-r,_=c*d-f*h,w=(v<0?-1:1)*Math.sqrt(Math.max(0,b*b*y-_*_)),x=(_*v-g*w)/y,k=(-_*g-v*w)/y,S=(_*v+g*w)/y,C=(-_*g+v*w)/y,T=x-p,E=k-m,P=S-p,D=C-m;return T*T+E*E>P*P+D*D&&(x=S,k=C),[[x-l,k-u],[x*n/b,k*n/b]]}function as(e){var t=si,n=li,r=Zn,i=ls,o=i.key,a=.7;function s(o){var s,l=[],u=[],c=-1,h=o.length,f=_t(t),d=_t(n);function p(){l.push("M",i(e(u),a))}for(;++c1&&i.push("H",r[0]),i.join("")},"step-before":cs,"step-after":hs,basis:ps,"basis-open":function(e){if(e.length<4)return ls(e);for(var t,n=[],r=-1,i=e.length,o=[0],a=[0];++r<3;)t=e[r],o.push(t[0]),a.push(t[1]);for(n.push(ms(ys,o)+","+ms(ys,a)),--r;++r9&&(i=3*t/Math.sqrt(i),a[s]=i*n,a[s+1]=i*r);for(s=-1;++s<=l;)i=(e[Math.min(l,s+1)][0]-e[Math.max(0,s-1)][0])/(6*(1+a[s]*a[s])),o.push([i||0,a[s]*i||0]);return o}(e))}});function ls(e){return e.length>1?e.join("L"):e+"Z"}function us(e){return e.join("L")+"Z"}function cs(e){for(var t=0,n=e.length,r=e[0],i=[r[0],",",r[1]];++t1){s=t[1],o=e[l],l++,r+="C"+(i[0]+a[0])+","+(i[1]+a[1])+","+(o[0]-s[0])+","+(o[1]-s[1])+","+o[0]+","+o[1];for(var u=2;uMe)+",1 "+t}function l(e,t,n,r){return"Q 0,0 "+r}return o.radius=function(e){return arguments.length?(n=_t(e),o):n},o.source=function(t){return arguments.length?(e=_t(t),o):e},o.target=function(e){return arguments.length?(t=_t(e),o):t},o.startAngle=function(e){return arguments.length?(r=_t(e),o):r},o.endAngle=function(e){return arguments.length?(i=_t(e),o):i},o},o.svg.diagonal=function(){var e=Yr,t=Xr,n=Ss;function r(r,i){var o=e.call(this,r,i),a=t.call(this,r,i),s=(o.y+a.y)/2,l=[o,{x:o.x,y:s},{x:a.x,y:s},a];return"M"+(l=l.map(n))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}return r.source=function(t){return arguments.length?(e=_t(t),r):e},r.target=function(e){return arguments.length?(t=_t(e),r):t},r.projection=function(e){return arguments.length?(n=e,r):n},r},o.svg.diagonal.radial=function(){var e=o.svg.diagonal(),t=Ss,n=e.projection;return e.projection=function(e){return arguments.length?n(function(e){return function(){var t=e.apply(this,arguments),n=t[0],r=t[1]-Re;return[n*Math.cos(r),n*Math.sin(r)]}}(t=e)):t},e},o.svg.symbol=function(){var e=Ts,t=Cs;function n(n,r){return(Ps.get(e.call(this,n,r))||Es)(t.call(this,n,r))}return n.type=function(t){return arguments.length?(e=_t(t),n):e},n.size=function(e){return arguments.length?(t=_t(e),n):t},n};var Ps=o.map({circle:Es,cross:function(e){var t=Math.sqrt(e/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(e){var t=Math.sqrt(e/(2*Ms)),n=t*Ms;return"M0,"+-t+"L"+n+",0 0,"+t+" "+-n+",0Z"},square:function(e){var t=Math.sqrt(e)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(e){var t=Math.sqrt(e/Ds),n=t*Ds/2;return"M0,"+n+"L"+t+","+-n+" "+-t+","+-n+"Z"},"triangle-up":function(e){var t=Math.sqrt(e/Ds),n=t*Ds/2;return"M0,"+-n+"L"+t+","+n+" "+-t+","+n+"Z"}});o.svg.symbolTypes=Ps.keys();var Ds=Math.sqrt(3),Ms=Math.tan(30*je);G.transition=function(e){for(var t,n,r=js||++Ls,i=Hs(e),o=[],a=Is||{time:Date.now(),ease:fo,delay:0,duration:250},s=-1,l=this.length;++s0;)u[--f].call(e,a);if(o>=1)return h.event&&h.event.end.call(e,e.__data__,t),--c.count?delete c[r]:delete e[n],1}h||(o=i.time,a=Pt((function(e){var t=h.delay;if(a.t=t+o,t<=e)return f(e-t);a.c=f}),0,o),h=c[r]={tween:new S,time:o,timer:a,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++c.count)}As.call=G.call,As.empty=G.empty,As.node=G.node,As.size=G.size,o.transition=function(e,t){return e&&e.transition?js?e.transition(t):e:o.selection().transition(e)},o.transition.prototype=As,As.select=function(e){var t,n,r,i=this.id,o=this.namespace,a=[];e=J(e);for(var s=-1,l=this.length;++srect,.s>rect").attr("width",a[1]-a[0])}function m(e){e.select(".extent").attr("y",s[0]),e.selectAll(".extent,.e>rect,.w>rect").attr("height",s[1]-s[0])}function g(){var h,g,v=this,y=o.select(o.event.target),b=n.of(v,arguments),_=o.select(v),w=y.datum(),x=!/^(n|s)$/.test(w)&&r,k=!/^(e|w)$/.test(w)&&i,S=y.classed("extent"),C=Se(v),T=o.mouse(v),E=o.select(c(v)).on("keydown.brush",(function(){32==o.event.keyCode&&(S||(h=null,T[0]-=a[1],T[1]-=s[1],S=2),U())})).on("keyup.brush",(function(){32==o.event.keyCode&&2==S&&(T[0]+=a[1],T[1]+=s[1],S=0,U())}));if(o.event.changedTouches?E.on("touchmove.brush",M).on("touchend.brush",O):E.on("mousemove.brush",M).on("mouseup.brush",O),_.interrupt().selectAll("*").interrupt(),S)T[0]=a[0]-T[0],T[1]=s[0]-T[1];else if(w){var P=+/w$/.test(w),D=+/^n/.test(w);g=[a[1-P]-T[0],s[1-D]-T[1]],T[0]=a[P],T[1]=s[D]}else o.event.altKey&&(h=T.slice());function M(){var e=o.mouse(v),t=!1;g&&(e[0]+=g[0],e[1]+=g[1]),S||(o.event.altKey?(h||(h=[(a[0]+a[1])/2,(s[0]+s[1])/2]),T[0]=a[+(e[0]1?{floor:function(t){for(;s(t=e.floor(t));)t=Zs(t-1);return t},ceil:function(t){for(;s(t=e.ceil(t));)t=Zs(+t+1);return t}}:e))},r.ticks=function(e,t){var n=xa(r.domain()),o=null==e?i(n,10):"number"==typeof e?i(n,e):!e.range&&[{range:e},t];return o&&(e=o[0],t=o[1]),e.range(n[0],Zs(+n[1]+1),t<1?1:t)},r.tickFormat=function(){return n},r.copy=function(){return Js(e.copy(),t,n)},Ma(r,e)}function Zs(e){return new Date(e)}Xs.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Gs:Ks,Gs.parse=function(e){var t=new Date(e);return isNaN(t)?null:t},Gs.toString=Ks.toString,zt.second=Ut((function(e){return new qt(1e3*Math.floor(e/1e3))}),(function(e,t){e.setTime(e.getTime()+1e3*Math.floor(t))}),(function(e){return e.getSeconds()})),zt.seconds=zt.second.range,zt.seconds.utc=zt.second.utc.range,zt.minute=Ut((function(e){return new qt(6e4*Math.floor(e/6e4))}),(function(e,t){e.setTime(e.getTime()+6e4*Math.floor(t))}),(function(e){return e.getMinutes()})),zt.minutes=zt.minute.range,zt.minutes.utc=zt.minute.utc.range,zt.hour=Ut((function(e){var t=e.getTimezoneOffset()/60;return new qt(36e5*(Math.floor(e/36e5-t)+t))}),(function(e,t){e.setTime(e.getTime()+36e5*Math.floor(t))}),(function(e){return e.getHours()})),zt.hours=zt.hour.range,zt.hours.utc=zt.hour.utc.range,zt.month=Ut((function(e){return(e=zt.day(e)).setDate(1),e}),(function(e,t){e.setMonth(e.getMonth()+t)}),(function(e){return e.getMonth()})),zt.months=zt.month.range,zt.months.utc=zt.month.utc.range;var el=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],tl=[[zt.second,1],[zt.second,5],[zt.second,15],[zt.second,30],[zt.minute,1],[zt.minute,5],[zt.minute,15],[zt.minute,30],[zt.hour,1],[zt.hour,3],[zt.hour,6],[zt.hour,12],[zt.day,1],[zt.day,2],[zt.week,1],[zt.month,1],[zt.month,3],[zt.year,1]],nl=Xs.multi([[".%L",function(e){return e.getMilliseconds()}],[":%S",function(e){return e.getSeconds()}],["%I:%M",function(e){return e.getMinutes()}],["%I %p",function(e){return e.getHours()}],["%a %d",function(e){return e.getDay()&&1!=e.getDate()}],["%b %d",function(e){return 1!=e.getDate()}],["%B",function(e){return e.getMonth()}],["%Y",Zn]]),rl={range:function(e,t,n){return o.range(Math.ceil(e/n)*n,+t,n).map(Zs)},floor:I,ceil:I};tl.year=zt.year,zt.scale=function(){return Js(o.scale.linear(),tl,nl)};var il=tl.map((function(e){return[e[0].utc,e[1]]})),ol=Qs.multi([[".%L",function(e){return e.getUTCMilliseconds()}],[":%S",function(e){return e.getUTCSeconds()}],["%I:%M",function(e){return e.getUTCMinutes()}],["%I %p",function(e){return e.getUTCHours()}],["%a %d",function(e){return e.getUTCDay()&&1!=e.getUTCDate()}],["%b %d",function(e){return 1!=e.getUTCDate()}],["%B",function(e){return e.getUTCMonth()}],["%Y",Zn]]);function al(e){return JSON.parse(e.responseText)}function sl(e){var t=l.createRange();return t.selectNode(l.body),t.createContextualFragment(e.responseText)}il.year=zt.year.utc,zt.scale.utc=function(){return Js(o.scale.linear(),il,ol)},o.text=wt((function(e){return e.responseText})),o.json=function(e,t){return xt(e,"application/json",al,t)},o.html=function(e,t){return xt(e,"text/html",sl,t)},o.xml=wt((function(e){return e.responseXML})),this.d3=o,void 0===(i="function"==typeof(r=o)?r.call(t,n,t,e):r)||(e.exports=i)}()},692:function(e,t){var n;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(r,i){"use strict";var o=[],a=Object.getPrototypeOf,s=o.slice,l=o.flat?function(e){return o.flat.call(e)}:function(e){return o.concat.apply([],e)},u=o.push,c=o.indexOf,h={},f=h.toString,d=h.hasOwnProperty,p=d.toString,m=p.call(Object),g={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},b=r.document,_={type:!0,src:!0,nonce:!0,noModule:!0};function w(e,t,n){var r,i,o=(n=n||b).createElement("script");if(o.text=e,t)for(r in _)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?h[f.call(e)]||"object":typeof e}var k="3.7.1",S=/HTML$/i,C=function(e,t){return new C.fn.init(e,t)};function T(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function E(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}C.fn=C.prototype={jquery:k,constructor:C,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=C.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return C.each(this,e)},map:function(e){return this.pushStack(C.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(C.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(C.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+N+")"+N+"*"),F=new RegExp(N+"|>"),U=new RegExp(L),W=new RegExp("^"+R+"$"),B={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+j),PSEUDO:new RegExp("^"+L),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+N+"*(even|odd|(([+-]|)(\\d*)n|)"+N+"*(?:([+-]|)"+N+"*(\\d+)|))"+N+"*\\)|)","i"),bool:new RegExp("^(?:"+T+")$","i"),needsContext:new RegExp("^"+N+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+N+"*((?:-\\d)?\\d*)"+N+"*\\)|)(?=[^-]|$)","i")},$=/^(?:input|select|textarea|button)$/i,V=/^h\d$/i,Y=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,X=/[+~]/,Q=new RegExp("\\\\[\\da-fA-F]{1,6}"+N+"?|\\\\([^\\r\\n\\f])","g"),K=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},G=function(){le()},J=fe((function(e){return!0===e.disabled&&E(e,"fieldset")}),{dir:"parentNode",next:"legend"});try{m.apply(o=s.call(I.childNodes),I.childNodes),o[I.childNodes.length].nodeType}catch(e){m={apply:function(e,t){A.apply(e,s.call(t))},call:function(e){A.apply(e,s.call(arguments,1))}}}function Z(e,t,n,r){var i,o,a,s,u,c,d,p=t&&t.ownerDocument,y=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==y&&9!==y&&11!==y)return n;if(!r&&(le(t),t=t||l,h)){if(11!==y&&(u=Y.exec(e)))if(i=u[1]){if(9===y){if(!(a=t.getElementById(i)))return n;if(a.id===i)return m.call(n,a),n}else if(p&&(a=p.getElementById(i))&&Z.contains(t,a)&&a.id===i)return m.call(n,a),n}else{if(u[2])return m.apply(n,t.getElementsByTagName(e)),n;if((i=u[3])&&t.getElementsByClassName)return m.apply(n,t.getElementsByClassName(i)),n}if(!(k[e+" "]||f&&f.test(e))){if(d=e,p=t,1===y&&(F.test(e)||H.test(e))){for((p=X.test(e)&&se(t.parentNode)||t)==t&&g.scope||((s=t.getAttribute("id"))?s=C.escapeSelector(s):t.setAttribute("id",s=v)),o=(c=ce(e)).length;o--;)c[o]=(s?"#"+s:":scope")+" "+he(c[o]);d=c.join(",")}try{return m.apply(n,p.querySelectorAll(d)),n}catch(t){k(e,!0)}finally{s===v&&t.removeAttribute("id")}}}return ye(e.replace(O,"$1"),t,n,r)}function ee(){var e=[];return function n(r,i){return e.push(r+" ")>t.cacheLength&&delete n[e.shift()],n[r+" "]=i}}function te(e){return e[v]=!0,e}function ne(e){var t=l.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function re(e){return function(t){return E(t,"input")&&t.type===e}}function ie(e){return function(t){return(E(t,"input")||E(t,"button"))&&t.type===e}}function oe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&J(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ae(e){return te((function(t){return t=+t,te((function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))}))}))}function se(e){return e&&void 0!==e.getElementsByTagName&&e}function le(e){var n,r=e?e.ownerDocument||e:I;return r!=l&&9===r.nodeType&&r.documentElement?(u=(l=r).documentElement,h=!C.isXMLDoc(l),p=u.matches||u.webkitMatchesSelector||u.msMatchesSelector,u.msMatchesSelector&&I!=l&&(n=l.defaultView)&&n.top!==n&&n.addEventListener("unload",G),g.getById=ne((function(e){return u.appendChild(e).id=C.expando,!l.getElementsByName||!l.getElementsByName(C.expando).length})),g.disconnectedMatch=ne((function(e){return p.call(e,"*")})),g.scope=ne((function(){return l.querySelectorAll(":scope")})),g.cssHas=ne((function(){try{return l.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}})),g.getById?(t.filter.ID=function(e){var t=e.replace(Q,K);return function(e){return e.getAttribute("id")===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&h){var n=t.getElementById(e);return n?[n]:[]}}):(t.filter.ID=function(e){var t=e.replace(Q,K);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&h){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),t.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},t.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&h)return t.getElementsByClassName(e)},f=[],ne((function(e){var t;u.appendChild(e).innerHTML="
      ",e.querySelectorAll("[selected]").length||f.push("\\["+N+"*(?:value|"+T+")"),e.querySelectorAll("[id~="+v+"-]").length||f.push("~="),e.querySelectorAll("a#"+v+"+*").length||f.push(".#.+[+~]"),e.querySelectorAll(":checked").length||f.push(":checked"),(t=l.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),u.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&f.push(":enabled",":disabled"),(t=l.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||f.push("\\["+N+"*name"+N+"*="+N+"*(?:''|\"\")")})),g.cssHas||f.push(":has"),f=f.length&&new RegExp(f.join("|")),S=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!g.sortDetached&&t.compareDocumentPosition(e)===n?e===l||e.ownerDocument==I&&Z.contains(I,e)?-1:t===l||t.ownerDocument==I&&Z.contains(I,t)?1:i?c.call(i,e)-c.call(i,t):0:4&n?-1:1)},l):l}for(e in Z.matches=function(e,t){return Z(e,null,null,t)},Z.matchesSelector=function(e,t){if(le(e),h&&!k[t+" "]&&(!f||!f.test(t)))try{var n=p.call(e,t);if(n||g.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){k(t,!0)}return Z(t,l,null,[e]).length>0},Z.contains=function(e,t){return(e.ownerDocument||e)!=l&&le(e),C.contains(e,t)},Z.attr=function(e,n){(e.ownerDocument||e)!=l&&le(e);var r=t.attrHandle[n.toLowerCase()],i=r&&d.call(t.attrHandle,n.toLowerCase())?r(e,n,!h):void 0;return void 0!==i?i:e.getAttribute(n)},Z.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},C.uniqueSort=function(e){var t,n=[],r=0,o=0;if(a=!g.sortStable,i=!g.sortStable&&s.call(e,0),D.call(e,S),a){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)M.call(e,n[r],1)}return i=null,e},C.fn.uniqueSort=function(){return this.pushStack(C.uniqueSort(s.apply(this)))},t=C.expr={cacheLength:50,createPseudo:te,match:B,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Q,K),e[3]=(e[3]||e[4]||e[5]||"").replace(Q,K),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||Z.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&Z.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return B.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&U.test(n)&&(t=ce(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Q,K).toLowerCase();return"*"===e?function(){return!0}:function(e){return E(e,t)}},CLASS:function(e){var t=_[e+" "];return t||(t=new RegExp("(^|"+N+")"+e+"("+N+"|$)"))&&_(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var i=Z.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(z," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,h,f,d,p=o!==a?"nextSibling":"previousSibling",m=t.parentNode,g=s&&t.nodeName.toLowerCase(),b=!l&&!s,_=!1;if(m){if(o){for(;p;){for(h=t;h=h[p];)if(s?E(h,g):1===h.nodeType)return!1;d=p="only"===e&&!d&&"nextSibling"}return!0}if(d=[a?m.firstChild:m.lastChild],a&&b){for(_=(f=(u=(c=m[v]||(m[v]={}))[e]||[])[0]===y&&u[1])&&u[2],h=f&&m.childNodes[f];h=++f&&h&&h[p]||(_=f=0)||d.pop();)if(1===h.nodeType&&++_&&h===t){c[e]=[y,f,_];break}}else if(b&&(_=f=(u=(c=t[v]||(t[v]={}))[e]||[])[0]===y&&u[1]),!1===_)for(;(h=++f&&h&&h[p]||(_=f=0)||d.pop())&&(!(s?E(h,g):1===h.nodeType)||!++_||(b&&((c=h[v]||(h[v]={}))[e]=[y,_]),h!==t)););return(_-=i)===r||_%r==0&&_/r>=0}}},PSEUDO:function(e,n){var r,i=t.pseudos[e]||t.setFilters[e.toLowerCase()]||Z.error("unsupported pseudo: "+e);return i[v]?i(n):i.length>1?(r=[e,e,"",n],t.setFilters.hasOwnProperty(e.toLowerCase())?te((function(e,t){for(var r,o=i(e,n),a=o.length;a--;)e[r=c.call(e,o[a])]=!(t[r]=o[a])})):function(e){return i(e,0,r)}):i}},pseudos:{not:te((function(e){var t=[],n=[],r=ve(e.replace(O,"$1"));return r[v]?te((function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:te((function(e){return function(t){return Z(e,t).length>0}})),contains:te((function(e){return e=e.replace(Q,K),function(t){return(t.textContent||C.text(t)).indexOf(e)>-1}})),lang:te((function(e){return W.test(e||"")||Z.error("unsupported lang: "+e),e=e.replace(Q,K).toLowerCase(),function(t){var n;do{if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(e){var t=r.location&&r.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===u},focus:function(e){return e===function(){try{return l.activeElement}catch(e){}}()&&l.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:oe(!1),disabled:oe(!0),checked:function(e){return E(e,"input")&&!!e.checked||E(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!t.pseudos.empty(e)},header:function(e){return V.test(e.nodeName)},input:function(e){return $.test(e.nodeName)},button:function(e){return E(e,"input")&&"button"===e.type||E(e,"button")},text:function(e){var t;return E(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ae((function(){return[0]})),last:ae((function(e,t){return[t-1]})),eq:ae((function(e,t,n){return[n<0?n+t:n]})),even:ae((function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e})),gt:ae((function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function pe(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,u=null!=t;s-1&&(o[u]=!(a[u]=f))}}else d=pe(d===a?d.splice(v,d.length):d),i?i(null,a,d,l):m.apply(a,d)}))}function ge(e){for(var r,i,o,a=e.length,s=t.relative[e[0].type],l=s||t.relative[" "],u=s?1:0,h=fe((function(e){return e===r}),l,!0),f=fe((function(e){return c.call(r,e)>-1}),l,!0),d=[function(e,t,i){var o=!s&&(i||t!=n)||((r=t).nodeType?h(e,t,i):f(e,t,i));return r=null,o}];u1&&de(d),u>1&&he(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(O,"$1"),i,u0,o=e.length>0,a=function(a,s,u,c,f){var d,p,g,v=0,b="0",_=a&&[],w=[],x=n,k=a||o&&t.find.TAG("*",f),S=y+=null==x?1:Math.random()||.1,T=k.length;for(f&&(n=s==l||s||f);b!==T&&null!=(d=k[b]);b++){if(o&&d){for(p=0,s||d.ownerDocument==l||(le(d),u=!h);g=e[p++];)if(g(d,s||l,u)){m.call(c,d);break}f&&(y=S)}i&&((d=!g&&d)&&v--,a&&_.push(d))}if(v+=b,i&&b!==v){for(p=0;g=r[p++];)g(_,w,s,u);if(a){if(v>0)for(;b--;)_[b]||w[b]||(w[b]=P.call(c));w=pe(w)}m.apply(c,w),f&&!a&&w.length>0&&v+r.length>1&&C.uniqueSort(c)}return f&&(y=S,n=x),_};return i?te(a):a}(a,o)),s.selector=e}return s}function ye(e,n,r,i){var o,a,s,l,u,c="function"==typeof e&&e,f=!i&&ce(e=c.selector||e);if(r=r||[],1===f.length){if((a=f[0]=f[0].slice(0)).length>2&&"ID"===(s=a[0]).type&&9===n.nodeType&&h&&t.relative[a[1].type]){if(!(n=(t.find.ID(s.matches[0].replace(Q,K),n)||[])[0]))return r;c&&(n=n.parentNode),e=e.slice(a.shift().value.length)}for(o=B.needsContext.test(e)?0:a.length;o--&&(s=a[o],!t.relative[l=s.type]);)if((u=t.find[l])&&(i=u(s.matches[0].replace(Q,K),X.test(a[0].type)&&se(n.parentNode)||n))){if(a.splice(o,1),!(e=i.length&&he(a)))return m.apply(r,i),r;break}}return(c||ve(e,f))(i,n,!h,r,!n||X.test(e)&&se(n.parentNode)||n),r}ue.prototype=t.filters=t.pseudos,t.setFilters=new ue,g.sortStable=v.split("").sort(S).join("")===v,le(),g.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(l.createElement("fieldset"))})),C.find=Z,C.expr[":"]=C.expr.pseudos,C.unique=C.uniqueSort,Z.compile=ve,Z.select=ye,Z.setDocument=le,Z.tokenize=ce,Z.escape=C.escapeSelector,Z.getText=C.text,Z.isXML=C.isXMLDoc,Z.selectors=C.expr,Z.support=C.support,Z.uniqueSort=C.uniqueSort}();var L=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&C(e).is(n))break;r.push(e)}return r},z=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},q=C.expr.match.needsContext,H=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function F(e,t,n){return v(t)?C.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?C.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?C.grep(e,(function(e){return c.call(t,e)>-1!==n})):C.filter(t,e,n)}C.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?C.find.matchesSelector(r,e)?[r]:[]:C.find.matches(e,C.grep(t,(function(e){return 1===e.nodeType})))},C.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(C(e).filter((function(){for(t=0;t1?C.uniqueSort(n):n},filter:function(e){return this.pushStack(F(this,e||[],!1))},not:function(e){return this.pushStack(F(this,e||[],!0))},is:function(e){return!!F(this,"string"==typeof e&&q.test(e)?C(e):e||[],!1).length}});var U,W=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(C.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||U,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:W.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:b,!0)),H.test(r[1])&&C.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=b.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(C):C.makeArray(e,this)}).prototype=C.fn,U=C(b);var B=/^(?:parents|prev(?:Until|All))/,$={children:!0,contents:!0,next:!0,prev:!0};function V(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.fn.extend({has:function(e){var t=C(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&C.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?C.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?c.call(C(e),this[0]):c.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(C.uniqueSort(C.merge(this.get(),C(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),C.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return L(e,"parentNode")},parentsUntil:function(e,t,n){return L(e,"parentNode",n)},next:function(e){return V(e,"nextSibling")},prev:function(e){return V(e,"previousSibling")},nextAll:function(e){return L(e,"nextSibling")},prevAll:function(e){return L(e,"previousSibling")},nextUntil:function(e,t,n){return L(e,"nextSibling",n)},prevUntil:function(e,t,n){return L(e,"previousSibling",n)},siblings:function(e){return z((e.parentNode||{}).firstChild,e)},children:function(e){return z(e.firstChild)},contents:function(e){return null!=e.contentDocument&&a(e.contentDocument)?e.contentDocument:(E(e,"template")&&(e=e.content||e),C.merge([],e.childNodes))}},(function(e,t){C.fn[e]=function(n,r){var i=C.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=C.filter(r,i)),this.length>1&&($[e]||C.uniqueSort(i),B.test(e)&&i.reverse()),this.pushStack(i)}}));var Y=/[^\x20\t\r\n\f]+/g;function X(e){return e}function Q(e){throw e}function K(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}C.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return C.each(e.match(Y)||[],(function(e,n){t[n]=!0})),t}(e):C.extend({},e);var t,n,r,i,o=[],a=[],s=-1,l=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--})),this},has:function(e){return e?C.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||l()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!r}};return u},C.extend({Deferred:function(e){var t=[["notify","progress",C.Callbacks("memory"),C.Callbacks("memory"),2],["resolve","done",C.Callbacks("once memory"),C.Callbacks("once memory"),0,"resolved"],["reject","fail",C.Callbacks("once memory"),C.Callbacks("once memory"),1,"rejected"]],n="pending",i={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return C.Deferred((function(n){C.each(t,(function(t,r){var i=v(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&v(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,n,i){var o=0;function a(e,t,n,i){return function(){var s=this,l=arguments,u=function(){var r,u;if(!(e=o&&(n!==Q&&(s=void 0,l=[r]),t.rejectWith(s,l))}};e?c():(C.Deferred.getErrorHook?c.error=C.Deferred.getErrorHook():C.Deferred.getStackHook&&(c.error=C.Deferred.getStackHook()),r.setTimeout(c))}}return C.Deferred((function(r){t[0][3].add(a(0,r,v(i)?i:X,r.notifyWith)),t[1][3].add(a(0,r,v(e)?e:X)),t[2][3].add(a(0,r,v(n)?n:Q))})).promise()},promise:function(e){return null!=e?C.extend(e,i):i}},o={};return C.each(t,(function(e,r){var a=r[2],s=r[5];i[r[1]]=a.add,s&&a.add((function(){n=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),a.add(r[3].fire),o[r[0]]=function(){return o[r[0]+"With"](this===o?void 0:this,arguments),this},o[r[0]+"With"]=a.fireWith})),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=s.call(arguments),o=C.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?s.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(K(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||v(i[n]&&i[n].then)))return o.then();for(;n--;)K(i[n],a(n),o.reject);return o.promise()}});var G=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;C.Deferred.exceptionHook=function(e,t){r.console&&r.console.warn&&e&&G.test(e.name)&&r.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},C.readyException=function(e){r.setTimeout((function(){throw e}))};var J=C.Deferred();function Z(){b.removeEventListener("DOMContentLoaded",Z),r.removeEventListener("load",Z),C.ready()}C.fn.ready=function(e){return J.then(e).catch((function(e){C.readyException(e)})),this},C.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--C.readyWait:C.isReady)||(C.isReady=!0,!0!==e&&--C.readyWait>0||J.resolveWith(b,[C]))}}),C.ready.then=J.then,"complete"===b.readyState||"loading"!==b.readyState&&!b.documentElement.doScroll?r.setTimeout(C.ready):(b.addEventListener("DOMContentLoaded",Z),r.addEventListener("load",Z));var ee=function(e,t,n,r,i,o,a){var s=0,l=e.length,u=null==n;if("object"===x(n))for(s in i=!0,n)ee(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),u&&(a?(t.call(e,r),t=null):(u=t,t=function(e,t,n){return u.call(C(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each((function(){le.remove(this,e)}))}}),C.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=se.get(e,t),n&&(!r||Array.isArray(n)?r=se.access(e,t,C.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=C.queue(e,t),r=n.length,i=n.shift(),o=C._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,(function(){C.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return se.get(e,n)||se.access(e,n,{empty:C.Callbacks("once memory").add((function(){se.remove(e,[t+"queue",n])}))})}}),C.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,Ee=/^$|^module$|\/(?:java|ecma)script/i;ke=b.createDocumentFragment().appendChild(b.createElement("div")),(Se=b.createElement("input")).setAttribute("type","radio"),Se.setAttribute("checked","checked"),Se.setAttribute("name","t"),ke.appendChild(Se),g.checkClone=ke.cloneNode(!0).cloneNode(!0).lastChild.checked,ke.innerHTML="",g.noCloneChecked=!!ke.cloneNode(!0).lastChild.defaultValue,ke.innerHTML="",g.option=!!ke.lastChild;var Pe={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function De(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&E(e,t)?C.merge([e],n):n}function Me(e,t){for(var n=0,r=e.length;n",""]);var Ne=/<|&#?\w+;/;function Oe(e,t,n,r,i){for(var o,a,s,l,u,c,h=t.createDocumentFragment(),f=[],d=0,p=e.length;d-1)i&&i.push(o);else if(u=ge(o),a=De(h.appendChild(o),"script"),u&&Me(a),n)for(c=0;o=a[c++];)Ee.test(o.type||"")&&n.push(o);return h}var Re=/^([^.]*)(?:\.(.+)|)/;function je(){return!0}function Ie(){return!1}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ie;else if(!i)return e;return 1===o&&(a=i,i=function(e){return C().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=C.guid++)),e.each((function(){C.event.add(this,t,i,r,n)}))}function Le(e,t,n){n?(se.set(e,t,!1),C.event.add(e,t,{namespace:!1,handler:function(e){var n,r=se.get(this,t);if(1&e.isTrigger&&this[t]){if(r)(C.event.special[t]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),se.set(this,t,r),this[t](),n=se.get(this,t),se.set(this,t,!1),r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(se.set(this,t,C.event.trigger(r[0],r.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=je)}})):void 0===se.get(e,t)&&C.event.add(e,t,je)}C.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,u,c,h,f,d,p,m,g=se.get(e);if(oe(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&C.find.matchesSelector(me,i),n.guid||(n.guid=C.guid++),(l=g.events)||(l=g.events=Object.create(null)),(a=g.handle)||(a=g.handle=function(t){return void 0!==C&&C.event.triggered!==t.type?C.event.dispatch.apply(e,arguments):void 0}),u=(t=(t||"").match(Y)||[""]).length;u--;)d=m=(s=Re.exec(t[u])||[])[1],p=(s[2]||"").split(".").sort(),d&&(h=C.event.special[d]||{},d=(i?h.delegateType:h.bindType)||d,h=C.event.special[d]||{},c=C.extend({type:d,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&C.expr.match.needsContext.test(i),namespace:p.join(".")},o),(f=l[d])||((f=l[d]=[]).delegateCount=0,h.setup&&!1!==h.setup.call(e,r,p,a)||e.addEventListener&&e.addEventListener(d,a)),h.add&&(h.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?f.splice(f.delegateCount++,0,c):f.push(c),C.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,s,l,u,c,h,f,d,p,m,g=se.hasData(e)&&se.get(e);if(g&&(l=g.events)){for(u=(t=(t||"").match(Y)||[""]).length;u--;)if(d=m=(s=Re.exec(t[u])||[])[1],p=(s[2]||"").split(".").sort(),d){for(h=C.event.special[d]||{},f=l[d=(r?h.delegateType:h.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=f.length;o--;)c=f[o],!i&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,h.remove&&h.remove.call(e,c));a&&!f.length&&(h.teardown&&!1!==h.teardown.call(e,p,g.handle)||C.removeEvent(e,d,g.handle),delete l[d])}else for(d in l)C.event.remove(e,d+t[u],n,r,!0);C.isEmptyObject(l)&&se.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),l=C.event.fix(e),u=(se.get(this,"events")||Object.create(null))[l.type]||[],c=C.event.special[l.type]||{};for(s[0]=l,t=1;t=1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&("click"!==e.type||!0!==u.disabled)){for(o=[],a={},n=0;n-1:C.find(i,this,null,[u]).length),a[i]&&o.push(r);o.length&&s.push({elem:u,handlers:o})}return u=this,l\s*$/g;function Fe(e,t){return E(e,"table")&&E(11!==t.nodeType?t:t.firstChild,"tr")&&C(e).children("tbody")[0]||e}function Ue(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Be(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(se.hasData(e)&&(s=se.get(e).events))for(i in se.remove(t,"handle events"),s)for(n=0,r=s[i].length;n1&&"string"==typeof p&&!g.checkClone&&qe.test(p))return e.each((function(i){var o=e.eq(i);m&&(t[0]=p.call(this,i,o.html())),Ve(o,t,n,r)}));if(f&&(o=(i=Oe(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=C.map(De(i,"script"),Ue)).length;h0&&Me(a,!l&&De(e,"script")),s},cleanData:function(e){for(var t,n,r,i=C.event.special,o=0;void 0!==(n=e[o]);o++)if(oe(n)){if(t=n[se.expando]){if(t.events)for(r in t.events)i[r]?C.event.remove(n,r):C.removeEvent(n,r,t.handle);n[se.expando]=void 0}n[le.expando]&&(n[le.expando]=void 0)}}}),C.fn.extend({detach:function(e){return Ye(this,e,!0)},remove:function(e){return Ye(this,e)},text:function(e){return ee(this,(function(e){return void 0===e?C.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Ve(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Fe(this,e).appendChild(e)}))},prepend:function(){return Ve(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Fe(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Ve(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Ve(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(C.cleanData(De(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return C.clone(this,e,t)}))},html:function(e){return ee(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ze.test(e)&&!Pe[(Te.exec(e)||["",""])[1].toLowerCase()]){e=C.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-l-s-.5))||0),l+u}function ct(e,t,n){var r=Ke(e),i=(!g.boxSizingReliable()||n)&&"border-box"===C.css(e,"boxSizing",!1,r),o=i,a=Ze(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Xe.test(a)){if(!n)return a;a="auto"}return(!g.boxSizingReliable()&&i||!g.reliableTrDimensions()&&E(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===C.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===C.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+ut(e,t,n||(i?"border":"content"),o,r,a)+"px"}function ht(e,t,n,r,i){return new ht.prototype.init(e,t,n,r,i)}C.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ze(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=ie(t),l=Qe.test(t),u=e.style;if(l||(t=it(s)),a=C.cssHooks[t]||C.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];"string"==(o=typeof n)&&(i=de.exec(n))&&i[1]&&(n=be(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||l||(n+=i&&i[3]||(C.cssNumber[s]?"":"px")),g.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(l?u.setProperty(t,n):u[t]=n))}},css:function(e,t,n,r){var i,o,a,s=ie(t);return Qe.test(t)||(t=it(s)),(a=C.cssHooks[t]||C.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ze(e,t,r)),"normal"===i&&t in st&&(i=st[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),C.each(["height","width"],(function(e,t){C.cssHooks[t]={get:function(e,n,r){if(n)return!ot.test(C.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ct(e,t,r):Ge(e,at,(function(){return ct(e,t,r)}))},set:function(e,n,r){var i,o=Ke(e),a=!g.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===C.css(e,"boxSizing",!1,o),l=r?ut(e,t,r,s,o):0;return s&&a&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-ut(e,t,"border",!1,o)-.5)),l&&(i=de.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=C.css(e,t)),lt(0,n,l)}}})),C.cssHooks.marginLeft=et(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Ze(e,"marginLeft"))||e.getBoundingClientRect().left-Ge(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),C.each({margin:"",padding:"",border:"Width"},(function(e,t){C.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+pe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(C.cssHooks[e+t].set=lt)})),C.fn.extend({css:function(e,t){return ee(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ke(e),i=t.length;a1)}}),C.Tween=ht,ht.prototype={constructor:ht,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||C.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(C.cssNumber[n]?"":"px")},cur:function(){var e=ht.propHooks[this.prop];return e&&e.get?e.get(this):ht.propHooks._default.get(this)},run:function(e){var t,n=ht.propHooks[this.prop];return this.options.duration?this.pos=t=C.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ht.propHooks._default.set(this),this}},ht.prototype.init.prototype=ht.prototype,ht.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=C.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){C.fx.step[e.prop]?C.fx.step[e.prop](e):1!==e.elem.nodeType||!C.cssHooks[e.prop]&&null==e.elem.style[it(e.prop)]?e.elem[e.prop]=e.now:C.style(e.elem,e.prop,e.now+e.unit)}}},ht.propHooks.scrollTop=ht.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},C.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},C.fx=ht.prototype.init,C.fx.step={};var ft,dt,pt=/^(?:toggle|show|hide)$/,mt=/queueHooks$/;function gt(){dt&&(!1===b.hidden&&r.requestAnimationFrame?r.requestAnimationFrame(gt):r.setTimeout(gt,C.fx.interval),C.fx.tick())}function vt(){return r.setTimeout((function(){ft=void 0})),ft=Date.now()}function yt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=pe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function bt(e,t,n){for(var r,i=(_t.tweeners[t]||[]).concat(_t.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each((function(){C.removeAttr(this,e)}))}}),C.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?C.prop(e,t,n):(1===o&&C.isXMLDoc(e)||(i=C.attrHooks[t.toLowerCase()]||(C.expr.match.bool.test(t)?wt:void 0)),void 0!==n?null===n?void C.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=C.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&E(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(Y);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),wt={set:function(e,t,n){return!1===t?C.removeAttr(e,n):e.setAttribute(n,n),n}},C.each(C.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=xt[t]||C.find.attr;xt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=xt[a],xt[a]=i,i=null!=n(e,t,r)?a:null,xt[a]=o),i}}));var kt=/^(?:input|select|textarea|button)$/i,St=/^(?:a|area)$/i;function Ct(e){return(e.match(Y)||[]).join(" ")}function Tt(e){return e.getAttribute&&e.getAttribute("class")||""}function Et(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(Y)||[]}C.fn.extend({prop:function(e,t){return ee(this,C.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[C.propFix[e]||e]}))}}),C.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&C.isXMLDoc(e)||(t=C.propFix[t]||t,i=C.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=C.find.attr(e,"tabindex");return t?parseInt(t,10):kt.test(e.nodeName)||St.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(C.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),C.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){C.propFix[this.toLowerCase()]=this})),C.fn.extend({addClass:function(e){var t,n,r,i,o,a;return v(e)?this.each((function(t){C(this).addClass(e.call(this,t,Tt(this)))})):(t=Et(e)).length?this.each((function(){if(r=Tt(this),n=1===this.nodeType&&" "+Ct(r)+" "){for(o=0;o-1;)n=n.replace(" "+i+" "," ");a=Ct(n),r!==a&&this.setAttribute("class",a)}})):this:this.attr("class","")},toggleClass:function(e,t){var n,r,i,o,a=typeof e,s="string"===a||Array.isArray(e);return v(e)?this.each((function(n){C(this).toggleClass(e.call(this,n,Tt(this),t),t)})):"boolean"==typeof t&&s?t?this.addClass(e):this.removeClass(e):(n=Et(e),this.each((function(){if(s)for(o=C(this),i=0;i-1)return!0;return!1}});var Pt=/\r/g;C.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=v(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,C(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=C.map(i,(function(e){return null==e?"":e+""}))),(t=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=C.valHooks[i.type]||C.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(Pt,""):null==n?"":n:void 0}}),C.extend({valHooks:{option:{get:function(e){var t=C.find.attr(e,"value");return null!=t?t:Ct(C.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],l=a?o+1:i.length;for(r=o<0?l:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),C.each(["radio","checkbox"],(function(){C.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=C.inArray(C(e).val(),t)>-1}},g.checkOn||(C.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var Dt=r.location,Mt={guid:Date.now()},Nt=/\?/;C.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new r.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||C.error("Invalid XML: "+(n?C.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var Ot=/^(?:focusinfocus|focusoutblur)$/,Rt=function(e){e.stopPropagation()};C.extend(C.event,{trigger:function(e,t,n,i){var o,a,s,l,u,c,h,f,p=[n||b],m=d.call(e,"type")?e.type:e,g=d.call(e,"namespace")?e.namespace.split("."):[];if(a=f=s=n=n||b,3!==n.nodeType&&8!==n.nodeType&&!Ot.test(m+C.event.triggered)&&(m.indexOf(".")>-1&&(g=m.split("."),m=g.shift(),g.sort()),u=m.indexOf(":")<0&&"on"+m,(e=e[C.expando]?e:new C.Event(m,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:C.makeArray(t,[e]),h=C.event.special[m]||{},i||!h.trigger||!1!==h.trigger.apply(n,t))){if(!i&&!h.noBubble&&!y(n)){for(l=h.delegateType||m,Ot.test(l+m)||(a=a.parentNode);a;a=a.parentNode)p.push(a),s=a;s===(n.ownerDocument||b)&&p.push(s.defaultView||s.parentWindow||r)}for(o=0;(a=p[o++])&&!e.isPropagationStopped();)f=a,e.type=o>1?l:h.bindType||m,(c=(se.get(a,"events")||Object.create(null))[e.type]&&se.get(a,"handle"))&&c.apply(a,t),(c=u&&a[u])&&c.apply&&oe(a)&&(e.result=c.apply(a,t),!1===e.result&&e.preventDefault());return e.type=m,i||e.isDefaultPrevented()||h._default&&!1!==h._default.apply(p.pop(),t)||!oe(n)||u&&v(n[m])&&!y(n)&&((s=n[u])&&(n[u]=null),C.event.triggered=m,e.isPropagationStopped()&&f.addEventListener(m,Rt),n[m](),e.isPropagationStopped()&&f.removeEventListener(m,Rt),C.event.triggered=void 0,s&&(n[u]=s)),e.result}},simulate:function(e,t,n){var r=C.extend(new C.Event,n,{type:e,isSimulated:!0});C.event.trigger(r,null,t)}}),C.fn.extend({trigger:function(e,t){return this.each((function(){C.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return C.event.trigger(e,t,n,!0)}});var jt=/\[\]$/,It=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Lt=/^(?:input|select|textarea|keygen)/i;function zt(e,t,n,r){var i;if(Array.isArray(t))C.each(t,(function(t,i){n||jt.test(e)?r(e,i):zt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==x(t))r(e,t);else for(i in t)zt(e+"["+i+"]",t[i],n,r)}C.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!C.isPlainObject(e))C.each(e,(function(){i(this.name,this.value)}));else for(n in e)zt(n,e[n],t,i);return r.join("&")},C.fn.extend({serialize:function(){return C.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=C.prop(this,"elements");return e?C.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!C(this).is(":disabled")&&Lt.test(this.nodeName)&&!At.test(e)&&(this.checked||!Ce.test(e))})).map((function(e,t){var n=C(this).val();return null==n?null:Array.isArray(n)?C.map(n,(function(e){return{name:t.name,value:e.replace(It,"\r\n")}})):{name:t.name,value:n.replace(It,"\r\n")}})).get()}});var qt=/%20/g,Ht=/#.*$/,Ft=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)$/gm,Wt=/^(?:GET|HEAD)$/,Bt=/^\/\//,$t={},Vt={},Yt="*/".concat("*"),Xt=b.createElement("a");function Qt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(Y)||[];if(v(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Kt(e,t,n,r){var i={},o=e===Vt;function a(s){var l;return i[s]=!0,C.each(e[s]||[],(function(e,s){var u=s(t,n,r);return"string"!=typeof u||o||i[u]?o?!(l=u):void 0:(t.dataTypes.unshift(u),a(u),!1)})),l}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Gt(e,t){var n,r,i=C.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&C.extend(!0,e,r),e}Xt.href=Dt.href,C.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Dt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Yt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":C.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,C.ajaxSettings),t):Gt(C.ajaxSettings,e)},ajaxPrefilter:Qt($t),ajaxTransport:Qt(Vt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,i,o,a,s,l,u,c,h,f,d=C.ajaxSetup({},t),p=d.context||d,m=d.context&&(p.nodeType||p.jquery)?C(p):C.event,g=C.Deferred(),v=C.Callbacks("once memory"),y=d.statusCode||{},_={},w={},x="canceled",k={readyState:0,getResponseHeader:function(e){var t;if(u){if(!a)for(a={};t=Ut.exec(o);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return u?o:null},setRequestHeader:function(e,t){return null==u&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,_[e]=t),this},overrideMimeType:function(e){return null==u&&(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(u)k.always(e[k.status]);else for(t in e)y[t]=[y[t],e[t]];return this},abort:function(e){var t=e||x;return n&&n.abort(t),S(0,t),this}};if(g.promise(k),d.url=((e||d.url||Dt.href)+"").replace(Bt,Dt.protocol+"//"),d.type=t.method||t.type||d.method||d.type,d.dataTypes=(d.dataType||"*").toLowerCase().match(Y)||[""],null==d.crossDomain){l=b.createElement("a");try{l.href=d.url,l.href=l.href,d.crossDomain=Xt.protocol+"//"+Xt.host!=l.protocol+"//"+l.host}catch(e){d.crossDomain=!0}}if(d.data&&d.processData&&"string"!=typeof d.data&&(d.data=C.param(d.data,d.traditional)),Kt($t,d,t,k),u)return k;for(h in(c=C.event&&d.global)&&0==C.active++&&C.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Wt.test(d.type),i=d.url.replace(Ht,""),d.hasContent?d.data&&d.processData&&0===(d.contentType||"").indexOf("application/x-www-form-urlencoded")&&(d.data=d.data.replace(qt,"+")):(f=d.url.slice(i.length),d.data&&(d.processData||"string"==typeof d.data)&&(i+=(Nt.test(i)?"&":"?")+d.data,delete d.data),!1===d.cache&&(i=i.replace(Ft,"$1"),f=(Nt.test(i)?"&":"?")+"_="+Mt.guid+++f),d.url=i+f),d.ifModified&&(C.lastModified[i]&&k.setRequestHeader("If-Modified-Since",C.lastModified[i]),C.etag[i]&&k.setRequestHeader("If-None-Match",C.etag[i])),(d.data&&d.hasContent&&!1!==d.contentType||t.contentType)&&k.setRequestHeader("Content-Type",d.contentType),k.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Yt+"; q=0.01":""):d.accepts["*"]),d.headers)k.setRequestHeader(h,d.headers[h]);if(d.beforeSend&&(!1===d.beforeSend.call(p,k,d)||u))return k.abort();if(x="abort",v.add(d.complete),k.done(d.success),k.fail(d.error),n=Kt(Vt,d,t,k)){if(k.readyState=1,c&&m.trigger("ajaxSend",[k,d]),u)return k;d.async&&d.timeout>0&&(s=r.setTimeout((function(){k.abort("timeout")}),d.timeout));try{u=!1,n.send(_,S)}catch(e){if(u)throw e;S(-1,e)}}else S(-1,"No Transport");function S(e,t,a,l){var h,f,b,_,w,x=t;u||(u=!0,s&&r.clearTimeout(s),n=void 0,o=l||"",k.readyState=e>0?4:0,h=e>=200&&e<300||304===e,a&&(_=function(e,t,n){for(var r,i,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){l.unshift(i);break}if(l[0]in n)o=l[0];else{for(i in n){if(!l[0]||e.converters[i+" "+l[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==l[0]&&l.unshift(o),n[o]}(d,k,a)),!h&&C.inArray("script",d.dataTypes)>-1&&C.inArray("json",d.dataTypes)<0&&(d.converters["text script"]=function(){}),_=function(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(a=u[l+" "+o]||u["* "+o]))for(i in u)if((s=i.split(" "))[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){!0===a?a=u[i]:!0!==u[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}(d,_,k,h),h?(d.ifModified&&((w=k.getResponseHeader("Last-Modified"))&&(C.lastModified[i]=w),(w=k.getResponseHeader("etag"))&&(C.etag[i]=w)),204===e||"HEAD"===d.type?x="nocontent":304===e?x="notmodified":(x=_.state,f=_.data,h=!(b=_.error))):(b=x,!e&&x||(x="error",e<0&&(e=0))),k.status=e,k.statusText=(t||x)+"",h?g.resolveWith(p,[f,x,k]):g.rejectWith(p,[k,x,b]),k.statusCode(y),y=void 0,c&&m.trigger(h?"ajaxSuccess":"ajaxError",[k,d,h?f:b]),v.fireWith(p,[k,x]),c&&(m.trigger("ajaxComplete",[k,d]),--C.active||C.event.trigger("ajaxStop")))}return k},getJSON:function(e,t,n){return C.get(e,t,n,"json")},getScript:function(e,t){return C.get(e,void 0,t,"script")}}),C.each(["get","post"],(function(e,t){C[t]=function(e,n,r,i){return v(n)&&(i=i||r,r=n,n=void 0),C.ajax(C.extend({url:e,type:t,dataType:i,data:n,success:r},C.isPlainObject(e)&&e))}})),C.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),C._evalUrl=function(e,t,n){return C.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){C.globalEval(e,t,n)}})},C.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=C(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return v(e)?this.each((function(t){C(this).wrapInner(e.call(this,t))})):this.each((function(){var t=C(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=v(e);return this.each((function(n){C(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){C(this).replaceWith(this.childNodes)})),this}}),C.expr.pseudos.hidden=function(e){return!C.expr.pseudos.visible(e)},C.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},C.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(e){}};var Jt={0:200,1223:204},Zt=C.ajaxSettings.xhr();g.cors=!!Zt&&"withCredentials"in Zt,g.ajax=Zt=!!Zt,C.ajaxTransport((function(e){var t,n;if(g.cors||Zt&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=n=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Jt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),n=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&r.setTimeout((function(){t&&n()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),C.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),C.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return C.globalEval(e),e}}}),C.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),C.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=C(" + * + * @requires jQuery UI 1.8.16 + * @dependency + * + * @requires Biojs.Tooltip + * @dependency + * + * @param {Object} options An object with the options for Sequence component. + * + * @option {string} target + * Identifier of the DIV tag where the component should be displayed. + * + * @option {string} sequence + * The sequence to be displayed. + * + * @option {string} [id] + * Sequence identifier if apply. + * + * @option {string} [format="FASTA"] + * The display format for the sequence representation. + * + * @option {Object[]} [highlights] + * For highlighting multiple regions. + *
      +    *    [
      +    *    	// Highlight aminoacids from 'start' to 'end' of the current strand using the specified 'color' (optional) and 'background' (optional).
      +    *    	{ start: <startVal1>, end: <endVal1> [, id:<idVal1>] [, color: <HTMLColor>] [, background: <HTMLColor>]},
      +    *    	//
      +    *    	// Any others highlights
      +    *    	...,
      +    *    	//
      +    *    	{ start: <startValN>, end: <endValN> [, id:<idValN>] [, color: <HTMLColor>] [, background: <HTMLColor>]}
      +    *    ]
      + * + *
      +    * highlights : [
      +    * 		{ start:30, end:42, color:"white", background:"green", id:"spin1" },
      +    *		{ start:139, end:140 },
      +    *		{ start:631, end:633, color:"white", background:"blue" }
      +    *	]
      +    * 
      + * + * @option {Object} [columns={size:40,spacedEach:10}] + * Options for displaying the columns. Syntax: { size: <numCols>, spacedEach: <numCols>} + * + * @option {Object} [selection] + * Positions for the current selected region. Syntax: { start: <startValue>, end: <endValue>} + * + * @option {Object[]} [annotations] + * Set of overlapping annotations. Must be an array of objects following the syntax: + *
      +    *            [
      +    *              // An annotation:
      +    *              { name: <name>,
      +    *                html: <message>,
      +    *                color: <color_code>,
      +    *                regions: [{ start: <startVal1>, end: <endVal1> color: <HTMLColor>}, ...,{ start: <startValN>, end: <endValN>, color: <HTMLColor>}]
      +    *              },
      +    *
      +    *              // ...
      +    *              // more annotations here
      +    *              // ...
      +    *            ]
      +    *    		 
      + * where: + *
        + *
      • name is the unique name for the annotation
      • + *
      • html is the message (can be HTML) to be displayed in the tool tip.
      • + *
      • color is the default HTML color code for all the regions.
      • + *
      • regions array of objects defining the intervals which belongs to the annotation.
      • + *
      • regions[i].start is the starting character for the i-th interval.
      • + *
      • regions[i].end is the ending character for the i-th interval.
      • + *
      • regions[i].color is an optional color for the i-th interval. + *
      + * + * @option {Object} [formatOptions={title:true, footer:true}] + * Options for displaying the title. by now just affecting the CODATA format. + *
      +    * 		formatOptions : {
      +    * 			title:false,
      +    * 			footer:false
      +    * 		}
      +    *    
      + * + * @example + * var theSequence = "METLCQRLNVCQDKILTHYENDSTDLRDHIDYWKHMRLECAIYYKAREMGFKHINHQVVPTLAVSKNKALQAIELQLTLETIYNSQYSNEKWTLQDVSLEVYLTAPTGCIKKHGYTVEVQFDGDICNTMHYTNWTHIYICEEAojs SVTVVEGQVDYYGLYYVHEGIRTYFVQFKDDAEKYSKNKVWEVHAGGQVILCPTSVFSSNEVSSPEIIRQHLANHPAATHTKAVALGTEETQTTIQRPRSEPDTGNPCHTTKLLHRDSVDSAPILTAFNSSHKGRINCNSNTTPIVHLKGDANTLKCLRYRFKKHCTLYTAVSSTWHWTGHNVKHKSAIVTLTYDSEWQRDQFLSQVKIPKTITVSTGFMSI"; + * var mySequence = new Sequence({ + * sequence : theSequence, + * target : "YourOwnDivId", + * format : 'CODATA', + * id : 'P918283', + * annotations: [ + * { name:"CATH", + * color:"#F0F020", + * html: "Using color code #F0F020 ", + * regions: [{start: 122, end: 135}] + * }, + * { name:"TEST", + * html:"<br> Example of <b>HTML</b>", + * color:"green", + * regions: [ + * {start: 285, end: 292}, + * {start: 293, end: 314, color: "#2E4988"}] + * } + * ], + * highlights : [ + * { start:30, end:42, color:"white", background:"green", id:"spin1" }, + * { start:139, end:140 }, + * { start:631, end:633, color:"white", background:"blue" } + * ] + * }); + * + */ + + var Class = require('js-class'); + var EVT_ON_SELECTION_CHANGE = 'onSelectionChange'; + var EVT_ON_SELECTION_CHANGED = 'onSelectionChanged'; + var EVT_ON_ANNOTATION_CLICKED = 'onAnnotationClicked'; + __webpack_require__.g.Sequence = Class( /** @lends Sequence# */ + { + constructor: function constructor(options) { + var self = this; + this.opt = jQuery.extend(this.opt, options); + this._container = jQuery(this.opt.target); + + // legacy support (target id without '#') + if (this._container.length == 0) { + this._container = jQuery('#' + this.opt.target); + } + if (this._container.length == 0) { + console.log('empty target container'); + } + + // legacy: copy target id + this.opt.target = this._container[0].id; + + // Lazy initialization + this._container.ready(function () { + this._ready = false; + self._initialize(); + }); + }, + /** + * Default values for the options + * @name Sequence-opt + */ + opt: { + sequence: '', + id: '', + target: '', + format: 'FASTA', + selection: { + start: 0, + end: 0 + }, + columns: { + size: 35, + spacedEach: 10 + }, + highlights: [], + annotations: [], + sequenceUrl: 'http://www.ebi.ac.uk/das-srv/uniprot/das/uniprot/sequence', + // Styles + selectionColor: 'Yellow', + selectionFontColor: 'black', + highlightFontColor: 'red', + highlightBackgroundColor: 'white', + fontColor: 'inherit', + backgroundColor: 'inherit', + width: undefined, + height: undefined, + formatSelectorVisible: true + }, + /** + * Array containing the supported event names + * @name Sequence-eventTypes + */ + eventTypes: [ + /** + * @name Sequence#onSelectionChanged + * @event + * @param {function} actionPerformed An function which receives an {@link Biojs.Event} object as argument. + * @eventData {Object} source The component which did triggered the event. + * @eventData {string} type The name of the event. + * @eventData {int} start A number indicating the start of the selection. + * @eventData {int} end A number indicating the ending of selection. + * @example + * mySequence.onSelectionChanged( + * function( objEvent ) { + * alert("Selected: " + objEvent.start + ", " + objEvent.end ); + * } + * ); + * + * */ + 'onSelectionChanged', + /** + * @name Sequence#onSelectionChange + * @event + * @param {function} actionPerformed An function which receives an {@link Biojs.Event} object as argument. + * @eventData {Object} source The component which did triggered the event. + * @eventData {string} type The name of the event. + * @eventData {int} start A number indicating the start of the selection. + * @eventData {int} end A number indicating the ending of selection. + * @example + * mySequence.onSelectionChange( + * function( objEvent ) { + * alert("Selection in progress: " + objEvent.start + ", " + objEvent.end ); + * } + * ); + * + * + * */ + 'onSelectionChange', + /** + * @name Sequence#onAnnotationClicked + * @event + * @param {function} actionPerformed An function which receives an {@link Biojs.Event} object as argument. + * @eventData {Object} source The component which did triggered the event. + * @eventData {string} type The name of the event. + * @eventData {string} name The name of the selected annotation. + * @eventData {int} pos A number indicating the position of the selected amino acid. + * @example + * mySequence.onAnnotationClicked( + * function( objEvent ) { + * alert("Clicked " + objEvent.name + " on position " + objEvent.pos ); + * } + * ); + * + * */ + 'onAnnotationClicked'], + getId: function getId() { + return this.opt.id; + }, + // internal members + _headerDiv: null, + _contentDiv: null, + // Methods + + _initialize: function _initialize() { + if (this.opt.width !== undefined) { + this._container.width(this.opt.width); + } + if (this.opt.height !== undefined) { + this._container.height(this.opt.height); + } + + // DIV for the format selector + this._buildFormatSelector(); + + // DIV for the sequence + this._contentDiv = jQuery('
      ').appendTo(this._container); + + // Initialize highlighting + this._highlights = this.opt.highlights; + + // Initialize annotations + this._annotations = this.opt.annotations; + + //Initialize tooltip + var tooltip = 'sequenceTip' + this.opt.target; + jQuery('
      ').css({ + 'position': 'absolute', + 'z-index': '999999', + 'color': '#fff', + 'font-size': '12px', + 'width': 'auto', + 'display': 'none' + }).addClass('tooltip').appendTo('body').hide(); + this.opt._tooltip = document.getElementById(tooltip); + if (this.opt.sequence) { + this._redraw(); + } else if (this.opt.id) { + this._requestSequence(this.opt.id); + } else { + this.clearSequence('No sequence available', '../biojs/css/images/warning_icon.png'); + } + this._ready = true; + }, + /** + * Shows the columns indicated by the indexes array. + * @param {string} seq The sequence strand. + * @param {string} [identifier] Sequence identifier. + * + * @example + * mySequence.setSequence("P99999"); + * + */ + setSequence: function setSequence(seq, identifier) { + if (seq.match(/^([A-N,R-Z][0-9][A-Z][A-Z, 0-9][A-Z, 0-9][0-9])|([O,P,Q][0-9][A-Z, 0-9][A-Z, 0-9][A-Z, 0-9][0-9])(\.\d+)?$/i)) { + this._requestSequence(arguments[0]); + } else { + this.opt.sequence = seq; + this.opt.id = identifier; + this._highlights = []; + this._highlightsCount = 0; + this.opt.selection = { + start: 0, + end: 0 + }; + this._annotations = []; + this._contentDiv.children().remove(); + this._redraw(); + } + }, + _requestSequence: function _requestSequence(accession) { + var self = this; + console.log('Requesting sequence for: ' + accession); + jQuery.ajax({ + url: self.opt.sequenceUrl, + dataType: 'xml', + data: { + segment: accession + } + }).done(function (xml) { + try { + var sequenceNode = jQuery(xml).find('SEQUENCE:first'); + self.setSequence(sequenceNode.text(), sequenceNode.attr('id'), sequenceNode.attr('label')); + } catch (e) { + console.log('Error decoding response data: ' + e.message); + self.clearSequence('No sequence available', '../biojs/css/images/warning_icon.png'); + } + }).fail(function (jqXHR, textStatus, errorThrown) { + console.log('Error requesting the sequence: ' + textStatus); + self.clearSequence('Error requesting the sequence to the server ' + this.url, '../biojs/css/images/warning_icon.png'); + }); + }, + /** + * Shows the columns indicated by the indexes array. + * @param {string} [showMessage] Message to be showed. + * @param {string} [icon] Icon to be showed a side of the message + * + * @example + * mySequence.clearSequence("No sequence available", "../biojs/css/images/warning_icon.png"); + * + */ + clearSequence: function clearSequence(showMessage, icon) { + var message = undefined; + this.opt.sequence = ''; + this.opt.id = ''; + this._highlights = []; + this._highlightsCount = 0; + this.opt.selection = { + start: 0, + end: 0 + }; + this._annotations = []; + this._contentDiv.children().remove(); + this._headerDiv.hide(); + if (undefined !== showMessage) { + message = jQuery('
      ' + showMessage + '
      ').appendTo(this._contentDiv).addClass('message'); + if (undefined !== icon) { + message.css({ + 'background': 'transparent url("' + icon + '") no-repeat center left', + 'padding-left': '20px' + }); + } + } + }, + /** + * Set the current selection in the sequence causing the event {@link Sequence#onSelectionChanged} + * + * @example + * // set selection from the position 100 to 150 + * mySequence.setSelection(100, 150); + * + * @param {int} start The starting character of the selection. + * @param {int} end The ending character of the selection + */ + setSelection: function setSelection(start, end) { + if (start > end) { + var aux = end; + end = start; + start = aux; + } + if (start != this.opt.selection.start || end != this.opt.selection.end) { + this._setSelection(start, end); + this.trigger(EVT_ON_SELECTION_CHANGED, { + 'start': start, + 'end': end + }); + } + }, + _buildFormatSelector: function _buildFormatSelector() { + var self = this; + console.log('build format selector container', this._container); + this._headerDiv = jQuery('
      ').appendTo(this._container); + this._headerDiv.append('Format: '); + this._formatSelector = jQuery('').appendTo(self._headerDiv); + this._formatSelector.change(function (e) { + self.opt.format = jQuery(this).val(); + self._redraw(); + }); + this._formatSelector.val(self.opt.format); + this.formatSelectorVisible(this.opt.formatSelectorVisible); + }, + /** + * Highlights a region using the font color defined in {Sequence#highlightFontColor} by default is red. + * + * @example + * // highlight the characters within the position 100 to 150, included. + * mySequence.addHighlight( { "start": 100, "end": 150, "color": "white", "background": "red", "id": "aaa" } ); + * + * @param {Object} h The highlight defined as follows: + * + * + * @return {int} representing the id of the highlight on the internal array. Returns -1 on failure + */ + addHighlight: function addHighlight(h) { + var id = '-1'; + var color = ''; + var background = ''; + var highlight = {}; + if (h instanceof Object && h.start <= h.end) { + color = 'string' == typeof h.color ? h.color : this.opt.highlightFontColor; + background = 'string' == typeof h.background ? h.background : this.opt.highlightBackgroundColor; + id = 'string' == typeof h.id ? h.id : new Number(this._highlightsCount++).toString(); + highlight = { + 'start': h.start, + 'end': h.end, + 'color': color, + 'background': background, + 'id': id + }; + this._highlights.push(highlight); + this._applyHighlight(highlight); + this._restoreSelection(h.start, h.end); + } + return id; + }, + /* + * Function: Sequence._applyHighlight + * Purpose: Apply the specified color and background to a region between 'start' and 'end'. + * Returns: - + * Inputs: highlight -> {Object} An object containing the fields start (int), end (int), + * color (HTML color string) and background (HTML color string). + */ + _applyHighlight: function _applyHighlight(highlight) { + var zindex = 0, + z = 0, + o = 0; + var seq = this._contentDiv.find('.sequence'); + for (var i = highlight.start - 1; i < highlight.end; i++) { + zindex = jQuery(seq[i]).css('z-index'); + if (zindex == 'auto') { + z = 1; + o = 1; + } else { + z = 0; + o = 0.5; + } + jQuery(seq[i]).css({ + 'color': highlight.color, + 'background-color': highlight.background, + 'z-index': z, + 'opacity': o + }).addClass('highlighted'); + } + }, + /* + * Function: Sequence._applyHighlights + * Purpose: Apply the specified highlights. + * Returns: - + * Inputs: highlights -> {Object[]} An array containing the highlights to be applied. + */ + _applyHighlights: function _applyHighlights(highlights) { + for (var i in highlights) { + this._applyHighlight(highlights[i]); + } + }, + /* + * Function: Sequence._restoreHighlights + * Purpose: Repaint the highlights in the specified region. + * Returns: - + * Inputs: start -> {int} Start of the region to be restored. + * end -> {int} End of the region to be restored. + */ + _restoreHighlights: function _restoreHighlights(start, end) { + var h = this._highlights; + // paint the region using default blank settings + this._applyHighlight({ + 'start': start, + 'end': end, + 'color': this.opt.fontColor, + 'background': this.opt.backgroundColor + }); + // restore highlights in that region + for (var i in h) { + // interval intersects with highlight i ? + if (!(h[i].start > end || h[i].end < start)) { + a = h[i].start < start ? start : h[i].start; + b = h[i].end > end ? end : h[i].end; + this._applyHighlight({ + 'start': a, + 'end': b, + 'color': h[i].color, + 'background': h[i].background + }); + } + } + }, + /* + * Function: Sequence._restoreSelection + * Purpose: Repaint the current selection in the specified region. + * It is used in the case of any highlight do overriding of the current selection. + * Returns: - + * Inputs: start -> {int} Start of the region to be restored. + * end -> {int} End of the region to be restored. + */ + _restoreSelection: function _restoreSelection(start, end) { + var sel = this.opt.selection; + // interval intersects with current selection ? + // restore selection + if (!(start > sel.end || end < sel.start)) { + a = start < sel.start ? sel.start : start; + b = end > sel.end ? sel.end : end; + this._applyHighlight({ + 'start': a, + 'end': b, + 'color': this.opt.selectionFontColor, + 'background': this.opt.selectionColor + }); + } + }, + /** + * Remove a highlight. + * + * @example + * // Clear the highlighted characters within the position 100 to 150, included. + * mySequence.removeHighlight("spin1"); + * + * @param {string} id The id of the highlight on the internal array. This value is returned by method highlight. + */ + removeHighlight: function removeHighlight(id) { + var h = this._highlights; + for (i in h) { + if (h[i].id == id) { + start = h[i].start; + end = h[i].end; + h.splice(i, 1); + this._restoreHighlights(start, end); + this._restoreSelection(start, end); + break; + } + } + }, + /** + * Remove all the highlights of whole sequence. + * + * @example + * mySequence.removeAllHighlights(); + */ + removeAllHighlights: function removeAllHighlights() { + this._highlights = []; + this._restoreHighlights(1, this.opt.sequence.length); + this._restoreSelection(1, this.opt.sequence.length); + }, + /** + * Changes the current displaying format of the sequence. + * + * @example + * // Set format to 'FASTA'. + * mySequence.setFormat('FASTA'); + * + * @param {string} format The format for the sequence to be displayed. + */ + setFormat: function setFormat(format) { + if (this.opt.format != format.toUpperCase()) { + this.opt.format = format.toUpperCase(); + this._redraw(); + } + var self = this; + // Changes the option in the combo box + this._headerDiv.find('option').each(function () { + if (jQuery(this).val() == self.opt.format.toUpperCase()) { + jQuery(this).attr('selected', 'selected'); + } + }); + }, + /** + * Changes the current number of columns in the displayed sequence. + * + * @example + * // Set the number of columns to 70. + * mySequence.setNumCols(70); + * + * @param {int} numCols The number of columns. + */ + setNumCols: function setNumCols(numCols) { + this.opt.columns.size = numCols; + this._redraw(); + }, + /** + * Set the visibility of the drop-down list of formats. + * + * @param {boolean} visible true: show; false: hide. + */ + formatSelectorVisible: function formatSelectorVisible(visible) { + if (visible) { + this._headerDiv.show(); + } else { + this._headerDiv.hide(); + } + }, + /** + * This is similar to a {Biojs.Protein3D#formatSelectorVisible} with the 'true' argument. + * + * @example + * // Shows the format selector. + * mySequence.showFormatSelector(); + * + */ + showFormatSelector: function showFormatSelector() { + this._headerDiv.show(); + }, + /** + * This is similar to a {Biojs.Protein3D#formatSelectorVisible} with the 'false' argument. + * + * @example + * // Hides the format selector. + * mySequence.hideFormatSelector(); + * + */ + hideFormatSelector: function hideFormatSelector() { + this._headerDiv.hide(); + }, + /** + * Hides the whole component. + * + */ + hide: function hide() { + this._headerDiv.hide(); + this._contentDiv.hide(); + }, + /** + * Shows the whole component. + * + */ + show: function show() { + this._headerDiv.show(); + this._contentDiv.show(); + }, + /* + * Function: Sequence._setSelection + * Purpose: Update the current selection. + * Returns: - + * Inputs: start -> {int} Start of the region to be selected. + * end -> {int} End of the region to be selected. + */ + _setSelection: function _setSelection(start, end) { + //alert("adsas"); + + var current = this.opt.selection; + var change = {}; + + // Which is the change on selection? + if (current.start == start) { + // forward? + if (current.end < end) { + change.start = current.end; + change.end = end; + } else { + this._restoreHighlights(end + 1, current.end); + } + } else if (current.end == end) { + // forward? + if (current.start > start) { + change.start = start; + change.end = current.start; + } else { + this._restoreHighlights(current.start, start - 1); + } + } else { + this._restoreHighlights(current.start, current.end); + change.start = start; + change.end = end; + } + current.start = start; + current.end = end; + }, + /* + * Function: Sequence._repaintSelection + * Purpose: Repaint the whole current selection. + * Returns: - + * Inputs: - + */ + _repaintSelection: function _repaintSelection() { + var s = this.opt.selection; + this._setSelection(0, 0); + this._setSelection(s.start, s.end); + }, + /* + * Function: Sequence._redraw + * Purpose: Repaint the current sequence. + * Returns: - + * Inputs: - + */ + _redraw: function _redraw() { + var i = 0; + var self = this; + + // Reset the content + //this._contentDiv.text(''); + this._contentDiv.children().remove(); + + // Rebuild the spans of the sequence + // according to format + if (this.opt.format == 'RAW') { + this._drawRaw(); + } else if (this.opt.format == 'CODATA') { + this._drawCodata(); + } else if (this.opt.format == 'FASTA') { + this._drawFasta(); + } else { + this.opt.format = 'PRIDE'; + this._drawPride(); + } + + // Restore the highlighted regions + this._applyHighlights(this._highlights); + this._repaintSelection(); + this._addSpanEvents(); + }, + /* + * Function: Sequence._drawFasta + * Purpose: Repaint the current sequence using FASTA format. + * Returns: - + * Inputs: - + */ + _drawFasta: function _drawFasta() { + var self = this; + var a = this.opt.sequence.toUpperCase().split(''); + var pre = jQuery('
      ').appendTo(this._contentDiv);
      +        var i = 1;
      +        var arr = [];
      +        var str = '>' + this.opt.id + ' ' + a.length + ' bp
      '; + + /* Correct column size in case the sequence is as small peptide */ + var numCols = this.opt.columns.size; + if (this.opt.sequence.length < this.opt.columns.size) { + numCols = this.opt.sequence.length; + } + var opt = { + numCols: numCols, + numColsForSpace: 0 + }; + str += this._drawSequence(a, opt); + pre.html(str); + this._drawAnnotations(opt); + }, + /* + * Function: Sequence._drawCodata + * Purpose: Repaint the current sequence using CODATA format. + * Returns: - + * Inputs: - + */ + _drawCodata: function _drawCodata() { + var seq = this.opt.sequence.toUpperCase().split(''); + + // Add header. + if (this.opt.formatOptions !== undefined) { + if (this.opt.formatOptions.title !== undefined) { + if (this.opt.formatOptions.title != false) { + var header = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
      ').addClass('header').appendTo(this._contentDiv);
      +              header.html('ENTRY           ' + this.opt.id + '
      SEQUENCE
      '); + } + } + } + + /* Correct column size in case the sequence is as small peptide */ + var numCols = this.opt.columns.size; + if (this.opt.sequence.length < this.opt.columns.size) { + numCols = this.opt.sequence.length; + } + var opt = { + numLeft: true, + numLeftSize: 7, + numLeftPad: ' ', + numTop: true, + numTopEach: 5, + numCols: numCols, + numColsForSpace: 0, + spaceBetweenChars: true + }; + this._drawSequence(seq, opt); + + // Add footer. + if (this.opt.formatOptions !== undefined) { + if (this.opt.formatOptions.footer !== undefined) { + if (this.opt.formatOptions.footer != false) { + var footer = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
      ').addClass('footer').appendTo(this._contentDiv);
      +              footer.html('
      ///'); + } + } + } + this._drawAnnotations(opt); + }, + /* + * Function: Sequence._drawAnnotations + * Purpose: Paint the annotations on the sequence. + * Returns: - + * Inputs: settings -> {object} + */ + _drawAnnotations: function _drawAnnotations(settings) { + var self = this; + var a = this.opt.sequence.toLowerCase().split(''); + var annotations = this._annotations; + var leftSpaces = ''; + var row = ''; + var annot = ''; + + // Index at the left? + if (settings.numLeft) { + leftSpaces += this._formatIndex(' ', settings.numLeftSize + 2, ' '); + } + for (var i = 0; i < a.length; i += settings.numCols) { + row = ''; + for (var key in annotations) { + annotations[key].id = this.getId() + '_' + key; + annot = this._getHTMLRowAnnot(i + 1, annotations[key], settings); + if (annot.length > 0) { + row += '
      '; + row += leftSpaces; + row += annot; + row += '
      '; + } + } + var numCols = settings.numCols; + var charRemaining = a.length - i; + if (charRemaining < numCols) { + numCols = charRemaining; + } + if (settings.numRight) { + jQuery(row).insertAfter('div#' + self.opt.target + ' div pre span#numRight_' + this.getId() + '_' + (i + numCols)); + } else { + jQuery(row).insertAfter('div#' + self.opt.target + ' div pre span#' + this.getId() + '_' + (i + numCols)); + } + } + + // add tool tips and background' coloring effect + jQuery(this._contentDiv).find('.annotation').each(function () { + self._addToolTip(this, function () { + return self._getAnnotationString(jQuery(this).attr('id')); + }); + jQuery(this).mouseover(function (e) { + jQuery('.annotation.' + jQuery(e.target).attr('id')).each(function () { + jQuery(this).css('background-color', jQuery(this).attr('color')); + }); + }).mouseout(function () { + jQuery('.annotation').css('background-color', 'transparent'); + }).click(function (e) { + var name = undefined; + var id = jQuery(e.target).attr('id'); + for (var i = 0; i < self._annotations.length; i++) { + if (self._annotations[i].id == id) { + name = self._annotations[i].name; + continue; + } + } + self.trigger(EVT_ON_ANNOTATION_CLICKED, { + 'name': name + //"pos": parseInt( jQuery(e.target).attr("pos") ) + }); + }); + }); + }, + /* + * Function: Sequence._getAnnotationString + * Purpose: Get the annotation text message for the tooltip + * Returns: {string} Annotation text for the annotation + * Inputs: id -> {int} index of the internal annotation array + */ + _getAnnotationString: function _getAnnotationString(id) { + var annotation = this._annotations[id.substr(id.indexOf('_') + 1)]; + return annotation.name + '
      ' + (annotation.html ? annotation.html : ''); + }, + /* + * Function: Sequence._getHTMLRowAnnot + * Purpose: Build an annotation + * Returns: HTML of the annotation + * Inputs: currentPos -> {int} + * annotation -> {Object} + * settings -> {Object} + */ + _getHTMLRowAnnot: function _getHTMLRowAnnot(currentPos, annotation, settings) { + var styleBegin = 'border-left:1px solid; border-bottom:1px solid; border-color:'; + var styleOn = 'border-bottom:1px solid; border-color:'; + var styleEnd = 'border-bottom:1px solid; border-right:1px solid; border-color:'; + var styleBeginAndEnd = 'border-left:1px solid; border-right:1px solid; border-bottom:1px solid; border-color:'; + var row = []; + var end = currentPos + settings.numCols; + var spaceBetweenChars = settings.spaceBetweenChars ? ' ' : ''; + var defaultColor = annotation.color; + var id = annotation.id; + for (var pos = currentPos; pos < end; pos++) { + // regions + for (var r in annotation.regions) { + region = annotation.regions[r]; + spaceAfter = ''; + spaceAfter += pos % settings.numColsForSpace == 0 ? ' ' : ''; + spaceAfter += spaceBetweenChars; + color = region.color ? region.color : defaultColor; + data = 'class="annotation ' + id + '" id="' + id + '" color="' + color + '" pos="' + pos + '"'; + if (pos == region.start && pos == region.end) { + row[pos] = ' '; + row[pos] += spaceAfter; + row[pos] += ''; + } else if (pos == region.start) { + row[pos] = ' '; + row[pos] += spaceAfter; + row[pos] += ''; + } else if (pos == region.end) { + row[pos] = ' '; + //row[pos] += spaceAfter; + row[pos] += ''; + } else if (pos > region.start && pos < region.end) { + row[pos] = ' '; + row[pos] += spaceAfter; + row[pos] += ''; + } else if (!row[pos]) { + row[pos] = ' '; + row[pos] += spaceAfter; + } + } + } + var str = row.join(''); + return str.indexOf('span') == -1 ? '' : str; + }, + /* + * Function: Sequence._drawRaw + * Purpose: Repaint the current sequence using RAW format. + * Returns: - + * Inputs: - + */ + _drawRaw: function _drawRaw() { + var self = this; + var a = this.opt.sequence.toLowerCase().split(''); + var i = 0; + var arr = []; + var pre = jQuery('
      ').appendTo(this._contentDiv);
      +
      +        /* Correct column size in case the sequence is as small peptide */
      +        var numCols = this.opt.columns.size;
      +        if (this.opt.sequence.length < this.opt.columns.size) {
      +          numCols = this.opt.sequence.length;
      +        }
      +        var opt = {
      +          numCols: numCols
      +        };
      +        pre.html(this._drawSequence(a, opt));
      +        this._drawAnnotations(opt);
      +      },
      +      /*
      +      * Function: Sequence._drawPride
      +      * Purpose:  Repaint the current sequence using PRIDE format.
      +      * Returns:  -
      +      * Inputs: -
      +      */
      +      _drawPride: function _drawPride() {
      +        var seq = this.opt.sequence.toUpperCase().split('');
      +
      +        /* Correct column size in case the sequence is as small peptide */
      +        var numCols = this.opt.columns.size;
      +        if (this.opt.sequence.length < this.opt.columns.size) {
      +          numCols = this.opt.sequence.length;
      +        }
      +        var opt = {
      +          numLeft: true,
      +          numLeftSize: 5,
      +          numLeftPad: ' ',
      +          numRight: false,
      +          numRightSize: 5,
      +          numRightPad: '',
      +          numCols: numCols,
      +          numColsForSpace: this.opt.columns.spacedEach
      +        };
      +        this._drawSequence(seq, opt);
      +        this._drawAnnotations(opt);
      +      },
      +      /*
      +      * Function: Sequence._drawSequence
      +      * Purpose:  Repaint the current sequence using CUSTOM format.
      +      * Returns:  -
      +      * Inputs:   a -> {char[]} a The sequence strand.
      +      * 			 opt -> {Object} opt The CUSTOM format.
      +      */
      +      _drawSequence: function _drawSequence(a, opt) {
      +        var indL = '';
      +        var indT = '';
      +        var indR = '\n';
      +        var str = '';
      +
      +        // Index at top?
      +        if (opt.numTop) {
      +          indT += '';
      +          var size = opt.spaceBetweenChars ? opt.numTopEach * 2 : opt.numTopEach;
      +          if (opt.numLeft) {
      +            indT += this._formatIndex(' ', opt.numLeftSize, ' ');
      +          }
      +          indT += this._formatIndex(' ', size, ' ');
      +          for (var x = opt.numTopEach; x < opt.numCols; x += opt.numTopEach) {
      +            indT += this._formatIndex(x, size, ' ', true);
      +          }
      +          indT += '';
      +        }
      +
      +        // Index at the left?
      +        if (opt.numLeft) {
      +          indL += '' + a[i - 1] + '';
      +            if (opt.numRight) {
      +              indR += ' 0) {
      +              indL += '';
      +        }
      +        var ret = [];
      +        if (opt.numTop) {
      +          jquery__WEBPACK_IMPORTED_MODULE_0___default()('
      ').html(indT).addClass('indT').css({
      +            color: '#aaa'
      +          }).appendTo(this._contentDiv);
      +        }
      +        if (opt.numLeft) {
      +          jquery__WEBPACK_IMPORTED_MODULE_0___default()('
      ').html(indL).addClass('indL').css({
      +            color: '#aaa',
      +            display: 'inline-block'
      +          }).appendTo(this._contentDiv);
      +        }
      +        jquery__WEBPACK_IMPORTED_MODULE_0___default()('
      ').html(str).addClass('seqF').css({
      +          display: 'inline-block'
      +        }).appendTo(this._contentDiv);
      +        if (opt.numRight) {
      +          jquery__WEBPACK_IMPORTED_MODULE_0___default()('
      ').html(indR).addClass('indR').css({
      +            color: '#aaa',
      +            display: 'inline-block'
      +          }).appendTo(this._contentDiv);
      +        }
      +        return str;
      +      },
      +      /*
      +      * Function: Sequence._formatIndex
      +      * Purpose:  Build the HTML corresponding to counting numbers (top, left, right) in the strand.
      +      * Returns:  -
      +      * Inputs:   number -> {int} The number
      +      * 			 size -> {int} Number of bins to suit the number.
      +      * 			 fillingChar -> {char} Character to be used for filling out blank bins.
      +      * 			 alignLeft -> {bool} Tell if aligned to the left.
      +      */
      +      _formatIndex: function _formatIndex(number, size, fillingChar, alignLeft) {
      +        var str = number.toString();
      +        var filling = '';
      +        var padding = size - str.length;
      +        if (padding > 0) {
      +          while (padding-- > 0) {
      +            filling += '' + fillingChar + '';
      +          }
      +          if (alignLeft) {
      +            str = number + filling;
      +          } else {
      +            str = filling + number;
      +          }
      +        }
      +        return str;
      +      },
      +      /*
      +      * Function: Sequence._addSpanEvents
      +      * Purpose:  Add the event handlers to the strand.
      +      * Returns:  -
      +      * Inputs:   -
      +      */
      +      _addSpanEvents: function _addSpanEvents() {
      +        var self = this;
      +        var isMouseDown = false;
      +        var clickPos;
      +        var currentPos;
      +        self._contentDiv.find('.sequence').each(function () {
      +          // Register the starting position
      +          jQuery(this).mousedown(function () {
      +            var id = jQuery(this).attr('id');
      +            currentPos = parseInt(id.substr(id.indexOf('_') + 1));
      +            clickPos = currentPos;
      +            self._setSelection(clickPos, currentPos);
      +            isMouseDown = true;
      +
      +            // Selection is happening, raise an event
      +            self.trigger(EVT_ON_SELECTION_CHANGE, {
      +              'start': self.opt.selection.start,
      +              'end': self.opt.selection.end
      +            });
      +          }).mouseover(function () {
      +            // Update selection
      +            // Show tooltip containing the position
      +            var id = jQuery(this).attr('id');
      +            currentPos = parseInt(id.substr(id.indexOf('_') + 1));
      +            if (isMouseDown) {
      +              if (currentPos > clickPos) {
      +                self._setSelection(clickPos, currentPos);
      +              } else {
      +                self._setSelection(currentPos, clickPos);
      +              }
      +
      +              // Selection is happening, raise an event
      +              self.trigger(EVT_ON_SELECTION_CHANGE, {
      +                'start': self.opt.selection.start,
      +                'end': self.opt.selection.end
      +              });
      +            }
      +          }).mouseup(function () {
      +            isMouseDown = false;
      +            // Selection is done, raise an event
      +            self.trigger(EVT_ON_SELECTION_CHANGED, {
      +              'start': self.opt.selection.start,
      +              'end': self.opt.selection.end
      +            });
      +          });
      +
      +          // Add a tooltip for this sequence base.
      +          self._addToolTip.call(self, this, function () {
      +            if (isMouseDown) {
      +              return '[' + self.opt.selection.start + ', ' + self.opt.selection.end + ']';
      +            } else {
      +              return currentPos;
      +            }
      +          });
      +        }).css('cursor', 'pointer');
      +      },
      +      /*
      +      * Function: Sequence._addTooltip
      +      * Purpose:  Add a tooltip around the target DOM element provided as argument
      +      * Returns:  -
      +      * Inputs:   target -> {Element} DOM element wich is the targeted focus for the tooltip.
      +      * 			 cbGetMessageFunction -> {function} A callback function wich returns the message to be displayed in the tip.
      +      */
      +      _addToolTip: function _addToolTip(target, cbGetMessageFunction) {
      +        var tipId = this.opt._tooltip;
      +        jQuery(target).mouseover(function (e) {
      +          var offset = jQuery(e.target).offset();
      +          if (!jQuery(tipId).is(':visible')) {
      +            jQuery(tipId).css({
      +              'background-color': '#000',
      +              'padding': '3px 10px 3px 10px',
      +              'top': offset.top + jQuery(e.target).height() + 'px',
      +              'left': offset.left + jQuery(e.target).width() + 'px'
      +            }).animate({
      +              opacity: '0.85'
      +            }, 10).html(cbGetMessageFunction.call(target)).show();
      +          }
      +        }).mouseout(function () {
      +          //Remove the appended tooltip template
      +          jQuery(tipId).hide();
      +        });
      +      },
      +      /**
      +      * Annotate a set of intervals provided in the argument.
      +      *
      +      * @example
      +      * // Annotations using regions with different colors.
      +      * mySequence.addAnnotation({
      +      *    name:"UNIPROT",
      +      *    html:"<br> Example of <b>HTML</b>",
      +      *    color:"green",
      +      *    regions: [
      +      *       {start: 540, end: 560},
      +      *       {start: 561, end:580, color: "#FFA010"},
      +      *       {start: 581, end:590, color: "red"},
      +      *       {start: 690, end:710}]
      +      * });
      +      *
      +      *
      +      * @param {Object} annotation The intervals belonging to the same annotation.
      +      * Syntax: { name: <value>, color: <HTMLColorCode>, html: <HTMLString>, regions: [{ start: <startVal1>, end: <endVal1>}, ...,  { start: <startValN>, end: <endValN>}] }
      +      */
      +      addAnnotation: function addAnnotation(annotation) {
      +        this._annotations.push(annotation);
      +        this._redraw();
      +      },
      +      /**
      +      * Removes an annotation by means of its name.
      +      *
      +      * @example
      +      * // Remove the UNIPROT annotation.
      +      * mySequence.removeAnnotation('UNIPROT');
      +      *
      +      * @param {string} name The name of the annotation to be removed.
      +      *
      +      */
      +      removeAnnotation: function removeAnnotation(name) {
      +        for (var i = 0; i < this._annotations.length; i++) {
      +          if (name != this._annotations[i].name) {
      +            this._annotations.splice(i, 1);
      +            this._redraw();
      +            break;
      +          }
      +        }
      +      },
      +      /**
      +      * Removes all the current annotations.
      +      *
      +      * @example
      +      * mySequence.removeAllAnnotations();
      +      *
      +      */
      +      removeAllAnnotations: function removeAllAnnotations() {
      +        this._annotations = [];
      +        this._redraw();
      +      }
      +    });
      +    require('biojs-events').mixin(Sequence.prototype);
      +  }, {
      +    'biojs-events': 2,
      +    'jquery-browser-plugin': 20,
      +    'js-class': 22
      +  }],
      +  2: [function (require, module, exports) {
      +    var events = require('backbone-events-standalone');
      +    events.onAll = function (callback, context) {
      +      this.on('all', callback, context);
      +      return this;
      +    };
      +
      +    // Mixin utility
      +    events.oldMixin = events.mixin;
      +    events.mixin = function (proto) {
      +      events.oldMixin(proto);
      +      // add custom onAll
      +      var exports = ['onAll'];
      +      for (var i = 0; i < exports.length; i++) {
      +        var name = exports[i];
      +        proto[name] = this[name];
      +      }
      +      return proto;
      +    };
      +    module.exports = events;
      +  }, {
      +    'backbone-events-standalone': 4
      +  }],
      +  3: [function (require, module, exports) {
      +    /**
      +     * Standalone extraction of Backbone.Events, no external dependency required.
      +     * Degrades nicely when Backone/underscore are already available in the current
      +     * global context.
      +     *
      +     * Note that docs suggest to use underscore's `_.extend()` method to add Events
      +     * support to some given object. A `mixin()` method has been added to the Events
      +     * prototype to avoid using underscore for that sole purpose:
      +     *
      +     *     var myEventEmitter = BackboneEvents.mixin({});
      +     *
      +     * Or for a function constructor:
      +     *
      +     *     function MyConstructor(){}
      +     *     MyConstructor.prototype.foo = function(){}
      +     *     BackboneEvents.mixin(MyConstructor.prototype);
      +     *
      +     * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.
      +     * (c) 2013 Nicolas Perriault
      +     */
      +    /* global exports:true, define, module */
      +    (function () {
      +      var root = this,
      +        breaker = {},
      +        nativeForEach = Array.prototype.forEach,
      +        hasOwnProperty = Object.prototype.hasOwnProperty,
      +        slice = Array.prototype.slice,
      +        idCounter = 0;
      +
      +      // Returns a partial implementation matching the minimal API subset required
      +      // by Backbone.Events
      +      function miniscore() {
      +        return {
      +          keys: Object.keys || function (obj) {
      +            if (_typeof(obj) !== 'object' && typeof obj !== 'function' || obj === null) {
      +              throw new TypeError('keys() called on a non-object');
      +            }
      +            var key,
      +              keys = [];
      +            for (key in obj) {
      +              if (obj.hasOwnProperty(key)) {
      +                keys[keys.length] = key;
      +              }
      +            }
      +            return keys;
      +          },
      +          uniqueId: function uniqueId(prefix) {
      +            var id = ++idCounter + '';
      +            return prefix ? prefix + id : id;
      +          },
      +          has: function has(obj, key) {
      +            return hasOwnProperty.call(obj, key);
      +          },
      +          each: function each(obj, iterator, context) {
      +            if (obj == null) return;
      +            if (nativeForEach && obj.forEach === nativeForEach) {
      +              obj.forEach(iterator, context);
      +            } else if (obj.length === +obj.length) {
      +              for (var i = 0, l = obj.length; i < l; i++) {
      +                if (iterator.call(context, obj[i], i, obj) === breaker) return;
      +              }
      +            } else {
      +              for (var key in obj) {
      +                if (this.has(obj, key)) {
      +                  if (iterator.call(context, obj[key], key, obj) === breaker) return;
      +                }
      +              }
      +            }
      +          },
      +          once: function once(func) {
      +            var ran = false,
      +              memo;
      +            return function () {
      +              if (ran) return memo;
      +              ran = true;
      +              memo = func.apply(this, arguments);
      +              func = null;
      +              return memo;
      +            };
      +          }
      +        };
      +      }
      +      var _ = miniscore(),
      +        Events;
      +
      +      // Backbone.Events
      +      // ---------------
      +
      +      // A module that can be mixed in to *any object* in order to provide it with
      +      // custom events. You may bind with `on` or remove with `off` callback
      +      // functions to an event; `trigger`-ing an event fires all callbacks in
      +      // succession.
      +      //
      +      //     var object = {};
      +      //     _.extend(object, Backbone.Events);
      +      //     object.on('expand', function(){ alert('expanded'); });
      +      //     object.trigger('expand');
      +      //
      +      Events = {
      +        // Bind an event to a `callback` function. Passing `"all"` will bind
      +        // the callback to all events fired.
      +        on: function on(name, callback, context) {
      +          if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;
      +          this._events || (this._events = {});
      +          var events = this._events[name] || (this._events[name] = []);
      +          events.push({
      +            callback: callback,
      +            context: context,
      +            ctx: context || this
      +          });
      +          return this;
      +        },
      +        // Bind an event to only be triggered a single time. After the first time
      +        // the callback is invoked, it will be removed.
      +        once: function once(name, callback, context) {
      +          if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this;
      +          var self = this;
      +          var once = _.once(function () {
      +            self.off(name, once);
      +            callback.apply(this, arguments);
      +          });
      +          once._callback = callback;
      +          return this.on(name, once, context);
      +        },
      +        // Remove one or many callbacks. If `context` is null, removes all
      +        // callbacks with that function. If `callback` is null, removes all
      +        // callbacks for the event. If `name` is null, removes all bound
      +        // callbacks for all events.
      +        off: function off(name, callback, context) {
      +          var retain, ev, events, names, i, l, j, k;
      +          if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this;
      +          if (!name && !callback && !context) {
      +            this._events = {};
      +            return this;
      +          }
      +          names = name ? [name] : _.keys(this._events);
      +          for (i = 0, l = names.length; i < l; i++) {
      +            name = names[i];
      +            if (events = this._events[name]) {
      +              this._events[name] = retain = [];
      +              if (callback || context) {
      +                for (j = 0, k = events.length; j < k; j++) {
      +                  ev = events[j];
      +                  if (callback && callback !== ev.callback && callback !== ev.callback._callback || context && context !== ev.context) {
      +                    retain.push(ev);
      +                  }
      +                }
      +              }
      +              if (!retain.length) delete this._events[name];
      +            }
      +          }
      +          return this;
      +        },
      +        // Trigger one or many events, firing all bound callbacks. Callbacks are
      +        // passed the same arguments as `trigger` is, apart from the event name
      +        // (unless you're listening on `"all"`, which will cause your callback to
      +        // receive the true name of the event as the first argument).
      +        trigger: function trigger(name) {
      +          if (!this._events) return this;
      +          var args = slice.call(arguments, 1);
      +          if (!eventsApi(this, 'trigger', name, args)) return this;
      +          var events = this._events[name];
      +          var allEvents = this._events.all;
      +          if (events) triggerEvents(events, args);
      +          if (allEvents) triggerEvents(allEvents, arguments);
      +          return this;
      +        },
      +        // Tell this object to stop listening to either specific events ... or
      +        // to every object it's currently listening to.
      +        stopListening: function stopListening(obj, name, callback) {
      +          var listeners = this._listeners;
      +          if (!listeners) return this;
      +          var deleteListener = !name && !callback;
      +          if (_typeof(name) === 'object') callback = this;
      +          if (obj) (listeners = {})[obj._listenerId] = obj;
      +          for (var id in listeners) {
      +            listeners[id].off(name, callback, this);
      +            if (deleteListener) delete this._listeners[id];
      +          }
      +          return this;
      +        }
      +      };
      +
      +      // Regular expression used to split event strings.
      +      var eventSplitter = /\s+/;
      +
      +      // Implement fancy features of the Events API such as multiple event
      +      // names `"change blur"` and jQuery-style event maps `{change: action}`
      +      // in terms of the existing API.
      +      var eventsApi = function eventsApi(obj, action, name, rest) {
      +        if (!name) return true;
      +
      +        // Handle event maps.
      +        if (_typeof(name) === 'object') {
      +          for (var key in name) {
      +            obj[action].apply(obj, [key, name[key]].concat(rest));
      +          }
      +          return false;
      +        }
      +
      +        // Handle space separated event names.
      +        if (eventSplitter.test(name)) {
      +          var names = name.split(eventSplitter);
      +          for (var i = 0, l = names.length; i < l; i++) {
      +            obj[action].apply(obj, [names[i]].concat(rest));
      +          }
      +          return false;
      +        }
      +        return true;
      +      };
      +
      +      // A difficult-to-believe, but optimized internal dispatch function for
      +      // triggering events. Tries to keep the usual cases speedy (most internal
      +      // Backbone events have 3 arguments).
      +      var triggerEvents = function triggerEvents(events, args) {
      +        var ev,
      +          i = -1,
      +          l = events.length,
      +          a1 = args[0],
      +          a2 = args[1],
      +          a3 = args[2];
      +        switch (args.length) {
      +          case 0:
      +            while (++i < l) (ev = events[i]).callback.call(ev.ctx);
      +            return;
      +          case 1:
      +            while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1);
      +            return;
      +          case 2:
      +            while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2);
      +            return;
      +          case 3:
      +            while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3);
      +            return;
      +          default:
      +            while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args);
      +        }
      +      };
      +      var listenMethods = {
      +        listenTo: 'on',
      +        listenToOnce: 'once'
      +      };
      +
      +      // Inversion-of-control versions of `on` and `once`. Tell *this* object to
      +      // listen to an event in another object ... keeping track of what it's
      +      // listening to.
      +      _.each(listenMethods, function (implementation, method) {
      +        Events[method] = function (obj, name, callback) {
      +          var listeners = this._listeners || (this._listeners = {});
      +          var id = obj._listenerId || (obj._listenerId = _.uniqueId('l'));
      +          listeners[id] = obj;
      +          if (_typeof(name) === 'object') callback = this;
      +          obj[implementation](name, callback, this);
      +          return this;
      +        };
      +      });
      +
      +      // Aliases for backwards compatibility.
      +      Events.bind = Events.on;
      +      Events.unbind = Events.off;
      +
      +      // Mixin utility
      +      Events.mixin = function (proto) {
      +        var exports = ['on', 'once', 'off', 'trigger', 'stopListening', 'listenTo', 'listenToOnce', 'bind', 'unbind'];
      +        _.each(exports, function (name) {
      +          proto[name] = this[name];
      +        }, this);
      +        return proto;
      +      };
      +
      +      // Export Events as BackboneEvents depending on current context
      +      if (typeof define === 'function') {
      +        define(function () {
      +          return Events;
      +        });
      +      } else if (typeof exports !== 'undefined') {
      +        if (typeof module !== 'undefined' && module.exports) {
      +          exports = module.exports = Events;
      +        }
      +        exports.BackboneEvents = Events;
      +      } else {
      +        root.BackboneEvents = Events;
      +      }
      +    })(this);
      +  }, {}],
      +  4: [function (require, module, exports) {
      +    module.exports = require('./backbone-events-standalone');
      +  }, {
      +    './backbone-events-standalone': 3
      +  }],
      +  5: [function (require, module, exports) {
      +    // Generated by CoffeeScript 1.8.0
      +    var GenericReader, xhr;
      +    xhr = require('nets');
      +    module.exports = GenericReader = function () {
      +      function GenericReader() {}
      +      GenericReader.read = function (url, callback) {
      +        var onret;
      +        onret = function (_this) {
      +          return function (err, response, text) {
      +            return _this._onRetrieval(text, callback);
      +          };
      +        }(this);
      +        return xhr(url, onret);
      +      };
      +      GenericReader._onRetrieval = function (text, callback) {
      +        var rText;
      +        rText = this.parse(text);
      +        return callback(rText);
      +      };
      +      return GenericReader;
      +    }();
      +  }, {
      +    'nets': 12
      +  }],
      +  6: [function (require, module, exports) {
      +    // Generated by CoffeeScript 1.8.0
      +    var Fasta,
      +      GenericReader,
      +      Seq,
      +      Str,
      +      __hasProp = {}.hasOwnProperty,
      +      __extends = function __extends(child, parent) {
      +        for (var key in parent) {
      +          if (__hasProp.call(parent, key)) child[key] = parent[key];
      +        }
      +        function ctor() {
      +          this.constructor = child;
      +        }
      +        ctor.prototype = parent.prototype;
      +        child.prototype = new ctor();
      +        child.__super__ = parent.prototype;
      +        return child;
      +      };
      +    Str = require('./strings');
      +    GenericReader = require('./generic_reader');
      +    Seq = require('biojs-model').seq;
      +    module.exports = Fasta = function (_super) {
      +      __extends(Fasta, _super);
      +      function Fasta() {
      +        return Fasta.__super__.constructor.apply(this, arguments);
      +      }
      +      Fasta.parse = function (text) {
      +        var currentSeq, database, databaseID, identifiers, k, label, line, seqs, _i, _len;
      +        seqs = [];
      +        if (Object.prototype.toString.call(text) !== '[object Array]') {
      +          text = text.split('\n');
      +        }
      +        for (_i = 0, _len = text.length; _i < _len; _i++) {
      +          line = text[_i];
      +          if (line[0] === '>' || line[0] === ';') {
      +            label = line.slice(1);
      +            currentSeq = new Seq('', label, seqs.length);
      +            seqs.push(currentSeq);
      +            if (Str.contains('|', line)) {
      +              identifiers = label.split('|');
      +              k = 1;
      +              while (k < identifiers.length) {
      +                database = identifiers[k];
      +                databaseID = identifiers[k + 1];
      +                currentSeq.meta[database] = databaseID;
      +                k += 2;
      +              }
      +              currentSeq.name = identifiers[identifiers.length - 1];
      +            }
      +          } else {
      +            currentSeq.seq += line;
      +          }
      +        }
      +        return seqs;
      +      };
      +      return Fasta;
      +    }(GenericReader);
      +  }, {
      +    './generic_reader': 5,
      +    './strings': 7,
      +    'biojs-model': 10
      +  }],
      +  7: [function (require, module, exports) {
      +    // Generated by CoffeeScript 1.8.0
      +    var strings;
      +    strings = {
      +      contains: function contains(text, search) {
      +        return ''.indexOf.call(text, search, 0) !== -1;
      +      }
      +    };
      +    module.exports = strings;
      +  }, {}],
      +  8: [function (require, module, exports) {
      +    // Generated by CoffeeScript 1.8.0
      +    var Utils;
      +    Utils = {};
      +    Utils.splitNChars = function (txt, num) {
      +      var i, result, _i, _ref;
      +      result = [];
      +      for (i = _i = 0, _ref = txt.length - 1; num > 0 ? _i <= _ref : _i >= _ref; i = _i += num) {
      +        result.push(txt.substr(i, num));
      +      }
      +      return result;
      +    };
      +    module.exports = Utils;
      +  }, {}],
      +  9: [function (require, module, exports) {
      +    // Generated by CoffeeScript 1.8.0
      +    var FastaExporter, Utils;
      +    Utils = require('./utils');
      +    module.exports = FastaExporter = function () {
      +      function FastaExporter() {}
      +      FastaExporter['export'] = function (seqs, access) {
      +        var seq, text, _i, _len;
      +        text = '';
      +        for (_i = 0, _len = seqs.length; _i < _len; _i++) {
      +          seq = seqs[_i];
      +          if (access != null) {
      +            seq = access(seq);
      +          }
      +          text += '>' + seq.name + '\n';
      +          text += Utils.splitNChars(seq.seq, 80).join('\n');
      +          text += '\n';
      +        }
      +        return text;
      +      };
      +      return FastaExporter;
      +    }();
      +  }, {
      +    './utils': 8
      +  }],
      +  10: [function (require, module, exports) {
      +    module.exports.seq = require('./seq');
      +  }, {
      +    './seq': 11
      +  }],
      +  11: [function (require, module, exports) {
      +    module.exports = function (seq, name, id) {
      +      this.seq = seq;
      +      this.name = name;
      +      this.id = id;
      +      this.meta = {};
      +    };
      +  }, {}],
      +  12: [function (require, module, exports) {
      +    var req = require('request');
      +    module.exports = Nets;
      +    function Nets(uri, opts, cb) {
      +      req(uri, opts, cb);
      +    }
      +  }, {
      +    'request': 13
      +  }],
      +  13: [function (require, module, exports) {
      +    var window = require('global/window');
      +    var once = require('once');
      +    var parseHeaders = require('parse-headers');
      +    var messages = {
      +      '0': 'Internal XMLHttpRequest Error',
      +      '4': '4xx Client Error',
      +      '5': '5xx Server Error'
      +    };
      +    var XHR = window.XMLHttpRequest || noop;
      +    var XDR = 'withCredentials' in new XHR() ? XHR : window.XDomainRequest;
      +    module.exports = createXHR;
      +    function createXHR(options, callback) {
      +      if (typeof options === 'string') {
      +        options = {
      +          uri: options
      +        };
      +      }
      +      options = options || {};
      +      callback = once(callback);
      +      var xhr = options.xhr || null;
      +      if (!xhr) {
      +        if (options.cors || options.useXDR) {
      +          xhr = new XDR();
      +        } else {
      +          xhr = new XHR();
      +        }
      +      }
      +      var uri = xhr.url = options.uri || options.url;
      +      var method = xhr.method = options.method || 'GET';
      +      var body = options.body || options.data;
      +      var headers = xhr.headers = options.headers || {};
      +      var sync = !!options.sync;
      +      var isJson = false;
      +      var key;
      +      var load = options.response ? loadResponse : loadXhr;
      +      if ('json' in options) {
      +        isJson = true;
      +        headers['Accept'] = 'application/json';
      +        if (method !== 'GET' && method !== 'HEAD') {
      +          headers['Content-Type'] = 'application/json';
      +          body = JSON.stringify(options.json);
      +        }
      +      }
      +      xhr.onreadystatechange = readystatechange;
      +      xhr.onload = load;
      +      xhr.onerror = error;
      +      // IE9 must have onprogress be set to a unique function.
      +      xhr.onprogress = function () {
      +        // IE must die
      +      };
      +      // hate IE
      +      xhr.ontimeout = noop;
      +      xhr.open(method, uri, !sync);
      +      //backward compatibility
      +      if (options.withCredentials || options.cors && options.withCredentials !== false) {
      +        xhr.withCredentials = true;
      +      }
      +
      +      // Cannot set timeout with sync request
      +      if (!sync) {
      +        xhr.timeout = 'timeout' in options ? options.timeout : 5000;
      +      }
      +      if (xhr.setRequestHeader) {
      +        for (key in headers) {
      +          if (headers.hasOwnProperty(key)) {
      +            xhr.setRequestHeader(key, headers[key]);
      +          }
      +        }
      +      } else if (options.headers) {
      +        throw new Error('Headers cannot be set on an XDomainRequest object');
      +      }
      +      if ('responseType' in options) {
      +        xhr.responseType = options.responseType;
      +      }
      +      if ('beforeSend' in options && typeof options.beforeSend === 'function') {
      +        options.beforeSend(xhr);
      +      }
      +      xhr.send(body);
      +      return xhr;
      +      function readystatechange() {
      +        if (xhr.readyState === 4) {
      +          load();
      +        }
      +      }
      +      function getBody() {
      +        // Chrome with requestType=blob throws errors arround when even testing access to responseText
      +        var body = null;
      +        if (xhr.response) {
      +          body = xhr.response;
      +        } else if (xhr.responseType === 'text' || !xhr.responseType) {
      +          body = xhr.responseText || xhr.responseXML;
      +        }
      +        if (isJson) {
      +          try {
      +            body = JSON.parse(body);
      +          } catch (e) {}
      +        }
      +        return body;
      +      }
      +      function getStatusCode() {
      +        return xhr.status === 1223 ? 204 : xhr.status;
      +      }
      +
      +      // if we're getting a none-ok statusCode, build & return an error
      +      function errorFromStatusCode(status, body) {
      +        var error = null;
      +        if (status === 0 || status >= 400 && status < 600) {
      +          var message = (typeof body === 'string' ? body : false) || messages[String(status).charAt(0)];
      +          error = new Error(message);
      +          error.statusCode = status;
      +        }
      +        return error;
      +      }
      +
      +      // will load the data & process the response in a special response object
      +      function loadResponse() {
      +        var status = getStatusCode();
      +        var body = getBody();
      +        var error = errorFromStatusCode(status, body);
      +        var response = {
      +          body: body,
      +          statusCode: status,
      +          statusText: xhr.statusText,
      +          raw: xhr
      +        };
      +        if (xhr.getAllResponseHeaders) {
      +          //remember xhr can in fact be XDR for CORS in IE
      +          response.headers = parseHeaders(xhr.getAllResponseHeaders());
      +        } else {
      +          response.headers = {};
      +        }
      +        callback(error, response, response.body);
      +      }
      +
      +      // will load the data and add some response properties to the source xhr
      +      // and then respond with that
      +      function loadXhr() {
      +        var status = getStatusCode();
      +        var error = errorFromStatusCode(status);
      +        xhr.status = xhr.statusCode = status;
      +        xhr.body = getBody();
      +        xhr.headers = parseHeaders(xhr.getAllResponseHeaders());
      +        callback(error, xhr, xhr.body);
      +      }
      +      function error(evt) {
      +        callback(evt, xhr);
      +      }
      +    }
      +    function noop() {}
      +  }, {
      +    'global/window': 14,
      +    'once': 15,
      +    'parse-headers': 19
      +  }],
      +  14: [function (require, module, exports) {
      +    (function (global) {
      +      if (typeof window !== 'undefined') {
      +        module.exports = window;
      +      } else if (typeof global !== 'undefined') {
      +        module.exports = global;
      +      } else if (typeof self !== 'undefined') {
      +        module.exports = self;
      +      } else {
      +        module.exports = {};
      +      }
      +    }).call(this, typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {});
      +  }, {}],
      +  15: [function (require, module, exports) {
      +    module.exports = once;
      +    once.proto = once(function () {
      +      Object.defineProperty(Function.prototype, 'once', {
      +        value: function value() {
      +          return once(this);
      +        },
      +        configurable: true
      +      });
      +    });
      +    function once(fn) {
      +      var called = false;
      +      return function () {
      +        if (called) return;
      +        called = true;
      +        return fn.apply(this, arguments);
      +      };
      +    }
      +  }, {}],
      +  16: [function (require, module, exports) {
      +    var isFunction = require('is-function');
      +    module.exports = forEach;
      +    var toString = Object.prototype.toString;
      +    var hasOwnProperty = Object.prototype.hasOwnProperty;
      +    function forEach(list, iterator, context) {
      +      if (!isFunction(iterator)) {
      +        throw new TypeError('iterator must be a function');
      +      }
      +      if (arguments.length < 3) {
      +        context = this;
      +      }
      +      if (toString.call(list) === '[object Array]') forEachArray(list, iterator, context);else if (typeof list === 'string') forEachString(list, iterator, context);else forEachObject(list, iterator, context);
      +    }
      +    function forEachArray(array, iterator, context) {
      +      for (var i = 0, len = array.length; i < len; i++) {
      +        if (hasOwnProperty.call(array, i)) {
      +          iterator.call(context, array[i], i, array);
      +        }
      +      }
      +    }
      +    function forEachString(string, iterator, context) {
      +      for (var i = 0, len = string.length; i < len; i++) {
      +        // no such thing as a sparse string.
      +        iterator.call(context, string.charAt(i), i, string);
      +      }
      +    }
      +    function forEachObject(object, iterator, context) {
      +      for (var k in object) {
      +        if (hasOwnProperty.call(object, k)) {
      +          iterator.call(context, object[k], k, object);
      +        }
      +      }
      +    }
      +  }, {
      +    'is-function': 17
      +  }],
      +  17: [function (require, module, exports) {
      +    module.exports = isFunction;
      +    var toString = Object.prototype.toString;
      +    function isFunction(fn) {
      +      var string = toString.call(fn);
      +      return string === '[object Function]' || typeof fn === 'function' && string !== '[object RegExp]' || typeof window !== 'undefined' && (
      +      // IE8 and below
      +      fn === window.setTimeout || fn === window.alert || fn === window.confirm || fn === window.prompt);
      +    }
      +  }, {}],
      +  18: [function (require, module, exports) {
      +    exports = module.exports = trim;
      +    function trim(str) {
      +      return str.replace(/^\s*|\s*$/g, '');
      +    }
      +    exports.left = function (str) {
      +      return str.replace(/^\s*/, '');
      +    };
      +    exports.right = function (str) {
      +      return str.replace(/\s*$/, '');
      +    };
      +  }, {}],
      +  19: [function (require, module, exports) {
      +    var trim = require('trim'),
      +      forEach = require('for-each'),
      +      isArray = function isArray(arg) {
      +        return Object.prototype.toString.call(arg) === '[object Array]';
      +      };
      +    module.exports = function (headers) {
      +      if (!headers) return {};
      +      var result = {};
      +      forEach(trim(headers).split('\n'), function (row) {
      +        var index = row.indexOf(':'),
      +          key = trim(row.slice(0, index)).toLowerCase(),
      +          value = trim(row.slice(index + 1));
      +        if (typeof result[key] === 'undefined') {
      +          result[key] = value;
      +        } else if (isArray(result[key])) {
      +          result[key].push(value);
      +        } else {
      +          result[key] = [result[key], value];
      +        }
      +      });
      +      return result;
      +    };
      +  }, {
      +    'for-each': 16,
      +    'trim': 18
      +  }],
      +  20: [function (require, module, exports) {
      +    module.exports = require('./jquery.browser');
      +  }, {
      +    './jquery.browser': 21
      +  }],
      +  21: [function (require, module, exports) {
      +    /*!
      +     * jQuery Browser Plugin v0.0.6
      +     * https://github.com/gabceb/jquery-browser-plugin
      +     *
      +     * Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
      +     * http://jquery.org/license
      +     *
      +     * Modifications Copyright 2013 Gabriel Cebrian
      +     * https://github.com/gabceb
      +     *
      +     * Released under the MIT license
      +     *
      +     * Date: 2013-07-29T17:23:27-07:00
      +     */
      +
      +    var matched, browser;
      +    var uaMatch = function uaMatch(ua) {
      +      ua = ua.toLowerCase();
      +      var match = /(opr)[\/]([\w.]+)/.exec(ua) || /(chrome)[ \/]([\w.]+)/.exec(ua) || /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(ua) || /(webkit)[ \/]([\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || /(msie) ([\w.]+)/.exec(ua) || ua.indexOf('trident') >= 0 && /(rv)(?::| )([\w.]+)/.exec(ua) || ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || [];
      +      var platform_match = /(ipad)/.exec(ua) || /(iphone)/.exec(ua) || /(android)/.exec(ua) || /(windows phone)/.exec(ua) || /(win)/.exec(ua) || /(mac)/.exec(ua) || /(linux)/.exec(ua) || /(cros)/i.exec(ua) || [];
      +      return {
      +        browser: match[3] || match[1] || '',
      +        version: match[2] || '0',
      +        platform: platform_match[0] || ''
      +      };
      +    };
      +    matched = uaMatch(window.navigator.userAgent);
      +    browser = {};
      +    browser.uaMatch = uaMatch;
      +    if (matched.browser) {
      +      browser[matched.browser] = true;
      +      browser.version = matched.version;
      +      browser.versionNumber = parseInt(matched.version);
      +    }
      +    if (matched.platform) {
      +      browser[matched.platform] = true;
      +    }
      +
      +    // These are all considered mobile platforms, meaning they run a mobile browser
      +    if (browser.android || browser.ipad || browser.iphone || browser['windows phone']) {
      +      browser.mobile = true;
      +    }
      +
      +    // These are all considered desktop platforms, meaning they run a desktop browser
      +    if (browser.cros || browser.mac || browser.linux || browser.win) {
      +      browser.desktop = true;
      +    }
      +
      +    // Chrome, Opera 15+ and Safari are webkit based browsers
      +    if (browser.chrome || browser.opr || browser.safari) {
      +      browser.webkit = true;
      +    }
      +
      +    // IE11 has a new token so we will assign it msie to avoid breaking changes
      +    if (browser.rv) {
      +      var ie = 'msie';
      +      matched.browser = ie;
      +      browser[ie] = true;
      +    }
      +
      +    // Opera 15+ are identified as opr
      +    if (browser.opr) {
      +      var opera = 'opera';
      +      matched.browser = opera;
      +      browser[opera] = true;
      +    }
      +
      +    // Stock Android browsers are marked as Safari on Android.
      +    if (browser.safari && browser.android) {
      +      var android = 'android';
      +      matched.browser = android;
      +      browser[android] = true;
      +    }
      +
      +    // Assign the name and platform variable
      +    browser.name = matched.browser;
      +    browser.platform = matched.platform;
      +    module.exports = browser;
      +  }, {}],
      +  22: [function (require, module, exports) {
      +    (function (global) {
      +      /** @preserve http://github.com/easeway/js-class */
      +
      +      // Class Definition using ECMA5 prototype chain
      +
      +      function inherit(dest, src, noParent) {
      +        while (src && src !== Object.prototype) {
      +          Object.getOwnPropertyNames(src).forEach(function (name) {
      +            if (name != '.class' && !dest.hasOwnProperty(name)) {
      +              var desc = Object.getOwnPropertyDescriptor(src, name);
      +              Object.defineProperty(dest, name, desc);
      +            }
      +          });
      +          if (noParent) {
      +            break;
      +          }
      +          src = src.__proto__;
      +        }
      +        return dest;
      +      }
      +      var Class = function Class(base, proto, options) {
      +        if (typeof base != 'function') {
      +          options = proto;
      +          proto = base;
      +          base = Object;
      +        }
      +        if (!proto) {
      +          proto = {};
      +        }
      +        if (!options) {
      +          options = {};
      +        }
      +        var meta = {
      +          name: options.name,
      +          base: base,
      +          "implements": []
      +        };
      +        var classProto = Class.clone(proto);
      +        if (options["implements"]) {
      +          (Array.isArray(options["implements"]) ? options["implements"] : [options["implements"]]).forEach(function (implementedType) {
      +            if (typeof implementedType == 'function' && implementedType.prototype) {
      +              meta["implements"].push(implementedType);
      +              Class.extend(classProto, implementedType.prototype);
      +            }
      +          });
      +        }
      +        classProto.__proto__ = base.prototype;
      +        var theClass = function theClass() {
      +          if (typeof this.constructor == 'function') {
      +            this.constructor.apply(this, arguments);
      +          }
      +        };
      +        meta.type = theClass;
      +        theClass.prototype = classProto;
      +        Object.defineProperty(theClass, '.class.meta', {
      +          value: meta,
      +          enumerable: false,
      +          configurable: false,
      +          writable: false
      +        });
      +        Object.defineProperty(classProto, '.class', {
      +          value: theClass,
      +          enumerable: false,
      +          configurable: false,
      +          writable: false
      +        });
      +        if (options.statics) {
      +          Class.extend(theClass, options.statics);
      +        }
      +        return theClass;
      +      };
      +      Class.extend = inherit;
      +      Class.clone = function (object) {
      +        return inherit({}, object);
      +      };
      +      function findType(meta, type) {
      +        while (meta) {
      +          if (meta.type.prototype === type.prototype) {
      +            return true;
      +          }
      +          for (var i in meta["implements"]) {
      +            var implType = meta["implements"][i];
      +            var implMeta = implType['.class.meta'];
      +            if (implMeta) {
      +              if (findType(implMeta, type)) {
      +                return true;
      +              }
      +            } else {
      +              for (var proto = implType.prototype; proto; proto = proto.__proto__) {
      +                if (proto === type.prototype) {
      +                  return true;
      +                }
      +              }
      +            }
      +          }
      +          meta = meta.base ? meta.base['.class.meta'] : undefined;
      +        }
      +        return false;
      +      }
      +      var Checker = Class({
      +        constructor: function constructor(object) {
      +          this.object = object;
      +        },
      +        typeOf: function typeOf(type) {
      +          if (this.object instanceof type) {
      +            return true;
      +          }
      +          var meta = Class.typeInfo(this.object);
      +          return meta && findType(meta, type);
      +        }
      +      });
      +
      +      // aliases
      +      Checker.prototype.a = Checker.prototype.typeOf;
      +      Checker.prototype.an = Checker.prototype.typeOf;
      +      Class.is = function (object) {
      +        return new Checker(object);
      +      };
      +      Class.typeInfo = function (object) {
      +        var theClass = object.__proto__['.class'];
      +        return theClass ? theClass['.class.meta'] : undefined;
      +      };
      +      Class.VERSION = [0, 0, 2];
      +      if (module) {
      +        module.exports = Class;
      +      } else {
      +        global.Class = Class; // for browser
      +      }
      +    }).call(this, typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {});
      +  }, {}],
      +  'biojs-io-fasta': [function (require, module, exports) {
      +    // Generated by CoffeeScript 1.8.0
      +    module.exports.parse = require('./parser');
      +    module.exports.writer = require('./writer');
      +  }, {
      +    './parser': 6,
      +    './writer': 9
      +  }],
      +  'biojs-vis-sequence': [function (require, module, exports) {
      +    module.exports = require('./lib/index');
      +  }, {
      +    './lib/index': 1
      +  }]
      +}, {}, ['biojs-vis-sequence']);
      +
      +/***/ }),
      +
      +/***/ "./public/js/sequence_modal.js":
      +/*!*************************************!*\
      +  !*** ./public/js/sequence_modal.js ***!
      +  \*************************************/
      +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
      +
      +"use strict";
      +__webpack_require__.r(__webpack_exports__);
      +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
      +/* harmony export */   "default": () => (/* binding */ SequenceModal)
      +/* harmony export */ });
      +/* harmony import */ var _sequence__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sequence */ "./public/js/sequence.js");
      +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
      +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
      +/* harmony import */ var underscore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! underscore */ "./node_modules/underscore/modules/index-all.js");
      +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
      +/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
      +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
      +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
      +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
      +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
      +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
      +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
      +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
      +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
      +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
      +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
      +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
      +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
      +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
      +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
      +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
      +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
      +
      +
      +
      +
      +/**
      + * Takes sequence accession as props, fetches the sequence from the server, and
      + * displays it in a modal.
      + */
      +
      +var SequenceModal = /*#__PURE__*/function (_React$Component) {
      +  function SequenceModal(props) {
      +    var _this;
      +    _classCallCheck(this, SequenceModal);
      +    _this = _callSuper(this, SequenceModal, [props]);
      +    _this.state = {
      +      error_msgs: [],
      +      sequences: [],
      +      requestCompleted: false
      +    };
      +    _this.modalRef = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.createRef)();
      +    return _this;
      +  }
      +
      +  // Lifecycle methods. //
      +  _inherits(SequenceModal, _React$Component);
      +  return _createClass(SequenceModal, [{
      +    key: "render",
      +    value: function render() {
      +      var _this2 = this;
      +      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
      +        className: "relative modal z-10 hidden sequence-viewer",
      +        ref: this.modalRef,
      +        tabIndex: "-1",
      +        role: "dialog",
      +        "aria-modal": "true",
      +        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      +          className: "fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity",
      +          "aria-hidden": "true"
      +        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      +          className: "fixed inset-0 z-10 w-screen overflow-y-auto",
      +          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      +            className: "flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0",
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      +              className: "relative transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg",
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
      +                className: "bg-white pt-5",
      +                children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
      +                  className: "px-6 mb-4",
      +                  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("h3", {
      +                    className: "text-base font-semibold leading-6 text-gray-900",
      +                    children: "View sequence"
      +                  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
      +                    className: "cursor-pointer",
      +                    onClick: function onClick() {
      +                      return _this2.hide();
      +                    },
      +                    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("i", {
      +                      className: "fa-solid fa-xmark align-bottom"
      +                    })
      +                  })]
      +                }), this.state.requestCompleted && this.resultsJSX() || this.loadingJSX()]
      +              })
      +            })
      +          })
      +        })]
      +      });
      +    }
      +
      +    /*
      +     * Returns jQuery reference to the main modal container.
      +     */
      +  }, {
      +    key: "modal",
      +    value: function modal() {
      +      return $(this.modalRef.current);
      +    }
      +
      +    /**
      +     * Shows sequence viewer.
      +     */
      +  }, {
      +    key: "show",
      +    value: function show(url) {
      +      var _this3 = this;
      +      this.setState({
      +        requestCompleted: false
      +      }, function () {
      +        _this3.modal().modal("show");
      +        _this3.loadJSON(url);
      +      });
      +    }
      +
      +    /**
      +     * Hide sequence viewer.
      +     */
      +  }, {
      +    key: "hide",
      +    value: function hide() {
      +      this.modal().modal("hide");
      +    }
      +
      +    /**
      +     * Loads sequence using AJAX and updates modal state.
      +     */
      +  }, {
      +    key: "loadJSON",
      +    value: (function () {
      +      var _loadJSON = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(url) {
      +        var response;
      +        return _regeneratorRuntime().wrap(function _callee$(_context) {
      +          while (1) switch (_context.prev = _context.next) {
      +            case 0:
      +              _context.prev = 0;
      +              _context.next = 3;
      +              return $.getJSON(url);
      +            case 3:
      +              response = _context.sent;
      +              this.setState({
      +                sequences: response.sequences,
      +                error_msgs: response.error_msgs,
      +                requestCompleted: true
      +              });
      +              _context.next = 12;
      +              break;
      +            case 7:
      +              _context.prev = 7;
      +              _context.t0 = _context["catch"](0);
      +              console.log('Error fetching sequence:', _context.t0);
      +              this.hide();
      +              this.props.showErrorModal(_context.t0.responseJSON);
      +            case 12:
      +            case "end":
      +              return _context.stop();
      +          }
      +        }, _callee, this, [[0, 7]]);
      +      }));
      +      function loadJSON(_x) {
      +        return _loadJSON.apply(this, arguments);
      +      }
      +      return loadJSON;
      +    }())
      +  }, {
      +    key: "resultsJSX",
      +    value: function resultsJSX() {
      +      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
      +        className: "mt-2 text-sm",
      +        children: [this.state.error_msgs.map(function (error_msg, index) {
      +          return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
      +            className: "fastan",
      +            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      +              className: "section-header border-b border-seqorange pl-px table w-full pb-2",
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("h4", {
      +                className: "text-sm",
      +                children: error_msg[0]
      +              })
      +            }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      +              className: "pt-0 px-0 pb-px",
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("pre", {
      +                className: "m-0 p-0 rounded-none border-0 bg-inherit whitespace-pre-wrap break-keep",
      +                children: error_msg[1]
      +              })
      +            })]
      +          }, "error-message-".concat(index));
      +        }), this.state.sequences.map(function (sequence, index) {
      +          return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(SequenceViewer, {
      +            sequence: sequence
      +          }, "sequence-viewer-".concat(index));
      +        })]
      +      });
      +    }
      +  }, {
      +    key: "loadingJSX",
      +    value: function loadingJSX() {
      +      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      +        className: "mt-2 text-center",
      +        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("i", {
      +          className: "fa fa-spinner fa-3x fa-spin"
      +        })
      +      });
      +    }
      +  }]);
      +}((react__WEBPACK_IMPORTED_MODULE_1___default().Component));
      +
      +var SequenceViewer = /*#__PURE__*/function (_React$Component2) {
      +  function SequenceViewer() {
      +    _classCallCheck(this, SequenceViewer);
      +    return _callSuper(this, SequenceViewer, arguments);
      +  }
      +  _inherits(SequenceViewer, _React$Component2);
      +  return _createClass(SequenceViewer, [{
      +    key: "render",
      +    value: function render() {
      +      this.widgetID = this.widgetClass + "-" + new Date().getUTCMilliseconds();
      +      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
      +        className: "fastan",
      +        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      +          className: "section-header border-b border-seqorange pl-px table w-full pb-2",
      +          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("h4", {
      +            className: "text-sm",
      +            children: [this.props.sequence.id, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("small", {
      +              className: "text-inherit",
      +              children: ["\xA0 ", this.props.sequence.title]
      +            })]
      +          })
      +        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      +          className: "pt-0 px-0 pb-px",
      +          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      +            className: this.widgetClass,
      +            id: this.widgetID
      +          })
      +        })]
      +      });
      +    }
      +  }, {
      +    key: "componentDidMount",
      +    value: function componentDidMount() {
      +      // attach BioJS sequence viewer
      +      var widget = new Sequence({
      +        sequence: this.props.sequence.value,
      +        target: this.widgetID,
      +        format: "PRIDE",
      +        columns: {
      +          size: 40,
      +          spacedEach: 0
      +        },
      +        formatOptions: {
      +          title: false,
      +          footer: false
      +        }
      +      });
      +      setTimeout(function () {
      +        requestAnimationFrame(function () {
      +          widget.hideFormatSelector();
      +        }); // ensure React is done painting the DOM of the element before calling a function on it.
      +      });
      +    }
      +  }], [{
      +    key: "widgetClass",
      +    value:
      +    /**
      +     * The CSS class name that will be assigned to the widget container. ID
      +     * assigned to the widget container is derived from the same.
      +     */
      +    function widgetClass() {
      +      return "biojs-vis-sequence";
      +    }
      +  }]);
      +}((react__WEBPACK_IMPORTED_MODULE_1___default().Component));
      +
      +/***/ }),
      +
      +/***/ "./public/js/share_url.js":
      +/*!********************************!*\
      +  !*** ./public/js/share_url.js ***!
      +  \********************************/
      +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
      +
      +"use strict";
      +__webpack_require__.r(__webpack_exports__);
      +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
      +/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
      +/* harmony export */ });
      +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
      +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
      +/* harmony import */ var _mailto__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mailto */ "./public/js/mailto.js");
      +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
      +function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
      +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
      +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
      +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
      +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
      +function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
      +
      +
      +
      +var ShareURLComponent = function ShareURLComponent(_ref) {
      +  var querydb = _ref.querydb,
      +    program = _ref.program,
      +    queryLength = _ref.queryLength,
      +    url = _ref.url;
      +  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
      +    _useState2 = _slicedToArray(_useState, 2),
      +    copied = _useState2[0],
      +    setCopied = _useState2[1];
      +  var copyToClipboard = function copyToClipboard() {
      +    navigator.clipboard.writeText(url);
      +    setCopied(true);
      +  };
      +  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
      +    className: "share-url-component",
      +    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("input", {
      +      className: "w-full",
      +      name: "shareableUrl",
      +      type: "text",
      +      value: url,
      +      readOnly: true
      +    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
      +      className: "py-4 flex justify-between",
      +      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("button", {
      +        className: "py-2 px-3 border border-transparent rounded-md shadow-sm text-white bg-seqblue hover:bg-seqorange focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-seqorange",
      +        onClick: copyToClipboard,
      +        children: copied ? 'Copied!' : 'Copy to Clipboard'
      +      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("a", {
      +        href: (0,_mailto__WEBPACK_IMPORTED_MODULE_1__["default"])(querydb, program, queryLength, url, true),
      +        children: "Share via email"
      +      })]
      +    })]
      +  });
      +};
      +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ShareURLComponent);
      +
      +/***/ }),
      +
      +/***/ "./public/js/sidebar.js":
      +/*!******************************!*\
      +  !*** ./public/js/sidebar.js ***!
      +  \******************************/
      +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
      +
      +"use strict";
      +__webpack_require__.r(__webpack_exports__);
      +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
      +/* harmony export */   "default": () => (/* binding */ _default)
      +/* harmony export */ });
      +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
      +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
      +/* harmony import */ var underscore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! underscore */ "./node_modules/underscore/modules/index-all.js");
      +/* harmony import */ var _download_fasta__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./download_fasta */ "./public/js/download_fasta.js");
      +/* harmony import */ var _mailto__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mailto */ "./public/js/mailto.js");
      +/* harmony import */ var _cloud_share_modal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cloud_share_modal */ "./public/js/cloud_share_modal.js");
      +/* harmony import */ var download_links__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! download_links */ "./public/js/null_plugins/download_links.js");
      +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
      +/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
      +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
      +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
      +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
      +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
      +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
      +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
      +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
      +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
      +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
      +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
      +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
      +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
      +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
      +
      +
      +
      +
      +
      +
      +/**
      + * checks whether code is being run by jest
      + */
      +// eslint-disable-next-line no-undef
      +
      +var isTestMode = function isTestMode() {
      +  return ({}).JEST_WORKER_ID !== undefined || "development" === 'test';
      +};
      +/**
      + * Renders links for downloading hit information in different formats.
      + * Renders links for navigating to each query.
      + */
      +var _default = /*#__PURE__*/function (_Component) {
      +  function _default(props) {
      +    var _this;
      +    _classCallCheck(this, _default);
      +    _this = _callSuper(this, _default, [props]);
      +    _this.downloadFastaOfAll = _this.downloadFastaOfAll.bind(_this);
      +    _this.downloadFastaOfSelected = _this.downloadFastaOfSelected.bind(_this);
      +    _this.topPanelJSX = _this.topPanelJSX.bind(_this);
      +    _this.summaryString = _this.summaryString.bind(_this);
      +    _this.indexJSX = _this.indexJSX.bind(_this);
      +    _this.downloadsPanelJSX = _this.downloadsPanelJSX.bind(_this);
      +    _this.handleQueryIndexChange = _this.handleQueryIndexChange.bind(_this);
      +    _this.isElementInViewPort = _this.isElementInViewPort.bind(_this);
      +    _this.setVisibleQueryIndex = _this.setVisibleQueryIndex.bind(_this);
      +    _this.debounceScrolling = _this.debounceScrolling.bind(_this);
      +    _this.scrollListener = _this.scrollListener.bind(_this);
      +    _this.copyURL = _this.copyURL.bind(_this);
      +    _this.shareCloudInit = _this.shareCloudInit.bind(_this);
      +    _this.sharingPanelJSX = _this.sharingPanelJSX.bind(_this);
      +    _this.cloudShareModal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createRef();
      +    _this.timeout = null;
      +    _this.queryElems = [];
      +    _this.state = {
      +      queryIndex: 1
      +    };
      +    return _this;
      +  }
      +  _inherits(_default, _Component);
      +  return _createClass(_default, [{
      +    key: "componentDidMount",
      +    value: function componentDidMount() {
      +      //keep track of the current queryIndex so it doesn't get lost on page reload
      +      var urlMatch = window.location.href.match(/#Query_(\d+)/);
      +      if (urlMatch && urlMatch.length > 1) {
      +        var queryNumber = +urlMatch[1];
      +        var index = this.props.data.queries.findIndex(function (query) {
      +          return query.number === queryNumber;
      +        });
      +        this.setState({
      +          queryIndex: index + 1
      +        });
      +      }
      +      window.addEventListener('scroll', this.scrollListener);
      +      $('a[href^="#Query_"]').on('click', this.animateAnchorElements);
      +    }
      +  }, {
      +    key: "componentWillUnmount",
      +    value: function componentWillUnmount() {
      +      window.removeEventListener('scroll', this.scrollListener);
      +    }
      +  }, {
      +    key: "componentDidUpdate",
      +    value: function componentDidUpdate(prevProps) {
      +      if (this.props.allQueriesLoaded && !prevProps.allQueriesLoaded) {
      +        /**
      +         * storing all query elements in this variable once they all become available so we don't have to fetch them all over again
      +         */
      +        this.queryElems = Array.from(document.querySelectorAll('.resultn'));
      +      }
      +    }
      +
      +    /**
      +     * to avoid unnecessary computations, we debounce the scroll listener so it only fires after user has stopped scrolling for some milliseconds
      +     */
      +  }, {
      +    key: "scrollListener",
      +    value: function scrollListener() {
      +      this.debounceScrolling(this.setVisibleQueryIndex, 500);
      +    }
      +  }, {
      +    key: "debounceScrolling",
      +    value: function debounceScrolling(callback, timer) {
      +      if (this.timeout) {
      +        clearTimeout(this.timeout);
      +      }
      +      this.timeout = setTimeout(callback, timer);
      +    }
      +
      +    /**
      +     * This method makes the page aware of what query is visible so that clicking previous / next button at any point
      +     * navigates to the proper query
      +     */
      +  }, {
      +    key: "setVisibleQueryIndex",
      +    value: function setVisibleQueryIndex() {
      +      var queryElems = this.queryElems.length ? this.queryElems : Array.from(document.querySelectorAll('.resultn'));
      +      var hits = Array.from(document.querySelectorAll('.hit[id^=Query_]'));
      +      // get the first visible element and marks it as the current query
      +      var topmostEl = queryElems.find(this.isElementInViewPort) || hits.find(this.isElementInViewPort);
      +      if (topmostEl) {
      +        var queryIndex = Number(topmostEl.id.match(/Query_(\d+)/)[1]);
      +        var hash = "#Query_".concat(queryIndex);
      +        // if we can guarantee that the browser can handle change in url hash without the page jumping,
      +        // then we update the url hash after scroll. else, hash is only updated on click of next or prev button
      +        if (window.history.pushState) {
      +          window.history.pushState(null, null, hash);
      +        }
      +        this.setState({
      +          queryIndex: queryIndex
      +        });
      +      }
      +    }
      +  }, {
      +    key: "animateAnchorElements",
      +    value: function animateAnchorElements(e) {
      +      // allow normal behavior in test mode to prevent warnings or errors from jquery
      +      if (isTestMode()) return;
      +      e.preventDefault();
      +      $('html, body').animate({
      +        scrollTop: $(this.hash).offset().top
      +      }, 300);
      +      if (window.history.pushState) {
      +        window.history.pushState(null, null, this.hash);
      +      } else {
      +        window.location.hash = this.hash;
      +      }
      +    }
      +  }, {
      +    key: "isElementInViewPort",
      +    value: function isElementInViewPort(elem) {
      +      var _elem$getBoundingClie = elem.getBoundingClientRect(),
      +        top = _elem$getBoundingClie.top,
      +        left = _elem$getBoundingClie.left,
      +        right = _elem$getBoundingClie.right,
      +        bottom = _elem$getBoundingClie.bottom;
      +      return top >= 0 && left >= 0 && bottom <= (window.innerHeight || document.documentElement.clientHeight) && right <= (window.innerWidth || document.documentElement.clientWidth);
      +    }
      +    /**
      +         * Clear sessionStorage - useful to initiate a new search in the same tab.
      +         * Passing sessionStorage.clear directly as onclick callback didn't work
      +         * (on macOS Chrome).
      +        */
      +  }, {
      +    key: "clearSession",
      +    value: function clearSession() {
      +      sessionStorage.clear();
      +    }
      +    /**
      +     *
      +     * handle next and previous query button clicks
      +     */
      +  }, {
      +    key: "handleQueryIndexChange",
      +    value: function handleQueryIndexChange(nextQuery) {
      +      if (nextQuery < 1 || nextQuery > this.props.data.queries.length) return;
      +      var anchorEl = document.createElement('a');
      +      //indexing at [nextQuery - 1] because array is 0-indexed
      +      anchorEl.setAttribute('href', '#Query_' + this.props.data.queries[nextQuery - 1].number);
      +      anchorEl.setAttribute('hidden', true);
      +      document.body.appendChild(anchorEl);
      +      // add smooth scrolling animation with jquery
      +      $(anchorEl).on('click', this.animateAnchorElements);
      +      anchorEl.click();
      +      document.body.removeChild(anchorEl);
      +      this.setState({
      +        queryIndex: nextQuery
      +      });
      +    }
      +    /**
      +     * Event-handler for downloading fasta of all hits.
      +     */
      +  }, {
      +    key: "downloadFastaOfAll",
      +    value: function downloadFastaOfAll() {
      +      var sequence_ids = [];
      +      this.props.data.queries.forEach(function (query) {
      +        return query.hits.forEach(function (hit) {
      +          return sequence_ids.push(hit.id);
      +        });
      +      });
      +      var database_ids = this.props.data.querydb.map(function (querydb) {
      +        return querydb.id;
      +      });
      +      (0,_download_fasta__WEBPACK_IMPORTED_MODULE_2__["default"])(sequence_ids, database_ids);
      +      return false;
      +    }
      +
      +    /**
      +     * Handles downloading fasta of selected hits.
      +     */
      +  }, {
      +    key: "downloadFastaOfSelected",
      +    value: function downloadFastaOfSelected() {
      +      var sequence_ids = $('.hit-links :checkbox:checked').map(function () {
      +        return this.value;
      +      }).get();
      +      if (sequence_ids.length === 0) {
      +        return false;
      +      }
      +      var database_ids = underscore__WEBPACK_IMPORTED_MODULE_1__["default"].map(this.props.data.querydb, underscore__WEBPACK_IMPORTED_MODULE_1__["default"].iteratee('id'));
      +      (0,_download_fasta__WEBPACK_IMPORTED_MODULE_2__["default"])(sequence_ids, database_ids);
      +      return false;
      +    }
      +
      +    /**
      +     * Handles copying the URL into the user's clipboard. Modified from: https://stackoverflow.com/a/49618964/18117380
      +     * Hides the 'Copied!' tooltip after 3 seconds
      +     */
      +  }, {
      +    key: "copyURL",
      +    value: function copyURL() {
      +      var element = document.createElement('input');
      +      var url = window.location.href;
      +      document.body.appendChild(element);
      +      element.value = url;
      +      element.select();
      +      document.execCommand('copy');
      +      document.body.removeChild(element);
      +      var tooltip = document.getElementById('tooltip');
      +      tooltip.classList.remove('hidden');
      +      setTimeout(function () {
      +        tooltip.classList.add('hidden');
      +      }, 3000);
      +    }
      +  }, {
      +    key: "shareCloudInit",
      +    value: function shareCloudInit() {
      +      this.cloudShareModal.current.show();
      +    }
      +  }, {
      +    key: "topPanelJSX",
      +    value: function topPanelJSX() {
      +      var path = location.pathname.split('/');
      +      // Get job id.
      +      var job_id = path.pop();
      +      // Deriving rootURL this way is required for subURI deployments
      +      // - we cannot just send to '/'.
      +      var rootURL = path.join('/');
      +      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +        className: "sidebar-top-panel",
      +        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +          className: "pl-px table w-full",
      +          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("h4", {
      +            className: "text-sm font-bold mb-0",
      +            children: this.summaryString()
      +          })
      +        }), this.props.data.queries.length > 12 && this.queryIndexButtons(), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("a", {
      +            href: "".concat(rootURL, "/?job_id=").concat(job_id),
      +            className: "text-sm text-seqblue hover:text-seqorange cursor-pointer",
      +            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("i", {
      +              className: "fa fa-pencil"
      +            }), " Edit search"]
      +          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +            className: "text-seqorange px-1",
      +            children: "|"
      +          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("a", {
      +            href: "".concat(rootURL, "/"),
      +            onClick: this.clearSession,
      +            className: "text-sm text-seqblue hover:text-seqorange cursor-pointer",
      +            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("i", {
      +              className: "fa-regular fa-file"
      +            }), " New search"]
      +          })]
      +        }), this.props.shouldShowIndex && this.indexJSX()]
      +      });
      +    }
      +  }, {
      +    key: "summaryString",
      +    value: function summaryString() {
      +      var program = this.props.data.program;
      +      var numqueries = this.props.data.queries.length;
      +      var numquerydb = this.props.data.querydb.length;
      +      return program.toUpperCase() + ': ' + numqueries + ' ' + (numqueries > 1 ? 'queries' : 'query') + ', ' + numquerydb + ' ' + (numquerydb > 1 ? 'databases' : 'database');
      +    }
      +  }, {
      +    key: "queryIndexButtons",
      +    value: function queryIndexButtons() {
      +      var _this2 = this;
      +      var buttonStyle = {
      +        outline: 'none',
      +        border: 'none',
      +        background: 'none'
      +      };
      +      var buttonClasses = 'text-sm text-seqblue hover:text-seqorange hover:bg-gray-200';
      +      var handlePreviousBtnClick = function handlePreviousBtnClick() {
      +        return _this2.handleQueryIndexChange(_this2.state.queryIndex - 1);
      +      };
      +      var handleNextBtnClick = function handleNextBtnClick() {
      +        return _this2.handleQueryIndexChange(_this2.state.queryIndex + 1);
      +      };
      +
      +      // eslint-disable-next-line no-unused-vars
      +      var NavButton = function NavButton(_ref) {
      +        var text = _ref.text,
      +          onClick = _ref.onClick;
      +        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("button", {
      +          className: buttonClasses,
      +          onClick: onClick,
      +          style: buttonStyle,
      +          children: text
      +        });
      +      };
      +      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +        style: {
      +          display: 'flex',
      +          width: '100%',
      +          margin: '7px 0'
      +        },
      +        children: [this.state.queryIndex > 1 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(NavButton, {
      +          text: "Previous Query",
      +          onClick: handlePreviousBtnClick
      +        }), this.state.queryIndex > 1 && this.state.queryIndex < this.props.data.queries.length && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +          className: "text-seqorange px-1",
      +          children: "|"
      +        }), this.state.queryIndex < this.props.data.queries.length && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(NavButton, {
      +          onClick: handleNextBtnClick,
      +          text: "Next Query"
      +        })]
      +      });
      +    }
      +  }, {
      +    key: "indexJSX",
      +    value: function indexJSX() {
      +      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("ul", {
      +        children: [" ", underscore__WEBPACK_IMPORTED_MODULE_1__["default"].map(this.props.data.queries, function (query) {
      +          return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", {
      +              className: "text-sm text-seqblue hover:text-seqorange focus:text-seqorange active: text-seqorange cursor-pointer nowrap-ellipsis hover-bold",
      +              title: 'Query= ' + query.id + ' ' + query.title,
      +              href: '#Query_' + query.number,
      +              children: 'Query= ' + query.id
      +            })
      +          }, 'Side_bar_' + query.id);
      +        })]
      +      });
      +    }
      +  }, {
      +    key: "downloadsPanelJSX",
      +    value: function downloadsPanelJSX() {
      +      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +        className: "downloads",
      +        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +          className: "pl-px table w-full",
      +          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("h4", {
      +            className: "text-sm font-bold mb-0",
      +            children: "Download FASTA, XML, TSV"
      +          })
      +        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("ul", {
      +          children: [!(this.props.data.imported_xml || this.props.data.non_parse_seqids) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            className: "".concat(!this.props.atLeastOneHit ? 'cursor-not-allowed' : 'hover:bg-gray-200'),
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", {
      +              href: "#",
      +              className: "text-sm text-seqblue download-fasta-of-all hover:text-seqorange cursor-pointer py-0.5 px-0.5 ".concat(!this.props.atLeastOneHit && 'disabled'),
      +              onClick: this.props.atLeastOneHit ? this.downloadFastaOfAll : function (e) {
      +                return e.preventDefault();
      +              },
      +              children: "FASTA of all hits"
      +            })
      +          }), !(this.props.data.imported_xml || this.props.data.non_parse_seqids) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("a", {
      +              href: "#",
      +              className: "text-sm text-seqblue download-fasta-of-selected disabled py-0.5 px-0.5",
      +              onClick: this.downloadFastaOfSelected,
      +              children: ["FASTA of ", /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                className: "text-bold"
      +              }), " selected hit(s)"]
      +            })
      +          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            className: "".concat(!this.props.atLeastOneHit ? 'cursor-not-allowed' : 'hover:bg-gray-200'),
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", {
      +              href: "#",
      +              className: "text-sm text-seqblue download-alignment-of-all hover:text-seqorange cursor-pointer py-0.5 px-0.5 ".concat(!this.props.atLeastOneHit && 'disabled'),
      +              children: "Alignment of all hits"
      +            })
      +          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("a", {
      +              href: "#",
      +              className: "text-sm text-seqblue download-alignment-of-selected disabled py-0.5 px-0.5",
      +              children: ["Alignment of ", /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                className: "text-bold"
      +              }), " selected hit(s)"]
      +            })
      +          }), !this.props.data.imported_xml && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            className: "hover:bg-gray-200",
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", {
      +              href: 'download/' + this.props.data.search_id + '.std_tsv',
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                className: "relative flex flex-col items-center group",
      +                children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                  className: "flex items-center w-full",
      +                  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                    className: "w-full text-sm text-seqblue hover:text-seqorange download cursor-pointer py-0.5 px-0.5",
      +                    children: "Standard tabular report"
      +                  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                    className: "absolute hidden left-full ml-2 items-center  group-hover:flex w-[300px]",
      +                    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                      className: "w-0 h-0 border-t-[8px] border-b-[7px] border-r-[7px] border-t-transparent border-b-transparent border-r-black -mr-[1px]"
      +                    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                      className: "relative z-10 p-2 text-xs leading-4 text-center text-white whitespace-no-wrap bg-black shadow-lg rounded-[5px]",
      +                      children: "15 columns: query and subject ID; scientific name, alignment length, mismatches, gaps, identity, start and end coordinates, e value, bitscore, query coverage per subject and per HSP."
      +                    })]
      +                  })]
      +                })
      +              })
      +            })
      +          }), !this.props.data.imported_xml && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            className: "hover:bg-gray-200",
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", {
      +              href: 'download/' + this.props.data.search_id + '.full_tsv',
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                className: "relative flex flex-col items-center group",
      +                children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                  className: "flex items-center w-full",
      +                  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                    className: "w-full text-sm text-seqblue hover:text-seqorange download cursor-pointer py-0.5 px-0.5",
      +                    children: "Full tabular report"
      +                  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                    className: "absolute hidden left-full ml-2 items-center  group-hover:flex w-[300px]",
      +                    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                      className: "w-0 h-0 border-t-[8px] border-b-[7px] border-r-[7px] border-t-transparent border-b-transparent border-r-black -mr-[1px]"
      +                    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                      className: "relative z-10 p-2 text-xs leading-4 text-center text-white whitespace-no-wrap bg-black shadow-lg rounded-[5px]",
      +                      children: "44 columns: query and subject ID, GI, accessions, and length; alignment details; taxonomy details of subject sequence(s) and query coverage per subject and per HSP."
      +                    })]
      +                  })]
      +                })
      +              })
      +            })
      +          }), !this.props.data.imported_xml && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            className: "hover:bg-gray-200",
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", {
      +              href: 'download/' + this.props.data.search_id + '.xml',
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                className: "relative flex flex-col items-center group",
      +                children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                  className: "flex items-center w-full",
      +                  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                    className: "w-full text-sm text-seqblue hover:text-seqorange download cursor-pointer py-0.5 px-0.5",
      +                    children: "Full XML report"
      +                  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                    className: "absolute hidden left-full ml-2 items-center  group-hover:flex w-[300px]",
      +                    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                      className: "w-0 h-0 border-t-[8px] border-b-[7px] border-r-[7px] border-t-transparent border-b-transparent border-r-black -mr-[1px]"
      +                    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                      className: "relative z-10 p-2 text-xs leading-4 text-center text-white whitespace-no-wrap bg-black shadow-lg rounded-[5px]",
      +                      children: "Results in XML format."
      +                    })]
      +                  })]
      +                })
      +              })
      +            })
      +          }), !this.props.data.imported_xml && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            className: "hover:bg-gray-200",
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", {
      +              href: 'download/' + this.props.data.search_id + '.pairwise',
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                className: "relative flex flex-col items-center group",
      +                children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                  className: "flex items-center w-full",
      +                  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                    className: "w-full text-sm text-seqblue hover:text-seqorange download cursor-pointer py-0.5 px-0.5",
      +                    children: "Full Text report"
      +                  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                    className: "absolute hidden left-full ml-2 items-center  group-hover:flex w-[300px]",
      +                    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                      className: "w-0 h-0 border-t-[8px] border-b-[7px] border-r-[7px] border-t-transparent border-b-transparent border-r-black -mr-[1px]"
      +                    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                      className: "relative z-10 p-2 text-xs leading-4 text-center text-white whitespace-no-wrap bg-black shadow-lg rounded-[5px]",
      +                      children: "Results in text format."
      +                    })]
      +                  })]
      +                })
      +              })
      +            })
      +          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(download_links__WEBPACK_IMPORTED_MODULE_5__["default"], {
      +            imported_xml: this.props.data.imported_xml,
      +            search_id: this.props.data.search_id
      +          })]
      +        })]
      +      });
      +    }
      +  }, {
      +    key: "sharingPanelJSX",
      +    value: function sharingPanelJSX() {
      +      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +        className: "sharing-panel",
      +        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +          className: "pl-px table w-full",
      +          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("h4", {
      +            className: "text-sm font-bold mb-0",
      +            children: "Share results"
      +          })
      +        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("ul", {
      +          children: [!this.props.cloudSharingEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            className: "hover:text-seqorange hover:bg-gray-200",
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", {
      +              id: "copyURL",
      +              className: "flex text-sm text-seqblue hover:text-seqorange copy-URL cursor-pointer py-0.5 px-0.5 w-full",
      +              onClick: this.copyURL,
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                className: "relative flex gap-2 items-center group w-full",
      +                children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("i", {
      +                  className: "fa fa-copy"
      +                }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                  className: "flex items-center",
      +                  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                    className: "w-full",
      +                    children: "Copy URL to clipboard"
      +                  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                    id: "tooltip",
      +                    className: "absolute hidden left-full ml-2 items-center",
      +                    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                      className: "flex items-center",
      +                      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                        className: "w-0 h-0 border-t-[8px] border-b-[7px] border-r-[7px] border-t-transparent border-b-transparent border-r-black -mr-[1px]"
      +                      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                        className: "relative z-10 p-2 text-xs leading-4 text-center text-white whitespace-no-wrap bg-black shadow-lg rounded-[5px]",
      +                        children: "Copied!"
      +                      })]
      +                    })
      +                  })]
      +                })]
      +              })
      +            })
      +          }), !this.props.cloudSharingEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            className: "hover:text-seqorange hover:bg-gray-200",
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", {
      +              id: "sendEmail",
      +              className: "text-sm text-seqblue email-URL cursor-pointer py-0.5 px-0.5",
      +              href: asMailftoHref(this.props.data.querydb, this.props.data.program, this.props.data.queries.length, window.location.href),
      +              target: "_blank",
      +              rel: "noopener noreferrer",
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                className: "relative flex gap-2 items-center group w-full",
      +                children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("i", {
      +                  className: "fa fa-envelope"
      +                }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                  className: "flex items-center w-full",
      +                  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                    className: "w-full",
      +                    children: "Send by email"
      +                  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                    className: "absolute hidden left-full ml-2 items-center  group-hover:flex w-[300px]",
      +                    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                      className: "w-0 h-0 border-t-[8px] border-b-[7px] border-r-[7px] border-t-transparent border-b-transparent border-r-black -mr-[1px]"
      +                    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                      className: "relative z-10 p-2 text-xs leading-4 text-center text-white whitespace-no-wrap bg-black shadow-lg rounded-[5px]",
      +                      children: "Send by email"
      +                    })]
      +                  })]
      +                })]
      +              })
      +            })
      +          }), this.props.cloudSharingEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("li", {
      +            className: "hover:text-seqorange hover:bg-gray-200",
      +            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("button", {
      +              className: "flex text-sm text-seqblue hover:text-seqorange cloud-Post cursor-pointer py-0.5 px-0.5 w-full",
      +              onClick: this.shareCloudInit,
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                className: "relative flex gap-2 items-center group w-full",
      +                children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("i", {
      +                  className: "fa fa-cloud"
      +                }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                  className: "flex items-center",
      +                  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                    className: "w-full",
      +                    children: "Share to cloud"
      +                  }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +                    className: "absolute hidden left-full ml-2 items-center  group-hover:flex w-[300px]",
      +                    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +                      className: "w-0 h-0 border-t-[8px] border-b-[7px] border-r-[7px] border-t-transparent border-b-transparent border-r-black -mr-[1px]"
      +                    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      +                      className: "relative z-10 p-2 text-xs leading-4 text-center text-white whitespace-no-wrap bg-black shadow-lg rounded-[5px]",
      +                      children: "Results in pairwise format Upload results to SequenceServer Cloud where it will become accessable to everyone who has a link."
      +                    })]
      +                  })]
      +                })]
      +              })
      +            })
      +          })]
      +        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_cloud_share_modal__WEBPACK_IMPORTED_MODULE_4__["default"], {
      +          ref: this.cloudShareModal,
      +          querydb: this.props.data.querydb,
      +          program: this.props.data.program,
      +          queryLength: this.props.data.queries.length
      +        })]
      +      });
      +    }
      +  }, {
      +    key: "render",
      +    value: function render() {
      +      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +        className: "sidebar",
      +        children: [this.topPanelJSX(), this.downloadsPanelJSX(), this.sharingPanelJSX(), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      +          className: "referral-panel",
      +          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      +            className: "pl-px table w-full text-sm",
      +            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("h4", {
      +              className: "font-bold mb-0",
      +              children: "Recommend SequenceServer"
      +            }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("p", {
      +              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", {
      +                href: "https://sequenceserver.com/referral-program",
      +                target: "_blank",
      +                className: "text-seqblue hover:text-seqorange",
      +                children: "Earn up to $400 per signup"
      +              })
      +            })]
      +          })
      +        })]
      +      });
      +    }
      +  }]);
      +}(react__WEBPACK_IMPORTED_MODULE_0__.Component);
      +
      +
      +/***/ }),
      +
      +/***/ "./public/js/svgExporter.js":
      +/*!**********************************!*\
      +  !*** ./public/js/svgExporter.js ***!
      +  \**********************************/
      +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
      +
      +"use strict";
      +__webpack_require__.r(__webpack_exports__);
      +/* harmony import */ var _exporter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exporter */ "./public/js/exporter.js");
      +/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
      +/**
      + * svgExporter.js
      + *
      + * Exports  as .svg or .png.
      + *
      + * Borrowed and modified from Kablammo which in turn is based on
      + * https://github.com/NYTimes/svg-crowbar.
      + *
      + */
      +
      +
      +/**
      + * Exports the given  DOM node as a .svg file.
      + */
      +var export_as_svg = function export_as_svg(svg, filename) {
      +  var blob = new Blob([serialize_svg(svg)], {
      +    type: 'text/xml'
      +  });
      +  filename = _exporter__WEBPACK_IMPORTED_MODULE_0__.sanitize_filename(filename) + '.svg';
      +  _exporter__WEBPACK_IMPORTED_MODULE_0__.download_blob(blob, filename);
      +};
      +
      +/**
      + * Exports the given  DOM node as a .png file.
      + */
      +var export_as_png = function export_as_png(svg, filename) {
      +  if (typeof window.navigator.msSaveOrOpenBlob !== 'undefined') {
      +    alert('Exporting PNG images is not supported in Internet Explorer. Please use Chrome or Firefox.');
      +    return;
      +  }
      +  var raster_scale_factor = 5;
      +  var canvas = document.getElementById('png-exporter');
      +  var $svg = $(svg);
      +  canvas.height = $svg.height() * raster_scale_factor;
      +  canvas.width = $svg.width() * raster_scale_factor;
      +  var img = new Image();
      +  img.onload = function () {
      +    var context = canvas.getContext('2d');
      +    context.drawImage(img, 0, 0, canvas.width, canvas.height);
      +    filename = _exporter__WEBPACK_IMPORTED_MODULE_0__.sanitize_filename(filename) + '.png';
      +    _exporter__WEBPACK_IMPORTED_MODULE_0__.download_url(canvas.toDataURL('image/png'), filename);
      +  };
      +  img.src = 'data:image/svg+xml;base64,' + window.btoa(serialize_svg(svg));
      +};
      +var serialize_svg = function serialize_svg(svg) {
      +  // Clone svg first so that none of our changes to affect the actual SVG.
      +  svg = svg.cloneNode(true);
      +  d3.select(svg).attr('version', '1.1').insert('defs', ':first-child').append('style').attr('class', 'exported-css').attr('type', 'text/css').node().textContent = get_styles();
      +  svg.removeAttribute('xmlns');
      +  svg.removeAttribute('xlink');
      +  svg.setAttributeNS(d3.ns.prefix.xmlns, 'xmlns', d3.ns.prefix.svg);
      +  svg.setAttributeNS(d3.ns.prefix.xmlns, 'xmlns:xlink', d3.ns.prefix.xlink);
      +  var source = new XMLSerializer().serializeToString(svg);
      +  var doctype = '';
      +  return doctype + source;
      +};
      +var get_styles = function get_styles() {
      +  var styles = '';
      +  for (var i = 0; i < document.styleSheets.length; i++) {
      +    (function process_ss(ss) {
      +      // See if we can access ss.cssRules. Note that cssRules respects
      +      // same-origin policy, as per
      +      // https://code.google.com/p/chromium/issues/detail?id=49001#c10.
      +      try {
      +        // In IE and Chrome, if stylesheet originates from a different
      +        // domain, ss.cssRules simply won't exist. In Firefox, if
      +        // stylesheet originates from a different domain, trying
      +        // to access ss.cssRules will throw a SecurityError.
      +        // Hence, we must use // try/catch to detect this
      +        // condition in Firefox.
      +        if (!ss.cssRules) return;
      +      } catch (e) {
      +        // Rethrow exception if it's not a SecurityError.
      +        if (e.name !== 'SecurityError') throw e;
      +        return;
      +      }
      +
      +      // Stylesheet should be included in SVG and has accessible cssRules, so
      +      // serialize rules into string.
      +      for (var i = 0; i < ss.cssRules.length; i++) {
      +        var rule = ss.cssRules[i];
      +        if (rule.type === CSSRule.IMPORT_RULE) {
      +          process_ss(rule.styleSheet);
      +        } else {
      +          // TODO: Illustrator will crash on descendant selectors. To
      +          // circumvent this, we should ignore such selectors.
      +
      +          var selectorText = rule.selectorText;
      +          if (selectorText && selectorText.indexOf('svg') !== -1) styles += '\n' + rule.cssText;
      +        }
      +      }
      +    })(document.styleSheets[i]);
      +  }
      +  return styles;
      +};
      +var handle_click = function handle_click(export_callback) {
      +  return function () {
      +    var $svg = $(this).parents('.grapher').find('svg');
      +    export_callback($svg[0], $svg.attr('data-name'));
      +    return false;
      +  };
      +};
      +var $body = $('body');
      +$body.on('click', '.export-to-svg', handle_click(export_as_svg));
      +$body.on('click', '.export-to-png', handle_click(export_as_png));
      +
      +/***/ }),
      +
      +/***/ "./public/js/utils.js":
      +/*!****************************!*\
      +  !*** ./public/js/utils.js ***!
      +  \****************************/
      +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
      +
      +"use strict";
      +__webpack_require__.r(__webpack_exports__);
      +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
      +/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
      +/* harmony export */ });
      +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
      +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
      +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
      +
      +
      +var Utils = {
      +  /***********************************
      +   * Formatters for hits & hsp table *
      +   ***********************************/
      +
      +  // Formats an array of two elements as "first (last)".
      +  format_2_tuple: function format_2_tuple(tuple) {
      +    return tuple[0] + ' (' + tuple[tuple.length - 1] + ')';
      +  },
      +  /**
      +   * Returns fraction as percentage
      +   */
      +  inPercentage: function inPercentage(num, den) {
      +    var x = (num * 100.0 / den).toFixed(1);
      +    if (x % 1 == 0) {
      +      x = parseInt(x, 10);
      +      return "".concat(x, "%");
      +    } else {
      +      return "".concat(x, "%");
      +    }
      +  },
      +  /**
      +   * Returns fractional representation as String.
      +   */
      +  inFraction: function inFraction(num, den) {
      +    return num + '/' + den;
      +  },
      +  /**
      +   * Returns given Float as String formatted to two decimal places.
      +   */
      +  inTwoDecimal: function inTwoDecimal(num) {
      +    return num.toFixed(2);
      +  },
      +  /**
      +   * Returns zero if num is zero. Returns two decimal representation of num
      +   * if num is between [1..10). Returns num in scientific notation otherwise.
      +   */
      +  inExponential: function inExponential(num) {
      +    // Nothing to do if num is 0.
      +    if (num === 0) {
      +      return 0;
      +    }
      +
      +    // Round to two decimal places if in the rane [1..10).
      +    if (num >= 1 && num < 10) {
      +      return this.inTwoDecimal(num);
      +    }
      +
      +    // Return numbers in the range [0..1) and [10..Inf] in
      +    // scientific format.
      +    var exp = num.toExponential(2);
      +    var parts = exp.split('e');
      +    var base = parts[0];
      +    var power = parts[1];
      +    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("span", {
      +      children: [base, "\xD710", /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("sup", {
      +        children: power
      +      })]
      +    });
      +  }
      +};
      +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Utils);
      +
      +/***/ }),
      +
      +/***/ "./public/js/visualisation_helpers.js":
      +/*!********************************************!*\
      +  !*** ./public/js/visualisation_helpers.js ***!
      +  \********************************************/
      +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
      +
      +"use strict";
      +__webpack_require__.r(__webpack_exports__);
      +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
      +/* harmony export */   get_colors_for_evalue: () => (/* binding */ get_colors_for_evalue),
      +/* harmony export */   get_seq_type: () => (/* binding */ get_seq_type),
      +/* harmony export */   prettify_evalue: () => (/* binding */ prettify_evalue),
      +/* harmony export */   tick_formatter: () => (/* binding */ tick_formatter),
      +/* harmony export */   toLetters: () => (/* binding */ toLetters)
      +/* harmony export */ });
      +/* harmony import */ var underscore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! underscore */ "./node_modules/underscore/modules/index-all.js");
      +/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/d3.js");
      +/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(d3__WEBPACK_IMPORTED_MODULE_1__);
      +
      +
      +function get_colors_for_evalue(evalue, hits) {
      +  var colors = d3__WEBPACK_IMPORTED_MODULE_1___default().scale.log().domain([d3__WEBPACK_IMPORTED_MODULE_1___default().min([1e-5, d3__WEBPACK_IMPORTED_MODULE_1___default().min(hits.map(function (d) {
      +    if (parseFloat(d.evalue) === 0.0) return undefined;
      +    return d.evalue;
      +  }))]), d3__WEBPACK_IMPORTED_MODULE_1___default().max(hits.map(function (d) {
      +    return d.evalue;
      +  }))]).range([0, 0.8]);
      +  var rgb = colors(evalue);
      +  return d3__WEBPACK_IMPORTED_MODULE_1___default().hsl(20, 0.82, rgb);
      +}
      +function toLetters(num) {
      +  var mod = num % 26,
      +    pow = num / 26 | 0,
      +    out = mod ? String.fromCharCode(96 + mod) : (--pow, 'z');
      +  return pow ? toLetters(pow) + out : out;
      +}
      +
      +/**
      + * Defines how ticks will be formatted.
      + *
      + * Examples: 200 aa, 2.4 kbp, 7.6 Mbp.
      + *
      + * Borrowed from Kablammo. Modified by Priyam based on https://github.com/mbostock/d3/issues/1722.
      + */
      +function tick_formatter(scale, seq_type) {
      +  var ticks = scale.ticks();
      +  var prefix = d3__WEBPACK_IMPORTED_MODULE_1___default().formatPrefix(ticks[ticks.length - 1]);
      +  var suffixes = {
      +    amino_acid: 'aa',
      +    nucleic_acid: 'bp'
      +  };
      +  var digits = 0;
      +  var format;
      +  var _ticks;
      +  do {
      +    format = d3__WEBPACK_IMPORTED_MODULE_1___default().format('.' + digits + 'f');
      +    _ticks = scale.ticks().map(function (d) {
      +      return format(prefix.scale(d));
      +    });
      +    digits++;
      +  } while (_ticks.length !== underscore__WEBPACK_IMPORTED_MODULE_0__["default"].uniq(_ticks).length);
      +  return function (d) {
      +    if (!prefix.symbol || d === scale.domain()[0]) {
      +      return d + ' ' + suffixes[seq_type];
      +    } else {
      +      return format(prefix.scale(d)) + ' ' + prefix.symbol + suffixes[seq_type];
      +    }
      +  };
      +}
      +function get_seq_type(algorithm) {
      +  var SEQ_TYPES = {
      +    blastn: {
      +      query_seq_type: 'nucleic_acid',
      +      subject_seq_type: 'nucleic_acid'
      +    },
      +    blastp: {
      +      query_seq_type: 'amino_acid',
      +      subject_seq_type: 'amino_acid'
      +    },
      +    blastx: {
      +      query_seq_type: 'nucleic_acid',
      +      subject_seq_type: 'amino_acid'
      +    },
      +    tblastx: {
      +      query_seq_type: 'nucleic_acid',
      +      subject_seq_type: 'nucleic_acid'
      +    },
      +    tblastn: {
      +      query_seq_type: 'amino_acid',
      +      subject_seq_type: 'nucleic_acid'
      +    }
      +  };
      +  return SEQ_TYPES[algorithm];
      +}
      +function prettify_evalue(evalue) {
      +  var matches = evalue.toString().split('e');
      +  var base = matches[0];
      +  var power = matches[1];
      +  if (power) {
      +    var s = parseFloat(base).toFixed(2);
      +    var element = '' + s + ' × 10' + power + '';
      +    return element;
      +  } else {
      +    if (!(base % 1 == 0)) return parseFloat(base).toFixed(2);else return base;
      +  }
      +}
      +
      +/***/ }),
      +
      +/***/ "./public/packages/circosJS@1.7.0.js":
      +/*!*******************************************!*\
      +  !*** ./public/packages/circosJS@1.7.0.js ***!
      +  \*******************************************/
      +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
      +
      +/* module decorator */ module = __webpack_require__.nmd(module);
      +var _circosJS$Stack$proto;
      +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
      +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
      +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
      +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
      +var _circosJS,
      +  indexOf = [].indexOf || function (item) {
      +    for (var i = 0, l = this.length; i < l; i++) {
      +      if (i in this && this[i] === item) return i;
      +    }
      +    return -1;
      +  };
      +if (typeof Object.assign !== 'function') {
      +  Object.assign = function (target) {
      +    'use strict';
      +
      +    var index, key, source;
      +    if (target === null) {
      +      throw new TypeError('Cannot convert undefined or null to object');
      +    }
      +    target = Object(target);
      +    index = 1;
      +    while (index < arguments.length) {
      +      source = arguments[index];
      +      if (source !== null) {
      +        for (key in source) {
      +          if (Object.prototype.hasOwnProperty.call(source, key)) {
      +            target[key] = source[key];
      +          }
      +        }
      +      }
      +      index++;
      +    }
      +    return target;
      +  };
      +}
      +_circosJS = function circosJS(conf) {
      +  var instance;
      +  instance = new _circosJS.Core(conf);
      +  return instance;
      +};
      +_circosJS.Core = function (conf) {
      +  this.tracks = {
      +    heatmaps: {},
      +    histograms: {},
      +    chords: {},
      +    scatters: {},
      +    lines: {},
      +    stacks: {},
      +    highlights: {},
      +    texts: {}
      +  };
      +  this.conf = _circosJS.mixConf(conf, this.defaultConf);
      +  return this;
      +};
      +_circosJS.Core.prototype.removeTracks = function (trackIds) {
      +  var id, l, len, ref, store, svg, trackId, type;
      +  svg = d3.select(this.conf.container);
      +  ref = this.tracks;
      +  for (type in ref) {
      +    store = ref[type];
      +    if (_typeof(trackIds) === 'object') {
      +      for (l = 0, len = trackIds.length; l < len; l++) {
      +        id = trackIds[l];
      +        if (id in store) {
      +          svg.select('.' + id).remove();
      +          delete store[id];
      +        }
      +      }
      +    } else if (typeof trackIds === 'string') {
      +      if (trackIds in store) {
      +        svg.select('.' + trackIds).remove();
      +        delete store[trackIds];
      +      }
      +    } else if (typeof trackIds === 'undefined') {
      +      for (trackId in store) {
      +        svg.select('.' + trackId).remove();
      +        delete store[trackId];
      +      }
      +    }
      +  }
      +  return this;
      +};
      +_circosJS.Core.prototype.layout = function (conf, data) {
      +  this._layout = new _circosJS.Layout(conf, data);
      +  return this;
      +};
      +_circosJS.log = function (level, code, message, data) {
      +  var levels;
      +  levels = ['Permanent log', 'Error', 'Warning', 'Info'];
      +  console.log('CircosJS: ', levels[level] + ' [' + code + '] ', message, data);
      +};
      +_circosJS.mixConf = function (conf, defaultConf) {
      +  var key, newConf, value;
      +  newConf = {};
      +  for (key in defaultConf) {
      +    value = defaultConf[key];
      +    if (key in conf) {
      +      if (Object.prototype.toString.call(value) === '[object Array]') {
      +        newConf[key] = conf[key];
      +      } else if (_typeof(value) === 'object' && value != null) {
      +        if (value != null && Object.keys(value).length === 0) {
      +          newConf[key] = conf[key];
      +        } else {
      +          newConf[key] = _circosJS.mixConf(conf[key], value);
      +        }
      +      } else {
      +        newConf[key] = conf[key];
      +      }
      +    } else {
      +      newConf[key] = value;
      +    }
      +  }
      +  return newConf;
      +};
      +_circosJS.Core.prototype.smartBorders = function () {
      +  var border, borders, currentBorder, l, layout, len, ref, store, track, trackId, trackType, width;
      +  width = this.conf.defaultTrackWidth;
      +  layout = {
      +    'in': this._layout.conf.innerRadius,
      +    out: this._layout.conf.outerRadius
      +  };
      +  borders = [];
      +  ref = this.tracks;
      +  for (trackType in ref) {
      +    store = ref[trackType];
      +    for (trackId in store) {
      +      track = store[trackId];
      +      if (track.conf.innerRadius) {
      +        borders.push({
      +          'in': track.conf.innerRadius,
      +          out: track.conf.outerRadius
      +        });
      +      }
      +    }
      +  }
      +  borders = borders.sort(function (a, b) {
      +    if (a.out > b.out) {
      +      1;
      +    }
      +    if (a.out < b.out) {
      +      -1;
      +    }
      +    return 0;
      +  });
      +  currentBorder = layout;
      +  for (l = 0, len = borders.length; l < len; l++) {
      +    border = borders[l];
      +    if (border.out < currentBorder['in'] - width) {
      +      return {
      +        'in': currentBorder['in'] - width,
      +        out: currentBorder['in']
      +      };
      +    }
      +    currentBorder = border;
      +  }
      +  if (currentBorder['in'] > width) {
      +    return {
      +      'in': currentBorder['in'] - width,
      +      out: currentBorder['in']
      +    };
      +  } else {
      +    return {
      +      'in': borders[0].out,
      +      out: borders[0].out + width
      +    };
      +  }
      +};
      +if ( true && module !== null) {
      +  module.exports = _circosJS;
      +}
      +_circosJS.checkParent = function (key, index, layoutSummary, header) {
      +  if (!(key in layoutSummary)) {
      +    _circosJS.log(1, 'datum', 'unknown parent id', {
      +      line: index + 1,
      +      value: key,
      +      header: header,
      +      layoutSummary: layoutSummary
      +    });
      +    return false;
      +  }
      +  return true;
      +};
      +_circosJS.checkNumber = function (keys, index) {
      +  var header, value;
      +  for (header in keys) {
      +    value = keys[header];
      +    if (isNaN(value)) {
      +      _circosJS.log(1, 'datum', 'not a number', {
      +        line: index + 1,
      +        value: value,
      +        header: header
      +      });
      +      return false;
      +    }
      +  }
      +  return true;
      +};
      +_circosJS.parseSpanValueData = function (data, layoutSummary) {
      +  var groups, sample;
      +  if (!(data.length > 0)) {
      +    return {
      +      data: [],
      +      meta: {
      +        min: null,
      +        max: null
      +      }
      +    };
      +  }
      +  sample = data[0];
      +  if ('parent_id' in sample && 'start' in sample && 'end' in sample && 'value' in sample) {
      +    data = data.map(function (datum) {
      +      return [datum.parent_id, datum.start, datum.end, datum.value];
      +    });
      +  }
      +  data = data.filter(function (datum, index) {
      +    return _circosJS.checkParent(datum[0], index, layoutSummary, 'parent');
      +  }).filter(function (datum, index) {
      +    return _circosJS.checkNumber({
      +      start: datum[1],
      +      end: datum[2],
      +      value: datum[3]
      +    }, index);
      +  }).map(function (datum) {
      +    if (datum[1] < 0 || datum[2] > layoutSummary[datum[0]]) {
      +      _circosJS.log(2, 'position', 'position inconsistency', {
      +        datum: datum,
      +        layoutSummary: layoutSummary
      +      });
      +    }
      +    return {
      +      block_id: datum[0],
      +      start: Math.max(0, parseFloat(datum[1])),
      +      end: Math.min(layoutSummary[datum[0]], parseFloat(datum[2])),
      +      value: parseFloat(datum[3]) || 1
      +    };
      +  });
      +  groups = d3.nest().key(function (datum) {
      +    return datum.block_id;
      +  }).entries(data);
      +  return {
      +    data: groups,
      +    meta: {
      +      min: d3.min(data, function (d) {
      +        return d.value;
      +      }),
      +      max: d3.max(data, function (d) {
      +        return d.value;
      +      })
      +    }
      +  };
      +};
      +_circosJS.parseSpanStringData = function (data, layoutSummary) {
      +  var groups, sample;
      +  sample = data[0];
      +  if ('parent_id' in sample && 'start' in sample && 'end' in sample && 'value' in sample) {
      +    data = data.map(function (datum) {
      +      return [datum.parent_id, datum.start, datum.end, datum.value];
      +    });
      +  }
      +  data = data.filter(function (datum, index) {
      +    return _circosJS.checkParent(datum[0], index, layoutSummary, 'parent');
      +  }).filter(function (datum, index) {
      +    return _circosJS.checkNumber({
      +      start: datum[1],
      +      end: datum[2]
      +    }, index);
      +  }).map(function (datum) {
      +    var value;
      +    if (datum[1] < 0 || datum[2] > layoutSummary[datum[0]]) {
      +      _circosJS.log(2, 'position', 'position inconsistency', {
      +        datum: datum,
      +        layoutSummary: layoutSummary
      +      });
      +    }
      +    value = datum[3] != null ? datum[3] : null;
      +    return {
      +      block_id: datum[0],
      +      start: Math.max(0, parseFloat(datum[1])),
      +      end: Math.min(layoutSummary[datum[0]], parseFloat(datum[2])),
      +      value: value
      +    };
      +  });
      +  groups = d3.nest().key(function (datum) {
      +    return datum.block_id;
      +  }).entries(data);
      +  return {
      +    data: groups,
      +    meta: {
      +      min: d3.min(data, function (d) {
      +        return d.value;
      +      }),
      +      max: d3.max(data, function (d) {
      +        return d.value;
      +      })
      +    }
      +  };
      +};
      +_circosJS.parsePositionValueData = function (data, layoutSummary) {
      +  var groups, sample;
      +  sample = data[0];
      +  if ('parent_id' in sample && 'position' in sample) {
      +    data = data.map(function (datum) {
      +      return [datum.parent_id, datum.position, datum.value];
      +    });
      +  }
      +  data = data.filter(function (datum, index) {
      +    return _circosJS.checkParent(datum[0], index, layoutSummary, 'parent');
      +  }).filter(function (datum, index) {
      +    return _circosJS.checkNumber({
      +      position: datum[1],
      +      value: datum[2]
      +    }, index);
      +  }).map(function (datum) {
      +    return {
      +      block_id: datum[0],
      +      position: Math.min(layoutSummary[datum[0]], parseFloat(datum[1])),
      +      value: parseFloat(datum[2]) || 1
      +    };
      +  });
      +  groups = d3.nest().key(function (datum) {
      +    return datum.block_id;
      +  }).entries(data);
      +  return {
      +    data: groups,
      +    meta: {
      +      min: d3.min(data, function (d) {
      +        return d.value;
      +      }),
      +      max: d3.max(data, function (d) {
      +        return d.value;
      +      })
      +    }
      +  };
      +};
      +_circosJS.parsePositionTextData = function (data, layoutSummary) {
      +  var groups, sample;
      +  sample = data[0];
      +  if ('parent_id' in sample && 'position' in sample) {
      +    data = data.map(function (datum) {
      +      return [datum.parent_id, datum.position, datum.value];
      +    });
      +  }
      +  data = data.filter(function (datum, index) {
      +    return _circosJS.checkParent(datum[0], index, layoutSummary, 'parent');
      +  }).filter(function (datum, index) {
      +    return _circosJS.checkNumber({
      +      position: datum[1]
      +    }, index);
      +  }).map(function (datum) {
      +    return {
      +      block_id: datum[0],
      +      position: Math.min(layoutSummary[datum[0]], parseFloat(datum[1])),
      +      value: datum[2]
      +    };
      +  });
      +  groups = d3.nest().key(function (datum) {
      +    return datum.block_id;
      +  }).entries(data);
      +  return {
      +    data: groups,
      +    meta: {
      +      min: d3.min(data, function (d) {
      +        return d.value;
      +      }),
      +      max: d3.max(data, function (d) {
      +        return d.value;
      +      })
      +    }
      +  };
      +};
      +_circosJS.parseChordData = function (data, layoutSummary) {
      +  var sample;
      +  sample = data[0];
      +  if ('source_id' in sample && 'source_start' in sample && 'source_end' && 'target_id' in sample && 'target_start' in sample && 'target_end' in sample) {
      +    data = data.map(function (datum) {
      +      var elts;
      +      elts = [datum.source_id, datum.source_start, datum.source_end, datum.target_id, datum.target_start, datum.target_end];
      +      if (datum.value != null) {
      +        elts.push(datum.value);
      +      }
      +      return elts;
      +    });
      +  }
      +  data = data.filter(function (datum, index) {
      +    return _circosJS.checkParent(datum[0], index, layoutSummary, 'source_id');
      +  }).filter(function (datum, index) {
      +    return _circosJS.checkParent(datum[3], index, layoutSummary, 'target_id');
      +  }).filter(function (datum, index) {
      +    return _circosJS.checkNumber({
      +      source_start: datum[1],
      +      source_end: datum[2],
      +      target_start: datum[4],
      +      target_end: datum[5],
      +      value: datum[6] || 1
      +    }, index);
      +  }).map(function (datum) {
      +    return {
      +      source: {
      +        id: datum[0],
      +        start: Math.max(0, parseFloat(datum[1])),
      +        end: Math.min(layoutSummary[datum[0]], parseFloat(datum[2]))
      +      },
      +      target: {
      +        id: datum[3],
      +        start: Math.max(0, parseFloat(datum[4])),
      +        end: Math.min(layoutSummary[datum[3]], parseFloat(datum[5]))
      +      },
      +      value: parseFloat(datum[6]),
      +      hsp: datum[7]
      +    };
      +  });
      +  return {
      +    data: data,
      +    meta: {
      +      min: d3.min(data, function (d) {
      +        return d.value;
      +      }),
      +      max: d3.max(data, function (d) {
      +        return d.value;
      +      })
      +    }
      +  };
      +};
      +_circosJS.Layout = function (conf, data) {
      +  var block_nb, gap, k, offset, ref, ref1, size, v;
      +  if (data == null) {
      +    _circosJS.log(2, 'no layout data', '');
      +  }
      +  this.conf = _circosJS.mixConf(conf, JSON.parse(JSON.stringify(this.defaultConf)));
      +  this.data = data;
      +  this.blocks = {};
      +  this.size = 0;
      +  offset = 0;
      +  ref = this.data;
      +  for (k in ref) {
      +    v = ref[k];
      +    this.blocks[v.id] = {
      +      label: v.label,
      +      len: v.len,
      +      color: v.color,
      +      offset: offset
      +    };
      +    v.offset = offset;
      +    offset += v.len;
      +  }
      +  this.size = offset;
      +  gap = this.conf.gap;
      +  size = this.size;
      +  block_nb = this.data.length;
      +  ref1 = this.data;
      +  for (k in ref1) {
      +    v = ref1[k];
      +    this.blocks[v.id].start = v.offset / size * (2 * Math.PI - block_nb * gap) + k * gap;
      +    this.blocks[v.id].end = (v.offset + v.len) / size * (2 * Math.PI - block_nb * gap) + k * gap;
      +    v.start = v.offset / size * (2 * Math.PI - block_nb * gap) + k * gap;
      +    v.end = (v.offset + v.len) / size * (2 * Math.PI - block_nb * gap) + k * gap;
      +  }
      +  this.getAngle = function (blockId, unit) {
      +    var block;
      +    block = this.blocks[blockId].start / this._size;
      +    if (unit === 'deg') {
      +      return block * 360;
      +    } else if (unit === 'rad') {
      +      return block * 2 * Math.PI;
      +    } else {
      +      return null;
      +    }
      +  };
      +  this.summary = function () {
      +    var d, l, layoutSummary, len, ref2;
      +    layoutSummary = {};
      +    ref2 = this._data;
      +    for (l = 0, len = ref2.length; l < len; l++) {
      +      d = ref2[l];
      +      layoutSummary[d.id] = d.len;
      +    }
      +    return layoutSummary;
      +  };
      +  return this;
      +};
      +_circosJS.Core.prototype.heatmap = function (id, conf, data) {
      +  var track;
      +  track = new _circosJS.Heatmap();
      +  track.build(this, conf, data);
      +  this.tracks.heatmaps[id] = track;
      +  return this;
      +};
      +_circosJS.Core.prototype.histogram = function (id, conf, data) {
      +  var track;
      +  track = new _circosJS.Histogram();
      +  track.build(this, conf, data);
      +  this.tracks.histograms[id] = track;
      +  return this;
      +};
      +_circosJS.Core.prototype.chord = function (id, conf, data) {
      +  var track;
      +  track = new _circosJS.Chord();
      +  track.build(this, conf, data);
      +  this.tracks.chords[id] = track;
      +  return this;
      +};
      +_circosJS.Core.prototype.scatter = function (id, conf, data) {
      +  var track;
      +  track = new _circosJS.Scatter();
      +  track.build(this, conf, data);
      +  this.tracks.scatters[id] = track;
      +  return this;
      +};
      +_circosJS.Core.prototype.line = function (id, conf, data) {
      +  var track;
      +  track = new _circosJS.Line();
      +  track.build(this, conf, data);
      +  this.tracks.lines[id] = track;
      +  return this;
      +};
      +_circosJS.Core.prototype.stack = function (id, conf, data) {
      +  var track;
      +  track = new _circosJS.Stack();
      +  track.build(this, conf, data);
      +  this.tracks.stacks[id] = track;
      +  return this;
      +};
      +_circosJS.Core.prototype.highlight = function (id, conf, data) {
      +  var track;
      +  track = new _circosJS.Highlight();
      +  track.build(this, conf, data);
      +  this.tracks.highlights[id] = track;
      +  return this;
      +};
      +_circosJS.Core.prototype.text = function (id, conf, data) {
      +  var track;
      +  track = new _circosJS.Text();
      +  track.build(this, conf, data);
      +  this.tracks.texts[id] = track;
      +  return this;
      +};
      +_circosJS.Chord = function () {
      +  _circosJS.Track.call(this);
      +  this.parseData = _circosJS.parseChordData;
      +  this.applyRules = function (rules, data) {
      +    var datum, l, len, results, rule;
      +    rules = rules || [];
      +    results = [];
      +    for (l = 0, len = data.length; l < len; l++) {
      +      datum = data[l];
      +      results.push(function () {
      +        var len1, m, results1;
      +        results1 = [];
      +        for (m = 0, len1 = rules.length; m < len1; m++) {
      +          rule = rules[m];
      +          if (rule.condition(datum)) {
      +            results1.push(datum[rule.parameter] = rule.value);
      +          } else {
      +            results1.push(void 0);
      +          }
      +        }
      +        return results1;
      +      }());
      +    }
      +    return results;
      +  };
      +  this.getSource = function (_this) {
      +    return function (d, layout) {
      +      var block, endAngle, result, startAngle;
      +      d = d.source;
      +      block = layout.blocks[d.id];
      +      startAngle = block.start + d.start / block.len * (block.end - block.start);
      +      endAngle = block.start + d.end / block.len * (block.end - block.start);
      +      return result = {
      +        radius: layout.conf.innerRadius,
      +        startAngle: startAngle,
      +        endAngle: endAngle
      +      };
      +    };
      +  }(this);
      +  this.getTarget = function (_this) {
      +    return function (d, layout) {
      +      var block, endAngle, result, startAngle;
      +      d = d.target;
      +      block = layout.blocks[d.id];
      +      startAngle = block.start + d.start / block.len * (block.end - block.start);
      +      endAngle = block.start + d.end / block.len * (block.end - block.start);
      +      return result = {
      +        radius: layout.conf.innerRadius,
      +        startAngle: startAngle,
      +        endAngle: endAngle
      +      };
      +    };
      +  }(this);
      +  this.dimChords = function (parentElement, d, conf, index) {
      +    parentElement.selectAll('path').style('opacity', function (p, i) {
      +      if (index == i) {
      +        return 1;
      +      }
      +      return 0;
      +    });
      +  };
      +  this.resetChords = function (parentElement, conf) {
      +    parentElement.selectAll('path').style('opacity', conf.opacity);
      +  };
      +  this.renderChords = function (parentElement, name, conf, data, layout, ratio, getSource, getTarget) {
      +    var link, track;
      +    track = parentElement.append('g').attr('class', conf.colorPalette);
      +    link = track.selectAll('.chord').data(data).enter().append('path').attr('class', 'chord').attr('d', d3.svg.chord().source(function (d) {
      +      return getSource(d, layout);
      +    }).target(function (d) {
      +      return getTarget(d, layout);
      +    })).attr('opacity', function (d) {
      +      return conf.opacity;
      +    }).attr('id', function (d) {
      +      return d.source.id + '_' + d.target.id;
      +    }).on('mouseover', function (_this) {
      +      return function (d, i, j) {
      +        _this.dimChords(track, d, conf, i);
      +        return _this.dispatch.mouseover(d, i, j);
      +      };
      +    }(this)).on('mouseout', function (_this) {
      +      return function (d, i, j) {
      +        _this.resetChords(track, conf);
      +        return _this.dispatch.mouseout(d, i, j);
      +      };
      +    }(this));
      +    if (conf.usePalette) {
      +      link.attr('class', function (d) {
      +        return 'q' + ratio(d.value, conf.cmin, conf.cmax, conf.colorPaletteSize, conf.colorPaletteReverse, conf.logScale) + '-' + conf.colorPaletteSize;
      +      });
      +    } else {
      +      link.attr('fill', function (d) {
      +        return d.color || conf.color;
      +      });
      +    }
      +    return link;
      +  };
      +  this.render = function (_this) {
      +    return function (instance, parentElement, name) {
      +      var selection, track;
      +      parentElement.select('.' + name).remove();
      +      track = parentElement.append('g').attr('class', name).attr('z-index', _this.conf.zIndex);
      +      selection = _this.renderChords(track, name, _this.conf, _this.data, instance._layout, _this.ratio, _this.getSource, _this.getTarget);
      +      if (_this.conf.tooltipContent != null) {
      +        return _circosJS.registerTooltip(instance, _this, selection, _this.conf);
      +      }
      +    };
      +  }(this);
      +  return this;
      +};
      +_circosJS.Heatmap = function () {
      +  _circosJS.Track.call(this);
      +  this.parseData = _circosJS.parseSpanValueData;
      +  this.renderDatumContainer = function (_this) {
      +    return function (instance, parentElement, name, data, conf) {
      +      var group, track;
      +      track = parentElement.append('g').attr('class', conf.colorPalette);
      +      return group = _this.renderBlock(track, data, instance._layout, conf);
      +    };
      +  }(this);
      +  this.renderDatum = function (parentElement, conf, layout, utils) {
      +    return parentElement.selectAll('tile').data(function (d) {
      +      return d.values;
      +    }).enter().append('path').attr('class', 'tile').attr('opacity', function (d) {
      +      return d.opacity || conf.opacity;
      +    }).attr('d', d3.svg.arc().innerRadius(conf.innerRadius).outerRadius(conf.outerRadius).startAngle(function (d, i) {
      +      return utils.theta(d.start, layout.blocks[d.block_id]);
      +    }).endAngle(function (d, i) {
      +      return utils.theta(d.end, layout.blocks[d.block_id]);
      +    })).attr('class', function (d) {
      +      return 'q' + utils.ratio(d.value, conf.cmin, conf.cmax, conf.colorPaletteSize, conf.colorPaletteReverse, conf.logScale) + '-' + conf.colorPaletteSize;
      +    });
      +  };
      +  return this;
      +};
      +_circosJS.Highlight = function () {
      +  _circosJS.Track.call(this);
      +  this.parseData = _circosJS.parseSpanStringData;
      +  this.renderDatumContainer = function (_this) {
      +    return function (instance, parentElement, name, data, conf) {
      +      var group;
      +      return group = _this.renderBlock(parentElement, data, instance._layout, conf);
      +    };
      +  }(this);
      +  this.renderDatum = function (parentElement, conf, layout, utils) {
      +    return parentElement.selectAll('tile').data(function (d) {
      +      return d.values;
      +    }).enter().append('path').attr('class', 'tile').attr('d', d3.svg.arc().innerRadius(conf.innerRadius).outerRadius(conf.outerRadius).startAngle(function (d, i) {
      +      return utils.theta(d.start, layout.blocks[d.block_id]);
      +    }).endAngle(function (d, i) {
      +      return utils.theta(d.end, layout.blocks[d.block_id]);
      +    })).attr('fill', function (d) {
      +      return d.value || conf.color;
      +    }).attr('opacity', function (d) {
      +      return d.opacity || conf.opacity;
      +    }).attr('stroke-width', function (d) {
      +      return d.strokeWidth || conf.strokeWidth;
      +    }).attr('stroke', function (d) {
      +      return d.strokeColor || conf.strokeColor;
      +    });
      +  };
      +  return this;
      +};
      +_circosJS.Histogram = function () {
      +  _circosJS.Track.call(this);
      +  this.parseData = _circosJS.parseSpanValueData;
      +  this.renderDatumContainer = function (_this) {
      +    return function (instance, parentElement, name, data, conf) {
      +      var group, track;
      +      track = parentElement.append('g').attr('class', _this.conf.colorPalette);
      +      return group = _this.renderBlock(track, data, instance._layout, conf);
      +    };
      +  }(this);
      +  this.renderDatum = function (parentElement, conf, layout, utils) {
      +    var bin;
      +    bin = parentElement.selectAll('.bin').data(function (d) {
      +      return d.values;
      +    }).enter().append('path').attr('class', 'bin').attr('opacity', function (d) {
      +      return d.opacity || conf.opacity;
      +    }).attr('d', d3.svg.arc().innerRadius(function (d) {
      +      var height;
      +      if (conf.direction === 'in') {
      +        height = utils.ratio(d.value, conf.cmin, conf.cmax, conf.outerRadius - conf.innerRadius, false, conf.logscale);
      +        return conf.outerRadius - height;
      +      } else {
      +        return conf.innerRadius;
      +      }
      +    }).outerRadius(function (d) {
      +      var height;
      +      if (conf.direction === 'out') {
      +        height = utils.ratio(d.value, conf.cmin, conf.cmax, conf.outerRadius - conf.innerRadius, false, conf.logscale);
      +        return conf.innerRadius + height;
      +      } else {
      +        return conf.outerRadius;
      +      }
      +    }).startAngle(function (d) {
      +      return utils.theta(d.start, layout.blocks[d.block_id]);
      +    }).endAngle(function (d) {
      +      return utils.theta(d.end, layout.blocks[d.block_id]);
      +    }));
      +    if (conf.usePalette) {
      +      bin.attr('class', function (d) {
      +        return 'q' + utils.ratio(d.value, conf.cmin, conf.cmax, conf.colorPaletteSize, conf.colorPaletteReverse, conf.logScale) + '-' + conf.colorPaletteSize;
      +      });
      +    } else {
      +      bin.attr('fill', d.color || conf.color);
      +    }
      +    return bin;
      +  };
      +  return this;
      +};
      +_circosJS.Line = function () {
      +  _circosJS.Track.call(this);
      +  this.parseData = _circosJS.parsePositionValueData;
      +  this.renderDatumContainer = function (_this) {
      +    return function (instance, parentElement, name, data, conf) {
      +      var group, track;
      +      track = parentElement.append('g').attr('class', name);
      +      return group = _this.renderBlock(track, data, instance._layout, conf);
      +    };
      +  }(this);
      +  this.renderDatum = function (parentElement, conf, layout, utils) {
      +    var line;
      +    line = d3.svg.line().x(function (d) {
      +      return utils.x(d, layout, conf);
      +    }).y(function (d) {
      +      return utils.y(d, layout, conf);
      +    }).interpolate(conf.interpolation);
      +    return parentElement.append('path').datum(function (d) {
      +      return d.values;
      +    }).attr('class', 'line').attr('d', line).attr('opacity', function (d) {
      +      return d.opacity || conf.opacity;
      +    }).attr('stroke-width', function (d) {
      +      return d.thickness || conf.thickness;
      +    }).attr('stroke', function (d) {
      +      return d.color || conf.color;
      +    }).attr('fill', function (d) {
      +      var color, fill;
      +      fill = d.fill || conf.fill;
      +      color = d.fill_color || conf.fill_color;
      +      if (fill) {
      +        return color;
      +      } else {
      +        return 'none';
      +      }
      +    });
      +  };
      +  return this;
      +};
      +_circosJS.Scatter = function () {
      +  _circosJS.Track.call(this);
      +  this.parseData = _circosJS.parsePositionValueData;
      +  this.renderDatumContainer = function (_this) {
      +    return function (instance, parentElement, name, data, conf) {
      +      var group, track;
      +      track = parentElement.append('g').attr('class', name);
      +      return group = _this.renderBlock(track, data, instance._layout, conf);
      +    };
      +  }(this);
      +  this.renderDatum = function (parentElement, conf, layout, utils) {
      +    var point;
      +    point = parentElement.selectAll('.point').data(function (d) {
      +      return d.values;
      +    }).enter().append('path').attr('class', 'point').attr('opacity', function (d) {
      +      return d.opacity || conf.opacity;
      +    }).attr('d', d3.svg.symbol().type(conf.glyph.shape).size(conf.glyph.size)).attr('transform', function (_this) {
      +      return function (d) {
      +        return 'translate(' + utils.x(d, layout, conf) + ',' + utils.y(d, layout, conf) + ') rotate(' + utils.theta(d.position, layout.blocks[d.block_id]) * 360 / (2 * Math.PI) + ')';
      +      };
      +    }(this)).attr('stroke', function (d) {
      +      return d.glyph_strokeColor || conf.glyph.strokeColor;
      +    }).attr('stroke-width', function (d) {
      +      return d.glyph_strokeWidth || conf.glyph.strokeWidth;
      +    }).attr('fill', function (d) {
      +      var color, fill;
      +      fill = d.glyph_fill || conf.glyph.fill;
      +      color = d.glyph_color || conf.glyph.color;
      +      if (fill) {
      +        return color;
      +      } else {
      +        return 'none';
      +      }
      +    });
      +    return point;
      +  };
      +  return this;
      +};
      +_circosJS.Stack = function () {
      +  _circosJS.Track.call(this);
      +  this.parseData = _circosJS.parseSpanValueData;
      +  this.build = function (instance, conf, data, rules, backgrounds) {
      +    this.loadData(data, instance);
      +    this.conf = this.processConf(conf, this.defaultConf, this.meta, instance, this);
      +    this.buildLayers(this.data, this.conf.margin);
      +    return this.applyRules(conf.rules, this.data);
      +  };
      +  this.buildLayers = function (data, margin) {
      +    var block, datum, i, idx, l, lastDatumInLayer, layer, layers, len, len1, m, placed, ref;
      +    for (idx in data) {
      +      block = data[idx];
      +      block.values = block.values.sort(function (a, b) {
      +        if (a.start < b.start) {
      +          return -1;
      +        }
      +        if (a.start === b.start && a.end > b.end) {
      +          return -1;
      +        }
      +        if (a.start === b.start && a.end === b.end) {
      +          return 0;
      +        }
      +        return 1;
      +      });
      +      layers = [];
      +      ref = block.values;
      +      for (l = 0, len = ref.length; l < len; l++) {
      +        datum = ref[l];
      +        placed = false;
      +        for (i = m = 0, len1 = layers.length; m < len1; i = ++m) {
      +          layer = layers[i];
      +          lastDatumInLayer = layer.slice(0).pop();
      +          if (lastDatumInLayer.end + margin < datum.start) {
      +            layer.push(datum);
      +            datum.layer = i;
      +            placed = true;
      +            break;
      +          }
      +        }
      +        if (!placed) {
      +          datum.layer = layers.length;
      +        }
      +        if (!placed) {
      +          layers.push([datum]);
      +        }
      +      }
      +    }
      +  };
      +  this.applyRules = function (rules, data) {
      +    var datum, i, k, layer, results, rule, v;
      +    rules = rules || [];
      +    results = [];
      +    for (k in data) {
      +      v = data[k];
      +      results.push(function () {
      +        var ref, results1;
      +        ref = v.layers;
      +        results1 = [];
      +        for (i in ref) {
      +          layer = ref[i];
      +          results1.push(function () {
      +            var l, len, results2;
      +            results2 = [];
      +            for (l = 0, len = layer.length; l < len; l++) {
      +              datum = layer[l];
      +              results2.push(function () {
      +                var len1, m, results3;
      +                results3 = [];
      +                for (m = 0, len1 = rules.length; m < len1; m++) {
      +                  rule = rules[m];
      +                  if (rule.condition(v.parent, datum, i)) {
      +                    results3.push(datum[rule.parameter] = rule.value);
      +                  } else {
      +                    results3.push(void 0);
      +                  }
      +                }
      +                return results3;
      +              }());
      +            }
      +            return results2;
      +          }());
      +        }
      +        return results1;
      +      }());
      +    }
      +    return results;
      +  };
      +  this.datumRadialPosition = function (_this) {
      +    return function (d) {
      +      var origin, radialEnd, radialStart;
      +      radialStart = (_this.conf.thickness + _this.conf.radialMargin) * d.layer;
      +      radialEnd = radialStart + _this.conf.thickness;
      +      if (_this.conf.direction === 'out') {
      +        return [_this.conf.innerRadius + radialStart, Math.min(_this.conf.innerRadius + radialEnd, _this.conf.outerRadius)];
      +      }
      +      if (_this.conf.direction === 'in') {
      +        return [Math.max(_this.conf.outerRadius - radialEnd, _this.conf.innerRadius), _this.conf.outerRadius - radialStart];
      +      }
      +      if (_this.conf.direction === 'center') {
      +        origin = Math.floor((_this.conf.outerRadius + _this.conf.innerRadius) / 2);
      +        radialStart = (_this.conf.thickness + _this.conf.radialMargin) * Math.floor(d.layer / 2);
      +        radialEnd = radialStart + _this.conf.thickness;
      +        if (d.layer % 2 === 0) {
      +          return [origin + radialStart, origin + radialEnd];
      +        } else {
      +          return [origin - radialStart - _this.conf.radialMargin, origin - radialEnd - _this.conf.radialMargin];
      +        }
      +      }
      +    };
      +  }(this);
      +  this.datumInnerRadius = function (_this) {
      +    return function (d, i, j) {
      +      return _this.datumRadialPosition(d, i, j)[0];
      +    };
      +  }(this);
      +  this.datumOuterRadius = function (_this) {
      +    return function (d, i, j) {
      +      return _this.datumRadialPosition(d, i, j)[1];
      +    };
      +  }(this);
      +  this.renderDatumContainer = function (_this) {
      +    return function (instance, parentElement, name, data, conf) {
      +      var group, track;
      +      track = parentElement.append('g').attr('class', conf.colorPalette);
      +      return group = _this.renderBlock(track, data, instance._layout, conf);
      +    };
      +  }(this);
      +  this.renderDatum = function (parentElement, conf, layout, utils) {
      +    var tile;
      +    tile = parentElement.selectAll('.tile').data(function (d) {
      +      return d.values;
      +    }).enter().append('path').attr('class', 'tile').attr('d', d3.svg.arc().innerRadius(utils.datumInnerRadius).outerRadius(utils.datumOuterRadius).startAngle(function (d) {
      +      return utils.theta(d.start, layout.blocks[d.block_id]);
      +    }).endAngle(function (d) {
      +      return utils.theta(d.end, layout.blocks[d.block_id]);
      +    }));
      +    tile.attr('opacity', function (d) {
      +      return d.opacity || conf.opacity;
      +    });
      +    tile.attr('stroke-width', function (d) {
      +      return d.strokeWidth || conf.strokeWidth;
      +    });
      +    tile.attr('stroke', function (d) {
      +      return d.strokeColor || conf.strokeColor;
      +    });
      +    tile.attr('fill', function (d) {
      +      return d.color || conf.color;
      +    });
      +    tile.attr('class', function (d) {
      +      var usePalette;
      +      usePalette = d.usePalette || conf.usePalette;
      +      if (usePalette) {
      +        return 'q' + utils.ratio(d.value, conf.cmin, conf.cmax, conf.colorPaletteSize, conf.colorPaletteReverse, conf.logScale) + '-' + conf.colorPaletteSize;
      +      }
      +    });
      +    return tile;
      +  };
      +  return this;
      +};
      +_circosJS.Text = function () {
      +  _circosJS.Track.call(this);
      +  this.parseData = _circosJS.parsePositionTextData;
      +  this.renderDatumContainer = function (_this) {
      +    return function (instance, parentElement, name, data, conf) {
      +      var group, track;
      +      track = parentElement.append('g').attr('class', name);
      +      return group = _this.renderBlock(track, data, instance._layout, conf);
      +    };
      +  }(this);
      +  this.renderDatum = function (parentElement, conf, layout, utils) {
      +    var key, ref, text, value;
      +    text = parentElement.selectAll('g').data(function (d) {
      +      return d.values;
      +    }).enter().append('g').append('text').text(function (d) {
      +      return d.value;
      +    }).attr('transform', function (d) {
      +      var angle;
      +      angle = utils.theta(d.position, layout.blocks[d.block_id]) * 360 / (2 * Math.PI) - 90;
      +      return 'rotate(' + angle + ')' + 'translate(' + conf.innerRadius + ',0)';
      +    });
      +    ref = conf.style;
      +    for (key in ref) {
      +      value = ref[key];
      +      text.style(key, value);
      +    }
      +    return text;
      +  };
      +  return this;
      +};
      +_circosJS.Track = function () {
      +  this.build = function (instance, conf, data) {
      +    this.dispatch = d3.dispatch('mouseover', 'mouseout');
      +    this.loadData(data, instance);
      +    this.conf = this.processConf(conf, this.defaultConf, this.meta, instance, this);
      +    return this.applyRules(conf.rules, this.data);
      +  };
      +  this.loadData = function (data, instance) {
      +    var d, l, layoutSummary, len, ref, result;
      +    layoutSummary = {};
      +    ref = instance._layout.data;
      +    for (l = 0, len = ref.length; l < len; l++) {
      +      d = ref[l];
      +      layoutSummary[d.id] = d.len;
      +    }
      +    result = this.parseData(data, layoutSummary);
      +    this.data = result.data;
      +    return this.meta = result.meta;
      +  };
      +  this.processConf = function (conf, defaultConf, meta, instance, utils) {
      +    var smartBorders;
      +    conf = _circosJS.mixConf(conf, Object.assign({}, defaultConf));
      +    conf = utils.computeMinMax(conf, meta);
      +    if (conf.innerRadius === 0 && conf.outerRadius === 0) {
      +      smartBorders = instance.smartBorders();
      +      conf.innerRadius = smartBorders['in'];
      +      conf.outerRadius = smartBorders.out;
      +    }
      +    return conf;
      +  };
      +  this.applyRules = function (rules, data) {
      +    var datum, i, k, results, rule, v;
      +    rules = rules || [];
      +    results = [];
      +    for (k in data) {
      +      v = data[k];
      +      results.push(function () {
      +        var ref, results1;
      +        ref = v.values;
      +        results1 = [];
      +        for (i in ref) {
      +          datum = ref[i];
      +          results1.push(function () {
      +            var l, len, results2;
      +            results2 = [];
      +            for (l = 0, len = rules.length; l < len; l++) {
      +              rule = rules[l];
      +              if (rule.condition(v.key, datum, i)) {
      +                results2.push(datum[rule.parameter] = rule.value);
      +              } else {
      +                results2.push(void 0);
      +              }
      +            }
      +            return results2;
      +          }());
      +        }
      +        return results1;
      +      }());
      +    }
      +    return results;
      +  };
      +  this.computeMinMax = function (conf, meta) {
      +    conf.cmin = conf.min === 'smart' ? meta.min : conf.min;
      +    conf.cmax = conf.max === 'smart' ? meta.max : conf.max;
      +    return conf;
      +  };
      +  this.ratio = function (value, min, max, scope, reverse, logScale) {
      +    var fraction, scaleLogBase, x;
      +    scaleLogBase = logScale ? 2.3 : 1;
      +    if (min === max || value === min && !reverse || value === max && reverse) {
      +      return 0;
      +    }
      +    if (value === max || value === min && reverse) {
      +      return scope - 1;
      +    }
      +    fraction = (value - min) / (max - min);
      +    x = Math.exp(1 / scaleLogBase * Math.log(fraction));
      +    if (reverse) {
      +      x = 1 - x;
      +    }
      +    return Math.floor(scope * x);
      +  };
      +  this.render = function (_this) {
      +    return function (instance, parentElement, name) {
      +      var datumContainer, ref, selection, track;
      +      parentElement.select('.' + name).remove();
      +      track = parentElement.append('g').attr('class', name).attr('z-index', _this.conf.zIndex);
      +      datumContainer = _this.renderDatumContainer(instance, track, name, _this.data, _this.conf);
      +      if ((ref = _this.conf.axes) != null ? ref.display : void 0) {
      +        _this.renderAxes(datumContainer, _this.conf, instance._layout, _this.data);
      +      }
      +      selection = _this.renderDatum(datumContainer, _this.conf, instance._layout, _this);
      +      if (_this.conf.tooltipContent != null) {
      +        _circosJS.registerTooltip(instance, _this, selection, _this.conf);
      +      }
      +      selection.on('mouseover', function (d, i, j) {
      +        return _this.dispatch.mouseover(d, i, j);
      +      });
      +      return selection.on('mouseout', function (d, i, j) {
      +        return _this.dispatch.mouseout(d, i, j);
      +      });
      +    };
      +  }(this);
      +  this.renderBlock = function (parentElement, data, layout, conf) {
      +    var block, scope;
      +    scope = conf.outerRadius - conf.innerRadius;
      +    block = parentElement.selectAll('.block').data(data).enter().append('g').attr('class', 'block').attr('transform', function (d) {
      +      return 'rotate(' + layout.blocks[d.key].start * 360 / (2 * Math.PI) + ')';
      +    });
      +    if (conf.backgrounds) {
      +      block.selectAll('.background').data(conf.backgrounds).enter().append('path').attr('class', 'background').attr('fill', function (background) {
      +        return background.color;
      +      }).attr('opacity', function (background) {
      +        return background.opacity || 1;
      +      }).attr('d', d3.svg.arc().innerRadius(function (background) {
      +        if (conf.direction === 'in') {
      +          return conf.outerRadius - scope * background.start;
      +        } else {
      +          return conf.innerRadius + scope * background.start;
      +        }
      +      }).outerRadius(function (background) {
      +        if (conf.direction === 'in') {
      +          return conf.outerRadius - scope * background.end;
      +        } else {
      +          return conf.innerRadius + scope * background.end;
      +        }
      +      }).startAngle(function (d, i, j) {
      +        return 0;
      +      }).endAngle(function (d, i, j) {
      +        return layout.blocks[data[j].key].end - layout.blocks[data[j].key].start;
      +      }));
      +    }
      +    return block;
      +  };
      +  this.renderAxes = function (parentElement, conf, layout, data) {
      +    var axes, axis, x;
      +    if (conf.axes.minor.spacingType === 'pixel') {
      +      axes = function () {
      +        var l, ref, ref1, ref2, results;
      +        results = [];
      +        for (x = l = ref = conf.innerRadius, ref1 = conf.outerRadius, ref2 = conf.axes.minor.spacing; ref2 > 0 ? l <= ref1 : l >= ref1; x = l += ref2) {
      +          results.push(x);
      +        }
      +        return results;
      +      }();
      +    }
      +    axis = d3.svg.arc().innerRadius(function (d) {
      +      return d;
      +    }).outerRadius(function (d) {
      +      return d;
      +    }).startAngle(0).endAngle(function (d, i, j) {
      +      var block;
      +      block = layout.blocks[data[j].key];
      +      return block.end - block.start;
      +    });
      +    return parentElement.selectAll('.axis').data(axes).enter().append('path').attr('opacity', conf.opacity).attr('class', 'axis').attr('d', axis).attr('stroke-width', function (d, i) {
      +      if (i % conf.axes.major.spacing === 0) {
      +        return conf.axes.major.thickness;
      +      } else {
      +        return conf.axes.minor.thickness;
      +      }
      +    }).attr('stroke', function (d, i) {
      +      if (i % conf.axes.major.spacing === 0) {
      +        return conf.axes.major.color;
      +      } else {
      +        return conf.axes.minor.color;
      +      }
      +    });
      +  };
      +  this.theta = function (position, block) {
      +    return position / block.len * (block.end - block.start);
      +  };
      +  this.x = function (_this) {
      +    return function (d, layout, conf) {
      +      var angle, height, r;
      +      height = _this.ratio(d.value, conf.cmin, conf.cmax, conf.outerRadius - conf.innerRadius, false, conf.logscale);
      +      if (conf.direction === 'in') {
      +        r = conf.outerRadius - height;
      +      } else {
      +        r = conf.innerRadius + height;
      +      }
      +      angle = _this.theta(d.position, layout.blocks[d.block_id]) - Math.PI / 2;
      +      return r * Math.cos(angle);
      +    };
      +  }(this);
      +  this.y = function (_this) {
      +    return function (d, layout, conf) {
      +      var angle, height, r;
      +      height = _this.ratio(d.value, conf.cmin, conf.cmax, conf.outerRadius - conf.innerRadius, false, conf.logscale);
      +      if (conf.direction === 'in') {
      +        r = conf.outerRadius - height;
      +      } else {
      +        r = conf.innerRadius + height;
      +      }
      +      angle = _this.theta(d.position, layout.blocks[d.block_id]) - Math.PI / 2;
      +      return r * Math.sin(angle);
      +    };
      +  }(this);
      +  this.ratio = function (value, min, max, scope, reverse, logScale) {
      +    var fraction, scaleLogBase, x;
      +    scaleLogBase = logScale ? 2.3 : 1;
      +    if (min === max || value === min && !reverse || value === max && reverse) {
      +      return 0;
      +    }
      +    if (value === max || value === min && reverse) {
      +      return scope - 1;
      +    }
      +    fraction = (value - min) / (max - min);
      +    x = Math.exp(1 / scaleLogBase * Math.log(fraction));
      +    if (reverse) {
      +      x = 1 - x;
      +    }
      +    return Math.floor(scope * x);
      +  };
      +  return this;
      +};
      +_circosJS.renderLayout = function (d3, parentElement, instance) {
      +  var block, conf, entry, layout;
      +  conf = instance._layout.conf;
      +  parentElement.select('.cs-layout').remove();
      +  layout = parentElement.append('g').attr('class', 'cs-layout').attr('z-index', conf.zIndex).on('click', conf.onClick);
      +  block = layout.selectAll('g').data(instance._layout.data).enter().append('g').attr('class', function (d) {
      +    return d.id;
      +  }).attr('opacity', conf.opacity);
      +  entry = d3.svg.arc().innerRadius(conf.innerRadius).outerRadius(conf.outerRadius).cornerRadius(conf.cornerRadius).startAngle(function (d) {
      +    return d.start;
      +  }).endAngle(function (d) {
      +    return d.end;
      +  });
      +  block.append('path').attr('d', entry).attr('fill', function (d) {
      +    return d.color;
      +  }).attr('id', function (d) {
      +    return d.id;
      +  });
      +  if (conf.labels.display) {
      +    _circosJS.renderLayoutLabels(conf, d3, block);
      +  }
      +  if (conf.ticks.display) {
      +    return _circosJS.renderLayoutTicks(conf, layout, d3, instance);
      +  }
      +};
      +_circosJS.renderLayoutLabels = function (conf, d3, block) {
      +  var label, labelArc, r;
      +  r = conf.innerRadius + conf.labels.radialOffset;
      +  labelArc = d3.svg.arc().innerRadius(r).outerRadius(r).startAngle(function (d, i) {
      +    return d.start;
      +  }).endAngle(function (d, i) {
      +    return d.end;
      +  });
      +  block.append('path').attr('fill', 'none').attr('stroke', 'none').attr('d', labelArc).attr('id', function (d) {
      +    return 'arc-label' + d.id;
      +  });
      +  label = block.append('text').attr('font-size', conf.labels.size).attr('text-anchor', 'middle');
      +  return label.append('textPath').attr('startOffset', '25%').attr('xlink:href', function (d) {
      +    return '#arc-label' + d.id;
      +  }).style('fill', conf.labels.color).text(function (d) {
      +    var arc_len = d.end - d.start;
      +    return d.label.slice(0, Math.floor(21 * arc_len)) + '..';
      +  });
      +};
      +_circosJS.renderLayoutTicks = function (conf, layout, d3, instance) {
      +  var blockTicks, displayLabel, ticks;
      +  blockTicks = function blockTicks(d) {
      +    var k, space;
      +    k = (d.end - d.start) / d.len;
      +    if (d.end - d.start > 1.57) {
      +      space = 8;
      +    } else if (d.end - d.start > 0.785) {
      +      space = 4;
      +    } else if (d.end - d.start > 0.3925) {
      +      space = 2;
      +    } else if (d.end - d.start > 0) {
      +      space = 0;
      +    }
      +    var arr = [];
      +    var item = {
      +      angle: 0 * k + d.start,
      +      label: 0
      +    };
      +    arr.push(item);
      +    var temp_scale = d3.scale.linear().domain([1, d.len]).range([d.start, d.end]);
      +    var len = temp_scale.ticks(space).length;
      +    temp_scale.ticks(space).map(function (v, i) {
      +      var init = v * k + d.start;
      +      var _final = d.len * k + d.start;
      +      if (_final - init > 0.5) {}
      +      var item = {
      +        angle: v * k + d.start,
      +        label: v / conf.ticks.labelDenominator + conf.ticks.labelSuffix
      +      };
      +      arr.push(item);
      +    });
      +    arr.splice(len, 1);
      +    var item = {
      +      angle: d.len * k + d.start - 0.006,
      +      label: d.len / conf.ticks.labelDenominator + conf.ticks.labelSuffix
      +    };
      +    arr.push(item);
      +    return arr;
      +  };
      +  displayLabel = function displayLabel(v, i) {
      +    if (conf.ticks.labels === false) {
      +      return null;
      +    } else if (conf.ticks.labelDisplay0 === false && i === 0) {
      +      return null;
      +    } else if (i % conf.ticks.labelSpacing) {
      +      return null;
      +    } else if (i === 0) {
      +      return v / conf.ticks.labelDenominator; // added support for 0 without suffix.
      +    } else {
      +      return v / conf.ticks.labelDenominator + conf.ticks.labelSuffix;
      +    }
      +  };
      +  ticks = layout.append('g').selectAll('g').data(instance._layout.data).enter().append('g').selectAll('g').data(blockTicks).enter().append('g').attr('transform', function (d) {
      +    return 'rotate(' + (d.angle * 180 / Math.PI - 90) + ')' + 'translate(' + conf.outerRadius + ',0)';
      +  });
      +  ticks.append('line').attr('x1', 0).attr('y1', 1).attr('x2', function (d, i) {
      +    return conf.ticks.size.major;
      +  }).attr('y2', 1).style('stroke', conf.ticks.color);
      +  return ticks.append('text').attr('x', 8).attr('dy', '.35em').attr('transform', function (d) {
      +    if (d.angle > Math.PI) {
      +      return 'rotate(180)translate(-16)';
      +    } else {
      +      return null;
      +    }
      +  }).attr('text-anchor', function (d) {
      +    if (d.angle > Math.PI) {
      +      return 'end';
      +    } else {
      +      return null;
      +    }
      +  }).attr('font-size', conf.ticks.labelSize).style('fill', conf.ticks.labelColor).text(function (d) {
      +    return d.label;
      +  });
      +};
      +_circosJS.Core.prototype.render = function (ids, removeTracks) {
      +  var name, ref, ref1, renderAll, svg, track, trackStore, trackType, tracks, translated;
      +  if (typeof ids === 'undefined') {
      +    renderAll = true;
      +    ids = [];
      +  }
      +  if (removeTracks) {
      +    ref = this.tracks;
      +    for (trackType in ref) {
      +      trackStore = ref[trackType];
      +      for (name in trackStore) {
      +        track = trackStore[name];
      +        svg.select('.' + name).remove();
      +      }
      +    }
      +  }
      +  svg = d3.select(this.conf.container).attr('width', this.conf.width).attr('height', this.conf.height);
      +  translated = svg.select('.all');
      +  if (translated.empty()) {
      +    translated = svg.append('g').attr('class', 'all').attr('transform', 'translate(' + parseInt(this.conf.width / 2) + ',' + parseInt(this.conf.height / 2) + ')');
      +  }
      +  ref1 = this.tracks;
      +  for (trackType in ref1) {
      +    trackStore = ref1[trackType];
      +    for (name in trackStore) {
      +      track = trackStore[name];
      +      if (renderAll || indexOf.call(ids, name) >= 0) {
      +        track.render(this, translated, name);
      +      }
      +    }
      +  }
      +  if (renderAll || indexOf.call(ids, 'layout') >= 0) {
      +    _circosJS.renderLayout(d3, translated, this);
      +  }
      +  tracks = svg.selectAll('.all > g').remove();
      +  tracks[0].sort(function (a, b) {
      +    if (parseInt(a.getAttribute('z-index')) < parseInt(b.getAttribute('z-index'))) {
      +      return -1;
      +    } else if (parseInt(a.getAttribute('z-index')) > parseInt(b.getAttribute('z-index'))) {
      +      return 1;
      +    } else {
      +      return 0;
      +    }
      +  });
      +  svg.select('.all').selectAll('g').data(tracks[0]).enter().append(function (d) {
      +    return d;
      +  });
      +  return this;
      +};
      +_circosJS.Core.prototype.defaultConf = {
      +  width: 700,
      +  height: 700,
      +  container: 'circos',
      +  defaultTrackWidth: 10
      +};
      +_circosJS.Layout.prototype.defaultConf = {
      +  innerRadius: 250,
      +  outerRadius: 300,
      +  cornerRadius: 5,
      +  gap: 0.04,
      +  opacity: 1,
      +  labels: {
      +    position: 'center',
      +    display: true,
      +    size: 14,
      +    color: '#000',
      +    radialOffset: 20
      +  },
      +  ticks: {
      +    display: true,
      +    color: 'grey',
      +    spacing: 10000000,
      +    labels: true,
      +    labelSpacing: 10,
      +    labelSuffix: 'Mb',
      +    labelDenominator: 1000000,
      +    labelDisplay0: true,
      +    labelSize: 10,
      +    labelColor: '#000',
      +    labelFont: 'default',
      +    majorSpacing: 5,
      +    size: {
      +      minor: 2,
      +      major: 5
      +    }
      +  },
      +  onClick: null,
      +  onMouseOver: null,
      +  zIndex: 100
      +};
      +_circosJS.axes = {
      +  display: false,
      +  minor: {
      +    spacing: 5,
      +    spacingType: 'pixel',
      +    color: '#d3d3d3',
      +    thickness: 2
      +  },
      +  major: {
      +    spacing: 5,
      +    color: '#000000',
      +    thickness: 2
      +  }
      +};
      +_circosJS.Heatmap.prototype.defaultConf = {
      +  innerRadius: 0,
      +  outerRadius: 0,
      +  min: 'smart',
      +  max: 'smart',
      +  colorPalette: 'YlGnBu',
      +  colorPaletteSize: 9,
      +  colorPaletteReverse: false,
      +  logScale: false,
      +  rules: [],
      +  backgrounds: [],
      +  zIndex: 1,
      +  opacity: 1,
      +  tooltipContent: null
      +};
      +_circosJS.Histogram.prototype.defaultConf = {
      +  innerRadius: 0,
      +  outerRadius: 0,
      +  min: 'smart',
      +  max: 'smart',
      +  direction: 'out',
      +  colorPaletteSize: 9,
      +  colorPalette: 'YlGnBu',
      +  usePalette: true,
      +  colorPaletteReverse: false,
      +  color: '#fd6a62',
      +  logScale: false,
      +  axes: _circosJS.axes,
      +  rules: [],
      +  backgrounds: [],
      +  zIndex: 1,
      +  opacity: 1,
      +  tooltipContent: null
      +};
      +_circosJS.Chord.prototype.defaultConf = {
      +  colorPaletteSize: 9,
      +  colorPalette: 'PuBuGn',
      +  usePalette: true,
      +  colorPaletteReverse: false,
      +  color: '#fd6a62',
      +  opacity: 0.7,
      +  min: 'smart',
      +  max: 'smart',
      +  logScale: false,
      +  rules: [],
      +  backgrounds: [],
      +  zIndex: 1,
      +  tooltipContent: null
      +};
      +_circosJS.Scatter.prototype.defaultConf = {
      +  innerRadius: 0,
      +  outerRadius: 0,
      +  min: 'smart',
      +  max: 'smart',
      +  direction: 'out',
      +  logScale: false,
      +  glyph: {
      +    color: '#fd6a62',
      +    fill: true,
      +    size: 15,
      +    shape: 'circle',
      +    strokeColor: '#d3d3d3',
      +    strokeWidth: 2
      +  },
      +  axes: _circosJS.axes,
      +  rules: [],
      +  backgrounds: [],
      +  zIndex: 1,
      +  opacity: 1,
      +  tooltipContent: null
      +};
      +_circosJS.Line.prototype.defaultConf = {
      +  innerRadius: 0,
      +  outerRadius: 0,
      +  min: 'smart',
      +  max: 'smart',
      +  direction: 'out',
      +  logScale: false,
      +  color: '#fd6a62',
      +  fill: true,
      +  fill_color: '#d3d3d3',
      +  thickness: 2,
      +  max_gap: 10000000,
      +  interpolation: 'linear',
      +  axes: _circosJS.axes,
      +  rules: [],
      +  backgrounds: [],
      +  zIndex: 1,
      +  opacity: 1,
      +  tooltipContent: null
      +};
      +_circosJS.Stack.prototype.defaultConf = (_circosJS$Stack$proto = {
      +  innerRadius: 0,
      +  outerRadius: 0,
      +  colorPaletteSize: 9,
      +  colorPalette: 'PuBuGn',
      +  usePalette: true,
      +  colorPaletteReverse: false,
      +  color: '#fd6a62',
      +  min: 'smart',
      +  max: 'smart',
      +  direction: 'out',
      +  logScale: false
      +}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_circosJS$Stack$proto, "color", '#fd6a62'), "thickness", 10), "radialMargin", 2), "margin", 2), "strokeWidth", 1), "strokeColor", '#000000'), "axes", _circosJS.axes), "rules", []), "backgrounds", []), "zIndex", 1), _defineProperty(_defineProperty(_circosJS$Stack$proto, "opacity", 1), "tooltipContent", null));
      +_circosJS.Highlight.prototype.defaultConf = {
      +  innerRadius: 0,
      +  outerRadius: 0,
      +  defaultColor: '#fd6a62',
      +  opacity: 0.5,
      +  rules: [],
      +  zIndex: 101,
      +  strokeColor: '#d3d3d3',
      +  strokeWidth: 0,
      +  tooltipContent: null
      +};
      +_circosJS.Text.prototype.defaultConf = {
      +  innerRadius: 0,
      +  outerRadius: 0,
      +  rules: [],
      +  backgrounds: [],
      +  zIndex: 1,
      +  style: {},
      +  tooltipContent: null
      +};
      +_circosJS.registerTooltip = function (instance, track, element, trackParams) {
      +  track.tip = d3.tip().direction('s').offset([20, 0]).html(trackParams.tooltipContent);
      +  element.call(track.tip);
      +  track.dispatch.on('mouseover', function (d, i, j) {
      +    return track.tip.attr('class', 'd3-tip appear').show(d);
      +  });
      +  return track.dispatch.on('mouseout', function (d, i, j) {
      +    track.tip.attr('class', 'd3-tip').show(d);
      +    return track.tip.hide();
      +  });
      +};
      +
      +/***/ }),
      +
      +/***/ "./public/packages/jquery-ui@1.13.3.js":
      +/*!*********************************************!*\
      +  !*** ./public/packages/jquery-ui@1.13.3.js ***!
      +  \*********************************************/
      +/***/ ((module, exports, __webpack_require__) => {
      +
      +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}/*! jQuery UI - v1.13.3 - 2024-04-26
      +* https://jqueryui.com
      +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
      +* Copyright OpenJS Foundation and other contributors; Licensed MIT */(function(factory){"use strict";if(true){// AMD. Register as an anonymous module.
      +!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
      +		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
      +		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
      +		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));}else{}})(function($){"use strict";$.ui=$.ui||{};var version=$.ui.version="1.13.3";/*!
      + * jQuery UI Widget 1.13.3
      + * https://jqueryui.com
      + *
      + * Copyright OpenJS Foundation and other contributors
      + * Released under the MIT license.
      + * https://jquery.org/license
      + */ //>>label: Widget
      +//>>group: Core
      +//>>description: Provides a factory for creating stateful widgets with a common API.
      +//>>docs: https://api.jqueryui.com/jQuery.widget/
      +//>>demos: https://jqueryui.com/widget/
      +var widgetUuid=0;var widgetHasOwnProperty=Array.prototype.hasOwnProperty;var widgetSlice=Array.prototype.slice;$.cleanData=function(orig){return function(elems){var events,elem,i;for(i=0;(elem=elems[i])!=null;i++){// Only trigger remove when necessary to save time
      +events=$._data(elem,"events");if(events&&events.remove){$(elem).triggerHandler("remove");}}orig(elems);};}($.cleanData);$.widget=function(name,base,prototype){var existingConstructor,constructor,basePrototype;// ProxiedPrototype allows the provided prototype to remain unmodified
      +// so that it can be used as a mixin for multiple widgets (#8876)
      +var proxiedPrototype={};var namespace=name.split(".")[0];name=name.split(".")[1];var fullName=namespace+"-"+name;if(!prototype){prototype=base;base=$.Widget;}if(Array.isArray(prototype)){prototype=$.extend.apply(null,[{}].concat(prototype));}// Create selector for plugin
      +$.expr.pseudos[fullName.toLowerCase()]=function(elem){return!!$.data(elem,fullName);};$[namespace]=$[namespace]||{};existingConstructor=$[namespace][name];constructor=$[namespace][name]=function(options,element){// Allow instantiation without "new" keyword
      +if(!this||!this._createWidget){return new constructor(options,element);}// Allow instantiation without initializing for simple inheritance
      +// must use "new" keyword (the code above always passes args)
      +if(arguments.length){this._createWidget(options,element);}};// Extend with the existing constructor to carry over any static properties
      +$.extend(constructor,existingConstructor,{version:prototype.version,// Copy the object used to create the prototype in case we need to
      +// redefine the widget later
      +_proto:$.extend({},prototype),// Track widgets that inherit from this widget in case this widget is
      +// redefined after a widget inherits from it
      +_childConstructors:[]});basePrototype=new base();// We need to make the options hash a property directly on the new instance
      +// otherwise we'll modify the options hash on the prototype that we're
      +// inheriting from
      +basePrototype.options=$.widget.extend({},basePrototype.options);$.each(prototype,function(prop,value){if(typeof value!=="function"){proxiedPrototype[prop]=value;return;}proxiedPrototype[prop]=function(){function _super(){return base.prototype[prop].apply(this,arguments);}function _superApply(args){return base.prototype[prop].apply(this,args);}return function(){var __super=this._super;var __superApply=this._superApply;var returnValue;this._super=_super;this._superApply=_superApply;returnValue=value.apply(this,arguments);this._super=__super;this._superApply=__superApply;return returnValue;};}();});constructor.prototype=$.widget.extend(basePrototype,{// TODO: remove support for widgetEventPrefix
      +// always use the name + a colon as the prefix, e.g., draggable:start
      +// don't prefix for widgets that aren't DOM-based
      +widgetEventPrefix:existingConstructor?basePrototype.widgetEventPrefix||name:name},proxiedPrototype,{constructor:constructor,namespace:namespace,widgetName:name,widgetFullName:fullName});// If this widget is being redefined then we need to find all widgets that
      +// are inheriting from it and redefine all of them so that they inherit from
      +// the new version of this widget. We're essentially trying to replace one
      +// level in the prototype chain.
      +if(existingConstructor){$.each(existingConstructor._childConstructors,function(i,child){var childPrototype=child.prototype;// Redefine the child widget using the same prototype that was
      +// originally used, but inherit from the new version of the base
      +$.widget(childPrototype.namespace+"."+childPrototype.widgetName,constructor,child._proto);});// Remove the list of existing child constructors from the old constructor
      +// so the old child constructors can be garbage collected
      +delete existingConstructor._childConstructors;}else{base._childConstructors.push(constructor);}$.widget.bridge(name,constructor);return constructor;};$.widget.extend=function(target){var input=widgetSlice.call(arguments,1);var inputIndex=0;var inputLength=input.length;var key;var value;for(;inputIndex",options:{classes:{},disabled:false,// Callbacks
      +create:null},_createWidget:function _createWidget(options,element){element=$(element||this.defaultElement||this)[0];this.element=$(element);this.uuid=widgetUuid++;this.eventNamespace="."+this.widgetName+this.uuid;this.bindings=$();this.hoverable=$();this.focusable=$();this.classesElementLookup={};if(element!==this){$.data(element,this.widgetFullName,this);this._on(true,this.element,{remove:function remove(event){if(event.target===element){this.destroy();}}});this.document=$(element.style?// Element within the document
      +element.ownerDocument:// Element is window or document
      +element.document||element);this.window=$(this.document[0].defaultView||this.document[0].parentWindow);}this.options=$.widget.extend({},this.options,this._getCreateOptions(),options);this._create();if(this.options.disabled){this._setOptionDisabled(this.options.disabled);}this._trigger("create",null,this._getCreateEventData());this._init();},_getCreateOptions:function _getCreateOptions(){return{};},_getCreateEventData:$.noop,_create:$.noop,_init:$.noop,destroy:function destroy(){var that=this;this._destroy();$.each(this.classesElementLookup,function(key,value){that._removeClass(value,key);});// We can probably remove the unbind calls in 2.0
      +// all event bindings should go through this._on()
      +this.element.off(this.eventNamespace).removeData(this.widgetFullName);this.widget().off(this.eventNamespace).removeAttr("aria-disabled");// Clean up events and states
      +this.bindings.off(this.eventNamespace);},_destroy:$.noop,widget:function widget(){return this.element;},option:function option(key,value){var options=key;var parts;var curOption;var i;if(arguments.length===0){// Don't return a reference to the internal hash
      +return $.widget.extend({},this.options);}if(typeof key==="string"){// Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
      +options={};parts=key.split(".");key=parts.shift();if(parts.length){curOption=options[key]=$.widget.extend({},this.options[key]);for(i=0;i>label: Position
      +//>>group: Core
      +//>>description: Positions elements relative to other elements.
      +//>>docs: https://api.jqueryui.com/position/
      +//>>demos: https://jqueryui.com/position/
      +(function(){var cachedScrollbarWidth,max=Math.max,abs=Math.abs,rhorizontal=/left|center|right/,rvertical=/top|center|bottom/,roffset=/[\+\-]\d+(\.[\d]+)?%?/,rposition=/^\w+/,rpercent=/%$/,_position=$.fn.position;function getOffsets(offsets,width,height){return[parseFloat(offsets[0])*(rpercent.test(offsets[0])?width/100:1),parseFloat(offsets[1])*(rpercent.test(offsets[1])?height/100:1)];}function parseCss(element,property){return parseInt($.css(element,property),10)||0;}function isWindow(obj){return obj!=null&&obj===obj.window;}function getDimensions(elem){var raw=elem[0];if(raw.nodeType===9){return{width:elem.width(),height:elem.height(),offset:{top:0,left:0}};}if(isWindow(raw)){return{width:elem.width(),height:elem.height(),offset:{top:elem.scrollTop(),left:elem.scrollLeft()}};}if(raw.preventDefault){return{width:0,height:0,offset:{top:raw.pageY,left:raw.pageX}};}return{width:elem.outerWidth(),height:elem.outerHeight(),offset:elem.offset()};}$.position={scrollbarWidth:function scrollbarWidth(){if(cachedScrollbarWidth!==undefined){return cachedScrollbarWidth;}var w1,w2,div=$("
      "+"
      "),innerDiv=div.children()[0];$("body").append(div);w1=innerDiv.offsetWidth;div.css("overflow","scroll");w2=innerDiv.offsetWidth;if(w1===w2){w2=div[0].clientWidth;}div.remove();return cachedScrollbarWidth=w1-w2;},getScrollInfo:function getScrollInfo(within){var overflowX=within.isWindow||within.isDocument?"":within.element.css("overflow-x"),overflowY=within.isWindow||within.isDocument?"":within.element.css("overflow-y"),hasOverflowX=overflowX==="scroll"||overflowX==="auto"&&within.width0?"right":"center",vertical:bottom<0?"top":top>0?"bottom":"middle"};if(targetWidthmax(abs(top),abs(bottom))){feedback.important="horizontal";}else{feedback.important="vertical";}options.using.call(this,props,feedback);};}elem.offset($.extend(position,{using:using}));});};$.ui.position={fit:{left:function left(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollLeft:within.offset.left,outerWidth=within.width,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=withinOffset-collisionPosLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-withinOffset,newOverRight;// Element is wider than within +if(data.collisionWidth>outerWidth){// Element is initially over the left side of within +if(overLeft>0&&overRight<=0){newOverRight=position.left+overLeft+data.collisionWidth-outerWidth-withinOffset;position.left+=overLeft-newOverRight;// Element is initially over right side of within +}else if(overRight>0&&overLeft<=0){position.left=withinOffset;// Element is initially over both left and right sides of within +}else{if(overLeft>overRight){position.left=withinOffset+outerWidth-data.collisionWidth;}else{position.left=withinOffset;}}// Too far left -> align with left edge +}else if(overLeft>0){position.left+=overLeft;// Too far right -> align with right edge +}else if(overRight>0){position.left-=overRight;// Adjust based on position and margin +}else{position.left=max(position.left-collisionPosLeft,position.left);}},top:function top(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollTop:within.offset.top,outerHeight=data.within.height,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=withinOffset-collisionPosTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-withinOffset,newOverBottom;// Element is taller than within +if(data.collisionHeight>outerHeight){// Element is initially over the top of within +if(overTop>0&&overBottom<=0){newOverBottom=position.top+overTop+data.collisionHeight-outerHeight-withinOffset;position.top+=overTop-newOverBottom;// Element is initially over bottom of within +}else if(overBottom>0&&overTop<=0){position.top=withinOffset;// Element is initially over both top and bottom of within +}else{if(overTop>overBottom){position.top=withinOffset+outerHeight-data.collisionHeight;}else{position.top=withinOffset;}}// Too far up -> align with top +}else if(overTop>0){position.top+=overTop;// Too far down -> align with bottom edge +}else if(overBottom>0){position.top-=overBottom;// Adjust based on position and margin +}else{position.top=max(position.top-collisionPosTop,position.top);}}},flip:{left:function left(position,data){var within=data.within,withinOffset=within.offset.left+within.scrollLeft,outerWidth=within.width,offsetLeft=within.isWindow?within.scrollLeft:within.offset.left,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=collisionPosLeft-offsetLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-offsetLeft,myOffset=data.my[0]==="left"?-data.elemWidth:data.my[0]==="right"?data.elemWidth:0,atOffset=data.at[0]==="left"?data.targetWidth:data.at[0]==="right"?-data.targetWidth:0,offset=-2*data.offset[0],newOverRight,newOverLeft;if(overLeft<0){newOverRight=position.left+myOffset+atOffset+offset+data.collisionWidth-outerWidth-withinOffset;if(newOverRight<0||newOverRight0){newOverLeft=position.left-data.collisionPosition.marginLeft+myOffset+atOffset+offset-offsetLeft;if(newOverLeft>0||abs(newOverLeft)0){newOverTop=position.top-data.collisionPosition.marginTop+myOffset+atOffset+offset-offsetTop;if(newOverTop>0||abs(newOverTop)>label: :data Selector +//>>group: Core +//>>description: Selects elements which have data stored under the specified key. +//>>docs: https://api.jqueryui.com/data-selector/ +var data=$.extend($.expr.pseudos,{data:$.expr.createPseudo?$.expr.createPseudo(function(dataName){return function(elem){return!!$.data(elem,dataName);};}):// Support: jQuery <1.8 +function(elem,i,match){return!!$.data(elem,match[3]);}});/*! + * jQuery UI Disable Selection 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: disableSelection +//>>group: Core +//>>description: Disable selection of text content within the set of matched elements. +//>>docs: https://api.jqueryui.com/disableSelection/ +// This file is deprecated +var disableSelection=$.fn.extend({disableSelection:function(){var eventType="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(eventType+".ui-disableSelection",function(event){event.preventDefault();});};}(),enableSelection:function enableSelection(){return this.off(".ui-disableSelection");}});// Create a local jQuery because jQuery Color relies on it and the +// global may not exist with AMD and a custom build (#10199). +// This module is a noop if used as a regular AMD module. +// eslint-disable-next-line no-unused-vars +var jQuery=$;/*! + * jQuery Color Animations v2.2.0 + * https://github.com/jquery/jquery-color + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + * Date: Sun May 10 09:02:36 2020 +0200 + */var stepHooks="backgroundColor borderBottomColor borderLeftColor borderRightColor "+"borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",class2type={},toString=class2type.toString,// plusequals test for += 100 -= 100 +rplusequals=/^([\-+])=\s*(\d+\.?\d*)/,// a set of RE's that can match strings and generate color tuples. +stringParsers=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function parse(execResult){return[execResult[1],execResult[2],execResult[3],execResult[4]];}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function parse(execResult){return[execResult[1]*2.55,execResult[2]*2.55,execResult[3]*2.55,execResult[4]];}},{// this regex ignores A-F because it's compared against an already lowercased string +re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?/,parse:function parse(execResult){return[parseInt(execResult[1],16),parseInt(execResult[2],16),parseInt(execResult[3],16),execResult[4]?(parseInt(execResult[4],16)/255).toFixed(2):1];}},{// this regex ignores A-F because it's compared against an already lowercased string +re:/#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?/,parse:function parse(execResult){return[parseInt(execResult[1]+execResult[1],16),parseInt(execResult[2]+execResult[2],16),parseInt(execResult[3]+execResult[3],16),execResult[4]?(parseInt(execResult[4]+execResult[4],16)/255).toFixed(2):1];}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function parse(execResult){return[execResult[1],execResult[2]/100,execResult[3]/100,execResult[4]];}}],// jQuery.Color( ) +color=jQuery.Color=function(color,green,blue,alpha){return new jQuery.Color.fn.parse(color,green,blue,alpha);},spaces={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},propTypes={"byte":{floor:true,max:255},"percent":{max:1},"degrees":{mod:360,floor:true}},support=color.support={},// element for support tests +supportElem=jQuery("

      ")[0],// colors = jQuery.Color.names +colors,// local aliases of functions called often +each=jQuery.each;// determine rgba support immediately +supportElem.style.cssText="background-color:rgba(1,1,1,.5)";support.rgba=supportElem.style.backgroundColor.indexOf("rgba")>-1;// define cache name and alpha properties +// for rgba and hsla spaces +each(spaces,function(spaceName,space){space.cache="_"+spaceName;space.props.alpha={idx:3,type:"percent",def:1};});// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(_i,name){class2type["[object "+name+"]"]=name.toLowerCase();});function getType(obj){if(obj==null){return obj+"";}return _typeof(obj)==="object"?class2type[toString.call(obj)]||"object":_typeof(obj);}function clamp(value,prop,allowEmpty){var type=propTypes[prop.type]||{};if(value==null){return allowEmpty||!prop.def?null:prop.def;}// ~~ is an short way of doing floor for positive numbers +value=type.floor?~~value:parseFloat(value);// IE will pass in empty strings as value for alpha, +// which will hit this case +if(isNaN(value)){return prop.def;}if(type.mod){// we add mod before modding to make sure that negatives values +// get converted properly: -10 -> 350 +return(value+type.mod)%type.mod;}// for now all property types without mod have min and max +return Math.min(type.max,Math.max(0,value));}function stringParse(string){var inst=color(),rgba=inst._rgba=[];string=string.toLowerCase();each(stringParsers,function(_i,parser){var parsed,match=parser.re.exec(string),values=match&&parser.parse(match),spaceName=parser.space||"rgba";if(values){parsed=inst[spaceName](values);// if this was an rgba parse the assignment might happen twice +// oh well.... +inst[spaces[spaceName].cache]=parsed[spaces[spaceName].cache];rgba=inst._rgba=parsed._rgba;// exit each( stringParsers ) here because we matched +return false;}});// Found a stringParser that handled it +if(rgba.length){// if this came from a parsed string, force "transparent" when alpha is 0 +// chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) +if(rgba.join()==="0,0,0,0"){jQuery.extend(rgba,colors.transparent);}return inst;}// named colors +return colors[string];}color.fn=jQuery.extend(color.prototype,{parse:function parse(red,green,blue,alpha){if(red===undefined){this._rgba=[null,null,null,null];return this;}if(red.jquery||red.nodeType){red=jQuery(red).css(green);green=undefined;}var inst=this,type=getType(red),rgba=this._rgba=[];// more than 1 argument specified - assume ( red, green, blue, alpha ) +if(green!==undefined){red=[red,green,blue,alpha];type="array";}if(type==="string"){return this.parse(stringParse(red)||colors._default);}if(type==="array"){each(spaces.rgba.props,function(_key,prop){rgba[prop.idx]=clamp(red[prop.idx],prop);});return this;}if(type==="object"){if(red instanceof color){each(spaces,function(_spaceName,space){if(red[space.cache]){inst[space.cache]=red[space.cache].slice();}});}else{each(spaces,function(_spaceName,space){var cache=space.cache;each(space.props,function(key,prop){// if the cache doesn't exist, and we know how to convert +if(!inst[cache]&&space.to){// if the value was null, we don't need to copy it +// if the key was alpha, we don't need to copy it either +if(key==="alpha"||red[key]==null){return;}inst[cache]=space.to(inst._rgba);}// this is the only case where we allow nulls for ALL properties. +// call clamp with alwaysAllowEmpty +inst[cache][prop.idx]=clamp(red[key],prop,true);});// everything defined but alpha? +if(inst[cache]&&jQuery.inArray(null,inst[cache].slice(0,3))<0){// use the default of 1 +if(inst[cache][3]==null){inst[cache][3]=1;}if(space.from){inst._rgba=space.from(inst[cache]);}}});}return this;}},is:function is(compare){var is=color(compare),same=true,inst=this;each(spaces,function(_,space){var localCache,isCache=is[space.cache];if(isCache){localCache=inst[space.cache]||space.to&&space.to(inst._rgba)||[];each(space.props,function(_,prop){if(isCache[prop.idx]!=null){same=isCache[prop.idx]===localCache[prop.idx];return same;}});}return same;});return same;},_space:function _space(){var used=[],inst=this;each(spaces,function(spaceName,space){if(inst[space.cache]){used.push(spaceName);}});return used.pop();},transition:function transition(other,distance){var end=color(other),spaceName=end._space(),space=spaces[spaceName],startColor=this.alpha()===0?color("transparent"):this,start=startColor[space.cache]||space.to(startColor._rgba),result=start.slice();end=end[space.cache];each(space.props,function(_key,prop){var index=prop.idx,startValue=start[index],endValue=end[index],type=propTypes[prop.type]||{};// if null, don't override start value +if(endValue===null){return;}// if null - use end +if(startValue===null){result[index]=endValue;}else{if(type.mod){if(endValue-startValue>type.mod/2){startValue+=type.mod;}else if(startValue-endValue>type.mod/2){startValue-=type.mod;}}result[index]=clamp((endValue-startValue)*distance+startValue,prop);}});return this[spaceName](result);},blend:function blend(opaque){// if we are already opaque - return ourself +if(this._rgba[3]===1){return this;}var rgb=this._rgba.slice(),a=rgb.pop(),blend=color(opaque)._rgba;return color(jQuery.map(rgb,function(v,i){return(1-a)*blend[i]+a*v;}));},toRgbaString:function toRgbaString(){var prefix="rgba(",rgba=jQuery.map(this._rgba,function(v,i){if(v!=null){return v;}return i>2?1:0;});if(rgba[3]===1){rgba.pop();prefix="rgb(";}return prefix+rgba.join()+")";},toHslaString:function toHslaString(){var prefix="hsla(",hsla=jQuery.map(this.hsla(),function(v,i){if(v==null){v=i>2?1:0;}// catch 1 and 2 +if(i&&i<3){v=Math.round(v*100)+"%";}return v;});if(hsla[3]===1){hsla.pop();prefix="hsl(";}return prefix+hsla.join()+")";},toHexString:function toHexString(includeAlpha){var rgba=this._rgba.slice(),alpha=rgba.pop();if(includeAlpha){rgba.push(~~(alpha*255));}return"#"+jQuery.map(rgba,function(v){// default to 0 when nulls exist +v=(v||0).toString(16);return v.length===1?"0"+v:v;}).join("");},toString:function toString(){return this._rgba[3]===0?"transparent":this.toRgbaString();}});color.fn.parse.prototype=color.fn;// hsla conversions adapted from: +// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 +function hue2rgb(p,q,h){h=(h+1)%1;if(h*6<1){return p+(q-p)*h*6;}if(h*2<1){return q;}if(h*3<2){return p+(q-p)*(2/3-h)*6;}return p;}spaces.hsla.to=function(rgba){if(rgba[0]==null||rgba[1]==null||rgba[2]==null){return[null,null,null,rgba[3]];}var r=rgba[0]/255,g=rgba[1]/255,b=rgba[2]/255,a=rgba[3],max=Math.max(r,g,b),min=Math.min(r,g,b),diff=max-min,add=max+min,l=add*0.5,h,s;if(min===max){h=0;}else if(r===max){h=60*(g-b)/diff+360;}else if(g===max){h=60*(b-r)/diff+120;}else{h=60*(r-g)/diff+240;}// chroma (diff) == 0 means greyscale which, by definition, saturation = 0% +// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add) +if(diff===0){s=0;}else if(l<=0.5){s=diff/add;}else{s=diff/(2-add);}return[Math.round(h)%360,s,l,a==null?1:a];};spaces.hsla.from=function(hsla){if(hsla[0]==null||hsla[1]==null||hsla[2]==null){return[null,null,null,hsla[3]];}var h=hsla[0]/360,s=hsla[1],l=hsla[2],a=hsla[3],q=l<=0.5?l*(1+s):l+s-l*s,p=2*l-q;return[Math.round(hue2rgb(p,q,h+1/3)*255),Math.round(hue2rgb(p,q,h)*255),Math.round(hue2rgb(p,q,h-1/3)*255),a];};each(spaces,function(spaceName,space){var props=space.props,cache=space.cache,to=space.to,from=space.from;// makes rgba() and hsla() +color.fn[spaceName]=function(value){// generate a cache for this space if it doesn't exist +if(to&&!this[cache]){this[cache]=to(this._rgba);}if(value===undefined){return this[cache].slice();}var ret,type=getType(value),arr=type==="array"||type==="object"?value:arguments,local=this[cache].slice();each(props,function(key,prop){var val=arr[type==="object"?key:prop.idx];if(val==null){val=local[prop.idx];}local[prop.idx]=clamp(val,prop);});if(from){ret=color(from(local));ret[cache]=local;return ret;}else{return color(local);}};// makes red() green() blue() alpha() hue() saturation() lightness() +each(props,function(key,prop){// alpha is included in more than one space +if(color.fn[key]){return;}color.fn[key]=function(value){var local,cur,match,fn,vtype=getType(value);if(key==="alpha"){fn=this._hsla?"hsla":"rgba";}else{fn=spaceName;}local=this[fn]();cur=local[prop.idx];if(vtype==="undefined"){return cur;}if(vtype==="function"){value=value.call(this,cur);vtype=getType(value);}if(value==null&&prop.empty){return this;}if(vtype==="string"){match=rplusequals.exec(value);if(match){value=cur+parseFloat(match[2])*(match[1]==="+"?1:-1);}}local[prop.idx]=value;return this[fn](local);};});});// add cssHook and .fx.step function for each named hook. +// accept a space separated string of properties +color.hook=function(hook){var hooks=hook.split(" ");each(hooks,function(_i,hook){jQuery.cssHooks[hook]={set:function set(elem,value){var parsed,curElem,backgroundColor="";if(value!=="transparent"&&(getType(value)!=="string"||(parsed=stringParse(value)))){value=color(parsed||value);if(!support.rgba&&value._rgba[3]!==1){curElem=hook==="backgroundColor"?elem.parentNode:elem;while((backgroundColor===""||backgroundColor==="transparent")&&curElem&&curElem.style){try{backgroundColor=jQuery.css(curElem,"backgroundColor");curElem=curElem.parentNode;}catch(e){}}value=value.blend(backgroundColor&&backgroundColor!=="transparent"?backgroundColor:"_default");}value=value.toRgbaString();}try{elem.style[hook]=value;}catch(e){// wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' +}}};jQuery.fx.step[hook]=function(fx){if(!fx.colorInit){fx.start=color(fx.elem,hook);fx.end=color(fx.end);fx.colorInit=true;}jQuery.cssHooks[hook].set(fx.elem,fx.start.transition(fx.end,fx.pos));};});};color.hook(stepHooks);jQuery.cssHooks.borderColor={expand:function expand(value){var expanded={};each(["Top","Right","Bottom","Left"],function(_i,part){expanded["border"+part+"Color"]=value;});return expanded;}};// Basic color names only. +// Usage of any of the other color names requires adding yourself or including +// jquery.color.svg-names.js. +colors=jQuery.Color.names={// 4.1. Basic color keywords +aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",// 4.2.3. "transparent" color keyword +transparent:[null,null,null,0],_default:"#ffffff"};/*! + * jQuery UI Effects 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Effects Core +//>>group: Effects +/* eslint-disable max-len */ //>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects. +/* eslint-enable max-len */ //>>docs: https://api.jqueryui.com/category/effects-core/ +//>>demos: https://jqueryui.com/effect/ +var dataSpace="ui-effects-",dataSpaceStyle="ui-effects-style",dataSpaceAnimated="ui-effects-animated";$.effects={effect:{}};/******************************************************************************/ /****************************** CLASS ANIMATIONS ******************************/ /******************************************************************************/(function(){var classAnimationActions=["add","remove","toggle"],shorthandStyles={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};$.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(_,prop){$.fx.step[prop]=function(fx){if(fx.end!=="none"&&!fx.setAttr||fx.pos===1&&!fx.setAttr){jQuery.style(fx.elem,prop,fx.end);fx.setAttr=true;}};});function camelCase(string){return string.replace(/-([\da-z])/gi,function(all,letter){return letter.toUpperCase();});}function getElementStyles(elem){var key,len,style=elem.ownerDocument.defaultView?elem.ownerDocument.defaultView.getComputedStyle(elem,null):elem.currentStyle,styles={};if(style&&style.length&&style[0]&&style[style[0]]){len=style.length;while(len--){key=style[len];if(typeof style[key]==="string"){styles[camelCase(key)]=style[key];}}// Support: Opera, IE <9 +}else{for(key in style){if(typeof style[key]==="string"){styles[key]=style[key];}}}return styles;}function styleDifference(oldStyle,newStyle){var diff={},name,value;for(name in newStyle){value=newStyle[name];if(oldStyle[name]!==value){if(!shorthandStyles[name]){if($.fx.step[name]||!isNaN(parseFloat(value))){diff[name]=value;}}}}return diff;}// Support: jQuery <1.8 +if(!$.fn.addBack){$.fn.addBack=function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector));};}$.effects.animateClass=function(value,duration,easing,callback){var o=$.speed(duration,easing,callback);return this.queue(function(){var animated=$(this),baseClass=animated.attr("class")||"",applyClassChange,allAnimations=o.children?animated.find("*").addBack():animated;// Map the animated objects to store the original styles. +allAnimations=allAnimations.map(function(){var el=$(this);return{el:el,start:getElementStyles(this)};});// Apply class change +applyClassChange=function applyClassChange(){$.each(classAnimationActions,function(i,action){if(value[action]){animated[action+"Class"](value[action]);}});};applyClassChange();// Map all animated objects again - calculate new styles and diff +allAnimations=allAnimations.map(function(){this.end=getElementStyles(this.el[0]);this.diff=styleDifference(this.start,this.end);return this;});// Apply original class +animated.attr("class",baseClass);// Map all animated objects again - this time collecting a promise +allAnimations=allAnimations.map(function(){var styleInfo=this,dfd=$.Deferred(),opts=$.extend({},o,{queue:false,complete:function complete(){dfd.resolve(styleInfo);}});this.el.animate(this.diff,opts);return dfd.promise();});// Once all animations have completed: +$.when.apply($,allAnimations.get()).done(function(){// Set the final class +applyClassChange();// For each animated element, +// clear all css properties that were animated +$.each(arguments,function(){var el=this.el;$.each(this.diff,function(key){el.css(key,"");});});// This is guarnteed to be there if you use jQuery.speed() +// it also handles dequeuing the next anim... +o.complete.call(animated[0]);});});};$.fn.extend({addClass:function(orig){return function(classNames,speed,easing,callback){return speed?$.effects.animateClass.call(this,{add:classNames},speed,easing,callback):orig.apply(this,arguments);};}($.fn.addClass),removeClass:function(orig){return function(classNames,speed,easing,callback){return arguments.length>1?$.effects.animateClass.call(this,{remove:classNames},speed,easing,callback):orig.apply(this,arguments);};}($.fn.removeClass),toggleClass:function(orig){return function(classNames,force,speed,easing,callback){if(typeof force==="boolean"||force===undefined){if(!speed){// Without speed parameter +return orig.apply(this,arguments);}else{return $.effects.animateClass.call(this,force?{add:classNames}:{remove:classNames},speed,easing,callback);}}else{// Without force parameter +return $.effects.animateClass.call(this,{toggle:classNames},force,speed,easing);}};}($.fn.toggleClass),switchClass:function switchClass(remove,add,speed,easing,callback){return $.effects.animateClass.call(this,{add:add,remove:remove},speed,easing,callback);}});})();/******************************************************************************/ /*********************************** EFFECTS **********************************/ /******************************************************************************/(function(){if($.expr&&$.expr.pseudos&&$.expr.pseudos.animated){$.expr.pseudos.animated=function(orig){return function(elem){return!!$(elem).data(dataSpaceAnimated)||orig(elem);};}($.expr.pseudos.animated);}if($.uiBackCompat!==false){$.extend($.effects,{// Saves a set of properties in a data storage +save:function save(element,set){var i=0,length=set.length;for(;i

      ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),// Store the size in case width/height are defined in % - Fixes #5245 +size={width:element.width(),height:element.height()},active=document.activeElement;// Support: Firefox +// Firefox incorrectly exposes anonymous content +// https://bugzilla.mozilla.org/show_bug.cgi?id=561664 +try{// eslint-disable-next-line no-unused-expressions +active.id;}catch(e){active=document.body;}element.wrap(wrapper);// Fixes #7595 - Elements lose focus when wrapped. +if(element[0]===active||$.contains(element[0],active)){$(active).trigger("focus");}// Hotfix for jQuery 1.4 since some change in wrap() seems to actually +// lose the reference to the wrapped element +wrapper=element.parent();// Transfer positioning properties to the wrapper +if(element.css("position")==="static"){wrapper.css({position:"relative"});element.css({position:"relative"});}else{$.extend(props,{position:element.css("position"),zIndex:element.css("z-index")});$.each(["top","left","bottom","right"],function(i,pos){props[pos]=element.css(pos);if(isNaN(parseInt(props[pos],10))){props[pos]="auto";}});element.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"});}element.css(size);return wrapper.css(props).show();},removeWrapper:function removeWrapper(element){var active=document.activeElement;if(element.parent().is(".ui-effects-wrapper")){element.parent().replaceWith(element);// Fixes #7595 - Elements lose focus when wrapped. +if(element[0]===active||$.contains(element[0],active)){$(active).trigger("focus");}}return element;}});}$.extend($.effects,{version:"1.13.3",define:function define(name,mode,effect){if(!effect){effect=mode;mode="effect";}$.effects.effect[name]=effect;$.effects.effect[name].mode=mode;return effect;},scaledDimensions:function scaledDimensions(element,percent,direction){if(percent===0){return{height:0,width:0,outerHeight:0,outerWidth:0};}var x=direction!=="horizontal"?(percent||100)/100:1,y=direction!=="vertical"?(percent||100)/100:1;return{height:element.height()*y,width:element.width()*x,outerHeight:element.outerHeight()*y,outerWidth:element.outerWidth()*x};},clipToBox:function clipToBox(animation){return{width:animation.clip.right-animation.clip.left,height:animation.clip.bottom-animation.clip.top,left:animation.clip.left,top:animation.clip.top};},// Injects recently queued functions to be first in line (after "inprogress") +unshift:function unshift(element,queueLength,count){var queue=element.queue();if(queueLength>1){queue.splice.apply(queue,[1,0].concat(queue.splice(queueLength,count)));}element.dequeue();},saveStyle:function saveStyle(element){element.data(dataSpaceStyle,element[0].style.cssText);},restoreStyle:function restoreStyle(element){element[0].style.cssText=element.data(dataSpaceStyle)||"";element.removeData(dataSpaceStyle);},mode:function mode(element,_mode){var hidden=element.is(":hidden");if(_mode==="toggle"){_mode=hidden?"show":"hide";}if(hidden?_mode==="hide":_mode==="show"){_mode="none";}return _mode;},// Translates a [top,left] array into a baseline value +getBaseline:function getBaseline(origin,original){var y,x;switch(origin[0]){case"top":y=0;break;case"middle":y=0.5;break;case"bottom":y=1;break;default:y=origin[0]/original.height;}switch(origin[1]){case"left":x=0;break;case"center":x=0.5;break;case"right":x=1;break;default:x=origin[1]/original.width;}return{x:x,y:y};},// Creates a placeholder element so that the original element can be made absolute +createPlaceholder:function createPlaceholder(element){var placeholder,cssPosition=element.css("position"),position=element.position();// Lock in margins first to account for form elements, which +// will change margin if you explicitly set height +// see: https://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380 +// Support: Safari +element.css({marginTop:element.css("marginTop"),marginBottom:element.css("marginBottom"),marginLeft:element.css("marginLeft"),marginRight:element.css("marginRight")}).outerWidth(element.outerWidth()).outerHeight(element.outerHeight());if(/^(static|relative)/.test(cssPosition)){cssPosition="absolute";placeholder=$("<"+element[0].nodeName+">").insertAfter(element).css({// Convert inline to inline block to account for inline elements +// that turn to inline block based on content (like img) +display:/^(inline|ruby)/.test(element.css("display"))?"inline-block":"block",visibility:"hidden",// Margins need to be set to account for margin collapse +marginTop:element.css("marginTop"),marginBottom:element.css("marginBottom"),marginLeft:element.css("marginLeft"),marginRight:element.css("marginRight"),"float":element.css("float")}).outerWidth(element.outerWidth()).outerHeight(element.outerHeight()).addClass("ui-effects-placeholder");element.data(dataSpace+"placeholder",placeholder);}element.css({position:cssPosition,left:position.left,top:position.top});return placeholder;},removePlaceholder:function removePlaceholder(element){var dataKey=dataSpace+"placeholder",placeholder=element.data(dataKey);if(placeholder){placeholder.remove();element.removeData(dataKey);}},// Removes a placeholder if it exists and restores +// properties that were modified during placeholder creation +cleanUp:function cleanUp(element){$.effects.restoreStyle(element);$.effects.removePlaceholder(element);},setTransition:function setTransition(element,list,factor,value){value=value||{};$.each(list,function(i,x){var unit=element.cssUnit(x);if(unit[0]>0){value[x]=unit[0]*factor+unit[1];}});return value;}});// Return an effect options object for the given parameters: +function _normalizeArguments(effect,options,speed,callback){// Allow passing all options as the first parameter +if($.isPlainObject(effect)){options=effect;effect=effect.effect;}// Convert to an object +effect={effect:effect};// Catch (effect, null, ...) +if(options==null){options={};}// Catch (effect, callback) +if(typeof options==="function"){callback=options;speed=null;options={};}// Catch (effect, speed, ?) +if(typeof options==="number"||$.fx.speeds[options]){callback=speed;speed=options;options={};}// Catch (effect, options, callback) +if(typeof speed==="function"){callback=speed;speed=null;}// Add options to effect +if(options){$.extend(effect,options);}speed=speed||options.duration;effect.duration=$.fx.off?0:typeof speed==="number"?speed:speed in $.fx.speeds?$.fx.speeds[speed]:$.fx.speeds._default;effect.complete=callback||options.complete;return effect;}function standardAnimationOption(option){// Valid standard speeds (nothing, number, named speed) +if(!option||typeof option==="number"||$.fx.speeds[option]){return true;}// Invalid strings - treat as "normal" speed +if(typeof option==="string"&&!$.effects.effect[option]){return true;}// Complete callback +if(typeof option==="function"){return true;}// Options hash (but not naming an effect) +if(_typeof(option)==="object"&&!option.effect){return true;}// Didn't match any standard API +return false;}$.fn.extend({effect:function effect(/* effect, options, speed, callback */){var args=_normalizeArguments.apply(this,arguments),effectMethod=$.effects.effect[args.effect],defaultMode=effectMethod.mode,queue=args.queue,queueName=queue||"fx",complete=args.complete,mode=args.mode,modes=[],prefilter=function prefilter(next){var el=$(this),normalizedMode=$.effects.mode(el,mode)||defaultMode;// Sentinel for duck-punching the :animated pseudo-selector +el.data(dataSpaceAnimated,true);// Save effect mode for later use, +// we can't just call $.effects.mode again later, +// as the .show() below destroys the initial state +modes.push(normalizedMode);// See $.uiBackCompat inside of run() for removal of defaultMode in 1.14 +if(defaultMode&&(normalizedMode==="show"||normalizedMode===defaultMode&&normalizedMode==="hide")){el.show();}if(!defaultMode||normalizedMode!=="none"){$.effects.saveStyle(el);}if(typeof next==="function"){next();}};if($.fx.off||!effectMethod){// Delegate to the original method (e.g., .show()) if possible +if(mode){return this[mode](args.duration,complete);}else{return this.each(function(){if(complete){complete.call(this);}});}}function run(next){var elem=$(this);function cleanup(){elem.removeData(dataSpaceAnimated);$.effects.cleanUp(elem);if(args.mode==="hide"){elem.hide();}done();}function done(){if(typeof complete==="function"){complete.call(elem[0]);}if(typeof next==="function"){next();}}// Override mode option on a per element basis, +// as toggle can be either show or hide depending on element state +args.mode=modes.shift();if($.uiBackCompat!==false&&!defaultMode){if(elem.is(":hidden")?mode==="hide":mode==="show"){// Call the core method to track "olddisplay" properly +elem[mode]();done();}else{effectMethod.call(elem[0],args,done);}}else{if(args.mode==="none"){// Call the core method to track "olddisplay" properly +elem[mode]();done();}else{effectMethod.call(elem[0],args,cleanup);}}}// Run prefilter on all elements first to ensure that +// any showing or hiding happens before placeholder creation, +// which ensures that any layout changes are correctly captured. +return queue===false?this.each(prefilter).each(run):this.queue(queueName,prefilter).queue(queueName,run);},show:function(orig){return function(option){if(standardAnimationOption(option)){return orig.apply(this,arguments);}else{var args=_normalizeArguments.apply(this,arguments);args.mode="show";return this.effect.call(this,args);}};}($.fn.show),hide:function(orig){return function(option){if(standardAnimationOption(option)){return orig.apply(this,arguments);}else{var args=_normalizeArguments.apply(this,arguments);args.mode="hide";return this.effect.call(this,args);}};}($.fn.hide),toggle:function(orig){return function(option){if(standardAnimationOption(option)||typeof option==="boolean"){return orig.apply(this,arguments);}else{var args=_normalizeArguments.apply(this,arguments);args.mode="toggle";return this.effect.call(this,args);}};}($.fn.toggle),cssUnit:function cssUnit(key){var style=this.css(key),val=[];$.each(["em","px","%","pt"],function(i,unit){if(style.indexOf(unit)>0){val=[parseFloat(style),unit];}});return val;},cssClip:function cssClip(clipObj){if(clipObj){return this.css("clip","rect("+clipObj.top+"px "+clipObj.right+"px "+clipObj.bottom+"px "+clipObj.left+"px)");}return parseClip(this.css("clip"),this);},transfer:function transfer(options,done){var element=$(this),target=$(options.to),targetFixed=target.css("position")==="fixed",body=$("body"),fixTop=targetFixed?body.scrollTop():0,fixLeft=targetFixed?body.scrollLeft():0,endPosition=target.offset(),animation={top:endPosition.top-fixTop,left:endPosition.left-fixLeft,height:target.innerHeight(),width:target.innerWidth()},startPosition=element.offset(),transfer=$("
      ");transfer.appendTo("body").addClass(options.className).css({top:startPosition.top-fixTop,left:startPosition.left-fixLeft,height:element.innerHeight(),width:element.innerWidth(),position:targetFixed?"fixed":"absolute"}).animate(animation,options.duration,options.easing,function(){transfer.remove();if(typeof done==="function"){done();}});}});function parseClip(str,element){var outerWidth=element.outerWidth(),outerHeight=element.outerHeight(),clipRegex=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,values=clipRegex.exec(str)||["",0,outerWidth,outerHeight,0];return{top:parseFloat(values[1])||0,right:values[2]==="auto"?outerWidth:parseFloat(values[2]),bottom:values[3]==="auto"?outerHeight:parseFloat(values[3]),left:parseFloat(values[4])||0};}$.fx.step.clip=function(fx){if(!fx.clipInit){fx.start=$(fx.elem).cssClip();if(typeof fx.end==="string"){fx.end=parseClip(fx.end,fx.elem);}fx.clipInit=true;}$(fx.elem).cssClip({top:fx.pos*(fx.end.top-fx.start.top)+fx.start.top,right:fx.pos*(fx.end.right-fx.start.right)+fx.start.right,bottom:fx.pos*(fx.end.bottom-fx.start.bottom)+fx.start.bottom,left:fx.pos*(fx.end.left-fx.start.left)+fx.start.left});};})();/******************************************************************************/ /*********************************** EASING ***********************************/ /******************************************************************************/(function(){// Based on easing equations from Robert Penner (http://robertpenner.com/easing) +var baseEasings={};$.each(["Quad","Cubic","Quart","Quint","Expo"],function(i,name){baseEasings[name]=function(p){return Math.pow(p,i+2);};});$.extend(baseEasings,{Sine:function Sine(p){return 1-Math.cos(p*Math.PI/2);},Circ:function Circ(p){return 1-Math.sqrt(1-p*p);},Elastic:function Elastic(p){return p===0||p===1?p:-Math.pow(2,8*(p-1))*Math.sin(((p-1)*80-7.5)*Math.PI/15);},Back:function Back(p){return p*p*(3*p-2);},Bounce:function Bounce(p){var pow2,bounce=4;while(p<((pow2=Math.pow(2,--bounce))-1)/11){}return 1/Math.pow(4,3-bounce)-7.5625*Math.pow((pow2*3-2)/22-p,2);}});$.each(baseEasings,function(name,easeIn){$.easing["easeIn"+name]=easeIn;$.easing["easeOut"+name]=function(p){return 1-easeIn(1-p);};$.easing["easeInOut"+name]=function(p){return p<0.5?easeIn(p*2)/2:1-easeIn(p*-2+2)/2;};});})();var effect=$.effects;/*! + * jQuery UI Effects Blind 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Blind Effect +//>>group: Effects +//>>description: Blinds the element. +//>>docs: https://api.jqueryui.com/blind-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectBlind=$.effects.define("blind","hide",function(options,done){var map={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},element=$(this),direction=options.direction||"up",start=element.cssClip(),animate={clip:$.extend({},start)},placeholder=$.effects.createPlaceholder(element);animate.clip[map[direction][0]]=animate.clip[map[direction][1]];if(options.mode==="show"){element.cssClip(animate.clip);if(placeholder){placeholder.css($.effects.clipToBox(animate));}animate.clip=start;}if(placeholder){placeholder.animate($.effects.clipToBox(animate),options.duration,options.easing);}element.animate(animate,{queue:false,duration:options.duration,easing:options.easing,complete:done});});/*! + * jQuery UI Effects Bounce 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Bounce Effect +//>>group: Effects +//>>description: Bounces an element horizontally or vertically n times. +//>>docs: https://api.jqueryui.com/bounce-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectBounce=$.effects.define("bounce",function(options,done){var upAnim,downAnim,refValue,element=$(this),// Defaults: +mode=options.mode,hide=mode==="hide",show=mode==="show",direction=options.direction||"up",distance=options.distance,times=options.times||5,// Number of internal animations +anims=times*2+(show||hide?1:0),speed=options.duration/anims,easing=options.easing,// Utility: +ref=direction==="up"||direction==="down"?"top":"left",motion=direction==="up"||direction==="left",i=0,queuelen=element.queue().length;$.effects.createPlaceholder(element);refValue=element.css(ref);// Default distance for the BIGGEST bounce is the outer Distance / 3 +if(!distance){distance=element[ref==="top"?"outerHeight":"outerWidth"]()/3;}if(show){downAnim={opacity:1};downAnim[ref]=refValue;// If we are showing, force opacity 0 and set the initial position +// then do the "first" animation +element.css("opacity",0).css(ref,motion?-distance*2:distance*2).animate(downAnim,speed,easing);}// Start at the smallest distance if we are hiding +if(hide){distance=distance/Math.pow(2,times-1);}downAnim={};downAnim[ref]=refValue;// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here +for(;i>label: Clip Effect +//>>group: Effects +//>>description: Clips the element on and off like an old TV. +//>>docs: https://api.jqueryui.com/clip-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectClip=$.effects.define("clip","hide",function(options,done){var start,animate={},element=$(this),direction=options.direction||"vertical",both=direction==="both",horizontal=both||direction==="horizontal",vertical=both||direction==="vertical";start=element.cssClip();animate.clip={top:vertical?(start.bottom-start.top)/2:start.top,right:horizontal?(start.right-start.left)/2:start.right,bottom:vertical?(start.bottom-start.top)/2:start.bottom,left:horizontal?(start.right-start.left)/2:start.left};$.effects.createPlaceholder(element);if(options.mode==="show"){element.cssClip(animate.clip);animate.clip=start;}element.animate(animate,{queue:false,duration:options.duration,easing:options.easing,complete:done});});/*! + * jQuery UI Effects Drop 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Drop Effect +//>>group: Effects +//>>description: Moves an element in one direction and hides it at the same time. +//>>docs: https://api.jqueryui.com/drop-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectDrop=$.effects.define("drop","hide",function(options,done){var distance,element=$(this),mode=options.mode,show=mode==="show",direction=options.direction||"left",ref=direction==="up"||direction==="down"?"top":"left",motion=direction==="up"||direction==="left"?"-=":"+=",oppositeMotion=motion==="+="?"-=":"+=",animation={opacity:0};$.effects.createPlaceholder(element);distance=options.distance||element[ref==="top"?"outerHeight":"outerWidth"](true)/2;animation[ref]=motion+distance;if(show){element.css(animation);animation[ref]=oppositeMotion+distance;animation.opacity=1;}// Animate +element.animate(animation,{queue:false,duration:options.duration,easing:options.easing,complete:done});});/*! + * jQuery UI Effects Explode 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Explode Effect +//>>group: Effects +/* eslint-disable max-len */ //>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness. +/* eslint-enable max-len */ //>>docs: https://api.jqueryui.com/explode-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectExplode=$.effects.define("explode","hide",function(options,done){var i,j,left,top,mx,my,rows=options.pieces?Math.round(Math.sqrt(options.pieces)):3,cells=rows,element=$(this),mode=options.mode,show=mode==="show",// Show and then visibility:hidden the element before calculating offset +offset=element.show().css("visibility","hidden").offset(),// Width and height of a piece +width=Math.ceil(element.outerWidth()/cells),height=Math.ceil(element.outerHeight()/rows),pieces=[];// Children animate complete: +function childComplete(){pieces.push(this);if(pieces.length===rows*cells){animComplete();}}// Clone the element for each row and cell. +for(i=0;i +top=offset.top+i*height;my=i-(rows-1)/2;for(j=0;j
      ").css({position:"absolute",visibility:"visible",left:-j*width,top:-i*height})// Select the wrapper - make it overflow: hidden and absolute positioned based on +// where the original was located +left and +top equal to the size of pieces +.parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:width,height:height,left:left+(show?mx*width:0),top:top+(show?my*height:0),opacity:show?0:1}).animate({left:left+(show?0:mx*width),top:top+(show?0:my*height),opacity:show?1:0},options.duration||500,options.easing,childComplete);}}function animComplete(){element.css({visibility:"visible"});$(pieces).remove();done();}});/*! + * jQuery UI Effects Fade 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Fade Effect +//>>group: Effects +//>>description: Fades the element. +//>>docs: https://api.jqueryui.com/fade-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectFade=$.effects.define("fade","toggle",function(options,done){var show=options.mode==="show";$(this).css("opacity",show?0:1).animate({opacity:show?1:0},{queue:false,duration:options.duration,easing:options.easing,complete:done});});/*! + * jQuery UI Effects Fold 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Fold Effect +//>>group: Effects +//>>description: Folds an element first horizontally and then vertically. +//>>docs: https://api.jqueryui.com/fold-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectFold=$.effects.define("fold","hide",function(options,done){// Create element +var element=$(this),mode=options.mode,show=mode==="show",hide=mode==="hide",size=options.size||15,percent=/([0-9]+)%/.exec(size),horizFirst=!!options.horizFirst,ref=horizFirst?["right","bottom"]:["bottom","right"],duration=options.duration/2,placeholder=$.effects.createPlaceholder(element),start=element.cssClip(),animation1={clip:$.extend({},start)},animation2={clip:$.extend({},start)},distance=[start[ref[0]],start[ref[1]]],queuelen=element.queue().length;if(percent){size=parseInt(percent[1],10)/100*distance[hide?0:1];}animation1.clip[ref[0]]=size;animation2.clip[ref[0]]=size;animation2.clip[ref[1]]=0;if(show){element.cssClip(animation2.clip);if(placeholder){placeholder.css($.effects.clipToBox(animation2));}animation2.clip=start;}// Animate +element.queue(function(next){if(placeholder){placeholder.animate($.effects.clipToBox(animation1),duration,options.easing).animate($.effects.clipToBox(animation2),duration,options.easing);}next();}).animate(animation1,duration,options.easing).animate(animation2,duration,options.easing).queue(done);$.effects.unshift(element,queuelen,4);});/*! + * jQuery UI Effects Highlight 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Highlight Effect +//>>group: Effects +//>>description: Highlights the background of an element in a defined color for a custom duration. +//>>docs: https://api.jqueryui.com/highlight-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectHighlight=$.effects.define("highlight","show",function(options,done){var element=$(this),animation={backgroundColor:element.css("backgroundColor")};if(options.mode==="hide"){animation.opacity=0;}$.effects.saveStyle(element);element.css({backgroundImage:"none",backgroundColor:options.color||"#ffff99"}).animate(animation,{queue:false,duration:options.duration,easing:options.easing,complete:done});});/*! + * jQuery UI Effects Size 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Size Effect +//>>group: Effects +//>>description: Resize an element to a specified width and height. +//>>docs: https://api.jqueryui.com/size-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectSize=$.effects.define("size",function(options,done){// Create element +var baseline,factor,temp,element=$(this),// Copy for children +cProps=["fontSize"],vProps=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],hProps=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],// Set options +mode=options.mode,restore=mode!=="effect",scale=options.scale||"both",origin=options.origin||["middle","center"],position=element.css("position"),pos=element.position(),original=$.effects.scaledDimensions(element),from=options.from||original,to=options.to||$.effects.scaledDimensions(element,0);$.effects.createPlaceholder(element);if(mode==="show"){temp=from;from=to;to=temp;}// Set scaling factor +factor={from:{y:from.height/original.height,x:from.width/original.width},to:{y:to.height/original.height,x:to.width/original.width}};// Scale the css box +if(scale==="box"||scale==="both"){// Vertical props scaling +if(factor.from.y!==factor.to.y){from=$.effects.setTransition(element,vProps,factor.from.y,from);to=$.effects.setTransition(element,vProps,factor.to.y,to);}// Horizontal props scaling +if(factor.from.x!==factor.to.x){from=$.effects.setTransition(element,hProps,factor.from.x,from);to=$.effects.setTransition(element,hProps,factor.to.x,to);}}// Scale the content +if(scale==="content"||scale==="both"){// Vertical props scaling +if(factor.from.y!==factor.to.y){from=$.effects.setTransition(element,cProps,factor.from.y,from);to=$.effects.setTransition(element,cProps,factor.to.y,to);}}// Adjust the position properties based on the provided origin points +if(origin){baseline=$.effects.getBaseline(origin,original);from.top=(original.outerHeight-from.outerHeight)*baseline.y+pos.top;from.left=(original.outerWidth-from.outerWidth)*baseline.x+pos.left;to.top=(original.outerHeight-to.outerHeight)*baseline.y+pos.top;to.left=(original.outerWidth-to.outerWidth)*baseline.x+pos.left;}delete from.outerHeight;delete from.outerWidth;element.css(from);// Animate the children if desired +if(scale==="content"||scale==="both"){vProps=vProps.concat(["marginTop","marginBottom"]).concat(cProps);hProps=hProps.concat(["marginLeft","marginRight"]);// Only animate children with width attributes specified +// TODO: is this right? should we include anything with css width specified as well +element.find("*[width]").each(function(){var child=$(this),childOriginal=$.effects.scaledDimensions(child),childFrom={height:childOriginal.height*factor.from.y,width:childOriginal.width*factor.from.x,outerHeight:childOriginal.outerHeight*factor.from.y,outerWidth:childOriginal.outerWidth*factor.from.x},childTo={height:childOriginal.height*factor.to.y,width:childOriginal.width*factor.to.x,outerHeight:childOriginal.height*factor.to.y,outerWidth:childOriginal.width*factor.to.x};// Vertical props scaling +if(factor.from.y!==factor.to.y){childFrom=$.effects.setTransition(child,vProps,factor.from.y,childFrom);childTo=$.effects.setTransition(child,vProps,factor.to.y,childTo);}// Horizontal props scaling +if(factor.from.x!==factor.to.x){childFrom=$.effects.setTransition(child,hProps,factor.from.x,childFrom);childTo=$.effects.setTransition(child,hProps,factor.to.x,childTo);}if(restore){$.effects.saveStyle(child);}// Animate children +child.css(childFrom);child.animate(childTo,options.duration,options.easing,function(){// Restore children +if(restore){$.effects.restoreStyle(child);}});});}// Animate +element.animate(to,{queue:false,duration:options.duration,easing:options.easing,complete:function complete(){var offset=element.offset();if(to.opacity===0){element.css("opacity",from.opacity);}if(!restore){element.css("position",position==="static"?"relative":position).offset(offset);// Need to save style here so that automatic style restoration +// doesn't restore to the original styles from before the animation. +$.effects.saveStyle(element);}done();}});});/*! + * jQuery UI Effects Scale 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Scale Effect +//>>group: Effects +//>>description: Grows or shrinks an element and its content. +//>>docs: https://api.jqueryui.com/scale-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectScale=$.effects.define("scale",function(options,done){// Create element +var el=$(this),mode=options.mode,percent=parseInt(options.percent,10)||(parseInt(options.percent,10)===0?0:mode!=="effect"?0:100),newOptions=$.extend(true,{from:$.effects.scaledDimensions(el),to:$.effects.scaledDimensions(el,percent,options.direction||"both"),origin:options.origin||["middle","center"]},options);// Fade option to support puff +if(options.fade){newOptions.from.opacity=1;newOptions.to.opacity=0;}$.effects.effect.size.call(this,newOptions,done);});/*! + * jQuery UI Effects Puff 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Puff Effect +//>>group: Effects +//>>description: Creates a puff effect by scaling the element up and hiding it at the same time. +//>>docs: https://api.jqueryui.com/puff-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectPuff=$.effects.define("puff","hide",function(options,done){var newOptions=$.extend(true,{},options,{fade:true,percent:parseInt(options.percent,10)||150});$.effects.effect.scale.call(this,newOptions,done);});/*! + * jQuery UI Effects Pulsate 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Pulsate Effect +//>>group: Effects +//>>description: Pulsates an element n times by changing the opacity to zero and back. +//>>docs: https://api.jqueryui.com/pulsate-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectPulsate=$.effects.define("pulsate","show",function(options,done){var element=$(this),mode=options.mode,show=mode==="show",hide=mode==="hide",showhide=show||hide,// Showing or hiding leaves off the "last" animation +anims=(options.times||5)*2+(showhide?1:0),duration=options.duration/anims,animateTo=0,i=1,queuelen=element.queue().length;if(show||!element.is(":visible")){element.css("opacity",0).show();animateTo=1;}// Anims - 1 opacity "toggles" +for(;i>label: Shake Effect +//>>group: Effects +//>>description: Shakes an element horizontally or vertically n times. +//>>docs: https://api.jqueryui.com/shake-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectShake=$.effects.define("shake",function(options,done){var i=1,element=$(this),direction=options.direction||"left",distance=options.distance||20,times=options.times||3,anims=times*2+1,speed=Math.round(options.duration/anims),ref=direction==="up"||direction==="down"?"top":"left",positiveMotion=direction==="up"||direction==="left",animation={},animation1={},animation2={},queuelen=element.queue().length;$.effects.createPlaceholder(element);// Animation +animation[ref]=(positiveMotion?"-=":"+=")+distance;animation1[ref]=(positiveMotion?"+=":"-=")+distance*2;animation2[ref]=(positiveMotion?"-=":"+=")+distance*2;// Animate +element.animate(animation,speed,options.easing);// Shakes +for(;i>label: Slide Effect +//>>group: Effects +//>>description: Slides an element in and out of the viewport. +//>>docs: https://api.jqueryui.com/slide-effect/ +//>>demos: https://jqueryui.com/effect/ +var effectsEffectSlide=$.effects.define("slide","show",function(options,done){var startClip,startRef,element=$(this),map={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},mode=options.mode,direction=options.direction||"left",ref=direction==="up"||direction==="down"?"top":"left",positiveMotion=direction==="up"||direction==="left",distance=options.distance||element[ref==="top"?"outerHeight":"outerWidth"](true),animation={};$.effects.createPlaceholder(element);startClip=element.cssClip();startRef=element.position()[ref];// Define hide animation +animation[ref]=(positiveMotion?-1:1)*distance+startRef;animation.clip=element.cssClip();animation.clip[map[direction][1]]=animation.clip[map[direction][0]];// Reverse the animation if we're showing +if(mode==="show"){element.cssClip(animation.clip);element.css(ref,animation[ref]);animation.clip=startClip;animation[ref]=startRef;}// Actually animate +element.animate(animation,{queue:false,duration:options.duration,easing:options.easing,complete:done});});/*! + * jQuery UI Effects Transfer 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Transfer Effect +//>>group: Effects +//>>description: Displays a transfer effect from one element to another. +//>>docs: https://api.jqueryui.com/transfer-effect/ +//>>demos: https://jqueryui.com/effect/ +var effect;if($.uiBackCompat!==false){effect=$.effects.define("transfer",function(options,done){$(this).transfer(options,done);});}var effectsEffectTransfer=effect;/*! + * jQuery UI Focusable 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: :focusable Selector +//>>group: Core +//>>description: Selects elements which can be focused. +//>>docs: https://api.jqueryui.com/focusable-selector/ +// Selectors +$.ui.focusable=function(element,hasTabindex){var map,mapName,img,focusableIfVisible,fieldset,nodeName=element.nodeName.toLowerCase();if("area"===nodeName){map=element.parentNode;mapName=map.name;if(!element.href||!mapName||map.nodeName.toLowerCase()!=="map"){return false;}img=$("img[usemap='#"+mapName+"']");return img.length>0&&img.is(":visible");}if(/^(input|select|textarea|button|object)$/.test(nodeName)){focusableIfVisible=!element.disabled;if(focusableIfVisible){// Form controls within a disabled fieldset are disabled. +// However, controls within the fieldset's legend do not get disabled. +// Since controls generally aren't placed inside legends, we skip +// this portion of the check. +fieldset=$(element).closest("fieldset")[0];if(fieldset){focusableIfVisible=!fieldset.disabled;}}}else if("a"===nodeName){focusableIfVisible=element.href||hasTabindex;}else{focusableIfVisible=hasTabindex;}return focusableIfVisible&&$(element).is(":visible")&&visible($(element));};// Support: IE 8 only +// IE 8 doesn't resolve inherit to visible/hidden for computed values +function visible(element){var visibility=element.css("visibility");while(visibility==="inherit"){element=element.parent();visibility=element.css("visibility");}return visibility==="visible";}$.extend($.expr.pseudos,{focusable:function focusable(element){return $.ui.focusable(element,$.attr(element,"tabindex")!=null);}});var focusable=$.ui.focusable;// Support: IE8 Only +// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop +// with a string, so we need to find the proper form. +var form=$.fn._form=function(){return typeof this[0].form==="string"?this.closest("form"):$(this[0].form);};/*! + * jQuery UI Form Reset Mixin 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Form Reset Mixin +//>>group: Core +//>>description: Refresh input widgets when their form is reset +//>>docs: https://api.jqueryui.com/form-reset-mixin/ +var formResetMixin=$.ui.formResetMixin={_formResetHandler:function _formResetHandler(){var form=$(this);// Wait for the form reset to actually happen before refreshing +setTimeout(function(){var instances=form.data("ui-form-reset-instances");$.each(instances,function(){this.refresh();});});},_bindFormResetHandler:function _bindFormResetHandler(){this.form=this.element._form();if(!this.form.length){return;}var instances=this.form.data("ui-form-reset-instances")||[];if(!instances.length){// We don't use _on() here because we use a single event handler per form +this.form.on("reset.ui-form-reset",this._formResetHandler);}instances.push(this);this.form.data("ui-form-reset-instances",instances);},_unbindFormResetHandler:function _unbindFormResetHandler(){if(!this.form.length){return;}var instances=this.form.data("ui-form-reset-instances");instances.splice($.inArray(this,instances),1);if(instances.length){this.form.data("ui-form-reset-instances",instances);}else{this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset");}}};/*! + * jQuery UI Support for jQuery core 1.8.x and newer 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + * + */ //>>label: jQuery 1.8+ Support +//>>group: Core +//>>description: Support version 1.8.x and newer of jQuery core +// Support: jQuery 1.9.x or older +// $.expr[ ":" ] is deprecated. +if(!$.expr.pseudos){$.expr.pseudos=$.expr[":"];}// Support: jQuery 1.11.x or older +// $.unique has been renamed to $.uniqueSort +if(!$.uniqueSort){$.uniqueSort=$.unique;}// Support: jQuery 2.2.x or older. +// This method has been defined in jQuery 3.0.0. +// Code from https://github.com/jquery/jquery/blob/e539bac79e666bba95bba86d690b4e609dca2286/src/selector/escapeSelector.js +if(!$.escapeSelector){// CSS string/identifier serialization +// https://drafts.csswg.org/cssom/#common-serializing-idioms +var rcssescape=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;var fcssescape=function fcssescape(ch,asCodePoint){if(asCodePoint){// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER +if(ch==="\0"){return"\uFFFD";}// Control characters and (dependent upon position) numbers get escaped as code points +return ch.slice(0,-1)+"\\"+ch.charCodeAt(ch.length-1).toString(16)+" ";}// Other potentially-special ASCII characters get backslash-escaped +return"\\"+ch;};$.escapeSelector=function(sel){return(sel+"").replace(rcssescape,fcssescape);};}// Support: jQuery 3.4.x or older +// These methods have been defined in jQuery 3.5.0. +if(!$.fn.even||!$.fn.odd){$.fn.extend({even:function even(){return this.filter(function(i){return i%2===0;});},odd:function odd(){return this.filter(function(i){return i%2===1;});}});};/*! + * jQuery UI Keycode 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Keycode +//>>group: Core +//>>description: Provide keycodes as keynames +//>>docs: https://api.jqueryui.com/jQuery.ui.keyCode/ +var keycode=$.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38};/*! + * jQuery UI Labels 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: labels +//>>group: Core +//>>description: Find all the labels associated with a given input +//>>docs: https://api.jqueryui.com/labels/ +var labels=$.fn.labels=function(){var ancestor,selector,id,labels,ancestors;if(!this.length){return this.pushStack([]);}// Check control.labels first +if(this[0].labels&&this[0].labels.length){return this.pushStack(this[0].labels);}// Support: IE <= 11, FF <= 37, Android <= 2.3 only +// Above browsers do not support control.labels. Everything below is to support them +// as well as document fragments. control.labels does not work on document fragments +labels=this.eq(0).parents("label");// Look for the label based on the id +id=this.attr("id");if(id){// We don't search against the document in case the element +// is disconnected from the DOM +ancestor=this.eq(0).parents().last();// Get a full set of top level ancestors +ancestors=ancestor.add(ancestor.length?ancestor.siblings():this.siblings());// Create a selector for the label based on the id +selector="label[for='"+$.escapeSelector(id)+"']";labels=labels.add(ancestors.find(selector).addBack(selector));}// Return whatever we have found for labels +return this.pushStack(labels);};/*! + * jQuery UI Scroll Parent 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: scrollParent +//>>group: Core +//>>description: Get the closest ancestor element that is scrollable. +//>>docs: https://api.jqueryui.com/scrollParent/ +var scrollParent=$.fn.scrollParent=function(includeHidden){var position=this.css("position"),excludeStaticParent=position==="absolute",overflowRegex=includeHidden?/(auto|scroll|hidden)/:/(auto|scroll)/,scrollParent=this.parents().filter(function(){var parent=$(this);if(excludeStaticParent&&parent.css("position")==="static"){return false;}return overflowRegex.test(parent.css("overflow")+parent.css("overflow-y")+parent.css("overflow-x"));}).eq(0);return position==="fixed"||!scrollParent.length?$(this[0].ownerDocument||document):scrollParent;};/*! + * jQuery UI Tabbable 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: :tabbable Selector +//>>group: Core +//>>description: Selects elements which can be tabbed to. +//>>docs: https://api.jqueryui.com/tabbable-selector/ +var tabbable=$.extend($.expr.pseudos,{tabbable:function tabbable(element){var tabIndex=$.attr(element,"tabindex"),hasTabindex=tabIndex!=null;return(!hasTabindex||tabIndex>=0)&&$.ui.focusable(element,hasTabindex);}});/*! + * jQuery UI Unique ID 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: uniqueId +//>>group: Core +//>>description: Functions to generate and remove uniqueId's +//>>docs: https://api.jqueryui.com/uniqueId/ +var uniqueId=$.fn.extend({uniqueId:function(){var uuid=0;return function(){return this.each(function(){if(!this.id){this.id="ui-id-"+ ++uuid;}});};}(),removeUniqueId:function removeUniqueId(){return this.each(function(){if(/^ui-id-\d+$/.test(this.id)){$(this).removeAttr("id");}});}});/*! + * jQuery UI Accordion 1.13.3 + * https://jqueryui.com + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license + */ //>>label: Accordion +//>>group: Widgets +/* eslint-disable max-len */ //>>description: Displays collapsible content panels for presenting information in a limited amount of space. +/* eslint-enable max-len */ //>>docs: https://api.jqueryui.com/accordion/ +//>>demos: https://jqueryui.com/accordion/ +//>>css.structure: ../../themes/base/core.css +//>>css.structure: ../../themes/base/accordion.css +//>>css.theme: ../../themes/base/theme.css +var widgetsAccordion=$.widget("ui.accordion",{version:"1.13.3",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:false,event:"click",header:function header(elem){return elem.find("> li > :first-child").add(elem.find("> :not(li)").even());},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},// Callbacks +activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function _create(){var options=this.options;this.prevShow=this.prevHide=$();this._addClass("ui-accordion","ui-widget ui-helper-reset");this.element.attr("role","tablist");// Don't allow collapsible: false and active: false / null +if(!options.collapsible&&(options.active===false||options.active==null)){options.active=0;}this._processPanels();// handle negative values +if(options.active<0){options.active+=this.headers.length;}this._refresh();},_getCreateEventData:function _getCreateEventData(){return{header:this.active,panel:!this.active.length?$():this.active.next()};},_createIcons:function _createIcons(){var icon,children,icons=this.options.icons;if(icons){icon=$("");this._addClass(icon,"ui-accordion-header-icon","ui-icon "+icons.header);icon.prependTo(this.headers);children=this.active.children(".ui-accordion-header-icon");this._removeClass(children,icons.header)._addClass(children,null,icons.activeHeader)._addClass(this.headers,"ui-accordion-icons");}},_destroyIcons:function _destroyIcons(){this._removeClass(this.headers,"ui-accordion-icons");this.headers.children(".ui-accordion-header-icon").remove();},_destroy:function _destroy(){var contents;// Clean up main element +this.element.removeAttr("role");// Clean up headers +this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId();this._destroyIcons();// Clean up content panels +contents=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId();if(this.options.heightStyle!=="content"){contents.css("height","");}},_setOption:function _setOption(key,value){if(key==="active"){// _activate() will handle invalid values and update this.options +this._activate(value);return;}if(key==="event"){if(this.options.event){this._off(this.headers,this.options.event);}this._setupEvents(value);}this._super(key,value);// Setting collapsible: false while collapsed; open first panel +if(key==="collapsible"&&!value&&this.options.active===false){this._activate(0);}if(key==="icons"){this._destroyIcons();if(value){this._createIcons();}}},_setOptionDisabled:function _setOptionDisabled(value){this._super(value);this.element.attr("aria-disabled",value);// Support: IE8 Only +// #5332 / #6059 - opacity doesn't cascade to positioned elements in IE +// so we need to add the disabled class to the headers and panels +this._toggleClass(null,"ui-state-disabled",!!value);this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!value);},_keydown:function _keydown(event){if(event.altKey||event.ctrlKey){return;}var keyCode=$.ui.keyCode,length=this.headers.length,currentIndex=this.headers.index(event.target),toFocus=false;switch(event.keyCode){case keyCode.RIGHT:case keyCode.DOWN:toFocus=this.headers[(currentIndex+1)%length];break;case keyCode.LEFT:case keyCode.UP:toFocus=this.headers[(currentIndex-1+length)%length];break;case keyCode.SPACE:case keyCode.ENTER:this._eventHandler(event);break;case keyCode.HOME:toFocus=this.headers[0];break;case keyCode.END:toFocus=this.headers[length-1];break;}if(toFocus){$(event.target).attr("tabIndex",-1);$(toFocus).attr("tabIndex",0);$(toFocus).trigger("focus");event.preventDefault();}},_panelKeyDown:function _panelKeyDown(event){if(event.keyCode===$.ui.keyCode.UP&&event.ctrlKey){$(event.currentTarget).prev().trigger("focus");}},refresh:function refresh(){var options=this.options;this._processPanels();// Was collapsed or no panel +if(options.active===false&&options.collapsible===true||!this.headers.length){options.active=false;this.active=$();// active false only when collapsible is true +}else if(options.active===false){this._activate(0);// was active, but active panel is gone +}else if(this.active.length&&!$.contains(this.element[0],this.active[0])){// all remaining panel are disabled +if(this.headers.length===this.headers.find(".ui-state-disabled").length){options.active=false;this.active=$();// activate previous panel +}else{this._activate(Math.max(0,options.active-1));}// was active, active panel still exists +}else{// make sure active index is correct +options.active=this.headers.index(this.active);}this._destroyIcons();this._refresh();},_processPanels:function _processPanels(){var prevHeaders=this.headers,prevPanels=this.panels;if(typeof this.options.header==="function"){this.headers=this.options.header(this.element);}else{this.headers=this.element.find(this.options.header);}this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default");this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide();this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content");// Avoid memory leaks (#10056) +if(prevPanels){this._off(prevHeaders.not(this.headers));this._off(prevPanels.not(this.panels));}},_refresh:function _refresh(){var maxHeight,options=this.options,heightStyle=options.heightStyle,parent=this.element.parent();this.active=this._findActive(options.active);this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed");this._addClass(this.active.next(),"ui-accordion-content-active");this.active.next().show();this.headers.attr("role","tab").each(function(){var header=$(this),headerId=header.uniqueId().attr("id"),panel=header.next(),panelId=panel.uniqueId().attr("id");header.attr("aria-controls",panelId);panel.attr("aria-labelledby",headerId);}).next().attr("role","tabpanel");this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide();// Make sure at least one header is in the tab order +if(!this.active.length){this.headers.eq(0).attr("tabIndex",0);}else{this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"});}this._createIcons();this._setupEvents(options.event);if(heightStyle==="fill"){maxHeight=parent.height();this.element.siblings(":visible").each(function(){var elem=$(this),position=elem.css("position");if(position==="absolute"||position==="fixed"){return;}maxHeight-=elem.outerHeight(true);});this.headers.each(function(){maxHeight-=$(this).outerHeight(true);});this.headers.next().each(function(){$(this).height(Math.max(0,maxHeight-$(this).innerHeight()+$(this).height()));}).css("overflow","auto");}else if(heightStyle==="auto"){maxHeight=0;this.headers.next().each(function(){var isVisible=$(this).is(":visible");if(!isVisible){$(this).show();}maxHeight=Math.max(maxHeight,$(this).css("height","").height());if(!isVisible){$(this).hide();}}).height(maxHeight);}},_activate:function _activate(index){var active=this._findActive(index)[0];// Trying to activate the already active panel +if(active===this.active[0]){return;}// Trying to collapse, simulate a click on the currently active header +active=active||this.active[0];this._eventHandler({target:active,currentTarget:active,preventDefault:$.noop});},_findActive:function _findActive(selector){return typeof selector==="number"?this.headers.eq(selector):$();},_setupEvents:function _setupEvents(event){var events={keydown:"_keydown"};if(event){$.each(event.split(" "),function(index,eventName){events[eventName]="_eventHandler";});}this._off(this.headers.add(this.headers.next()));this._on(this.headers,events);this._on(this.headers.next(),{keydown:"_panelKeyDown"});this._hoverable(this.headers);this._focusable(this.headers);},_eventHandler:function _eventHandler(event){var activeChildren,clickedChildren,options=this.options,active=this.active,clicked=$(event.currentTarget),clickedIsActive=clicked[0]===active[0],collapsing=clickedIsActive&&options.collapsible,toShow=collapsing?$():clicked.next(),toHide=active.next(),eventData={oldHeader:active,oldPanel:toHide,newHeader:collapsing?$():clicked,newPanel:toShow};event.preventDefault();if(// click on active header, but not collapsible +clickedIsActive&&!options.collapsible||// allow canceling activation +this._trigger("beforeActivate",event,eventData)===false){return;}options.active=collapsing?false:this.headers.index(clicked);// When the call to ._toggle() comes after the class changes +// it causes a very odd bug in IE 8 (see #6720) +this.active=clickedIsActive?$():clicked;this._toggle(eventData);// Switch classes +// corner classes on the previously active header stay after the animation +this._removeClass(active,"ui-accordion-header-active","ui-state-active");if(options.icons){activeChildren=active.children(".ui-accordion-header-icon");this._removeClass(activeChildren,null,options.icons.activeHeader)._addClass(activeChildren,null,options.icons.header);}if(!clickedIsActive){this._removeClass(clicked,"ui-accordion-header-collapsed")._addClass(clicked,"ui-accordion-header-active","ui-state-active");if(options.icons){clickedChildren=clicked.children(".ui-accordion-header-icon");this._removeClass(clickedChildren,null,options.icons.header)._addClass(clickedChildren,null,options.icons.activeHeader);}this._addClass(clicked.next(),"ui-accordion-content-active");}},_toggle:function _toggle(data){var toShow=data.newPanel,toHide=this.prevShow.length?this.prevShow:data.oldPanel;// Handle activating a panel during the animation for another activation +this.prevShow.add(this.prevHide).stop(true,true);this.prevShow=toShow;this.prevHide=toHide;if(this.options.animate){this._animate(toShow,toHide,data);}else{toHide.hide();toShow.show();this._toggleComplete(data);}toHide.attr({"aria-hidden":"true"});toHide.prev().attr({"aria-selected":"false","aria-expanded":"false"});// if we're switching panels, remove the old header from the tab order +// if we're opening from collapsed state, remove the previous header from the tab order +// if we're collapsing, then keep the collapsing header in the tab order +if(toShow.length&&toHide.length){toHide.prev().attr({"tabIndex":-1,"aria-expanded":"false"});}else if(toShow.length){this.headers.filter(function(){return parseInt($(this).attr("tabIndex"),10)===0;}).attr("tabIndex",-1);}toShow.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0});},_animate:function _animate(toShow,toHide,data){var total,easing,duration,that=this,adjust=0,boxSizing=toShow.css("box-sizing"),down=toShow.length&&(!toHide.length||toShow.index() +try{activeElement=document.activeElement;}catch(error){activeElement=document.body;}// Support: IE 9 - 11 only +// IE may return null instead of an element +// Interestingly, this only seems to occur when NOT in an iframe +if(!activeElement){activeElement=document.body;}// Support: IE 11 only +// IE11 returns a seemingly empty object in some cases when accessing +// document.activeElement from an