CINXE.COM
The Future of Robotic-Assisted Surgery in Orthopedics - MassDevice
<!DOCTYPE html> <html lang="en-US"> <head > <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style type="text/css"> .slide-excerpt { width: 100%; } .slide-excerpt { top: 0; } .slide-excerpt { left: 0; } .flexslider { max-width: 725px; max-height: 400px; } .slide-image { max-height: 400px; } </style> <!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v23.9) - https://yoast.com/wordpress/plugins/seo/ --> <title>The Future of Robotic-Assisted Surgery in Orthopedics - MassDevice</title> <link rel="canonical" href="https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="The Future of Robotic-Assisted Surgery in Orthopedics" /> <meta property="og:description" content="No doubt, manufacturers of large surgical robotic systems have dominated the first era of robotic surgery. In orthopedics such systems have been acquired by the dominant implant companies and have been used to obtain long term implant performance. But the next era of surgical robotics—both in hard tissue and soft tissue robotics—could open a path […]" /> <meta property="og:url" content="https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/" /> <meta property="og:site_name" content="MassDevice" /> <meta property="article:publisher" content="http://www.facebook.com/massdevicejournal" /> <meta property="article:published_time" content="2024-03-01T14:43:03+00:00" /> <meta property="article:modified_time" content="2024-03-12T13:43:47+00:00" /> <meta property="og:image" content="https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia_Robotic-Assisted_Surgery_cover.jpg" /> <meta property="og:image:width" content="300" /> <meta property="og:image:height" content="360" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="author" content="MassDevice" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:creator" content="@MassDevice" /> <meta name="twitter:site" content="@MassDevice" /> <meta name="twitter:label1" content="Written by" /> <meta name="twitter:data1" content="MassDevice" /> <meta name="twitter:label2" content="Est. reading time" /> <meta name="twitter:data2" content="1 minute" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/#article","isPartOf":{"@id":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/"},"author":{"name":"MassDevice","@id":"https://www.massdevice.com/#/schema/person/3266734876627b396eac7411793bc738"},"headline":"The Future of Robotic-Assisted Surgery in Orthopedics","datePublished":"2024-03-01T14:43:03+00:00","dateModified":"2024-03-12T13:43:47+00:00","mainEntityOfPage":{"@id":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/"},"wordCount":140,"publisher":{"@id":"https://www.massdevice.com/#organization"},"image":{"@id":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/#primaryimage"},"thumbnailUrl":"https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia_Robotic-Assisted_Surgery_cover.jpg","articleSection":["Whitepapers"],"inLanguage":"en-US","copyrightYear":"2024","copyrightHolder":{"@id":"https://www.massdevice.com/#organization"}},{"@type":"WebPage","@id":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/","url":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/","name":"The Future of Robotic-Assisted Surgery in Orthopedics - MassDevice","isPartOf":{"@id":"https://www.massdevice.com/#website"},"primaryImageOfPage":{"@id":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/#primaryimage"},"image":{"@id":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/#primaryimage"},"thumbnailUrl":"https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia_Robotic-Assisted_Surgery_cover.jpg","datePublished":"2024-03-01T14:43:03+00:00","dateModified":"2024-03-12T13:43:47+00:00","breadcrumb":{"@id":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/#primaryimage","url":"https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia_Robotic-Assisted_Surgery_cover.jpg","contentUrl":"https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia_Robotic-Assisted_Surgery_cover.jpg","width":300,"height":360},{"@type":"BreadcrumbList","@id":"https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.massdevice.com/"},{"@type":"ListItem","position":2,"name":"The Future of Robotic-Assisted Surgery in Orthopedics"}]},{"@type":"WebSite","@id":"https://www.massdevice.com/#website","url":"https://www.massdevice.com/","name":"MassDevice","description":"The Medical Device Business Journal — Medical Device News & Articles | MassDevice","publisher":{"@id":"https://www.massdevice.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.massdevice.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://www.massdevice.com/#organization","name":"MassDevice","url":"https://www.massdevice.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.massdevice.com/#/schema/logo/image/","url":"https://www.massdevice.com/wp-content/uploads/2015/06/massdevice_logo_PMS179.gif","contentUrl":"https://www.massdevice.com/wp-content/uploads/2015/06/massdevice_logo_PMS179.gif","width":752,"height":326,"caption":"MassDevice"},"image":{"@id":"https://www.massdevice.com/#/schema/logo/image/"},"sameAs":["http://www.facebook.com/massdevicejournal","https://x.com/MassDevice","http://www.linkedin.com/company/massdevice"]},{"@type":"Person","@id":"https://www.massdevice.com/#/schema/person/3266734876627b396eac7411793bc738","name":"MassDevice","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.massdevice.com/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/7ff54f53c6caeed73e2e8cdecf68f70a?s=96&d=retro&r=g","contentUrl":"https://secure.gravatar.com/avatar/7ff54f53c6caeed73e2e8cdecf68f70a?s=96&d=retro&r=g","caption":"MassDevice"},"url":"https://www.massdevice.com/author/dmiyares-2/"}]}</script> <!-- / Yoast SEO Premium plugin. --> <link rel='dns-prefetch' href='//static.addtoany.com' /> <link rel='dns-prefetch' href='//kit.fontawesome.com' /> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.massdevice.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <link rel='stylesheet' id='wtwh_ticker_css-css' href='https://www.massdevice.com/wp-content/plugins/wtwh-ticker/assets/css/style.css?ver=6.7' type='text/css' media='all' /> <style id='wtwh_ticker_css-inline-css' type='text/css'> .wtwh-hover-ticker-chart-page a:hover { text-decoration: underline; /*this should change to match site theme*/ color: #ff4c00; } .wtwh-hover-ticker-company-name { display: block; font-weight: 700; font-size: 14px; line-height: 28px; padding: 5px 10px; /*this should match site theme. currently fits DW*/ background-color: #333; color: #fff; border-top: 5px solid #ff4c00; } .wtwh-hover-ticker button { color: #002f6c; margin-left: 5px; font-size: 10px; font-weight: 600; padding: 2px 4px; background-color: white; position: absolute; /*these colors should match the theme color*/ color: #ff4c00; border: 1px solid #ff4c00; } </style> <link rel='stylesheet' id='news-pro-css' href='https://www.massdevice.com/wp-content/themes/news-pro/style.css?ver=3.2.3' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://www.massdevice.com/wp-includes/css/dist/block-library/style.min.css?ver=6.7' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='wtwh_prestitial_main_style-css' href='https://www.massdevice.com/wp-content/plugins/prestitial/assets/css/main.css?ver=1.1.0' type='text/css' media='all' /> <link rel='stylesheet' id='wtwh_prestitial_style-css' href='https://www.massdevice.com/wp-content/plugins/prestitial/assets/css/prestitial.css?ver=1.1.0' type='text/css' media='all' /> <link rel='stylesheet' id='buttons-css' href='https://www.massdevice.com/wp-includes/css/buttons.min.css?ver=6.7' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='https://www.massdevice.com/wp-includes/css/dashicons.min.css?ver=6.7' type='text/css' media='all' /> <link rel='stylesheet' id='mediaelement-css' href='https://www.massdevice.com/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver=4.2.17' type='text/css' media='all' /> <link rel='stylesheet' id='wp-mediaelement-css' href='https://www.massdevice.com/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=6.7' type='text/css' media='all' /> <link rel='stylesheet' id='media-views-css' href='https://www.massdevice.com/wp-includes/css/media-views.min.css?ver=6.7' type='text/css' media='all' /> <link rel='stylesheet' id='imgareaselect-css' href='https://www.massdevice.com/wp-includes/js/imgareaselect/imgareaselect.css?ver=0.9.8' type='text/css' media='all' /> <link rel='stylesheet' id='frontend-sponsored-ads-css-css' href='https://www.massdevice.com/wp-content/plugins/sponsored-content-ad/css/frontend-sponsored-ads.css?ver=1.01202411221732316541' type='text/css' media='all' /> <link rel='stylesheet' id='widgetopts-styles-css' href='https://www.massdevice.com/wp-content/plugins/widget-options/assets/css/widget-options.css?ver=4.0.8' type='text/css' media='all' /> <link rel='stylesheet' id='google-fonts-css' href='//fonts.googleapis.com/css?family=Raleway%3A400%2C700&display=swap&ver=3.2.3' type='text/css' media='all' /> <link rel='stylesheet' id='gforms_reset_css-css' href='https://www.massdevice.com/wp-content/plugins/gravityforms/legacy/css/formreset.min.css?ver=2.9.0' type='text/css' media='all' /> <link rel='stylesheet' id='gforms_formsmain_css-css' href='https://www.massdevice.com/wp-content/plugins/gravityforms/legacy/css/formsmain.min.css?ver=2.9.0' type='text/css' media='all' /> <link rel='stylesheet' id='gforms_ready_class_css-css' href='https://www.massdevice.com/wp-content/plugins/gravityforms/legacy/css/readyclass.min.css?ver=2.9.0' type='text/css' media='all' /> <link rel='stylesheet' id='gforms_browsers_css-css' href='https://www.massdevice.com/wp-content/plugins/gravityforms/legacy/css/browsers.min.css?ver=2.9.0' type='text/css' media='all' /> <link rel='stylesheet' id='addtoany-css' href='https://www.massdevice.com/wp-content/plugins/add-to-any/addtoany.min.css?ver=1.16' type='text/css' media='all' /> <link rel='stylesheet' id='slider_styles-css' href='https://www.massdevice.com/wp-content/plugins/genesis-responsive-slider/assets/style.css?ver=1.0.1' type='text/css' media='all' /> <script type="text/javascript" id="addtoany-core-js-before"> /* <![CDATA[ */ window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={}; a2a_config.track_links = 'bitly'; a2a_config.track_links_key = 'addtoany|R_cc6a4017b0274d1d86f2397771b70136'; // username|API key delimited by | a2a_config.templates = { twitter: "${title} ${link} @MassDevice" }; /* ]]> */ </script> <script type="text/javascript" defer src="https://static.addtoany.com/menu/page.js" id="addtoany-core-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" defer src="https://www.massdevice.com/wp-content/plugins/add-to-any/addtoany.min.js?ver=1.1" id="addtoany-jquery-js"></script> <script type="text/javascript" src="https://kit.fontawesome.com/0db18eb627.js?ver=6.7" id="wtwh_prestitial_fontAwesome_js-js"></script> <script type="text/javascript" id="utils-js-extra"> /* <![CDATA[ */ var userSettings = {"url":"\/","uid":"0","time":"1732316541","secure":"1"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/utils.min.js?ver=6.7" id="utils-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/plupload/moxie.min.js?ver=1.3.5" id="moxiejs-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/plupload/plupload.min.js?ver=2.1.9" id="plupload-js"></script> <!--[if lt IE 8]> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/json2.min.js?ver=2015-05-03" id="json2-js"></script> <![endif]--> <script type="text/javascript" src="https://www.massdevice.com/wp-content/plugins/sponsored-content-ad/js/frontend-sponsored-ads.js" id="frontend-sponsored-ads-script-js"></script> <script type="text/javascript" defer='defer' src="https://www.massdevice.com/wp-content/plugins/gravityforms/js/jquery.json.min.js?ver=2.9.0" id="gform_json-js"></script> <script type="text/javascript" id="gform_gravityforms-js-extra"> /* <![CDATA[ */ var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2,"code":"USD"},"base_url":"https:\/\/www.massdevice.com\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/www.massdevice.com\/wp-content\/plugins\/gravityforms\/images\/spinner.svg","version_hash":"0e68abc758091b9ef9fad54effde155d","strings":{"newRowAdded":"New row added.","rowRemoved":"Row removed","formSaved":"The form has been saved. The content contains the link to return and complete the form."}}; var gform_i18n = {"datepicker":{"days":{"monday":"Mo","tuesday":"Tu","wednesday":"We","thursday":"Th","friday":"Fr","saturday":"Sa","sunday":"Su"},"months":{"january":"January","february":"February","march":"March","april":"April","may":"May","june":"June","july":"July","august":"August","september":"September","october":"October","november":"November","december":"December"},"firstDay":1,"iconText":"Select date"}}; var gf_legacy_multi = {"122":"1"}; var gform_gravityforms = {"strings":{"invalid_file_extension":"This type of file is not allowed. Must be one of the following:","delete_file":"Delete this file","in_progress":"in progress","file_exceeds_limit":"File exceeds size limit","illegal_extension":"This type of file is not allowed.","max_reached":"Maximum number of files reached","unknown_error":"There was a problem while saving the file on the server","currently_uploading":"Please wait for the uploading to complete","cancel":"Cancel","cancel_upload":"Cancel this upload","cancelled":"Cancelled"},"vars":{"images_url":"https:\/\/www.massdevice.com\/wp-content\/plugins\/gravityforms\/images"}}; /* ]]> */ </script> <script type="text/javascript" id="gform_gravityforms-js-before"> /* <![CDATA[ */ /* ]]> */ </script> <script type="text/javascript" defer='defer' src="https://www.massdevice.com/wp-content/plugins/gravityforms/js/gravityforms.min.js?ver=2.9.0" id="gform_gravityforms-js"></script> <script type="text/javascript" defer='defer' src="https://www.massdevice.com/wp-content/plugins/gravityforms/assets/js/dist/utils.min.js?ver=f802885f3482236736b18b55abcdc360" id="gform_gravityforms_utils-js"></script> <link rel="https://api.w.org/" href="https://www.massdevice.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.massdevice.com/wp-json/wp/v2/posts/102240" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.massdevice.com/xmlrpc.php?rsd" /> <link rel='shortlink' href='https://www.massdevice.com/?p=102240' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.massdevice.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.massdevice.com%2Fthe-future-of-robotic-assisted-surgery-in-orthopedics%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.massdevice.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.massdevice.com%2Fthe-future-of-robotic-assisted-surgery-in-orthopedics%2F&format=xml" /> <!-- www.massdevice.com=102240 --> <script> var contentHash = '616336fa23da93a0eb451d6d57e09a76'; var cat_target='616336fa23da93a0eb451d6d57e09a76, white-papers, ros'; </script> <!-- Google Tag Manager for Global Container--> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MMC9PJ9');</script> <!-- End Google Tag Manager --> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WNG82RC');</script> <!-- End Google Tag Manager --> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <script> window.googletag = window.googletag || {cmd: []}; googletag.cmd.push(function() { var pathParts = window.location.pathname.substr(1).split('/'); var mapHeader = googletag.sizeMapping() .addSize([768, 200], [728, 90]) .addSize([0, 0], [300, 250]) .build(); var mapLargeHeader = googletag.sizeMapping() .addSize([1024, 200], [[970, 90], [970, 250]]) .addSize([0, 0], [300, 250]) .build(); var mapWallpaper = googletag.sizeMapping() .addSize([1024, 500], [[1, 1]]) .addSize([0, 0], [[1, 1]]) .build(); var gptSlots = []; gptSlots[0] = googletag.defineSlot('/5272491/lifesci_network/md_header', [[300, 250], [728, 90]], 'div-gpt-md-header') .defineSizeMapping(mapHeader) .addService(googletag.pubads()); gptSlots[1] = googletag.defineSlot('/5272491/lifesci_network/md_largeleader', [[970, 90], [970, 250]], 'div-gpt-md_largeleader') .defineSizeMapping(mapLargeHeader) .addService(googletag.pubads()); gptSlots[2] = googletag.defineSlot('/5272491/lifesci_network/md_wallpaper', [[1, 1]], 'div-gpt-md_wallpaper') .defineSizeMapping(mapWallpaper) .addService(googletag.pubads()); googletag.defineSlot('/5272491/lifesci_network/mdo_allstreamflex', [[1, 1]], 'div-gpt-mdo_allstreamflex').addService(googletag.pubads()); googletag.defineSlot('/5272491/lifesci_network/mdo_allstreamprelude', [[1, 1]], 'div-gpt-mdo_allstreamprelude').addService(googletag.pubads()); googletag.defineSlot('/5272491/lifesci_network/md_sidebar1', [[300, 250], [300, 600]], 'div-gpt-md_sidebar1').addService(googletag.pubads()); googletag.defineSlot('/5272491/lifesci_network/md_sidebarbottom', [[300, 250], [300, 600]], 'div-gpt-md_sidebarbottom').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.pubads().collapseEmptyDivs(); googletag.pubads().setTargeting('articletitle', pathParts[0] ? pathParts[0]: 'home-page').setTargeting('cat_target', [cat_target]); googletag.enableServices(); }); </script> <style type="text/css"> /* Change footer from 6 to 3 */ .footer-widgets-1, .footer-widgets-2, .footer-widgets-3, .footer-widgets-4, .footer-widgets-5, .footer-widgets-6 { width: 330px; } /* END Change footer from 6 to 3 */ /** TOP NEWS **/ .topnews { width: 100%; background-color: #FF5500; padding: 10px; text-align: center; } .topnews a{ color: #FFFFFF; font-weight: normal; } .topnews a:hover{ color: #000000; } </style> <!-- Gravity forms CSS --> <link rel="stylesheet" type="text/css" href="https://dwo-resources.s3.amazonaws.com/css/gforms.css"> <meta name="google-site-verification" content="3L7z8HME5RuF4m9HDRNebfZxyJWuiEr5kr1xNv5U-Ng" /> <script src="https://apis.google.com/js/platform.js" async defer></script> <style type="text/css">.site-title a { background: url(https://www.massdevice.com/wp-content/uploads/2023/11/cropped-massdevice-header-2023.png) no-repeat !important; }</style> <link rel="icon" href="https://www.massdevice.com/wp-content/uploads/2023/11/cropped-favicon-2023-32x32.png" sizes="32x32" /> <link rel="icon" href="https://www.massdevice.com/wp-content/uploads/2023/11/cropped-favicon-2023-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://www.massdevice.com/wp-content/uploads/2023/11/cropped-favicon-2023-180x180.png" /> <meta name="msapplication-TileImage" content="https://www.massdevice.com/wp-content/uploads/2023/11/cropped-favicon-2023-270x270.png" /> <style type="text/css" id="wp-custom-css"> /*** MOBILE SLIDER TITLE ***/ @media only screen and (max-width: 600px) { .slide-excerpt { display: block !important; } } @media only screen and (max-width: 600px) { h2 { font-size: 18px; } } .wtwhSpecial { display: none !important; } /**MD100 Chart fixes**/ #md-chart-container > canvas { width: 125px !important; } #md-current-price { font-size: 38px !important; } .md-margin-text { margin: 5px 5px; } .md-align > .md-margin-text { padding-top: 20px; } #md-chart-container { height: auto !important; width: auto !important; } .md-table { margin-bottom: 0px !important; } @media only screen and (max-width: 500px) { #md-tech-ad { width: 250px !important; } } /*Font size adjustment for post titles*/ .type-post.entry h2 { font-size: 20px; } .type-post.entry h3 { font-size: 20px; } .type-post.entry h1 { font-size: 24px; margin-bottom: 10px !important; } /* Search Page */ body.search .site-inner { padding-left: unset; padding-right: unset; } </style> </head> <body class="post-template-default single single-post postid-102240 single-format-standard custom-header header-image content-sidebar genesis-breadcrumbs-visible genesis-footer-widgets-visible news-pro-orange"> <!-- xyzzy top --> <div id="prestitial" style="opacity: 0;"> <div id="prestitial-overlay"></div> <div id="prestitial-grid"> <div class="prestitial-logo"> <div class="title-area"> <h1 class="site-title"> <a href="#"><img src="https://www.massdevice.com/wp-content/uploads/2020/01/massdevice-2020.png"></a></h1> </div> </div> <div class="close-cta"> Continue to Site <i class="fa fa-arrow-right"></i> </div> <div id="prestitial-banner"></div> </div> </div> <!-- hides rest of content --> <div id="body-wrapper" style="opacity: 0;"> <div class="site-container"><ul class="genesis-skip-link"><li><a href="#genesis-nav-primary" class="screen-reader-shortcut"> Skip to primary navigation</a></li><li><a href="#genesis-content" class="screen-reader-shortcut"> Skip to main content</a></li><li><a href="#genesis-sidebar-primary" class="screen-reader-shortcut"> Skip to primary sidebar</a></li><li><a href="#genesis-footer-widgets" class="screen-reader-shortcut"> Skip to footer</a></li></ul><div class="site-container-wrap"><header class="site-header"><div class="wrap"><div class="title-area"><p class="site-title"><a href="https://www.massdevice.com/">MassDevice</a></p><p class="site-description">The Medical Device Business Journal — Medical Device News & Articles | MassDevice</p></div><div class="widget-area header-widget-area"><section id="text-2" class="widget widget_text"><div class="widget-wrap"> <div class="textwidget"><div id='div-gpt-md-header'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-md-header'); }); </script> </div></div> </div></section> </div></div></header><nav class="nav-primary" aria-label="Main" id="genesis-nav-primary"><div class="wrap"><ul id="menu-primary-navigation" class="menu genesis-nav-menu menu-primary js-superfish"><li id="menu-item-101383" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-101383"><a href="https://www.massdevice.com/massdevice-article-archive/"><span >Latest News</span></a></li> <li id="menu-item-97286" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-97286"><a><span >Technologies</span></a> <ul class="sub-menu"> <li id="menu-item-101586" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-101586"><a href="https://www.massdevice.com/category/artificial-intelligence-ai/"><span >Artificial Intelligence (AI)</span></a></li> <li id="menu-item-33566" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33566"><a href="https://www.massdevice.com/category/cardiovascular/"><span >Cardiovascular</span></a></li> <li id="menu-item-33568" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33568"><a href="https://www.massdevice.com/category/orthopedics/"><span >Orthopedics</span></a></li> <li id="menu-item-97320" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97320"><a href="https://www.massdevice.com/category/neurological/"><span >Neurological</span></a></li> <li id="menu-item-101587" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-101587"><a href="https://www.massdevice.com/category/diabetes-etc/"><span >Diabetes</span></a></li> <li id="menu-item-97289" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97289"><a href="https://www.massdevice.com/category/robotics/"><span >Surgical Robotics</span></a></li> </ul> </li> <li id="menu-item-97294" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-97294"><a href="https://www.massdevice.com/category/business_financial_news/"><span >Business & Finance</span></a> <ul class="sub-menu"> <li id="menu-item-33569" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33569"><a href="https://www.massdevice.com/category/business_financial_news/wall_street_beat/"><span >Wall Street Beat</span></a></li> <li id="menu-item-97295" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97295"><a href="https://www.massdevice.com/category/business_financial_news/massdevice_com_earnings_roundup/"><span >Earnings Reports</span></a></li> <li id="menu-item-33570" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33570"><a href="https://www.massdevice.com/category/business_financial_news/funding_roundup/"><span >Funding Roundup</span></a></li> <li id="menu-item-33571" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33571"><a href="https://www.massdevice.com/category/business_financial_news/mergers_acquisitions/"><span >Mergers & Acquisitions</span></a></li> <li id="menu-item-97298" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97298"><a href="https://www.massdevice.com/category/business_financial_news/funding_roundup/initial_public_offering_ipo/"><span >Initial Public Offering (IPO)</span></a></li> <li id="menu-item-97299" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97299"><a href="https://www.massdevice.com/category/legal_news/"><span >Legal News</span></a></li> <li id="menu-item-97322" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-97322"><a href="https://www.massdevice.com/tag/personnel-moves/"><span >Personnel Moves</span></a></li> <li id="menu-item-97383" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-97383"><a href="https://medtech100.com/"><span >Medtech 100 Stock Index</span></a></li> </ul> </li> <li id="menu-item-97300" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-97300"><a href="https://www.massdevice.com/category/regulatory_compliance/"><span >Regulatory & Compliance</span></a> <ul class="sub-menu"> <li id="menu-item-97301" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97301"><a href="https://www.massdevice.com/category/regulatory_compliance/food_drug_administration_fda/"><span >Food & Drug Administration (FDA)</span></a></li> <li id="menu-item-97302" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97302"><a href="https://www.massdevice.com/category/regulatory_compliance/recalls/"><span >Recalls</span></a></li> <li id="menu-item-97303" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97303"><a href="https://www.massdevice.com/category/regulatory_compliance/food_drug_administration_fda/510_k/"><span >510(k)</span></a></li> <li id="menu-item-97304" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97304"><a href="https://www.massdevice.com/category/regulatory_compliance/food_drug_administration_fda/pre_market_approval/"><span >Pre-Market Approval (PMA)</span></a></li> <li id="menu-item-97305" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97305"><a href="https://www.massdevice.com/category/regulatory_compliance/medical-device-single-audit-program/"><span >MDSAP</span></a></li> <li id="menu-item-97306" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-97306"><a href="https://www.massdevice.com/category/clinical-trials/"><span >Clinical Trials</span></a></li> </ul> </li> <li id="menu-item-101593" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-101593"><a href="#"><span >Special Content</span></a> <ul class="sub-menu"> <li id="menu-item-101595" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-101595"><a href="https://www.massdevice.com/category/specialcontent/indepth-coverage/"><span >In-Depth Coverage</span></a></li> <li id="menu-item-101594" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-101594"><a href="https://www.massdevice.com/category/specialcontent/devicetalks-qa/"><span >DeviceTalks Q&A</span></a></li> </ul> </li> <li id="menu-item-80192" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-80192"><a target="_blank"><span >Podcasts</span></a> <ul class="sub-menu"> <li id="menu-item-97754" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-97754"><a href="https://www.massdevice.com/category/massdevice-podcast/"><span >MassDevice Fast Five</span></a></li> <li id="menu-item-85153" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-85153"><a target="_blank" href="https://www.devicetalks.com/podcast/"><span >DeviceTalks Weekly</span></a></li> <li id="menu-item-97769" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-97769"><a><span >OEM Talks</span></a> <ul class="sub-menu"> <li id="menu-item-98859" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-98859"><a target="_blank" href="https://www.devicetalks.com/abbotttalks/"><span >AbbottTalks</span></a></li> <li id="menu-item-97768" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-97768"><a target="_blank" href="https://www.devicetalks.com/bostonscientifictalks/"><span >Boston ScientificTalks</span></a></li> <li id="menu-item-104656" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-104656"><a target="_blank" href="https://www.devicetalks.com/ai/"><span >DeviceTalks AI</span></a></li> <li id="menu-item-97309" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-97309"><a target="_blank" href="https://www.devicetalks.com/intuitivetalks/"><span >IntuitiveTalks</span></a></li> <li id="menu-item-104657" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-104657"><a target="_blank" href="https://www.devicetalks.com/medtech-women-talks/"><span >MedtechWOMEN Talks</span></a></li> <li id="menu-item-97308" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-97308"><a target="_blank" href="https://www.devicetalks.com/medtronictalks/"><span >MedtronicTalks</span></a></li> <li id="menu-item-104659" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-104659"><a target="_blank" href="https://www.devicetalks.com/neuro-innovation-talks"><span >Neuro Innovation Talks</span></a></li> <li id="menu-item-104658" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-104658"><a target="_blank" href="https://www.devicetalks.com/ortho-innovation-talks/"><span >Ortho Innovation Talks</span></a></li> <li id="menu-item-104660" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-104660"><a target="_blank" href="https://www.devicetalks.com/structural-heart-talks/"><span >Structural Heart Talks</span></a></li> <li id="menu-item-97310" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-97310"><a target="_blank" href="https://www.devicetalks.com/strykertalks/"><span >StrykerTalks</span></a></li> </ul> </li> </ul> </li> <li id="menu-item-33584" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-33584"><a><span >Resources</span></a> <ul class="sub-menu"> <li id="menu-item-33575" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33575"><a href="https://www.massdevice.com/about-us/"><span >About MassDevice</span></a></li> <li id="menu-item-97312" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-97312"><a href="https://www.devicetalks.com/"><span >DeviceTalks</span></a></li> <li id="menu-item-68832" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-68832"><a href="https://www.massdevice.com/massdevice-enewsletter-signup/"><span >Newsletter Signup</span></a></li> <li id="menu-item-48183" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-48183"><a href="https://leadership.medicaldesignandoutsourcing.com/"><span >Leadership in Medtech</span></a></li> <li id="menu-item-56507" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-56507"><a target="_blank" href="https://www.medicaldesignsourcing.com"><span >Manufacturers & Suppliers Search</span></a></li> <li id="menu-item-80372" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-80372"><a href="https://medtech100.com"><span >MedTech100 Index</span></a></li> <li id="menu-item-74302" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-74302"><a href="https://www.massdevice.com/videos/"><span >Videos</span></a></li> <li id="menu-item-85154" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-85154"><a target="_blank" href="https://gateway.on24.com/wcc/experience/elitewtwhmedia/2927718/4415899/medical-design-outsourcing"><span >Webinars</span></a></li> <li id="menu-item-48912" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-48912"><a href="https://www.massdevice.com/category/white-papers/"><span >Whitepapers</span></a></li> </ul> </li> </ul></div></nav><div style="padding-top:10px;text-align:center"><div id='div-gpt-md_largeleader'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-md_largeleader'); }); </script> </div></div><div class="site-inner"><div class="content-sidebar-wrap"><main class="content" id="genesis-content"><div class="breadcrumb"><span><span><a href="https://www.massdevice.com/">Home</a></span> » <span class="breadcrumb_last" aria-current="page"><strong>The Future of Robotic-Assisted Surgery in Orthopedics</strong></span></span></div><article class="post-102240 post type-post status-publish format-standard has-post-thumbnail category-white-papers entry" aria-label="The Future of Robotic-Assisted Surgery in Orthopedics"><header class="entry-header"><h1 class="entry-title">The Future of Robotic-Assisted Surgery in Orthopedics</h1> <p class="entry-meta"><time class="entry-time">March 1, 2024</time> By <span class="entry-author"><a href="https://www.massdevice.com/author/dmiyares-2/" class="entry-author-link" rel="author"><span class="entry-author-name">MassDevice</span></a></span> </p></header><div class="entry-content"><div class="addtoany_share_save_container addtoany_content addtoany_content_top"><div class="a2a_kit a2a_kit_size_16 addtoany_list" data-a2a-url="https://www.massdevice.com/the-future-of-robotic-assisted-surgery-in-orthopedics/" data-a2a-title="The Future of Robotic-Assisted Surgery in Orthopedics"><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.massdevice.com%2Fthe-future-of-robotic-assisted-surgery-in-orthopedics%2F&linkname=The%20Future%20of%20Robotic-Assisted%20Surgery%20in%20Orthopedics" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Fwww.massdevice.com%2Fthe-future-of-robotic-assisted-surgery-in-orthopedics%2F&linkname=The%20Future%20of%20Robotic-Assisted%20Surgery%20in%20Orthopedics" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fwww.massdevice.com%2Fthe-future-of-robotic-assisted-surgery-in-orthopedics%2F&linkname=The%20Future%20of%20Robotic-Assisted%20Surgery%20in%20Orthopedics" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share"></a></div></div><p><img decoding="async" src="https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia_Robotic-Assisted_Surgery_cover-250x300.jpg" alt="" width="250" height="300" class="alignright size-medium wp-image-102241" srcset="https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia_Robotic-Assisted_Surgery_cover-250x300.jpg 250w, https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia_Robotic-Assisted_Surgery_cover-125x150.jpg 125w, https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia_Robotic-Assisted_Surgery_cover.jpg 300w" sizes="(max-width: 250px) 100vw, 250px" />No doubt, manufacturers of large surgical robotic systems have dominated the first era of robotic surgery. In orthopedics such systems have been acquired by the dominant implant companies and have been used to obtain long term implant performance.</p> <p>But the next era of surgical robotics—both in hard tissue and soft tissue robotics—could open a path for companies creating smaller surgical robotic tools that require less space than predecessor systems.</p> <p>One such example of a next-generation—or this generation— robotic surgical tool is the TMINI™ Miniature Robotic System, developed by THINK Surgical, in collaboration with Sagentia Innovation. The TMINI system, which received FDA clearance in 2023, addresses key barriers that had limited adoption of robotics in orthopedics.</p> <p>Download the white paper from Sagentia Innovation to learn more.</p> <p><img decoding="async" src="https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia-Innovation-logo.jpg" alt="" width="300" height="92" class="alignleft size-full wp-image-102242" srcset="https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia-Innovation-logo.jpg 300w, https://www.massdevice.com/wp-content/uploads/2024/03/Sagentia-Innovation-logo-150x46.jpg 150w" sizes="(max-width: 300px) 100vw, 300px" /><br /> <div class='gf_browser_chrome gform_wrapper gform_legacy_markup_wrapper gform-theme--no-framework' data-form-theme='legacy' data-form-index='0' id='gform_wrapper_122' ><form method='post' enctype='multipart/form-data' id='gform_122' action='/the-future-of-robotic-assisted-surgery-in-orthopedics/' data-formid='122' novalidate> <div class='gform-body gform_body'><ul id='gform_fields_122' class='gform_fields top_label form_sublabel_below description_below validation_below'><li id="field_122_7" class="gfield gfield--type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_122_7" ><div class='ginput_container ginput_container_text'><input name='input_7' id='input_122_7' type='hidden' class='gform_hidden' aria-invalid="false" value='443630000013592001' /></div></li><li id="field_122_1" class="gfield gfield--type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_122_1" ><label class='gfield_label gform-field-label' for='input_122_1'>Email<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_122_1' type='email' value='' class='large' aria-required="true" aria-invalid="false" /> </div></li><li id="field_122_2" class="gfield gfield--type-name gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_122_2" ><label class='gfield_label gform-field-label gfield_label_before_complex' >Name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_122_2'> <span id='input_122_2_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' > <input type='text' name='input_2.3' id='input_122_2_3' value='' aria-required='true' /> <label for='input_122_2_3' class='gform-field-label gform-field-label--type-sub '>First</label> </span> <span id='input_122_2_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' > <input type='text' name='input_2.6' id='input_122_2_6' value='' aria-required='true' /> <label for='input_122_2_6' class='gform-field-label gform-field-label--type-sub '>Last</label> </span> </div></li><li id="field_122_3" class="gfield gfield--type-text gf_left_half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_122_3" ><label class='gfield_label gform-field-label' for='input_122_3'>Company<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_122_3' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id="field_122_4" class="gfield gfield--type-text gf_right_half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_122_4" ><label class='gfield_label gform-field-label' for='input_122_4'>Job Title<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_4' id='input_122_4' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id="field_122_11" class="gfield gfield--type-select gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_122_11" ><label class='gfield_label gform-field-label' for='input_122_11'>State<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_select'><select name='input_11' id='input_122_11' class='medium gfield_select' aria-required="true" aria-invalid="false" ><option value='Alabama' >Alabama</option><option value='Alaska' >Alaska</option><option value='Arizona' >Arizona</option><option value='Arkansas' >Arkansas</option><option value='California' >California</option><option value='Colorado' >Colorado</option><option value='Connecticut' >Connecticut</option><option value='Delaware' >Delaware</option><option value='District of Columbia' >District of Columbia</option><option value='Florida' >Florida</option><option value='Georgia' >Georgia</option><option value='Hawaii' >Hawaii</option><option value='Idaho' >Idaho</option><option value='Illinois' >Illinois</option><option value='Indiana' >Indiana</option><option value='Iowa' >Iowa</option><option value='Kansas' >Kansas</option><option value='Kentucky' >Kentucky</option><option value='Louisiana' >Louisiana</option><option value='Maine' >Maine</option><option value='Maryland' >Maryland</option><option value='Massachusetts' >Massachusetts</option><option value='Michigan' >Michigan</option><option value='Minnesota' >Minnesota</option><option value='Mississippi' >Mississippi</option><option value='Missouri' >Missouri</option><option value='Montana' >Montana</option><option value='Nebraska' >Nebraska</option><option value='Nevada' >Nevada</option><option value='New Hampshire' >New Hampshire</option><option value='New Jersey' >New Jersey</option><option value='New Mexico' >New Mexico</option><option value='New York' >New York</option><option value='North Carolina' >North Carolina</option><option value='North Dakota' >North Dakota</option><option value='Ohio' >Ohio</option><option value='Oklahoma' >Oklahoma</option><option value='Oregon' >Oregon</option><option value='Pennsylvania' >Pennsylvania</option><option value='Rhode Island' >Rhode Island</option><option value='South Carolina' >South Carolina</option><option value='South Dakota' >South Dakota</option><option value='Tennessee' >Tennessee</option><option value='Texas' >Texas</option><option value='Utah' >Utah</option><option value='Vermont' >Vermont</option><option value='Virginia' >Virginia</option><option value='Washington' >Washington</option><option value='West Virginia' >West Virginia</option><option value='Wisconsin' >Wisconsin</option><option value='Wyoming' >Wyoming</option><option value='Armed Forces Americas' >Armed Forces Americas</option><option value='Armed Forces Europe' >Armed Forces Europe</option><option value='Armed Forces Pacific' >Armed Forces Pacific</option></select></div></li><li id="field_122_13" class="gfield gfield--type-address field_sublabel_below gfield--no-description field_description_above field_validation_below gfield_visibility_visible" data-js-reload="field_122_13" ><label class='gfield_label gform-field-label gfield_label_before_complex' >Country</label> <div class='ginput_complex ginput_container has_country ginput_container_address gform-grid-row' id='input_122_13' > <input type='hidden' class='gform_hidden' name='input_13.4' id='input_122_13_4' value=''/><span class='ginput_left address_country ginput_address_country gform-grid-col' id='input_122_13_6_container' > <select name='input_13.6' id='input_122_13_6' aria-required='false' ><option value='' ></option><option value='Afghanistan' >Afghanistan</option><option value='Albania' >Albania</option><option value='Algeria' >Algeria</option><option value='American Samoa' >American Samoa</option><option value='Andorra' >Andorra</option><option value='Angola' >Angola</option><option value='Anguilla' >Anguilla</option><option value='Antarctica' >Antarctica</option><option value='Antigua and Barbuda' >Antigua and Barbuda</option><option value='Argentina' >Argentina</option><option value='Armenia' >Armenia</option><option value='Aruba' >Aruba</option><option value='Australia' >Australia</option><option value='Austria' >Austria</option><option value='Azerbaijan' >Azerbaijan</option><option value='Bahamas' >Bahamas</option><option value='Bahrain' >Bahrain</option><option value='Bangladesh' >Bangladesh</option><option value='Barbados' >Barbados</option><option value='Belarus' >Belarus</option><option value='Belgium' >Belgium</option><option value='Belize' >Belize</option><option value='Benin' >Benin</option><option value='Bermuda' >Bermuda</option><option value='Bhutan' >Bhutan</option><option value='Bolivia' >Bolivia</option><option value='Bonaire, Sint Eustatius and Saba' >Bonaire, Sint Eustatius and Saba</option><option value='Bosnia and Herzegovina' >Bosnia and Herzegovina</option><option value='Botswana' >Botswana</option><option value='Bouvet Island' >Bouvet Island</option><option value='Brazil' >Brazil</option><option value='British Indian Ocean Territory' >British Indian Ocean Territory</option><option value='Brunei Darussalam' >Brunei Darussalam</option><option value='Bulgaria' >Bulgaria</option><option value='Burkina Faso' >Burkina Faso</option><option value='Burundi' >Burundi</option><option value='Cabo Verde' >Cabo Verde</option><option value='Cambodia' >Cambodia</option><option value='Cameroon' >Cameroon</option><option value='Canada' >Canada</option><option value='Cayman Islands' >Cayman Islands</option><option value='Central African Republic' >Central African Republic</option><option value='Chad' >Chad</option><option value='Chile' >Chile</option><option value='China' >China</option><option value='Christmas Island' >Christmas Island</option><option value='Cocos Islands' >Cocos Islands</option><option value='Colombia' >Colombia</option><option value='Comoros' >Comoros</option><option value='Congo' >Congo</option><option value='Congo, Democratic Republic of the' >Congo, Democratic Republic of the</option><option value='Cook Islands' >Cook Islands</option><option value='Costa Rica' >Costa Rica</option><option value='Croatia' >Croatia</option><option value='Cuba' >Cuba</option><option value='Curaçao' >Curaçao</option><option value='Cyprus' >Cyprus</option><option value='Czechia' >Czechia</option><option value='Côte d'Ivoire' >Côte d'Ivoire</option><option value='Denmark' >Denmark</option><option value='Djibouti' >Djibouti</option><option value='Dominica' >Dominica</option><option value='Dominican Republic' >Dominican Republic</option><option value='Ecuador' >Ecuador</option><option value='Egypt' >Egypt</option><option value='El Salvador' >El Salvador</option><option value='Equatorial Guinea' >Equatorial Guinea</option><option value='Eritrea' >Eritrea</option><option value='Estonia' >Estonia</option><option value='Eswatini' >Eswatini</option><option value='Ethiopia' >Ethiopia</option><option value='Falkland Islands' >Falkland Islands</option><option value='Faroe Islands' >Faroe Islands</option><option value='Fiji' >Fiji</option><option value='Finland' >Finland</option><option value='France' >France</option><option value='French Guiana' >French Guiana</option><option value='French Polynesia' >French Polynesia</option><option value='French Southern Territories' >French Southern Territories</option><option value='Gabon' >Gabon</option><option value='Gambia' >Gambia</option><option value='Georgia' >Georgia</option><option value='Germany' >Germany</option><option value='Ghana' >Ghana</option><option value='Gibraltar' >Gibraltar</option><option value='Greece' >Greece</option><option value='Greenland' >Greenland</option><option value='Grenada' >Grenada</option><option value='Guadeloupe' >Guadeloupe</option><option value='Guam' >Guam</option><option value='Guatemala' >Guatemala</option><option value='Guernsey' >Guernsey</option><option value='Guinea' >Guinea</option><option value='Guinea-Bissau' >Guinea-Bissau</option><option value='Guyana' >Guyana</option><option value='Haiti' >Haiti</option><option value='Heard Island and McDonald Islands' >Heard Island and McDonald Islands</option><option value='Holy See' >Holy See</option><option value='Honduras' >Honduras</option><option value='Hong Kong' >Hong Kong</option><option value='Hungary' >Hungary</option><option value='Iceland' >Iceland</option><option value='India' >India</option><option value='Indonesia' >Indonesia</option><option value='Iran' >Iran</option><option value='Iraq' >Iraq</option><option value='Ireland' >Ireland</option><option value='Isle of Man' >Isle of Man</option><option value='Israel' >Israel</option><option value='Italy' >Italy</option><option value='Jamaica' >Jamaica</option><option value='Japan' >Japan</option><option value='Jersey' >Jersey</option><option value='Jordan' >Jordan</option><option value='Kazakhstan' >Kazakhstan</option><option value='Kenya' >Kenya</option><option value='Kiribati' >Kiribati</option><option value='Korea, Democratic People's Republic of' >Korea, Democratic People's Republic of</option><option value='Korea, Republic of' >Korea, Republic of</option><option value='Kuwait' >Kuwait</option><option value='Kyrgyzstan' >Kyrgyzstan</option><option value='Lao People's Democratic Republic' >Lao People's Democratic Republic</option><option value='Latvia' >Latvia</option><option value='Lebanon' >Lebanon</option><option value='Lesotho' >Lesotho</option><option value='Liberia' >Liberia</option><option value='Libya' >Libya</option><option value='Liechtenstein' >Liechtenstein</option><option value='Lithuania' >Lithuania</option><option value='Luxembourg' >Luxembourg</option><option value='Macao' >Macao</option><option value='Madagascar' >Madagascar</option><option value='Malawi' >Malawi</option><option value='Malaysia' >Malaysia</option><option value='Maldives' >Maldives</option><option value='Mali' >Mali</option><option value='Malta' >Malta</option><option value='Marshall Islands' >Marshall Islands</option><option value='Martinique' >Martinique</option><option value='Mauritania' >Mauritania</option><option value='Mauritius' >Mauritius</option><option value='Mayotte' >Mayotte</option><option value='Mexico' >Mexico</option><option value='Micronesia' >Micronesia</option><option value='Moldova' >Moldova</option><option value='Monaco' >Monaco</option><option value='Mongolia' >Mongolia</option><option value='Montenegro' >Montenegro</option><option value='Montserrat' >Montserrat</option><option value='Morocco' >Morocco</option><option value='Mozambique' >Mozambique</option><option value='Myanmar' >Myanmar</option><option value='Namibia' >Namibia</option><option value='Nauru' >Nauru</option><option value='Nepal' >Nepal</option><option value='Netherlands' >Netherlands</option><option value='New Caledonia' >New Caledonia</option><option value='New Zealand' >New Zealand</option><option value='Nicaragua' >Nicaragua</option><option value='Niger' >Niger</option><option value='Nigeria' >Nigeria</option><option value='Niue' >Niue</option><option value='Norfolk Island' >Norfolk Island</option><option value='North Macedonia' >North Macedonia</option><option value='Northern Mariana Islands' >Northern Mariana Islands</option><option value='Norway' >Norway</option><option value='Oman' >Oman</option><option value='Pakistan' >Pakistan</option><option value='Palau' >Palau</option><option value='Palestine, State of' >Palestine, State of</option><option value='Panama' >Panama</option><option value='Papua New Guinea' >Papua New Guinea</option><option value='Paraguay' >Paraguay</option><option value='Peru' >Peru</option><option value='Philippines' >Philippines</option><option value='Pitcairn' >Pitcairn</option><option value='Poland' >Poland</option><option value='Portugal' >Portugal</option><option value='Puerto Rico' >Puerto Rico</option><option value='Qatar' >Qatar</option><option value='Romania' >Romania</option><option value='Russian Federation' >Russian Federation</option><option value='Rwanda' >Rwanda</option><option value='Réunion' >Réunion</option><option value='Saint Barthélemy' >Saint Barthélemy</option><option value='Saint Helena, Ascension and Tristan da Cunha' >Saint Helena, Ascension and Tristan da Cunha</option><option value='Saint Kitts and Nevis' >Saint Kitts and Nevis</option><option value='Saint Lucia' >Saint Lucia</option><option value='Saint Martin' >Saint Martin</option><option value='Saint Pierre and Miquelon' >Saint Pierre and Miquelon</option><option value='Saint Vincent and the Grenadines' >Saint Vincent and the Grenadines</option><option value='Samoa' >Samoa</option><option value='San Marino' >San Marino</option><option value='Sao Tome and Principe' >Sao Tome and Principe</option><option value='Saudi Arabia' >Saudi Arabia</option><option value='Senegal' >Senegal</option><option value='Serbia' >Serbia</option><option value='Seychelles' >Seychelles</option><option value='Sierra Leone' >Sierra Leone</option><option value='Singapore' >Singapore</option><option value='Sint Maarten' >Sint Maarten</option><option value='Slovakia' >Slovakia</option><option value='Slovenia' >Slovenia</option><option value='Solomon Islands' >Solomon Islands</option><option value='Somalia' >Somalia</option><option value='South Africa' >South Africa</option><option value='South Georgia and the South Sandwich Islands' >South Georgia and the South Sandwich Islands</option><option value='South Sudan' >South Sudan</option><option value='Spain' >Spain</option><option value='Sri Lanka' >Sri Lanka</option><option value='Sudan' >Sudan</option><option value='Suriname' >Suriname</option><option value='Svalbard and Jan Mayen' >Svalbard and Jan Mayen</option><option value='Sweden' >Sweden</option><option value='Switzerland' >Switzerland</option><option value='Syria Arab Republic' >Syria Arab Republic</option><option value='Taiwan' >Taiwan</option><option value='Tajikistan' >Tajikistan</option><option value='Tanzania, the United Republic of' >Tanzania, the United Republic of</option><option value='Thailand' >Thailand</option><option value='Timor-Leste' >Timor-Leste</option><option value='Togo' >Togo</option><option value='Tokelau' >Tokelau</option><option value='Tonga' >Tonga</option><option value='Trinidad and Tobago' >Trinidad and Tobago</option><option value='Tunisia' >Tunisia</option><option value='Turkmenistan' >Turkmenistan</option><option value='Turks and Caicos Islands' >Turks and Caicos Islands</option><option value='Tuvalu' >Tuvalu</option><option value='Türkiye' >Türkiye</option><option value='US Minor Outlying Islands' >US Minor Outlying Islands</option><option value='Uganda' >Uganda</option><option value='Ukraine' >Ukraine</option><option value='United Arab Emirates' >United Arab Emirates</option><option value='United Kingdom' >United Kingdom</option><option value='United States' selected='selected'>United States</option><option value='Uruguay' >Uruguay</option><option value='Uzbekistan' >Uzbekistan</option><option value='Vanuatu' >Vanuatu</option><option value='Venezuela' >Venezuela</option><option value='Viet Nam' >Viet Nam</option><option value='Virgin Islands, British' >Virgin Islands, British</option><option value='Virgin Islands, U.S.' >Virgin Islands, U.S.</option><option value='Wallis and Futuna' >Wallis and Futuna</option><option value='Western Sahara' >Western Sahara</option><option value='Yemen' >Yemen</option><option value='Zambia' >Zambia</option><option value='Zimbabwe' >Zimbabwe</option><option value='Åland Islands' >Åland Islands</option></select> <label for='input_122_13_6' id='input_122_13_6_label' class='gform-field-label gform-field-label--type-sub '>Country</label> </span> <div class='gf_clear gf_clear_complex'></div> </div></li><li id="field_122_8" class="gfield gfield--type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_122_8" ><div class='ginput_container ginput_container_text'><input name='input_8' id='input_122_8' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_122_9" class="gfield gfield--type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_122_9" ><div class='ginput_container ginput_container_text'><input name='input_9' id='input_122_9' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_122_14" class="gfield gfield--type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_122_14" ><div class='ginput_container ginput_container_text'><input name='input_14' id='input_122_14' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li></ul></div> <div class='gform-footer gform_footer top_label'> <input type='submit' id='gform_submit_button_122' class='gform_button button' onclick='gform.submission.handleButtonClick(this)' value='Get PDF' /> <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_122' value='postback' /> <input type='hidden' class='gform_hidden' name='is_submit_122' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='122' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_122' value='WyJbXSIsImFmNTczNzAyOTI1M2M3OTljYzBkZTViYzZjOTlmNTEzIl0=' /> <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_122' id='gform_target_page_number_122' value='0' /> <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_122' id='gform_source_page_number_122' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="116"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div><script type="text/javascript"> /* <![CDATA[ */ gform.initializeOnLoaded( function() {gformInitSpinner( 122, 'https://www.massdevice.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery('#gform_ajax_frame_122').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_122');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_122').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_122').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_122').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_122').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_122').val();gformInitSpinner( 122, 'https://www.massdevice.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [122, current_page]);window['gf_submitting_122'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_122').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [122]);window['gf_submitting_122'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_122').text());}else{jQuery('#gform_122').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "122", currentPage: "current_page", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_122" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_122"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_122" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; jQuery( document ).trigger( 'gform_post_render', [122, current_page] ); gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId: 122, currentPage: current_page } } ); gform.utils.trigger( { event: 'gform/post_render', native: false, data: { formId: 122, currentPage: current_page } } ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } );} ); /* ]]> */ </script> </div><footer class="entry-footer"><p class="entry-meta"><span class="entry-categories">Filed Under: <a href="https://www.massdevice.com/category/white-papers/" rel="category tag">Whitepapers</a></span> </p></footer></article><div class="after-entry widget-area"> <section id="recent-posts-4" class="widget widget_recent_entries"><div class="widget-wrap"> <h3 class="widgettitle widget-title">More recent news</h3> <ul> <li> <a href="https://www.massdevice.com/medline-president-coo-pigott-retiring/">Medline president and COO is retiring</a> </li> <li> <a href="https://www.massdevice.com/ge-healthcare-new-applications-mobile-c-arm/">GE HealthCare unveils new applications for mobile C-arm portfolio</a> </li> <li> <a href="https://www.massdevice.com/philips-fda-nod-remote-imaging-capabilities/">Philips picks up FDA nod for remote imaging capabilities</a> </li> <li> <a href="https://www.massdevice.com/bioretec-distro-deal-orthopedic-implants-us/">Bioretec signs new distro deal for biodegradable orthopedic implants in the U.S.</a> </li> <li> <a href="https://www.massdevice.com/align-technology-ce-mark-invisalign-palatal-expander/">Align Technology wins CE mark for Invisalign palatal expander</a> </li> </ul> </div></section> </div></main><aside class="sidebar sidebar-primary widget-area" role="complementary" aria-label="Primary Sidebar" id="genesis-sidebar-primary"><h2 class="genesis-sidebar-title screen-reader-text">Primary Sidebar</h2><section id="search-3" class="extendedwopts-hide extendedwopts-tablet extendedwopts-mobile widget widget_search"><div class="extendedwopts-hide extendedwopts-tablet extendedwopts-mobile widget-wrap"><form class="search-form" method="get" action="https://www.massdevice.com/" role="search"><label class="search-form-label screen-reader-text" for="searchform-1">Search this website</label><input class="search-form-input" type="search" name="s" id="searchform-1" placeholder="Search this website"><input class="search-form-submit" type="submit" value="Search"><meta content="https://www.massdevice.com/?s={s}"></form></div></section> <section id="custom_html-13" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><center> <div style="display: flex; flex-direction: column; justify-content: center; width: 300px;"> <div align="center"><a href="https://www.massdevice.com/massdevice-enewsletter-signup/" target="_blank"><img src="https://www.massdevice.com/wp-content/uploads/2023/12/MassDevice-300x100-1.jpg" alt=“md newsletter”></a></div> <div align="center" style="width: 300px; line-height: 20px; padding-top: 10px;"><span style="font-weight: bold; color: #0c506d; text-align: center; font-size: 20px;">EXPAND YOUR KNOWLEDGE AND STAY CONNECTED</span></div> <div align="center" style="line-height: 16px; padding-top: 5px;"><span style="text-align: center; font-size: 16px;">Get the latest med device regulatory, business and technology news.</span></div> <div align="center" style="padding-top: 10px;"><a href="https://www.massdevice.com/massdevice-enewsletter-signup/" target="_blank"><button style="background-color: #eb8b23; color: white; font-weight: bold; border: none; padding: 10px; font-size: 16px; cursor: pointer;">GET THE ENEWSLETTER</button></a></div> </div> </center></div></div></section> <section id="custom_html-3" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><center> <div id='div-gpt-md_sidebar1'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-md_sidebar1'); }); </script> </div> </center></div></div></section> <section id="wtwh_soundcloud_widget-2" class="widget wtwh_soundcloud_widget"><div class="widget-wrap"><h3 class="widgettitle widget-title">DeviceTalks Weekly</h3> <div class="wtwh-soundcloud-player-wrapper"><div class="wtwh-soundcloud-player"><div><iframe width="100%" height="300" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/1962046411&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe><div class="SoundCloudPubDate">November 17, 2024</div><div class="SoundCloudTitle">Edwards' Larry Wood discusses TAVR evolution, new clinical paradigms, and addressing treatment gaps</div></div> <a href="https://www.devicetalks.com/podcast/" class="SoundCloudTitle SoundCloudPubDate" target="_blank">See More ></a></div></div></div></section> <section id="custom_html-5" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h3 class="widgettitle widget-title">MEDTECH 100 Stock INDEX</h3> <div class="textwidget custom-html-widget"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> <script type="text/javascript"> /* <![CDATA[ */ var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),document.addEventListener("gform/theme/scripts_loaded",function(){gform.themeScriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>"function"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn("The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1."),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener("gform_main_scripts_loaded",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener("gform/theme/scripts_loaded",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener("DOMContentLoaded",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook("action",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook("filter",o,r,e,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,r){gform.removeHook("action",o,r)},removeFilter:function(o,r,e){gform.removeHook("filter",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+"_"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==r?t.apply(null,e):e[0]=t.apply(null,e)})),"filter"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}}); /* ]]> */ </script> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <link href="https://fonts.googleapis.com/css?family=Raleway:700|Open+Sans:400,700" rel="stylesheet" type="text/css"> <style> .margin-text{margin:5px}#content-container div{flex:1}.md-table tbody{border:0!important}.md-table td{border-top:0!important;padding:2px!important;line-height:0!important}#md-tech-ad{width:300px;height:250px;background-color:#fff;border-style:solid;border-width:thin;font-family:Roboto,sans-serif!important}.md-align{text-align:center}.md-margin{margin:10px 5px}.md-margin-text{margin:5px}.md-margin-text a{text-decoration:none}.md-btn{color:#000;cursor:pointer;background-color:#fff;border:2px solid #000;justify-content:center;margin:auto;padding:14px 28px;font-size:16px;display:flex}#md-content-container{align-items:center;display:flex}#md-content-container div{flex:1}#md-current-price{padding-left:12px;font-size:44px;font-weight:700}#md-current-time{color:gray;padding-top:30px;font-size:12px}#md-intraday-chart{width:100%}#md-logo{display:inline}#md-content-container{flex-direction:column;padding-top:15px;display:flex;height:80px!important}#md-current-price{padding-left:0!important}#md-tech-ad{height:auto!important;text-align:center!important}.md-margin{margin:10px 0!important}#md-chart-container{padding-top:5px}#md-chart-container>canvas{height:50px;width:240px!important} /*# sourceMappingURL=index.99d3c376.css.map */ </style> <script type="text/javascript"> const e="undefined"!=typeof window,t=e?document:null,n=e?window:null,r=e?navigator:null;let i,o;function s(e,t){if(null!=t){let n=e.classList;!n.contains(t)&&n.add(t)}}function u(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function a(e,t,n){e.style[t]=n+"px"}function l(e,n,r,i){let o=t.createElement(e);return null!=n&&s(o,n),null!=r&&r.insertBefore(o,i),o}function c(e,t){return l("div",e,t)}const f=new WeakMap;function d(e,t,n,r,i){let o="translate("+t+"px,"+n+"px)";o!=f.get(e)&&(e.style.transform=o,f.set(e,o),t<0||n<0||t>r||n>i?s(e,"u-off"):u(e,"u-off"))}const h=new WeakMap;function m(e,t,n){let r=t+n;r!=h.get(e)&&(h.set(e,r),e.style.background=t,e.style.borderColor=n)}const y=new WeakMap;function v(e,t,n,r){let i=t+""+n;i!=y.get(e)&&(y.set(e,i),e.style.height=n+"px",e.style.width=t+"px",e.style.marginLeft=r?-t/2+"px":0,e.style.marginTop=r?-n/2+"px":0)}const p={passive:!0},g={...p,capture:!0};function w(e,t,n,r){t.addEventListener(e,n,r?g:p)}function k(e,t,n,r){t.removeEventListener(e,n,r?g:p)}function b(e,t,n,r){let i;n=n||0;let o=(r=r||t.length-1)<=2147483647;for(;r-n>1;)i=o?n+r>>1:Z((n+r)/2),t[i]<e?n=i:r=i;return e-t[n]<=t[r]-e?n:r}function x(e,t,n,r){for(let i=1==r?t:n;i>=t&&i<=n;i+=r)if(null!=e[i])return i;return-1}e&&function e(){let t=devicePixelRatio;i!=t&&(i=t,o&&k("change",o,e),o=matchMedia(`(min-resolution: ${i-.001}dppx) and (max-resolution: ${i+.001}dppx)`),w("change",o,e),n.dispatchEvent(new CustomEvent("dppxchange")))}();const S=[0,0];function T(e,t,n,r){return S[0]=n<0?se(e,-n):e,S[1]=r<0?se(t,-r):t,S}function M(e,t,n,r){let i,o,s,u=U(e),a=10==n?H:R;return e==t&&(-1==u?(e*=n,t/=n):(e/=n,t*=n)),r?(i=Z(a(e)),o=P(a(t)),s=T(W(n,i),W(n,o),i,o),e=s[0],t=s[1]):(i=Z(a(L(e))),o=Z(a(L(t))),s=T(W(n,i),W(n,o),i,o),e=oe(e,s[0]),t=ie(t,s[1])),[e,t]}function O(e,t,n,r){let i=M(e,t,n,r);return 0==e&&(i[0]=0),0==t&&(i[1]=0),i}const D={mode:3,pad:.1},N={pad:0,soft:null,mode:0},E={min:N,max:N};function _(e,t,n,r){return ye(n)?V(e,t,n):(N.pad=n,N.soft=r?0:null,N.mode=r?3:0,V(e,t,E))}function I(e,t){return null==e?t:e}function V(e,t,n){let r=n.min,i=n.max,o=I(r.pad,0),s=I(i.pad,0),u=I(r.hard,-J),a=I(i.hard,J),l=I(r.soft,J),c=I(i.soft,-J),f=I(r.mode,0),d=I(i.mode,0),h=t-e;h<1e-9&&(h=0,0!=e&&0!=t||(h=1e-9,2==f&&l!=J&&(o=0),2==d&&c!=-J&&(s=0)));let m=h||L(t)||1e3,y=H(m),v=W(10,Z(y)),p=se(oe(e-m*(0==h?0==e?.1:1:o),v/10),9),g=e>=l&&(1==f||3==f&&p<=l||2==f&&p>=l)?l:J,w=q(u,p<g&&e>=g?g:Y(g,p)),k=se(ie(t+m*(0==h?0==t?.1:1:s),v/10),9),b=t<=c&&(1==d||3==d&&k>=c||2==d&&k<=c)?c:-J,x=Y(a,k>b&&t<=b?b:q(b,k));return w==x&&0==w&&(x=100),[w,x]}const C=new Intl.NumberFormat(e?r.language:"en-US"),F=e=>C.format(e),z=Math,A=z.PI,L=z.abs,Z=z.floor,j=z.round,P=z.ceil,Y=z.min,q=z.max,W=z.pow,U=z.sign,H=z.log10,R=z.log2,G=(e,t=1)=>z.asinh(e/t),J=1/0;function B(e){return 1+(0|H((e^e>>31)-(e>>31)))}function $(e,t){return j(e/t)*t}function Q(e,t,n){return Y(q(e,t),n)}function K(e){return"function"==typeof e?e:()=>e}const X=e=>e,ee=(e,t)=>t,te=e=>null,ne=e=>!0,re=(e,t)=>e==t;function ie(e,t){return P(e/t)*t}function oe(e,t){return Z(e/t)*t}function se(e,t){return j(e*(t=10**t))/t}const ue=new Map;function ae(e){return((""+e).split(".")[1]||"").length}function le(e,t,n,r){let i=[],o=r.map(ae);for(let s=t;s<n;s++){let t=L(s),n=se(W(e,s),t);for(let e=0;e<r.length;e++){let u=r[e]*n,a=(u>=0&&s>=0?0:t)+(s>=o[e]?0:o[e]),l=se(u,a);i.push(l),ue.set(l,a)}}return i}const ce={},fe=[],de=[null,null],he=Array.isArray;function me(e){return"string"==typeof e}function ye(e){let t=!1;if(null!=e){let n=e.constructor;t=null==n||n==Object}return t}function ve(e){return null!=e&&"object"==typeof e}function pe(e,t=ye){let n;if(he(e)){let r=e.find((e=>null!=e));if(he(r)||t(r)){n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=pe(e[r],t)}else n=e.slice()}else if(t(e)){n={};for(let r in e)n[r]=pe(e[r],t)}else n=e;return n}function ge(e){let t=arguments;for(let n=1;n<t.length;n++){let r=t[n];for(let t in r)ye(e[t])?ge(e[t],pe(r[t])):e[t]=pe(r[t])}return e}function we(e,t,n){for(let r,i=0,o=-1;i<t.length;i++){let s=t[i];if(s>o){for(r=s-1;r>=0&&null==e[r];)e[r--]=null;for(r=s+1;r<n&&null==e[r];)e[o=r++]=null}}}const ke="undefined"==typeof queueMicrotask?e=>Promise.resolve().then(e):queueMicrotask,be=["January","February","March","April","May","June","July","August","September","October","November","December"],xe=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function Se(e){return e.slice(0,3)}const Te=xe.map(Se),Me=be.map(Se),Oe={MMMM:be,MMM:Me,WWWW:xe,WWW:Te};function De(e){return(e<10?"0":"")+e}const Ne={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+"").slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>De(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>De(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>De(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return 0==t?12:t>12?t-12:t},AA:e=>e.getHours()>=12?"PM":"AM",aa:e=>e.getHours()>=12?"pm":"am",a:e=>e.getHours()>=12?"p":"a",mm:e=>De(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>De(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>{return((t=e.getMilliseconds())<10?"00":t<100?"0":"")+t;var t}};function Ee(e,t){t=t||Oe;let n,r=[],i=/\{([a-z]+)\}|[^{]+/gi;for(;n=i.exec(e);)r.push("{"==n[0][0]?Ne[n[1]]:n[0]);return e=>{let n="";for(let i=0;i<r.length;i++)n+="string"==typeof r[i]?r[i]:r[i](e,t);return n}}const _e=(new Intl.DateTimeFormat).resolvedOptions().timeZone;const Ie=e=>e%1==0,Ve=[1,2,2.5,5],Ce=le(10,-16,0,Ve),Fe=le(10,0,16,Ve),ze=Fe.filter(Ie),Ae=Ce.concat(Fe);function Le(e){let t=1e3*e,n=60*t,r=60*n,i=24*r,o=30*i,s=365*i;return[(1==e?le(10,0,3,Ve).filter(Ie):le(10,-3,0,Ve)).concat([t,5*t,10*t,15*t,30*t,n,5*n,10*n,15*n,30*n,r,2*r,3*r,4*r,6*r,8*r,12*r,i,2*i,3*i,4*i,5*i,6*i,7*i,8*i,9*i,10*i,15*i,o,2*o,3*o,4*o,6*o,s,2*s,5*s,10*s,25*s,50*s,100*s]),[[s,"{YYYY}",null,null,null,null,null,null,1],[28*i,"{MMM}","\n{YYYY}",null,null,null,null,null,1],[i,"{M}/{D}","\n{YYYY}",null,null,null,null,null,1],[r,"{h}{aa}","\n{M}/{D}/{YY}",null,"\n{M}/{D}",null,null,null,1],[n,"{h}:{mm}{aa}","\n{M}/{D}/{YY}",null,"\n{M}/{D}",null,null,null,1],[t,":{ss}","\n{M}/{D}/{YY} {h}:{mm}{aa}",null,"\n{M}/{D} {h}:{mm}{aa}",null,"\n{h}:{mm}{aa}",null,1],[e,":{ss}.{fff}","\n{M}/{D}/{YY} {h}:{mm}{aa}",null,"\n{M}/{D} {h}:{mm}{aa}",null,"\n{h}:{mm}{aa}",null,1]],function(t){return(u,a,l,c,f,d)=>{let h=[],m=f>=s,y=f>=o&&f<s,v=t(l),p=se(v*e,3),g=Re(v.getFullYear(),m?0:v.getMonth(),y||m?1:v.getDate()),w=se(g*e,3);if(y||m){let n=y?f/o:0,r=m?f/s:0,i=p==w?p:se(Re(g.getFullYear()+r,g.getMonth()+n,1)*e,3),u=new Date(j(i/e)),a=u.getFullYear(),l=u.getMonth();for(let o=0;i<=c;o++){let s=Re(a+r*o,l+n*o,1),u=s-t(se(s*e,3));i=se((+s+u)*e,3),i<=c&&h.push(i)}}else{let o=f>=i?i:f,s=w+(Z(l)-Z(p))+ie(p-w,o);h.push(s);let m=t(s),y=m.getHours()+m.getMinutes()/n+m.getSeconds()/r,v=f/r,g=d/u.axes[a]._space;for(;s=se(s+f,1==e?0:3),!(s>c);)if(v>1){let e=Z(se(y+v,6))%24,n=t(s).getHours()-e;n>1&&(n=-1),s-=n*r,y=(y+v)%24,se((s-h[h.length-1])/f,3)*g>=.7&&h.push(s)}else h.push(s)}return h}}]}const[Ze,je,Pe]=Le(1),[Ye,qe,We]=Le(.001);function Ue(e,t){return e.map((e=>e.map(((n,r)=>0==r||8==r||null==n?n:t(1==r||0==e[8]?n:e[1]+n)))))}function He(e,t){return(n,r,i,o,s)=>{let u,a,l,c,f,d,h=t.find((e=>s>=e[0]))||t[t.length-1];return r.map((t=>{let n=e(t),r=n.getFullYear(),i=n.getMonth(),o=n.getDate(),s=n.getHours(),m=n.getMinutes(),y=n.getSeconds(),v=r!=u&&h[2]||i!=a&&h[3]||o!=l&&h[4]||s!=c&&h[5]||m!=f&&h[6]||y!=d&&h[7]||h[1];return u=r,a=i,l=o,c=s,f=m,d=y,v(n)}))}}function Re(e,t,n){return new Date(e,t,n)}function Ge(e,t){return t(e)}le(2,-53,53,[1]);function Je(e,t){return(n,r)=>t(e(r))}const Be={show:!0,live:!0,isolate:!1,markers:{show:!0,width:2,stroke:function(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null},fill:function(e,t){return e.series[t].fill(e,t)},dash:"solid"},idx:null,idxs:null,values:[]};const $e=[0,0];function Qe(e,t,n){return e=>{0==e.button&&n(e)}}function Ke(e,t,n){return n}const Xe={show:!0,x:!0,y:!0,lock:!1,move:function(e,t,n){return $e[0]=t,$e[1]=n,$e},points:{show:function(e,t){let n=e.cursor.points,r=c(),i=n.size(e,t);a(r,"width",i),a(r,"height",i);let o=i/-2;a(r,"marginLeft",o),a(r,"marginTop",o);let s=n.width(e,t,i);return s&&a(r,"borderWidth",s),r},size:function(e,t){return wt(e.series[t].points.width,1)},width:0,stroke:function(e,t){let n=e.series[t].points;return n._stroke||n._fill},fill:function(e,t){let n=e.series[t].points;return n._fill||n._stroke}},bind:{mousedown:Qe,mouseup:Qe,click:Qe,dblclick:Qe,mousemove:Ke,mouseleave:Ke,mouseenter:Ke},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,_x:!1,_y:!1},focus:{prox:-1},left:-10,top:-10,idx:null,dataIdx:function(e,t,n){return n},idxs:null},et={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},tt=ge({},et,{filter:ee}),nt=ge({},tt,{size:10}),rt=ge({},et,{show:!1}),it='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',ot="bold "+it,st={show:!0,scale:"x",stroke:"#000",space:50,gap:5,size:50,labelGap:0,labelSize:30,labelFont:ot,side:2,grid:tt,ticks:nt,border:rt,font:it,rotate:0},ut={show:!0,scale:"x",auto:!1,sorted:1,min:J,max:-J,idxs:[]};function at(e,t,n,r,i){return t.map((e=>null==e?"":F(e)))}function lt(e,t,n,r,i,o,s){let u=[],a=ue.get(i)||0;for(let e=n=s?n:se(ie(n,i),a);e<=r;e=se(e+i,a))u.push(Object.is(e,-0)?0:e);return u}function ct(e,t,n,r,i,o,s){const u=[],a=e.scales[e.axes[t].scale].log,l=Z((10==a?H:R)(n));i=W(a,l),l<0&&(i=se(i,-l));let c=n;do{u.push(c),c=se(c+i,ue.get(i)),c>=i*a&&(i=c)}while(c<=r);return u}function ft(e,t,n,r,i,o,s){let u=e.scales[e.axes[t].scale].asinh,a=r>u?ct(e,t,q(u,n),r,i):[u],l=r>=0&&n<=0?[0]:[];return(n<-u?ct(e,t,q(u,-r),-n,i):[u]).reverse().map((e=>-e)).concat(l,a)}const dt=/./,ht=/[12357]/,mt=/[125]/,yt=/1/;function vt(e,t,n,r,i){let o=e.axes[n],s=o.scale,u=e.scales[s];if(3==u.distr&&2==u.log)return t;let a=e.valToPos,l=o._space,c=a(10,s),f=a(9,s)-c>=l?dt:a(7,s)-c>=l?ht:a(5,s)-c>=l?mt:yt;return t.map((e=>4==u.distr&&0==e||f.test(e)?e:null))}function pt(e,t){return null==t?"":F(t)}const gt={show:!0,scale:"y",stroke:"#000",space:30,gap:5,size:50,labelGap:0,labelSize:30,labelFont:ot,side:3,grid:tt,ticks:nt,border:rt,font:it,rotate:0};function wt(e,t){return se((3+2*(e||1))*t,3)}const kt={scale:null,auto:!0,sorted:0,min:J,max:-J},bt={show:!0,auto:!0,sorted:0,alpha:1,facets:[ge({},kt,{scale:"x"}),ge({},kt,{scale:"y"})]},xt={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:(e,t,n,r,i)=>i,alpha:1,points:{show:function(e,t){let{scale:n,idxs:r}=e.series[0],o=e._data[0],s=e.valToPos(o[r[0]],n,!0),u=e.valToPos(o[r[1]],n,!0),a=L(u-s)/(e.series[t].points.space*i);return r[1]-r[0]<=a},filter:null},values:null,min:J,max:-J,idxs:[],path:null,clip:null};function St(e,t,n,r,i){return n/10}const Tt={time:!0,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},Mt=ge({},Tt,{time:!1,ori:1}),Ot={};function Dt(e,t){let n=Ot[e];return n||(n={key:e,plots:[],sub(e){n.plots.push(e)},unsub(e){n.plots=n.plots.filter((t=>t!=e))},pub(e,t,r,i,o,s,u){for(let a=0;a<n.plots.length;a++)n.plots[a]!=t&&n.plots[a].pub(e,t,r,i,o,s,u)}},null!=e&&(Ot[e]=n)),n}function Nt(e,t,n){const r=e.series[t],i=e.scales,o=e.bbox,s=2==e.mode?i[r.facets[0].scale]:i[e.series[0].scale];let u=e._data[0],a=e._data[t],l=s,c=2==e.mode?i[r.facets[1].scale]:i[r.scale],f=o.left,d=o.top,h=o.width,m=o.height,y=e.valToPosH,v=e.valToPosV;return 0==l.ori?n(r,u,a,l,c,y,v,f,d,h,m,At,Zt,Pt,qt,Ut):n(r,u,a,l,c,v,y,d,f,m,h,Lt,jt,Yt,Wt,Ht)}function Et(e,t){let n=0,r=0,i=I(e.bands,fe);for(let e=0;e<i.length;e++){let o=i[e];o.series[0]==t?n=o.dir:o.series[1]==t&&(1==o.dir?r|=1:r|=2)}return[n,1==r?-1:2==r?1:3==r?2:0]}function _t(e,t,n,r,i){let o=e.scales[e.series[t].scale];return-1==i?o.min:1==i?o.max:3==o.distr?1==o.dir?o.min:o.max:0}function It(e,t,n,r,i,o){return Nt(e,t,((e,t,s,u,a,l,c,f,d,h,m)=>{let y=e.pxRound;const v=u.dir*(0==u.ori?1:-1),p=0==u.ori?Zt:jt;let g,w;1==v?(g=n,w=r):(g=r,w=n);let k=y(l(t[g],u,h,f)),b=y(c(s[g],a,m,d)),x=y(l(t[w],u,h,f)),S=y(c(1==o?a.max:a.min,a,m,d)),T=new Path2D(i);return p(T,x,S),p(T,k,S),p(T,k,b),T}))}function Vt(e,t,n,r,i,o){let s=null;if(e.length>0){s=new Path2D;const u=0==t?Pt:Yt;let a=n;for(let t=0;t<e.length;t++){let n=e[t];if(n[1]>n[0]){let e=n[0]-a;e>0&&u(s,a,r,e,r+o),a=n[1]}}let l=n+i-a;l>0&&u(s,a,r,l,r+o)}return s}function Ct(e,t,n,r,i,o,s){let u=[];for(let a=1==i?n:r;a>=n&&a<=r;a+=i){if(null===t[a]){let l=a,c=a;if(1==i)for(;++a<=r&&null===t[a];)c=a;else for(;--a>=n&&null===t[a];)c=a;let f=o(e[l]),d=c==l?f:o(e[c]);f=s<=0?o(e[l-i]):f,d=s>=0?o(e[c+i]):d,d>=f&&u.push([f,d])}}return u}function Ft(e){return 0==e?X:1==e?j:t=>$(t,e)}function zt(e){let t=0==e?At:Lt,n=0==e?(e,t,n,r,i,o)=>{e.arcTo(t,n,r,i,o)}:(e,t,n,r,i,o)=>{e.arcTo(n,t,i,r,o)},r=0==e?(e,t,n,r,i)=>{e.rect(t,n,r,i)}:(e,t,n,r,i)=>{e.rect(n,t,i,r)};return(e,i,o,s,u,a=0)=>{0==a?r(e,i,o,s,u):(a=Y(a,s/2,u/2),t(e,i+a,o),n(e,i+s,o,i+s,o+u,a),n(e,i+s,o+u,i,o+u,a),n(e,i,o+u,i,o,a),n(e,i,o,i+s,o,a),e.closePath())}}const At=(e,t,n)=>{e.moveTo(t,n)},Lt=(e,t,n)=>{e.moveTo(n,t)},Zt=(e,t,n)=>{e.lineTo(t,n)},jt=(e,t,n)=>{e.lineTo(n,t)},Pt=zt(0),Yt=zt(1),qt=(e,t,n,r,i,o)=>{e.arc(t,n,r,i,o)},Wt=(e,t,n,r,i,o)=>{e.arc(n,t,r,i,o)},Ut=(e,t,n,r,i,o,s)=>{e.bezierCurveTo(t,n,r,i,o,s)},Ht=(e,t,n,r,i,o,s)=>{e.bezierCurveTo(n,t,i,r,s,o)};function Rt(e){return(e,t,n,r,o)=>Nt(e,t,((t,s,u,a,l,c,f,d,h,m,y)=>{let v,p,{pxRound:g,points:w}=t;0==a.ori?(v=At,p=qt):(v=Lt,p=Wt);const k=se(w.width*i,3);let b=(w.size-w.width)/2*i,x=se(2*b,3),S=new Path2D,T=new Path2D,{left:M,top:O,width:D,height:N}=e.bbox;Pt(T,M-x,O-x,D+2*x,N+2*x);const E=e=>{if(null!=u[e]){let t=g(c(s[e],a,m,d)),n=g(f(u[e],l,y,h));v(S,t+b,n),p(S,t,n,b,0,2*A)}};if(o)o.forEach(E);else for(let e=n;e<=r;e++)E(e);return{stroke:k>0?S:null,fill:S,clip:T,flags:3}}))}function Gt(e){return(t,n,r,i,o,s)=>{r!=i&&(o!=r&&s!=r&&e(t,n,r),o!=i&&s!=i&&e(t,n,i),e(t,n,s))}}const Jt=Gt(Zt),Bt=Gt(jt);function $t(e){const t=I(e?.alignGaps,0);return(e,n,r,i)=>Nt(e,n,((o,s,u,a,l,c,f,d,h,m,y)=>{let v,p,g=o.pxRound,w=e=>g(c(e,a,m,d)),k=e=>g(f(e,l,y,h));0==a.ori?(v=Zt,p=Jt):(v=jt,p=Bt);const b=a.dir*(0==a.ori?1:-1),S={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:1},T=S.stroke;let M,O,D,N=J,E=-J,_=w(s[1==b?r:i]),I=x(u,r,i,1*b),V=x(u,r,i,-1*b),C=w(s[I]),F=w(s[V]);for(let e=1==b?r:i;e>=r&&e<=i;e+=b){let t=w(s[e]);t==_?null!=u[e]&&(O=k(u[e]),N==J&&(v(T,t,O),M=O),N=Y(O,N),E=q(O,E)):(N!=J&&(p(T,_,N,E,M,O),D=_),null!=u[e]?(O=k(u[e]),v(T,t,O),N=E=M=O):(N=J,E=-J),_=t)}N!=J&&N!=E&&D!=_&&p(T,_,N,E,M,O);let[z,A]=Et(e,n);if(null!=o.fill||0!=z){let t=S.fill=new Path2D(T),r=k(o.fillTo(e,n,o.min,o.max,z));v(t,F,r),v(t,C,r)}if(!o.spanGaps){let l=[];l.push(...Ct(s,u,r,i,b,w,t)),S.gaps=l=o.gaps(e,n,r,i,l),S.clip=Vt(l,a.ori,d,h,m,y)}return 0!=A&&(S.band=2==A?[It(e,n,r,i,T,-1),It(e,n,r,i,T,1)]:It(e,n,r,i,T,A)),S}))}function Qt(e,t,n,r,i,o){const s=e.length;if(s<2)return null;const u=new Path2D;if(n(u,e[0],t[0]),2==s)r(u,e[1],t[1]);else{let n=Array(s),r=Array(s-1),o=Array(s-1),a=Array(s-1);for(let n=0;n<s-1;n++)o[n]=t[n+1]-t[n],a[n]=e[n+1]-e[n],r[n]=o[n]/a[n];n[0]=r[0];for(let e=1;e<s-1;e++)0===r[e]||0===r[e-1]||r[e-1]>0!=r[e]>0?n[e]=0:(n[e]=3*(a[e-1]+a[e])/((2*a[e]+a[e-1])/r[e-1]+(a[e]+2*a[e-1])/r[e]),isFinite(n[e])||(n[e]=0));n[s-1]=r[s-2];for(let r=0;r<s-1;r++)i(u,e[r]+a[r]/3,t[r]+n[r]*a[r]/3,e[r+1]-a[r]/3,t[r+1]-n[r+1]*a[r]/3,e[r+1],t[r+1])}return u}const Kt=new Set;function Xt(){Kt.forEach((e=>{e.syncRect(!0)}))}e&&(w("resize",n,Xt),w("scroll",n,Xt,!0),w("dppxchange",n,(()=>{mn.pxRatio=i})));const en=$t(),tn=Rt();function nn(e,t,n,r){return(r?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map(((e,r)=>rn(e,r,t,n)))}function rn(e,t,n,r){return ge({},0==t?n:r,e)}function on(e,t,n){return null==t?de:[t,n]}const sn=on;function un(e,t,n){return null==t?de:_(t,n,.1,!0)}function an(e,t,n,r){return null==t?de:M(t,n,e.scales[r].log,!1)}const ln=an;function cn(e,t,n,r){return null==t?de:O(t,n,e.scales[r].log,!1)}const fn=cn;function dn(e){let t,n;return[e=e.replace(/(\d+)px/,((e,r)=>(t=j((n=+r)*i))+"px")),t,n]}function hn(e){e.show&&[e.font,e.labelFont].forEach((e=>{let t=se(e[2]*i,1);e[0]=e[0].replace(/[0-9.]+px/,t+"px"),e[1]=t}))}function mn(e,r,o){const f={mode:I(e.mode,1)},h=f.mode;function y(e,t){return((3==t.distr?H(e>0?e:t.clamp(f,e,t.min,t.max,t.key)):4==t.distr?G(e,t.asinh):e)-t._min)/(t._max-t._min)}function p(e,t,n,r){let i=y(e,t);return r+n*(-1==t.dir?1-i:i)}function g(e,t,n,r){let i=y(e,t);return r+n*(-1==t.dir?i:1-i)}function x(e,t,n,r){return 0==t.ori?p(e,t,n,r):g(e,t,n,r)}f.valToPosH=p,f.valToPosV=g;let S=!1;f.status=0;const T=f.root=c("uplot");if(null!=e.id&&(T.id=e.id),s(T,e.class),e.title){c("u-title",T).textContent=e.title}const N=l("canvas"),E=f.ctx=N.getContext("2d"),V=c("u-wrap",T),C=f.under=c("u-under",V);V.appendChild(N);const F=f.over=c("u-over",V),Z=+I((e=pe(e)).pxAlign,1),U=Ft(Z);(e.plugins||[]).forEach((t=>{t.opts&&(e=t.opts(f,e)||e)}));const R=e.ms||.001,X=f.series=1==h?nn(e.series||[],ut,xt,!1):(oe=e.series||[null],ae=bt,oe.map(((e,t)=>0==t?null:ge({},ae,e))));var oe,ae;const le=f.axes=nn(e.axes||[],st,gt,!0),we=f.scales={},be=f.bands=e.bands||[];be.forEach((e=>{e.fill=K(e.fill||null),e.dir=I(e.dir,-1)}));const xe=2==h?X[1].facets[0].scale:X[0].scale,Se={axes:function(){for(let e=0;e<le.length;e++){let t=le[e];if(!t.show||!t._show)continue;let n,r,o=t.side,s=o%2,u=t.stroke(f,e),a=0==o||3==o?-1:1;if(t.label){let e=t.labelGap*a,l=j((t._lpos+e)*i);Ln(t.labelFont[0],u,"center",2==o?"top":"bottom"),E.save(),1==s?(n=r=0,E.translate(l,j(Zt+Pt/2)),E.rotate((3==o?-A:A)/2)):(n=j(Lt+jt/2),r=l),E.fillText(t.label,n,r),E.restore()}let[l,c]=t._found;if(0==c)continue;let d=we[t.scale],h=0==s?jt:Pt,m=0==s?Lt:Zt,y=j(t.gap*i),v=t._splits,p=2==d.distr?v.map((e=>Vn[e])):v,g=2==d.distr?Vn[v[1]]-Vn[v[0]]:l,w=t.ticks,k=t.border,b=w.show?j(w.size*i):0,S=t._rotate*-A/180,T=U(t._pos*i),M=T+(b+y)*a;r=0==s?M:0,n=1==s?M:0;let O=t.font[0],D=1==t.align?"left":2==t.align?"right":S>0?"left":S<0?"right":0==s?"center":3==o?"right":"left";Ln(O,u,D,S||1==s?"middle":2==o?"top":"bottom");let N=1.5*t.font[1],_=v.map((e=>U(x(e,d,h,m)))),I=t._values;for(let e=0;e<I.length;e++){let t=I[e];if(null!=t){0==s?n=_[e]:r=_[e],t=""+t;let i=-1==t.indexOf("\n")?[t]:t.split(/\n/gm);for(let e=0;e<i.length;e++){let t=i[e];S?(E.save(),E.translate(n,r+e*N),E.rotate(S),E.fillText(t,0,0),E.restore()):E.fillText(t,n,r+e*N)}}}w.show&&Hn(_,w.filter(f,p,e,c,g),s,o,T,b,se(w.width*i,3),w.stroke(f,e),w.dash,w.cap);let V=t.grid;V.show&&Hn(_,V.filter(f,p,e,c,g),s,0==s?2:1,0==s?Zt:Lt,0==s?Pt:jt,se(V.width*i,3),V.stroke(f,e),V.dash,V.cap),k.show&&Hn([T],[1],0==s?1:0,0==s?1:2,1==s?Zt:Lt,1==s?Pt:jt,se(k.width*i,3),k.stroke(f,e),k.dash,k.cap)}Ur("drawAxes")},series:function(){gn>0&&(X.forEach(((e,t)=>{if(t>0&&e.show&&null==e._paths){let n=function(e){let t=Q(wn-1,0,gn-1),n=Q(kn+1,0,gn-1);for(;null==e[t]&&t>0;)t--;for(;null==e[n]&&n<gn-1;)n++;return[t,n]}(r[t]);e._paths=e.paths(f,t,n[0],n[1])}})),X.forEach(((e,t)=>{if(t>0&&e.show){In!=e.alpha&&(E.globalAlpha=In=e.alpha),jn(t,!1),e._paths&&Pn(t,!1);{jn(t,!0);let n=e.points.show(f,t,wn,kn),r=e.points.filter(f,t,n,e._paths?e._paths.gaps:null);(n||r)&&(e.points._paths=e.points.paths(f,t,wn,kn,r),Pn(t,!0))}1!=In&&(E.globalAlpha=In=1),Ur("drawSeries",t)}})))}},Te=(e.drawOrder||["axes","series"]).map((e=>Se[e]));function Me(t){let n=we[t];if(null==n){let r=(e.scales||ce)[t]||ce;if(null!=r.from)Me(r.from),we[t]=ge({},we[r.from],r,{key:t});else{n=we[t]=ge({},t==xe?Tt:Mt,r),n.key=t;let e=n.time,i=n.range,o=he(i);if((t!=xe||2==h&&!e)&&(!o||null!=i[0]&&null!=i[1]||(i={min:null==i[0]?D:{mode:1,hard:i[0],soft:i[0]},max:null==i[1]?D:{mode:1,hard:i[1],soft:i[1]}},o=!1),!o&&ye(i))){let e=i;i=(t,n,r)=>null==n?de:_(n,r,e)}n.range=K(i||(e?sn:t==xe?3==n.distr?ln:4==n.distr?fn:on:3==n.distr?an:4==n.distr?cn:un)),n.auto=K(!o&&n.auto),n.clamp=K(n.clamp||St),n._min=n._max=null}}}Me("x"),Me("y"),1==h&&X.forEach((e=>{Me(e.scale)})),le.forEach((e=>{Me(e.scale)}));for(let t in e.scales)Me(t);const Oe=we[xe],De=Oe.distr;let Ne,_e;0==Oe.ori?(s(T,"u-hz"),Ne=p,_e=g):(s(T,"u-vt"),Ne=g,_e=p);const Ie={};for(let e in we){let t=we[e];null==t.min&&null==t.max||(Ie[e]={min:t.min,max:t.max},t.min=t.max=null)}const Ve=e.tzDate||(e=>new Date(j(e/R))),Ce=e.fmtDate||Ee,Fe=1==R?Pe(Ve):We(Ve),Le=He(Ve,Ue(1==R?je:qe,Ce)),Re=Je(Ve,Ge("{YYYY}-{MM}-{DD} {h}:{mm}{aa}",Ce)),$e=[],Qe=f.legend=ge({},Be,e.legend),Ke=Qe.show,et=Qe.markers;let tt;Qe.idxs=$e,et.width=K(et.width),et.dash=K(et.dash),et.stroke=K(et.stroke),et.fill=K(et.fill);let nt,rt=[],it=[],ot=!1,dt={};if(Qe.live){const e=X[1]?X[1].values:null;ot=null!=e,nt=ot?e(f,1,0):{_:0};for(let e in nt)dt[e]="--"}if(Ke)if(tt=l("table","u-legend",T),ot){let e=l("tr","u-thead",tt);for(var ht in l("th",null,e),nt)l("th","u-label",e).textContent=ht}else s(tt,"u-inline"),Qe.live&&s(tt,"u-live");const mt={show:!0},yt={show:!1};const kt=new Map;function Ot(e,t,n){const r=kt.get(t)||{},i=Jt.bind[e](f,t,n);i&&(w(e,t,r[e]=i),kt.set(t,r))}function Nt(e,t,n){const r=kt.get(t)||{};for(let n in r)null!=e&&n!=e||(k(n,t,r[n]),delete r[n]);null==e&&kt.delete(t)}let Et=0,It=0,Vt=0,Ct=0,zt=0,At=0,Lt=0,Zt=0,jt=0,Pt=0;f.bbox={};let Yt=!1,qt=!1,Wt=!1,Ut=!1,Ht=!1;function Rt(e,t,n){(n||e!=f.width||t!=f.height)&&Gt(e,t),Jn(!1),Wt=!0,qt=!0,Ut=Ht=Jt.left>=0,ar()}function Gt(e,t){f.width=Et=Vt=e,f.height=It=Ct=t,zt=At=0,function(){let e=!1,t=!1,n=!1,r=!1;le.forEach(((i,o)=>{if(i.show&&i._show){let{side:o,_size:s}=i,u=o%2,a=s+(null!=i.label?i.labelSize:0);a>0&&(u?(Vt-=a,3==o?(zt+=a,r=!0):n=!0):(Ct-=a,0==o?(At+=a,e=!0):t=!0))}})),mn[0]=e,mn[1]=n,mn[2]=t,mn[3]=r,Vt-=pn[1]+pn[3],zt+=pn[3],Ct-=pn[2]+pn[0],At+=pn[0]}(),function(){let e=zt+Vt,t=At+Ct,n=zt,r=At;function i(i,o){switch(i){case 1:return e+=o,e-o;case 2:return t+=o,t-o;case 3:return n-=o,n+o;case 0:return r-=o,r+o}}le.forEach(((e,t)=>{if(e.show&&e._show){let t=e.side;e._pos=i(t,e._size),null!=e.label&&(e._lpos=i(t,e.labelSize))}}))}();let n=f.bbox;Lt=n.left=$(zt*i,.5),Zt=n.top=$(At*i,.5),jt=n.width=$(Vt*i,.5),Pt=n.height=$(Ct*i,.5)}f.setSize=function({width:e,height:t}){Rt(e,t)};const Jt=f.cursor=ge({},Xe,{drag:{y:2==h}},e.cursor);{Jt.idxs=$e,Jt._lock=!1;let e=Jt.points;e.show=K(e.show),e.size=K(e.size),e.stroke=K(e.stroke),e.width=K(e.width),e.fill=K(e.fill)}const Bt=f.focus=ge({},e.focus||{alpha:.3},Jt.focus),$t=Bt.prox>=0;let Qt=[null];function Xt(e,t){if(1==h||t>0){let t=1==h&&we[e.scale].time,n=e.value;e.value=t?me(n)?Je(Ve,Ge(n,Ce)):n||Re:n||pt,e.label=e.label||(t?"Time":"Value")}if(t>0){e.width=null==e.width?1:e.width,e.paths=e.paths||en||te,e.fillTo=K(e.fillTo||_t),e.pxAlign=+I(e.pxAlign,Z),e.pxRound=Ft(e.pxAlign),e.stroke=K(e.stroke||null),e.fill=K(e.fill||null),e._stroke=e._fill=e._paths=e._focus=null;let t=wt(e.width,1),n=e.points=ge({},{size:t,width:q(1,.2*t),stroke:e.stroke,space:2*t,paths:tn,_stroke:null,_fill:null},e.points);n.show=K(n.show),n.filter=K(n.filter),n.fill=K(n.fill),n.stroke=K(n.stroke),n.paths=K(n.paths),n.pxAlign=e.pxAlign}if(Ke){let n=function(e,t){if(0==t&&(ot||!Qe.live||2==h))return de;let n=[],r=l("tr","u-series",tt,tt.childNodes[t]);s(r,e.class),e.show||s(r,"u-off");let i=l("th",null,r);if(et.show){let e=c("u-marker",i);if(t>0){let n=et.width(f,t);n&&(e.style.border=n+"px "+et.dash(f,t)+" "+et.stroke(f,t)),e.style.background=et.fill(f,t)}}let o=c("u-label",i);for(var u in o.textContent=e.label,t>0&&(et.show||(o.style.color=e.width>0?et.stroke(f,t):et.fill(f,t)),Ot("click",i,(t=>{if(Jt._lock)return;let n=X.indexOf(e);if((t.ctrlKey||t.metaKey)!=Qe.isolate){let e=X.some(((e,t)=>t>0&&t!=n&&e.show));X.forEach(((t,r)=>{r>0&&wr(r,e?r==n?mt:yt:mt,!0,Hr.setSeries)}))}else wr(n,{show:!e.show},!0,Hr.setSeries)})),$t&&Ot("mouseenter",i,(t=>{Jt._lock||wr(X.indexOf(e),Sr,!0,Hr.setSeries)}))),nt){let e=l("td","u-value",r);e.textContent="--",n.push(e)}return[r,n]}(e,t);rt.splice(t,0,n[0]),it.splice(t,0,n[1]),Qe.values.push(null)}if(Jt.show){$e.splice(t,0,null);let n=function(e,t){if(t>0){let n=Jt.points.show(f,t);if(n)return s(n,"u-cursor-pt"),s(n,e.class),d(n,-10,-10,Vt,Ct),F.insertBefore(n,Qt[t]),n}}(e,t);n&&Qt.splice(t,0,n)}Ur("addSeries",t)}f.addSeries=function(e,t){e=rn(e,t=null==t?X.length:t,ut,xt),X.splice(t,0,e),Xt(X[t],t)},f.delSeries=function(e){if(X.splice(e,1),Ke){Qe.values.splice(e,1),it.splice(e,1);let t=rt.splice(e,1)[0];Nt(null,t.firstChild),t.remove()}Jt.show&&($e.splice(e,1),Qt.length>1&&Qt.splice(e,1)[0].remove()),Ur("delSeries",e)};const mn=[!1,!1,!1,!1];function yn(e,t,n,r){let[i,o,s,u]=n,a=t%2,l=0;return 0==a&&(u||o)&&(l=0==t&&!i||2==t&&!s?j(st.size/3):0),1==a&&(i||s)&&(l=1==t&&!o||3==t&&!u?j(gt.size/2):0),l}const vn=f.padding=(e.padding||[yn,yn,yn,yn]).map((e=>K(I(e,yn)))),pn=f._padding=vn.map(((e,t)=>e(f,t,mn,0)));let gn,wn=null,kn=null;const bn=1==h?X[0].idxs:null;let xn,Sn,Tn,Mn,On,Dn,Nn,En,_n,In,Vn=null,Cn=!1;function Fn(e,t){if(r=null==e?[]:pe(e,ve),2==h){gn=0;for(let e=1;e<X.length;e++)gn+=r[e][0].length;f.data=r=e}else if(null==r[0]&&(r[0]=[]),f.data=r.slice(),Vn=r[0],gn=Vn.length,2==De){r[0]=Array(gn);for(let e=0;e<gn;e++)r[0][e]=e}if(f._data=r,Jn(!0),Ur("setData"),!1!==t){let e=Oe;e.auto(f,Cn)?zn():gr(xe,e.min,e.max),Ut=Jt.left>=0,Ht=!0,ar()}}function zn(){let e,t;Cn=!0,1==h&&(gn>0?(wn=bn[0]=0,kn=bn[1]=gn-1,e=r[0][wn],t=r[0][kn],2==De?(e=wn,t=kn):1==gn&&(3==De?[e,t]=M(e,e,Oe.log,!1):4==De?[e,t]=O(e,e,Oe.log,!1):Oe.time?t=e+j(86400/R):[e,t]=_(e,t,.1,!0))):(wn=bn[0]=e=null,kn=bn[1]=t=null)),gr(xe,e,t)}function An(e="#0000",t,n=fe,r="butt",i="#0000",o="round"){e!=xn&&(E.strokeStyle=xn=e),i!=Sn&&(E.fillStyle=Sn=i),t!=Tn&&(E.lineWidth=Tn=t),o!=On&&(E.lineJoin=On=o),r!=Dn&&(E.lineCap=Dn=r),n!=Mn&&E.setLineDash(Mn=n)}function Ln(e,t,n,r){t!=Sn&&(E.fillStyle=Sn=t),e!=Nn&&(E.font=Nn=e),n!=En&&(E.textAlign=En=n),r!=_n&&(E.textBaseline=_n=r)}function Zn(e,t,n,r,i=0){if(r.length>0&&e.auto(f,Cn)&&(null==t||null==t.min)){let t=I(wn,0),o=I(kn,r.length-1),s=null==n.min?3==e.distr?function(e,t,n){let r=J,i=-J;for(let o=t;o<=n;o++)e[o]>0&&(r=Y(r,e[o]),i=q(i,e[o]));return[r==J?1:r,i==-J?10:i]}(r,t,o):function(e,t,n,r){let i=J,o=-J;if(1==r)i=e[t],o=e[n];else if(-1==r)i=e[n],o=e[t];else for(let r=t;r<=n;r++)null!=e[r]&&(i=Y(i,e[r]),o=q(o,e[r]));return[i,o]}(r,t,o,i):[n.min,n.max];e.min=Y(e.min,n.min=s[0]),e.max=q(e.max,n.max=s[1])}}function jn(e,t){let n=t?X[e].points:X[e];n._stroke=n.stroke(f,e),n._fill=n.fill(f,e)}function Pn(e,t){let n=t?X[e].points:X[e],o=n._stroke,s=n._fill,{stroke:u,fill:a,clip:l,flags:c}=n._paths,d=null,h=se(n.width*i,3),m=h%2/2;t&&null==s&&(s=h>0?"#fff":o);let y=1==n.pxAlign;if(y&&E.translate(m,m),!t){let e=Lt,t=Zt,r=jt,o=Pt,s=h*i/2;0==n.min&&(o+=s),0==n.max&&(t-=s,o+=s),d=new Path2D,d.rect(e,t,r,o)}t?Yn(o,h,n.dash,n.cap,s,u,a,c,l):function(e,t,n,i,o,s,u,a,l,c,d){let h=!1;be.forEach(((m,y)=>{if(m.series[0]==e){let e,v=X[m.series[1]],p=r[m.series[1]],g=(v._paths||ce).band;he(g)&&(g=1==m.dir?g[0]:g[1]);let w=null;v.show&&g&&function(e,t,n){for(t=I(t,0),n=I(n,e.length-1);t<=n;){if(null!=e[t])return!0;t++}return!1}(p,wn,kn)?(w=m.fill(f,y)||s,e=v._paths.clip):g=null,Yn(t,n,i,o,w,u,a,l,c,d,e,g),h=!0}})),h||Yn(t,n,i,o,s,u,a,l,c,d)}(e,o,h,n.dash,n.cap,s,u,a,c,d,l),y&&E.translate(-m,-m)}f.setData=Fn;function Yn(e,t,n,r,i,o,s,u,a,l,c,f){An(e,t,n,r,i),(a||l||f)&&(E.save(),a&&E.clip(a),l&&E.clip(l)),f?3==(3&u)?(E.clip(f),c&&E.clip(c),Wn(i,s),qn(e,o,t)):2&u?(Wn(i,s),E.clip(f),qn(e,o,t)):1&u&&(E.save(),E.clip(f),c&&E.clip(c),Wn(i,s),E.restore(),qn(e,o,t)):(Wn(i,s),qn(e,o,t)),(a||l||f)&&E.restore()}function qn(e,t,n){n>0&&(t instanceof Map?t.forEach(((e,t)=>{E.strokeStyle=xn=t,E.stroke(e)})):null!=t&&e&&E.stroke(t))}function Wn(e,t){t instanceof Map?t.forEach(((e,t)=>{E.fillStyle=Sn=t,E.fill(e)})):null!=t&&e&&E.fill(t)}function Un(e,t,n,r){let i,o=le[e];if(r<=0)i=[0,0];else{let s=o._space=o.space(f,e,t,n,r);i=function(e,t,n,r,i){let o=q(B(e),B(t)),s=t-e,u=b(i/r*s,n);do{let e=n[u],t=r*e/s;if(t>=i&&o+(e<5?ue.get(e):0)<=17)return[e,t]}while(++u<n.length);return[0,0]}(t,n,o._incrs=o.incrs(f,e,t,n,r,s),r,s)}return o._found=i}function Hn(e,t,n,r,i,o,s,u,a,l){let c=s%2/2;1==Z&&E.translate(c,c),An(u,s,a,l,u),E.beginPath();let f,d,h,m,y=i+(0==r||3==r?-o:o);0==n?(d=i,m=y):(f=i,h=y);for(let r=0;r<e.length;r++)null!=t[r]&&(0==n?f=h=e[r]:d=m=e[r],E.moveTo(f,d),E.lineTo(h,m));E.stroke(),1==Z&&E.translate(-c,-c)}function Rn(e){let t=!0;return le.forEach(((n,r)=>{if(!n.show)return;let i=we[n.scale];if(null==i.min)return void(n._show&&(t=!1,n._show=!1,Jn(!1)));n._show||(t=!1,n._show=!0,Jn(!1));let o=n.side,s=o%2,{min:u,max:a}=i,[l,c]=Un(r,u,a,0==s?Vt:Ct);if(0==c)return;let d=2==i.distr,h=n._splits=n.splits(f,r,u,a,l,c,d),m=2==i.distr?h.map((e=>Vn[e])):h,y=2==i.distr?Vn[h[1]]-Vn[h[0]]:l,v=n._values=n.values(f,n.filter(f,m,r,c,y),r,c,y);n._rotate=2==o?n.rotate(f,v,r,c):0;let p=n._size;n._size=P(n.size(f,v,r,e)),null!=p&&n._size!=p&&(t=!1)})),t}function Gn(e){let t=!0;return vn.forEach(((n,r)=>{let i=n(f,r,mn,e);i!=pn[r]&&(t=!1),pn[r]=i})),t}function Jn(e){X.forEach(((t,n)=>{n>0&&(t._paths=null,e&&(1==h?(t.min=null,t.max=null):t.facets.forEach((e=>{e.min=null,e.max=null}))))}))}let Bn,$n,Qn,Kn,Xn,er,tr,nr,rr,ir,or,sr,ur=!1;function ar(){ur||(ke(lr),ur=!0)}function lr(){Yt&&(!function(){let e=pe(we,ve);for(let t in e){let n=e[t],r=Ie[t];if(null!=r&&null!=r.min)ge(n,r),t==xe&&Jn(!0);else if(t!=xe||2==h)if(0==gn&&null==n.from){let e=n.range(f,null,null,t);n.min=e[0],n.max=e[1]}else n.min=J,n.max=-J}if(gn>0){X.forEach(((t,n)=>{if(1==h){let i=t.scale,o=e[i],s=Ie[i];if(0==n){let e=o.range(f,o.min,o.max,i);o.min=e[0],o.max=e[1],wn=b(o.min,r[0]),kn=b(o.max,r[0]),r[0][wn]<o.min&&wn++,r[0][kn]>o.max&&kn--,t.min=Vn[wn],t.max=Vn[kn]}else t.show&&t.auto&&Zn(o,s,t,r[n],t.sorted);t.idxs[0]=wn,t.idxs[1]=kn}else if(n>0&&t.show&&t.auto){let[i,o]=t.facets,s=i.scale,u=o.scale,[a,l]=r[n];Zn(e[s],Ie[s],i,a,i.sorted),Zn(e[u],Ie[u],o,l,o.sorted),t.min=o.min,t.max=o.max}}));for(let t in e){let n=e[t],r=Ie[t];if(null==n.from&&(null==r||null==r.min)){let e=n.range(f,n.min==J?null:n.min,n.max==-J?null:n.max,t);n.min=e[0],n.max=e[1]}}}for(let t in e){let n=e[t];if(null!=n.from){let r=e[n.from];if(null==r.min)n.min=n.max=null;else{let e=n.range(f,r.min,r.max,t);n.min=e[0],n.max=e[1]}}}let t={},n=!1;for(let r in e){let i=e[r],o=we[r];if(o.min!=i.min||o.max!=i.max){o.min=i.min,o.max=i.max;let e=o.distr;o._min=3==e?H(o.min):4==e?G(o.min,o.asinh):o.min,o._max=3==e?H(o.max):4==e?G(o.max,o.asinh):o.max,t[r]=n=!0}}if(n){X.forEach(((e,n)=>{2==h?n>0&&t.y&&(e._paths=null):t[e.scale]&&(e._paths=null)}));for(let e in t)Wt=!0,Ur("setScale",e);Jt.show&&(Ut=Ht=Jt.left>=0)}for(let e in Ie)Ie[e]=null}(),Yt=!1),Wt&&(!function(){let e=!1,t=0;for(;!e;){t++;let n=Rn(t),r=Gn(t);e=3==t||n&&r,e||(Gt(f.width,f.height),qt=!0)}}(),Wt=!1),qt&&(a(C,"left",zt),a(C,"top",At),a(C,"width",Vt),a(C,"height",Ct),a(F,"left",zt),a(F,"top",At),a(F,"width",Vt),a(F,"height",Ct),a(V,"width",Et),a(V,"height",It),N.width=j(Et*i),N.height=j(It*i),le.forEach((({_el:e,_show:t,_size:n,_pos:r,side:i})=>{if(null!=e)if(t){let t=i%2==1;a(e,t?"left":"top",r-(3===i||0===i?n:0)),a(e,t?"width":"height",n),a(e,t?"top":"left",t?At:zt),a(e,t?"height":"width",t?Ct:Vt),u(e,"u-off")}else s(e,"u-off")})),xn=Sn=Tn=On=Dn=Nn=En=_n=Mn=null,In=1,Cr(!0),Ur("setSize"),qt=!1),Et>0&&It>0&&(E.clearRect(0,0,N.width,N.height),Ur("drawClear"),Te.forEach((e=>e())),Ur("draw")),Jt.show&&Ut&&(Ir(null,!0,!1),Ut=!1),S||(S=!0,f.status=1,Ur("ready")),Cn=!1,ur=!1}function cr(e,t){let n=we[e];if(null==n.from){if(0==gn){let r=n.range(f,t.min,t.max,e);t.min=r[0],t.max=r[1]}if(t.min>t.max){let e=t.min;t.min=t.max,t.max=e}if(gn>1&&null!=t.min&&null!=t.max&&t.max-t.min<1e-16)return;e==xe&&2==n.distr&&gn>0&&(t.min=b(t.min,r[0]),t.max=b(t.max,r[0]),t.min==t.max&&t.max++),Ie[e]=t,Yt=!0,ar()}}f.redraw=(e,t)=>{Wt=t||!1,!1!==e?gr(xe,Oe.min,Oe.max):ar()},f.setScale=cr;let fr=!1;const dr=Jt.drag;let hr=dr.x,mr=dr.y;Jt.show&&(Jt.x&&(Bn=c("u-cursor-x",F)),Jt.y&&($n=c("u-cursor-y",F)),0==Oe.ori?(Qn=Bn,Kn=$n):(Qn=$n,Kn=Bn),or=Jt.left,sr=Jt.top);const yr=f.select=ge({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),vr=yr.show?c("u-select",yr.over?F:C):null;function pr(e,t){if(yr.show){for(let t in e)a(vr,t,yr[t]=e[t]);!1!==t&&Ur("setSelect")}}function gr(e,t,n){cr(e,{min:t,max:n})}function wr(e,t,n,r){null!=t.focus&&function(e){if(e!=xr){let t=null==e,n=1!=Bt.alpha;X.forEach(((r,i)=>{let o=t||0==i||i==e;r._focus=t?null:o,n&&function(e,t){X[e].alpha=t,Jt.show&&Qt[e]&&(Qt[e].style.opacity=t);Ke&&rt[e]&&(rt[e].style.opacity=t)}(i,o?1:Bt.alpha)})),xr=e,n&&ar()}}(e),null!=t.show&&X.forEach(((n,r)=>{r>0&&(e==r||null==e)&&(n.show=t.show,function(e,t){let n=X[e],r=Ke?rt[e]:null;n.show?r&&u(r,"u-off"):(r&&s(r,"u-off"),Qt.length>1&&d(Qt[e],-10,-10,Vt,Ct))}(r,t.show),gr(2==h?n.facets[1].scale:n.scale,null,null),ar())})),!1!==n&&Ur("setSeries",e,t),r&&Jr("setSeries",f,e,t)}let kr,br,xr;f.setSelect=pr,f.setSeries=wr,f.addBand=function(e,t){e.fill=K(e.fill||null),e.dir=I(e.dir,-1),t=null==t?be.length:t,be.splice(t,0,e)},f.setBand=function(e,t){ge(be[e],t)},f.delBand=function(e){null==e?be.length=0:be.splice(e,1)};const Sr={focus:!0};function Tr(e,t,n){let r=we[t];n&&(e=e/i-(1==r.ori?At:zt));let o=Vt;1==r.ori&&(o=Ct,e=o-e),-1==r.dir&&(e=o-e);let s=r._min,u=s+(r._max-s)*(e/o),a=r.distr;return 3==a?W(10,u):4==a?((e,t=1)=>z.sinh(e)*t)(u,r.asinh):u}function Mr(e,t){a(vr,"left",yr.left=e),a(vr,"width",yr.width=t)}function Or(e,t){a(vr,"top",yr.top=e),a(vr,"height",yr.height=t)}Ke&&$t&&w("mouseleave",tt,(e=>{Jt._lock||null!=xr&&wr(null,Sr,!0,Hr.setSeries)})),f.valToIdx=e=>b(e,r[0]),f.posToIdx=function(e,t){return b(Tr(e,xe,t),r[0],wn,kn)},f.posToVal=Tr,f.valToPos=(e,t,n)=>0==we[t].ori?p(e,we[t],n?jt:Vt,n?Lt:0):g(e,we[t],n?Pt:Ct,n?Zt:0),f.batch=function(e){e(f),ar()},f.setCursor=(e,t,n)=>{or=e.left,sr=e.top,Ir(null,t,n)};let Dr=0==Oe.ori?Mr:Or,Nr=1==Oe.ori?Mr:Or;function Er(e,t){if(null!=e){let t=e.idx;Qe.idx=t,X.forEach(((e,n)=>{(n>0||!ot)&&_r(n,t)}))}Ke&&Qe.live&&function(){if(Ke&&Qe.live)for(let e=2==h?1:0;e<X.length;e++){if(0==e&&ot)continue;let t=Qe.values[e],n=0;for(let r in t)it[e][n++].firstChild.nodeValue=t[r]}}(),Ht=!1,!1!==t&&Ur("setLegend")}function _r(e,t){let n;if(null==t)n=dt;else{let i=X[e],o=0==e&&2==De?Vn:r[e];n=ot?i.values(f,e,t):{_:i.value(f,o[t],e,t)}}Qe.values[e]=n}function Ir(e,t,n){let i;rr=or,ir=sr,[or,sr]=Jt.move(f,or,sr),Jt.show&&(Qn&&d(Qn,j(or),0,Vt,Ct),Kn&&d(Kn,0,j(sr),Vt,Ct));let o=wn>kn;kr=J;let s=0==Oe.ori?Vt:Ct,u=1==Oe.ori?Vt:Ct;if(or<0||0==gn||o){i=null;for(let e=0;e<X.length;e++)e>0&&Qt.length>1&&d(Qt[e],-10,-10,Vt,Ct);if($t&&wr(null,Sr,!0,null==e&&Hr.setSeries),Qe.live){$e.fill(null),Ht=!0;for(let e=0;e<X.length;e++)Qe.values[e]=dt}}else{let e,t,n;1==h&&(e=0==Oe.ori?or:sr,t=Tr(e,xe),i=b(t,r[0],wn,kn),n=ie(Ne(r[0][i],Oe,s,0),.5));for(let e=2==h?1:0;e<X.length;e++){let o=X[e],a=$e[e],l=1==h?r[e][a]:r[e][1][a],c=Jt.dataIdx(f,e,i,t),y=1==h?r[e][c]:r[e][1][c];Ht=Ht||y!=l||c!=a,$e[e]=c;let p=c==i?n:ie(Ne(1==h?r[0][c]:r[e][0][c],Oe,s,0),.5);if(e>0&&o.show){let t,n,r=null==y?-10:ie(_e(y,1==h?we[o.scale]:we[o.facets[1].scale],u,0),.5);if(r>0&&1==h){let t=L(r-sr);t<=kr&&(kr=t,br=e)}if(0==Oe.ori?(t=p,n=r):(t=r,n=p),Ht&&Qt.length>1){m(Qt[e],Jt.points.fill(f,e),Jt.points.stroke(f,e));let r,i,o,s,u=!0,a=Jt.points.bbox;if(null!=a){u=!1;let t=a(f,e);o=t.left,s=t.top,r=t.width,i=t.height}else o=t,s=n,r=i=Jt.points.size(f,e);v(Qt[e],r,i,u),d(Qt[e],o,s,Vt,Ct)}}if(Qe.live){if(!Ht||0==e&&ot)continue;_r(e,c)}}}if(Jt.idx=i,Jt.left=or,Jt.top=sr,Ht&&(Qe.idx=i,Er()),yr.show&&fr)if(null!=e){let[t,n]=Hr.scales,[r,i]=Hr.match,[o,a]=e.cursor.sync.scales,l=e.cursor.drag;if(hr=l._x,mr=l._y,hr||mr){let l,c,f,d,h,{left:m,top:y,width:v,height:p}=e.select,g=e.scales[t].ori,w=e.posToVal,k=null!=t&&r(t,o),b=null!=n&&i(n,a);k&&hr?(0==g?(l=m,c=v):(l=y,c=p),f=we[t],d=Ne(w(l,o),f,s,0),h=Ne(w(l+c,o),f,s,0),Dr(Y(d,h),L(h-d))):Dr(0,s),b&&mr?(1==g?(l=m,c=v):(l=y,c=p),f=we[n],d=_e(w(l,a),f,u,0),h=_e(w(l+c,a),f,u,0),Nr(Y(d,h),L(h-d))):Nr(0,u)}else Lr()}else{let e=L(rr-Xn),t=L(ir-er);if(1==Oe.ori){let n=e;e=t,t=n}hr=dr.x&&e>=dr.dist,mr=dr.y&&t>=dr.dist;let n,r,i=dr.uni;null!=i?hr&&mr&&(hr=e>=i,mr=t>=i,hr||mr||(t>e?mr=!0:hr=!0)):dr.x&&dr.y&&(hr||mr)&&(hr=mr=!0),hr&&(0==Oe.ori?(n=tr,r=or):(n=nr,r=sr),Dr(Y(n,r),L(r-n)),mr||Nr(0,u)),mr&&(1==Oe.ori?(n=tr,r=or):(n=nr,r=sr),Nr(Y(n,r),L(r-n)),hr||Dr(0,s)),hr||mr||(Dr(0,0),Nr(0,0))}if(dr._x=hr,dr._y=mr,null==e){if(n){if(null!=Rr){let[e,t]=Hr.scales;Hr.values[0]=null!=e?Tr(0==Oe.ori?or:sr,e):null,Hr.values[1]=null!=t?Tr(1==Oe.ori?or:sr,t):null}Jr("mousemove",f,or,sr,Vt,Ct,i)}if($t){let e=n&&Hr.setSeries,t=Bt.prox;null==xr?kr<=t&&wr(br,Sr,!0,e):kr>t?wr(null,Sr,!0,e):br!=xr&&wr(br,Sr,!0,e)}}S&&!1!==t&&Ur("setCursor")}f.setLegend=Er;let Vr=null;function Cr(e){!0===e?Vr=null:(Vr=F.getBoundingClientRect(),Ur("syncRect",Vr))}function Fr(e,t,n,r,i,o,s){Jt._lock||(zr(e,t,n,r,i,o,s,!1,null!=e),null!=e?Ir(null,!0,!0):Ir(t,!0,!1))}function zr(e,t,n,r,i,o,s,u,a){if(null==Vr&&Cr(!1),null!=e)n=e.clientX-Vr.left,r=e.clientY-Vr.top;else{if(n<0||r<0)return or=-10,void(sr=-10);let[e,s]=Hr.scales,u=t.cursor.sync,[a,l]=u.values,[c,f]=u.scales,[d,h]=Hr.match,m=t.axes[0].side%2==1,y=0==Oe.ori?Vt:Ct,v=1==Oe.ori?Vt:Ct,p=m?o:i,g=m?i:o,w=m?r:n,k=m?n:r;if(n=null!=c?d(e,c)?x(a,we[e],y,0):-10:y*(w/p),r=null!=f?h(s,f)?x(l,we[s],v,0):-10:v*(k/g),1==Oe.ori){let e=n;n=r,r=e}}a&&((n<=1||n>=Vt-1)&&(n=$(n,Vt)),(r<=1||r>=Ct-1)&&(r=$(r,Ct))),u?(Xn=n,er=r,[tr,nr]=Jt.move(f,n,r)):(or=n,sr=r)}const Ar={width:0,height:0};function Lr(){pr(Ar,!1)}function Zr(e,n,r,i,o,s,u){fr=!0,hr=mr=dr._x=dr._y=!1,zr(e,n,r,i,o,s,0,!0,!1),null!=e&&(Ot("mouseup",t,jr),Jr("mousedown",f,tr,nr,Vt,Ct,null))}function jr(e,n,r,i,o,s,u){fr=dr._x=dr._y=!1,zr(e,n,r,i,o,s,0,!1,!0);let{left:a,top:l,width:c,height:d}=yr,h=c>0||d>0;if(h&&pr(yr),dr.setScale&&h){let e=a,t=c,n=l,r=d;if(1==Oe.ori&&(e=l,t=d,n=a,r=c),hr&&gr(xe,Tr(e,xe),Tr(e+t,xe)),mr)for(let e in we){let t=we[e];e!=xe&&null==t.from&&t.min!=J&&gr(e,Tr(n+r,e),Tr(n,e))}Lr()}else Jt.lock&&(Jt._lock=!Jt._lock,Jt._lock||Ir(null,!0,!1));null!=e&&(Nt("mouseup",t),Jr("mouseup",f,or,sr,Vt,Ct,null))}function Pr(e,t,n,r,i,o,s){zn(),Lr(),null!=e&&Jr("dblclick",f,or,sr,Vt,Ct,null)}function Yr(){le.forEach(hn),Rt(f.width,f.height,!0)}w("dppxchange",n,Yr);const qr={};qr.mousedown=Zr,qr.mousemove=Fr,qr.mouseup=jr,qr.dblclick=Pr,qr.setSeries=(e,t,n,r)=>{wr(n,r,!0,!1)},Jt.show&&(Ot("mousedown",F,Zr),Ot("mousemove",F,Fr),Ot("mouseenter",F,Cr),Ot("mouseleave",F,(function(e,t,n,r,i,o,s){if(!Jt._lock){let e=fr;if(fr){let e,t,n=!0,r=!0,i=10;0==Oe.ori?(e=hr,t=mr):(e=mr,t=hr),e&&t&&(n=or<=i||or>=Vt-i,r=sr<=i||sr>=Ct-i),e&&n&&(or=or<tr?0:Vt),t&&r&&(sr=sr<nr?0:Ct),Ir(null,!0,!0),fr=!1}or=-10,sr=-10,Ir(null,!0,!0),e&&(fr=e)}})),Ot("dblclick",F,Pr),Kt.add(f),f.syncRect=Cr);const Wr=f.hooks=e.hooks||{};function Ur(e,t,n){e in Wr&&Wr[e].forEach((e=>{e.call(null,f,t,n)}))}(e.plugins||[]).forEach((e=>{for(let t in e.hooks)Wr[t]=(Wr[t]||[]).concat(e.hooks[t])}));const Hr=ge({key:null,setSeries:!1,filters:{pub:ne,sub:ne},scales:[xe,X[1]?X[1].scale:null],match:[re,re],values:[null,null]},Jt.sync);Jt.sync=Hr;const Rr=Hr.key,Gr=Dt(Rr);function Jr(e,t,n,r,i,o,s){Hr.filters.pub(e,t,n,r,i,o,s)&&Gr.pub(e,t,n,r,i,o,s)}function Br(){Ur("init",e,r),Fn(r||e.data,!1),Ie[xe]?cr(xe,Ie[xe]):zn(),Rt(e.width,e.height),Ir(null,!0,!1),pr(yr,!1)}return Gr.sub(f),f.pub=function(e,t,n,r,i,o,s){Hr.filters.sub(e,t,n,r,i,o,s)&&qr[e](null,t,n,r,i,o,s)},f.destroy=function(){Gr.unsub(f),Kt.delete(f),kt.clear(),k("dppxchange",n,Yr),T.remove(),Ur("destroy")},X.forEach(Xt),le.forEach((function(e,t){if(e._show=e.show,e.show){let n=e.side%2,r=we[e.scale];null==r&&(e.scale=n?X[1].scale:xe,r=we[e.scale]);let i=r.time;e.size=K(e.size),e.space=K(e.space),e.rotate=K(e.rotate),e.incrs=K(e.incrs||(2==r.distr?ze:i?1==R?Ze:Ye:Ae)),e.splits=K(e.splits||(i&&1==r.distr?Fe:3==r.distr?ct:4==r.distr?ft:lt)),e.stroke=K(e.stroke),e.grid.stroke=K(e.grid.stroke),e.ticks.stroke=K(e.ticks.stroke),e.border.stroke=K(e.border.stroke);let o=e.values;e.values=he(o)&&!he(o[0])?K(o):i?he(o)?He(Ve,Ue(o,Ce)):me(o)?function(e,t){let n=Ee(t);return(t,r,i,o,s)=>r.map((t=>n(e(t))))}(Ve,o):o||Le:o||at,e.filter=K(e.filter||(r.distr>=3?vt:ee)),e.font=dn(e.font),e.labelFont=dn(e.labelFont),e._size=e.size(f,null,t,0),e._space=e._rotate=e._incrs=e._found=e._splits=e._values=null,e._size>0&&(mn[t]=!0,e._el=c("u-axis",V))}})),o?o instanceof HTMLElement?(o.appendChild(T),Br()):o(f,Br):Br(),f}mn.assign=ge,mn.fmtNum=F,mn.rangeNum=_,mn.rangeLog=M,mn.rangeAsinh=O,mn.orient=Nt,mn.pxRatio=i,mn.join=function(e,t){let n=new Set;for(let t=0;t<e.length;t++){let r=e[t][0],i=r.length;for(let e=0;e<i;e++)n.add(r[e])}let r=[Array.from(n).sort(((e,t)=>e-t))],i=r[0].length,o=new Map;for(let e=0;e<i;e++)o.set(r[0][e],e);for(let n=0;n<e.length;n++){let s=e[n],u=s[0];for(let e=1;e<s.length;e++){let a=s[e],l=Array(i).fill(void 0),c=t?t[n][e]:1,f=[];for(let e=0;e<a.length;e++){let t=a[e],n=o.get(u[e]);null===t?0!=c&&(l[n]=t,2==c&&f.push(n)):l[n]=t}we(l,f,i),r.push(l)}}return r},mn.fmtDate=Ee,mn.tzDate=function(e,t){let n;return"UTC"==t||"Etc/UTC"==t?n=new Date(+e+6e4*e.getTimezoneOffset()):t==_e?n=e:(n=new Date(e.toLocaleString("en-US",{timeZone:t})),n.setMilliseconds(e.getMilliseconds())),n},mn.sync=Dt;{mn.addGap=function(e,t,n){let r=e[e.length-1];r&&r[0]==t?r[1]=n:e.push([t,n])},mn.clipGaps=Vt;let e=mn.paths={points:Rt};e.linear=$t,e.stepped=function(e){const t=I(e.align,1),n=I(e.ascDesc,!1),r=I(e.alignGaps,0);return(e,o,s,u)=>Nt(e,o,((a,l,c,f,d,h,m,y,v,p,g)=>{let w=a.pxRound,k=e=>w(h(e,f,p,y)),b=e=>w(m(e,d,g,v)),S=0==f.ori?Zt:jt;const T={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:1},M=T.stroke,O=f.dir*(0==f.ori?1:-1);s=x(c,s,u,1),u=x(c,s,u,-1);let D=b(c[1==O?s:u]),N=k(l[1==O?s:u]),E=N;S(M,N,D);for(let e=1==O?s:u;e>=s&&e<=u;e+=O){let n=c[e];if(null==n)continue;let r=k(l[e]),i=b(n);1==t?S(M,r,D):S(M,E,i),S(M,r,i),D=i,E=r}let[_,I]=Et(e,o);if(null!=a.fill||0!=_){let t=T.fill=new Path2D(M),n=b(a.fillTo(e,o,a.min,a.max,_));S(t,E,n),S(t,N,n)}if(!a.spanGaps){let d=[];d.push(...Ct(l,c,s,u,O,k,r));let h=a.width*i/2,m=n||1==t?h:-h,w=n||-1==t?-h:h;d.forEach((e=>{e[0]+=m,e[1]+=w})),T.gaps=d=a.gaps(e,o,s,u,d),T.clip=Vt(d,f.ori,y,v,p,g)}return 0!=I&&(T.band=2==I?[It(e,o,s,u,M,-1),It(e,o,s,u,M,1)]:It(e,o,s,u,M,I)),T}))},e.bars=function(e){const t=I((e=e||ce).size,[.6,J,1]),n=e.align||0,r=(e.gap||0)*i,o=I(e.radius,0),s=1-t[0],u=I(t[1],J)*i,a=I(t[2],1)*i,l=I(e.disp,ce),c=I(e.each,(e=>{})),{fill:f,stroke:d}=l;return(e,t,h,m)=>Nt(e,t,((y,v,p,g,w,k,b,x,S,T,M)=>{let O=y.pxRound;const D=g.dir*(0==g.ori?1:-1),N=w.dir*(1==w.ori?1:-1);let E,_,V=0==g.ori?Pt:Yt,C=0==g.ori?c:(e,t,n,r,i,o,s)=>{c(e,t,n,i,r,s,o)},[F,z]=Et(e,t),A=3==w.distr?1==F?w.max:w.min:0,j=b(A,w,M,S),P=O(y.width*i),W=!1,U=null,H=null,R=null,G=null;null==f||0!=P&&null==d||(W=!0,U=f.values(e,t,h,m),H=new Map,new Set(U).forEach((e=>{null!=e&&H.set(e,new Path2D)})),P>0&&(R=d.values(e,t,h,m),G=new Map,new Set(R).forEach((e=>{null!=e&&G.set(e,new Path2D)}))));let{x0:J,size:B}=l;if(null!=J&&null!=B){v=J.values(e,t,h,m),2==J.unit&&(v=v.map((t=>e.posToVal(x+t*T,g.key,!0))));let n=B.values(e,t,h,m);_=2==B.unit?n[0]*T:k(n[0],g,T,x)-k(0,g,T,x),_=O(_-P),E=1==D?-P/2:_+P/2}else{let e=T;if(v.length>1){let t=null;for(let n=0,r=1/0;n<v.length;n++)if(void 0!==p[n]){if(null!=t){let i=L(v[n]-v[t]);i<r&&(r=i,e=L(k(v[n],g,T,x)-k(v[t],g,T,x)))}t=n}}_=O(Y(u,q(a,e-e*s))-P-r),E=(0==n?_/2:n==D?0:_)-n*D*r/2}const $={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:3};let Q;0!=z&&($.band=new Path2D,Q=O(b(1==z?w.max:w.min,w,M,S)));const K=W?null:new Path2D,X=$.band;let{y0:ee,y1:te}=l,ne=null;null!=ee&&null!=te&&(p=te.values(e,t,h,m),ne=ee.values(e,t,h,m));for(let n=1==D?h:m;n>=h&&n<=m;n+=D){let r=p[n],i=k(2!=g.distr||null!=l?v[n]:n,g,T,x),s=b(I(r,A),w,M,S);null!=ne&&null!=r&&(j=b(ne[n],w,M,S));let u=O(i-E),a=O(q(s,j)),c=O(Y(s,j)),f=a-c,d=o*_;null!=r&&(W?(P>0&&null!=R[n]&&V(G.get(R[n]),u,c+Z(P/2),_,q(0,f-P),d),null!=U[n]&&V(H.get(U[n]),u,c+Z(P/2),_,q(0,f-P),d)):V(K,u,c+Z(P/2),_,q(0,f-P),d),C(e,t,n,u-P/2,c,_+P,f)),0!=z&&(N*z==1?(a=c,c=Q):(c=a,a=Q),f=a-c,V(X,u-P/2,c,_+P,q(0,f),0))}return P>0&&($.stroke=W?G:K),$.fill=W?H:K,$}))},e.spline=function(e){return function(e,t){const n=I(t?.alignGaps,0);return(t,r,i,o)=>Nt(t,r,((s,u,a,l,c,f,d,h,m,y,v)=>{let p,g,w,k=s.pxRound,b=e=>k(f(e,l,y,h)),S=e=>k(d(e,c,v,m));0==l.ori?(p=At,w=Zt,g=Ut):(p=Lt,w=jt,g=Ht);const T=l.dir*(0==l.ori?1:-1);i=x(a,i,o,1),o=x(a,i,o,-1);let M=b(u[1==T?i:o]),O=M,D=[],N=[];for(let e=1==T?i:o;e>=i&&e<=o;e+=T)if(null!=a[e]){let t=b(u[e]);D.push(O=t),N.push(S(a[e]))}const E={stroke:e(D,N,p,w,g,k),fill:null,clip:null,band:null,gaps:null,flags:1},_=E.stroke;let[I,V]=Et(t,r);if(null!=s.fill||0!=I){let e=E.fill=new Path2D(_),n=S(s.fillTo(t,r,s.min,s.max,I));w(e,O,n),w(e,M,n)}if(!s.spanGaps){let e=[];e.push(...Ct(u,a,i,o,T,b,n)),E.gaps=e=s.gaps(t,r,i,o,e),E.clip=Vt(e,l.ori,h,m,y,v)}return 0!=V&&(E.band=2==V?[It(t,r,i,o,_,-1),It(t,r,i,o,_,1)]:It(t,r,i,o,_,V)),E}))}(Qt,e)}}var yn={};function vn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function pn(e,t,n){return t&&vn(e.prototype,t),n&&vn(e,n),e}function gn(){return gn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gn.apply(this,arguments)}function wn(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,bn(e,t)}function kn(e){return(kn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function bn(e,t){return(bn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function xn(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function Sn(e,t,n){return(Sn=xn()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&bn(i,n.prototype),i}).apply(null,arguments)}function Tn(e){var t="function"==typeof Map?new Map:void 0;return Tn=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return Sn(e,arguments,kn(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),bn(r,e)},Tn(e)}function Mn(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}function On(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Dn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return On(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?On(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}Object.defineProperty(yn,"__esModule",{value:!0});var Nn=function(e){function t(){return e.apply(this,arguments)||this}return wn(t,e),t}(Tn(Error)),En=function(e){function t(t){return e.call(this,"Invalid DateTime: "+t.toMessage())||this}return wn(t,e),t}(Nn),_n=function(e){function t(t){return e.call(this,"Invalid Interval: "+t.toMessage())||this}return wn(t,e),t}(Nn),In=function(e){function t(t){return e.call(this,"Invalid Duration: "+t.toMessage())||this}return wn(t,e),t}(Nn),Vn=function(e){function t(){return e.apply(this,arguments)||this}return wn(t,e),t}(Nn),Cn=function(e){function t(t){return e.call(this,"Invalid unit "+t)||this}return wn(t,e),t}(Nn),Fn=function(e){function t(){return e.apply(this,arguments)||this}return wn(t,e),t}(Nn),zn=function(e){function t(){return e.call(this,"Zone is an abstract class")||this}return wn(t,e),t}(Nn),An={year:"numeric",month:"numeric",day:"numeric"},Ln={year:"numeric",month:"short",day:"numeric"},Zn={year:"numeric",month:"short",day:"numeric",weekday:"short"},jn={year:"numeric",month:"long",day:"numeric"},Pn={year:"numeric",month:"long",day:"numeric",weekday:"long"},Yn={hour:"numeric",minute:"numeric"},qn={hour:"numeric",minute:"numeric",second:"numeric"},Wn={hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},Un={hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"long"},Hn={hour:"numeric",minute:"numeric",hourCycle:"h23"},Rn={hour:"numeric",minute:"numeric",second:"numeric",hourCycle:"h23"},Gn={hour:"numeric",minute:"numeric",second:"numeric",hourCycle:"h23",timeZoneName:"short"},Jn={hour:"numeric",minute:"numeric",second:"numeric",hourCycle:"h23",timeZoneName:"long"},Bn={year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric"},$n={year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},Qn={year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric"},Kn={year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},Xn={year:"numeric",month:"short",day:"numeric",weekday:"short",hour:"numeric",minute:"numeric"},er={year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",timeZoneName:"short"},tr={year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},nr={year:"numeric",month:"long",day:"numeric",weekday:"long",hour:"numeric",minute:"numeric",timeZoneName:"long"},rr={year:"numeric",month:"long",day:"numeric",weekday:"long",hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"long"};function ir(e){return void 0===e}function or(e){return"number"==typeof e}function sr(e){return"number"==typeof e&&e%1==0}function ur(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function ar(e,t,n){if(0!==e.length)return e.reduce((function(e,r){var i=[t(r),r];return e&&n(e[0],i[0])===e[0]?e:i}),null)[1]}function lr(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function cr(e,t,n){return sr(e)&&e>=t&&e<=n}function fr(e,t){return void 0===t&&(t=2),e<0?"-"+(""+-e).padStart(t,"0"):(""+e).padStart(t,"0")}function dr(e){return ir(e)||null===e||""===e?void 0:parseInt(e,10)}function hr(e){return ir(e)||null===e||""===e?void 0:parseFloat(e)}function mr(e){if(!ir(e)&&null!==e&&""!==e){var t=1e3*parseFloat("0."+e);return Math.floor(t)}}function yr(e,t,n){void 0===n&&(n=!1);var r=Math.pow(10,t);return(n?Math.trunc:Math.round)(e*r)/r}function vr(e){return e%4==0&&(e%100!=0||e%400==0)}function pr(e){return vr(e)?366:365}function gr(e,t){var n,r,i=(n=t-1)-(r=12)*Math.floor(n/r)+1;return 2===i?vr(e+(t-i)/12)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][i-1]}function wr(e){var t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t)).setUTCFullYear(t.getUTCFullYear()-1900),+t}function kr(e){var t=(e+Math.floor(e/4)-Math.floor(e/100)+Math.floor(e/400))%7,n=e-1,r=(n+Math.floor(n/4)-Math.floor(n/100)+Math.floor(n/400))%7;return 4===t||3===r?53:52}function br(e){return e>99?e:e>60?1900+e:2e3+e}function xr(e,t,n,r){void 0===r&&(r=null);var i=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);var s=gn({timeZoneName:t},o),u=new Intl.DateTimeFormat(n,s).formatToParts(i).find((function(e){return"timezonename"===e.type.toLowerCase()}));return u?u.value:null}function Sr(e,t){var n=parseInt(e,10);Number.isNaN(n)&&(n=0);var r=parseInt(t,10)||0;return 60*n+(n<0||Object.is(n,-0)?-r:r)}function Tr(e){var t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new Fn("Invalid unit value "+e);return t}function Mr(e,t){var n={};for(var r in e)if(lr(e,r)){var i=e[r];if(null==i)continue;n[t(r)]=Tr(i)}return n}function Or(e,t){var n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(t){case"short":return""+i+fr(n,2)+":"+fr(r,2);case"narrow":return""+i+n+(r>0?":"+r:"");case"techie":return""+i+fr(n,2)+fr(r,2);default:throw new RangeError("Value format "+t+" is out of range for property format")}}function Dr(e){return function(e,t){return t.reduce((function(t,n){return t[n]=e[n],t}),{})}(e,["hour","minute","second","millisecond"])}var Nr=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/,Er=["January","February","March","April","May","June","July","August","September","October","November","December"],_r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Ir=["J","F","M","A","M","J","J","A","S","O","N","D"];function Vr(e){switch(e){case"narrow":return[].concat(Ir);case"short":return[].concat(_r);case"long":return[].concat(Er);case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var Cr=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Fr=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],zr=["M","T","W","T","F","S","S"];function Ar(e){switch(e){case"narrow":return[].concat(zr);case"short":return[].concat(Fr);case"long":return[].concat(Cr);case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Lr=["AM","PM"],Zr=["Before Christ","Anno Domini"],jr=["BC","AD"],Pr=["B","A"];function Yr(e){switch(e){case"narrow":return[].concat(Pr);case"short":return[].concat(jr);case"long":return[].concat(Zr);default:return null}}function qr(e,t){for(var n,r="",i=Dn(e);!(n=i()).done;){var o=n.value;o.literal?r+=o.val:r+=t(o.val)}return r}var Wr={D:An,DD:Ln,DDD:jn,DDDD:Pn,t:Yn,tt:qn,ttt:Wn,tttt:Un,T:Hn,TT:Rn,TTT:Gn,TTTT:Jn,f:Bn,ff:Qn,fff:er,ffff:nr,F:$n,FF:Kn,FFF:tr,FFFF:rr},Ur=function(){function e(e,t){this.opts=t,this.loc=e,this.systemLoc=null}e.create=function(t,n){return void 0===n&&(n={}),new e(t,n)},e.parseFormat=function(e){for(var t=null,n="",r=!1,i=[],o=0;o<e.length;o++){var s=e.charAt(o);"'"===s?(n.length>0&&i.push({literal:r,val:n}),t=null,n="",r=!r):r||s===t?n+=s:(n.length>0&&i.push({literal:!1,val:n}),n=s,t=s)}return n.length>0&&i.push({literal:r,val:n}),i},e.macroTokenToFormatOpts=function(e){return Wr[e]};var t=e.prototype;return t.formatWithSystemDefault=function(e,t){return null===this.systemLoc&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,gn({},this.opts,t)).format()},t.formatDateTime=function(e,t){return void 0===t&&(t={}),this.loc.dtFormatter(e,gn({},this.opts,t)).format()},t.formatDateTimeParts=function(e,t){return void 0===t&&(t={}),this.loc.dtFormatter(e,gn({},this.opts,t)).formatToParts()},t.resolvedOptions=function(e,t){return void 0===t&&(t={}),this.loc.dtFormatter(e,gn({},this.opts,t)).resolvedOptions()},t.num=function(e,t){if(void 0===t&&(t=0),this.opts.forceSimple)return fr(e,t);var n=gn({},this.opts);return t>0&&(n.padTo=t),this.loc.numberFormatter(n).format(e)},t.formatDateTimeFromString=function(t,n){var r=this,i="en"===this.loc.listingMode(),o=this.loc.outputCalendar&&"gregory"!==this.loc.outputCalendar,s=function(e,n){return r.loc.extract(t,e,n)},u=function(e){return t.isOffsetFixed&&0===t.offset&&e.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,e.format):""},a=function(){return i?function(e){return Lr[e.hour<12?0:1]}(t):s({hour:"numeric",hourCycle:"h12"},"dayperiod")},l=function(e,n){return i?function(e,t){return Vr(t)[e.month-1]}(t,e):s(n?{month:e}:{month:e,day:"numeric"},"month")},c=function(e,n){return i?function(e,t){return Ar(t)[e.weekday-1]}(t,e):s(n?{weekday:e}:{weekday:e,month:"long",day:"numeric"},"weekday")},f=function(e){return i?function(e,t){return Yr(t)[e.year<0?0:1]}(t,e):s({era:e},"era")};return qr(e.parseFormat(n),(function(n){switch(n){case"S":return r.num(t.millisecond);case"u":case"SSS":return r.num(t.millisecond,3);case"s":return r.num(t.second);case"ss":return r.num(t.second,2);case"uu":return r.num(Math.floor(t.millisecond/10),2);case"uuu":return r.num(Math.floor(t.millisecond/100));case"m":return r.num(t.minute);case"mm":return r.num(t.minute,2);case"h":return r.num(t.hour%12==0?12:t.hour%12);case"hh":return r.num(t.hour%12==0?12:t.hour%12,2);case"H":return r.num(t.hour);case"HH":return r.num(t.hour,2);case"Z":return u({format:"narrow",allowZ:r.opts.allowZ});case"ZZ":return u({format:"short",allowZ:r.opts.allowZ});case"ZZZ":return u({format:"techie",allowZ:r.opts.allowZ});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:r.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:r.loc.locale});case"z":return t.zoneName;case"a":return a();case"d":return o?s({day:"numeric"},"day"):r.num(t.day);case"dd":return o?s({day:"2-digit"},"day"):r.num(t.day,2);case"c":case"E":return r.num(t.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return o?s({month:"numeric",day:"numeric"},"month"):r.num(t.month);case"LL":return o?s({month:"2-digit",day:"numeric"},"month"):r.num(t.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return o?s({month:"numeric"},"month"):r.num(t.month);case"MM":return o?s({month:"2-digit"},"month"):r.num(t.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return o?s({year:"numeric"},"year"):r.num(t.year);case"yy":return o?s({year:"2-digit"},"year"):r.num(t.year.toString().slice(-2),2);case"yyyy":return o?s({year:"numeric"},"year"):r.num(t.year,4);case"yyyyyy":return o?s({year:"numeric"},"year"):r.num(t.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return r.num(t.weekYear.toString().slice(-2),2);case"kkkk":return r.num(t.weekYear,4);case"W":return r.num(t.weekNumber);case"WW":return r.num(t.weekNumber,2);case"o":return r.num(t.ordinal);case"ooo":return r.num(t.ordinal,3);case"q":return r.num(t.quarter);case"qq":return r.num(t.quarter,2);case"X":return r.num(Math.floor(t.ts/1e3));case"x":return r.num(t.ts);default:return function(n){var i=e.macroTokenToFormatOpts(n);return i?r.formatWithSystemDefault(t,i):n}(n)}}))},t.formatDurationFromString=function(t,n){var r,i=this,o=function(e){switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},s=e.parseFormat(n),u=s.reduce((function(e,t){var n=t.literal,r=t.val;return n?e:e.concat(r)}),[]),a=t.shiftTo.apply(t,u.map(o).filter((function(e){return e})));return qr(s,(r=a,function(e){var t=o(e);return t?i.num(r.get(t),e.length):e}))},e}(),Hr=function(){function e(e,t){this.reason=e,this.explanation=t}return e.prototype.toMessage=function(){return this.explanation?this.reason+": "+this.explanation:this.reason},e}(),Rr=function(){function e(){}var t=e.prototype;return t.offsetName=function(e,t){throw new zn},t.formatOffset=function(e,t){throw new zn},t.offset=function(e){throw new zn},t.equals=function(e){throw new zn},pn(e,[{key:"type",get:function(){throw new zn}},{key:"name",get:function(){throw new zn}},{key:"ianaName",get:function(){return this.name}},{key:"isUniversal",get:function(){throw new zn}},{key:"isValid",get:function(){throw new zn}}]),e}(),Gr=null,Jr=function(e){function t(){return e.apply(this,arguments)||this}wn(t,e);var n=t.prototype;return n.offsetName=function(e,t){return xr(e,t.format,t.locale)},n.formatOffset=function(e,t){return Or(this.offset(e),t)},n.offset=function(e){return-new Date(e).getTimezoneOffset()},n.equals=function(e){return"system"===e.type},pn(t,[{key:"type",get:function(){return"system"}},{key:"name",get:function(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return!0}}],[{key:"instance",get:function(){return null===Gr&&(Gr=new t),Gr}}]),t}(Rr),Br={};var $r={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};var Qr={},Kr=function(e){function t(n){var r;return(r=e.call(this)||this).zoneName=n,r.valid=t.isValidZone(n),r}wn(t,e),t.create=function(e){return Qr[e]||(Qr[e]=new t(e)),Qr[e]},t.resetCache=function(){Qr={},Br={}},t.isValidSpecifier=function(e){return this.isValidZone(e)},t.isValidZone=function(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch(e){return!1}};var n=t.prototype;return n.offsetName=function(e,t){return xr(e,t.format,t.locale,this.name)},n.formatOffset=function(e,t){return Or(this.offset(e),t)},n.offset=function(e){var t=new Date(e);if(isNaN(t))return NaN;var n,r=(n=this.name,Br[n]||(Br[n]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:n,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Br[n]),i=r.formatToParts?function(e,t){for(var n=e.formatToParts(t),r=[],i=0;i<n.length;i++){var o=n[i],s=o.type,u=o.value,a=$r[s];"era"===s?r[a]=u:ir(a)||(r[a]=parseInt(u,10))}return r}(r,t):function(e,t){var n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),i=r[1],o=r[2];return[r[3],i,o,r[4],r[5],r[6],r[7]]}(r,t),o=i[0],s=i[1],u=i[2],a=i[3],l=i[4],c=i[5],f=i[6];"BC"===a&&(o=1-Math.abs(o));var d=+t,h=d%1e3;return(wr({year:o,month:s,day:u,hour:24===l?0:l,minute:c,second:f,millisecond:0})-(d-=h>=0?h:1e3+h))/6e4},n.equals=function(e){return"iana"===e.type&&e.name===this.name},pn(t,[{key:"type",get:function(){return"iana"}},{key:"name",get:function(){return this.zoneName}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return this.valid}}]),t}(Rr),Xr=null,ei=function(e){function t(t){var n;return(n=e.call(this)||this).fixed=t,n}wn(t,e),t.instance=function(e){return 0===e?t.utcInstance:new t(e)},t.parseSpecifier=function(e){if(e){var n=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new t(Sr(n[1],n[2]))}return null};var n=t.prototype;return n.offsetName=function(){return this.name},n.formatOffset=function(e,t){return Or(this.fixed,t)},n.offset=function(){return this.fixed},n.equals=function(e){return"fixed"===e.type&&e.fixed===this.fixed},pn(t,[{key:"type",get:function(){return"fixed"}},{key:"name",get:function(){return 0===this.fixed?"UTC":"UTC"+Or(this.fixed,"narrow")}},{key:"ianaName",get:function(){return 0===this.fixed?"Etc/UTC":"Etc/GMT"+Or(-this.fixed,"narrow")}},{key:"isUniversal",get:function(){return!0}},{key:"isValid",get:function(){return!0}}],[{key:"utcInstance",get:function(){return null===Xr&&(Xr=new t(0)),Xr}}]),t}(Rr),ti=function(e){function t(t){var n;return(n=e.call(this)||this).zoneName=t,n}wn(t,e);var n=t.prototype;return n.offsetName=function(){return null},n.formatOffset=function(){return""},n.offset=function(){return NaN},n.equals=function(){return!1},pn(t,[{key:"type",get:function(){return"invalid"}},{key:"name",get:function(){return this.zoneName}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return!1}}]),t}(Rr);function ni(e,t){if(ir(e)||null===e)return t;if(e instanceof Rr)return e;if("string"==typeof e){var n=e.toLowerCase();return"local"===n||"system"===n?t:"utc"===n||"gmt"===n?ei.utcInstance:ei.parseSpecifier(n)||Kr.create(e)}return or(e)?ei.instance(e):"object"==typeof e&&e.offset&&"number"==typeof e.offset?e:new ti(e)}var ri,ii=function(){return Date.now()},oi="system",si=null,ui=null,ai=null,li=function(){function e(){}return e.resetCaches=function(){xi.resetCache(),Kr.resetCache()},pn(e,null,[{key:"now",get:function(){return ii},set:function(e){ii=e}},{key:"defaultZone",get:function(){return ni(oi,Jr.instance)},set:function(e){oi=e}},{key:"defaultLocale",get:function(){return si},set:function(e){si=e}},{key:"defaultNumberingSystem",get:function(){return ui},set:function(e){ui=e}},{key:"defaultOutputCalendar",get:function(){return ai},set:function(e){ai=e}},{key:"throwOnInvalid",get:function(){return ri},set:function(e){ri=e}}]),e}(),ci=["base"],fi=["padTo","floor"],di={};var hi={};function mi(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),r=hi[n];return r||(r=new Intl.DateTimeFormat(e,t),hi[n]=r),r}var yi={};var vi={};var pi=null;function gi(e,t,n,r,i){var o=e.listingMode(n);return"error"===o?null:"en"===o?r(t):i(t)}var wi=function(){function e(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1,n.padTo,n.floor;var r=Mn(n,fi);if(!t||Object.keys(r).length>0){var i=gn({useGrouping:!1},n);n.padTo>0&&(i.minimumIntegerDigits=n.padTo),this.inf=function(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),r=yi[n];return r||(r=new Intl.NumberFormat(e,t),yi[n]=r),r}(e,i)}}return e.prototype.format=function(e){if(this.inf){var t=this.floor?Math.floor(e):e;return this.inf.format(t)}return fr(this.floor?Math.floor(e):yr(e,3),this.padTo)},e}(),ki=function(){function e(e,t,n){var r;if(this.opts=n,e.zone.isUniversal){var i=e.offset/60*-1,o=i>=0?"Etc/GMT+"+i:"Etc/GMT"+i;0!==e.offset&&Kr.create(o).valid?(r=o,this.dt=e):(r="UTC",n.timeZoneName?this.dt=e:this.dt=0===e.offset?e:ps.fromMillis(e.ts+6e4*e.offset))}else"system"===e.zone.type?this.dt=e:(this.dt=e,r=e.zone.name);var s=gn({},this.opts);r&&(s.timeZone=r),this.dtf=mi(t,s)}var t=e.prototype;return t.format=function(){return this.dtf.format(this.dt.toJSDate())},t.formatToParts=function(){return this.dtf.formatToParts(this.dt.toJSDate())},t.resolvedOptions=function(){return this.dtf.resolvedOptions()},e}(),bi=function(){function e(e,t,n){this.opts=gn({style:"long"},n),!t&&ur()&&(this.rtf=function(e,t){void 0===t&&(t={});var n=t;n.base;var r=Mn(n,ci),i=JSON.stringify([e,r]),o=vi[i];return o||(o=new Intl.RelativeTimeFormat(e,t),vi[i]=o),o}(e,n))}var t=e.prototype;return t.format=function(e,t){return this.rtf?this.rtf.format(e,t):function(e,t,n,r){void 0===n&&(n="always"),void 0===r&&(r=!1);var i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=-1===["hours","minutes","seconds"].indexOf(e);if("auto"===n&&o){var s="days"===e;switch(t){case 1:return s?"tomorrow":"next "+i[e][0];case-1:return s?"yesterday":"last "+i[e][0];case 0:return s?"today":"this "+i[e][0]}}var u=Object.is(t,-0)||t<0,a=Math.abs(t),l=1===a,c=i[e],f=r?l?c[1]:c[2]||c[1]:l?i[e][0]:e;return u?a+" "+f+" ago":"in "+a+" "+f}(t,e,this.opts.numeric,"long"!==this.opts.style)},t.formatToParts=function(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]},e}(),xi=function(){function e(e,t,n,r){var i=function(e){var t=e.indexOf("-u-");if(-1===t)return[e];var n,r=e.substring(0,t);try{n=mi(e).resolvedOptions()}catch(e){n=mi(r).resolvedOptions()}var i=n;return[r,i.numberingSystem,i.calendar]}(e),o=i[0],s=i[1],u=i[2];this.locale=o,this.numberingSystem=t||s||null,this.outputCalendar=n||u||null,this.intl=function(e,t,n){return n||t?(e+="-u",n&&(e+="-ca-"+n),t&&(e+="-nu-"+t),e):e}(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=r,this.fastNumbersCached=null}e.fromOpts=function(t){return e.create(t.locale,t.numberingSystem,t.outputCalendar,t.defaultToEN)},e.create=function(t,n,r,i){void 0===i&&(i=!1);var o=t||li.defaultLocale;return new e(o||(i?"en-US":pi||(pi=(new Intl.DateTimeFormat).resolvedOptions().locale)),n||li.defaultNumberingSystem,r||li.defaultOutputCalendar,o)},e.resetCache=function(){pi=null,hi={},yi={},vi={}},e.fromObject=function(t){var n=void 0===t?{}:t,r=n.locale,i=n.numberingSystem,o=n.outputCalendar;return e.create(r,i,o)};var t=e.prototype;return t.listingMode=function(){var e=this.isEnglish(),t=!(null!==this.numberingSystem&&"latn"!==this.numberingSystem||null!==this.outputCalendar&&"gregory"!==this.outputCalendar);return e&&t?"en":"intl"},t.clone=function(t){return t&&0!==Object.getOwnPropertyNames(t).length?e.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,t.defaultToEN||!1):this},t.redefaultToEN=function(e){return void 0===e&&(e={}),this.clone(gn({},e,{defaultToEN:!0}))},t.redefaultToSystem=function(e){return void 0===e&&(e={}),this.clone(gn({},e,{defaultToEN:!1}))},t.months=function(e,t,n){var r=this;return void 0===t&&(t=!1),void 0===n&&(n=!0),gi(this,e,n,Vr,(function(){var n=t?{month:e,day:"numeric"}:{month:e},i=t?"format":"standalone";return r.monthsCache[i][e]||(r.monthsCache[i][e]=function(e){for(var t=[],n=1;n<=12;n++){var r=ps.utc(2016,n,1);t.push(e(r))}return t}((function(e){return r.extract(e,n,"month")}))),r.monthsCache[i][e]}))},t.weekdays=function(e,t,n){var r=this;return void 0===t&&(t=!1),void 0===n&&(n=!0),gi(this,e,n,Ar,(function(){var n=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=t?"format":"standalone";return r.weekdaysCache[i][e]||(r.weekdaysCache[i][e]=function(e){for(var t=[],n=1;n<=7;n++){var r=ps.utc(2016,11,13+n);t.push(e(r))}return t}((function(e){return r.extract(e,n,"weekday")}))),r.weekdaysCache[i][e]}))},t.meridiems=function(e){var t=this;return void 0===e&&(e=!0),gi(this,void 0,e,(function(){return Lr}),(function(){if(!t.meridiemCache){var e={hour:"numeric",hourCycle:"h12"};t.meridiemCache=[ps.utc(2016,11,13,9),ps.utc(2016,11,13,19)].map((function(n){return t.extract(n,e,"dayperiod")}))}return t.meridiemCache}))},t.eras=function(e,t){var n=this;return void 0===t&&(t=!0),gi(this,e,t,Yr,(function(){var t={era:e};return n.eraCache[e]||(n.eraCache[e]=[ps.utc(-40,1,1),ps.utc(2017,1,1)].map((function(e){return n.extract(e,t,"era")}))),n.eraCache[e]}))},t.extract=function(e,t,n){var r=this.dtFormatter(e,t).formatToParts().find((function(e){return e.type.toLowerCase()===n}));return r?r.value:null},t.numberFormatter=function(e){return void 0===e&&(e={}),new wi(this.intl,e.forceSimple||this.fastNumbers,e)},t.dtFormatter=function(e,t){return void 0===t&&(t={}),new ki(e,this.intl,t)},t.relFormatter=function(e){return void 0===e&&(e={}),new bi(this.intl,this.isEnglish(),e)},t.listFormatter=function(e){return void 0===e&&(e={}),function(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),r=di[n];return r||(r=new Intl.ListFormat(e,t),di[n]=r),r}(this.intl,e)},t.isEnglish=function(){return"en"===this.locale||"en-us"===this.locale.toLowerCase()||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")},t.equals=function(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar},pn(e,[{key:"fastNumbers",get:function(){var e;return null==this.fastNumbersCached&&(this.fastNumbersCached=(!(e=this).numberingSystem||"latn"===e.numberingSystem)&&("latn"===e.numberingSystem||!e.locale||e.locale.startsWith("en")||"latn"===new Intl.DateTimeFormat(e.intl).resolvedOptions().numberingSystem)),this.fastNumbersCached}}]),e}();function Si(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.reduce((function(e,t){return e+t.source}),"");return RegExp("^"+r+"$")}function Ti(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return t.reduce((function(t,n){var r=t[0],i=t[1],o=t[2],s=n(e,o),u=s[0],a=s[1],l=s[2];return[gn({},r,u),a||i,l]}),[{},null,1]).slice(0,2)}}function Mi(e){if(null==e)return[null,null];for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var i=0,o=n;i<o.length;i++){var s=o[i],u=s[0],a=s[1],l=u.exec(e);if(l)return a(l)}return[null,null]}function Oi(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e,n){var r,i={};for(r=0;r<t.length;r++)i[t[r]]=dr(e[n+r]);return[i,null,n+r]}}var Di=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Ni=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Ei=RegExp(""+Ni.source+("(?:"+Di.source+"?(?:\\[("+Nr.source+")\\])?)?")),_i=RegExp("(?:T"+Ei.source+")?"),Ii=Oi("weekYear","weekNumber","weekDay"),Vi=Oi("year","ordinal"),Ci=RegExp(Ni.source+" ?(?:"+Di.source+"|("+Nr.source+"))?"),Fi=RegExp("(?: "+Ci.source+")?");function zi(e,t,n){var r=e[t];return ir(r)?n:dr(r)}function Ai(e,t){return[{hours:zi(e,t,0),minutes:zi(e,t+1,0),seconds:zi(e,t+2,0),milliseconds:mr(e[t+3])},null,t+4]}function Li(e,t){var n=!e[t]&&!e[t+1],r=Sr(e[t+1],e[t+2]);return[{},n?null:ei.instance(r),t+3]}function Zi(e,t){return[{},e[t]?Kr.create(e[t]):null,t+1]}var ji=RegExp("^T?"+Ni.source+"$"),Pi=/^-?P(?:(?:(-?\d{1,9}(?:\.\d{1,9})?)Y)?(?:(-?\d{1,9}(?:\.\d{1,9})?)M)?(?:(-?\d{1,9}(?:\.\d{1,9})?)W)?(?:(-?\d{1,9}(?:\.\d{1,9})?)D)?(?:T(?:(-?\d{1,9}(?:\.\d{1,9})?)H)?(?:(-?\d{1,9}(?:\.\d{1,9})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,9}))?S)?)?)$/;function Yi(e){var t=e[0],n=e[1],r=e[2],i=e[3],o=e[4],s=e[5],u=e[6],a=e[7],l=e[8],c="-"===t[0],f=a&&"-"===a[0],d=function(e,t){return void 0===t&&(t=!1),void 0!==e&&(t||e&&c)?-e:e};return[{years:d(hr(n)),months:d(hr(r)),weeks:d(hr(i)),days:d(hr(o)),hours:d(hr(s)),minutes:d(hr(u)),seconds:d(hr(a),"-0"===a),milliseconds:d(mr(l),f)}]}var qi={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Wi(e,t,n,r,i,o,s){var u={year:2===t.length?br(dr(t)):dr(t),month:_r.indexOf(n)+1,day:dr(r),hour:dr(i),minute:dr(o)};return s&&(u.second=dr(s)),e&&(u.weekday=e.length>3?Cr.indexOf(e)+1:Fr.indexOf(e)+1),u}var Ui=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Hi(e){var t,n=e[1],r=e[2],i=e[3],o=e[4],s=e[5],u=e[6],a=e[7],l=e[8],c=e[9],f=e[10],d=e[11],h=Wi(n,o,i,r,s,u,a);return t=l?qi[l]:c?0:Sr(f,d),[h,new ei(t)]}var Ri=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Gi=/^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Ji=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Bi(e){var t=e[1],n=e[2],r=e[3];return[Wi(t,e[4],r,n,e[5],e[6],e[7]),ei.utcInstance]}function $i(e){var t=e[1],n=e[2],r=e[3],i=e[4],o=e[5],s=e[6];return[Wi(t,e[7],n,r,i,o,s),ei.utcInstance]}var Qi=Si(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,_i),Ki=Si(/(\d{4})-?W(\d\d)(?:-?(\d))?/,_i),Xi=Si(/(\d{4})-?(\d{3})/,_i),eo=Si(Ei),to=Ti((function(e,t){return[{year:zi(e,t),month:zi(e,t+1,1),day:zi(e,t+2,1)},null,t+3]}),Ai,Li,Zi),no=Ti(Ii,Ai,Li,Zi),ro=Ti(Vi,Ai,Li,Zi),io=Ti(Ai,Li,Zi);var oo=Ti(Ai);var so=Si(/(\d{4})-(\d\d)-(\d\d)/,Fi),uo=Si(Ci),ao=Ti(Ai,Li,Zi);var lo={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}},co=gn({years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536e3,milliseconds:31536e6},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6}},lo),fo=gn({years:{quarters:4,months:12,weeks:52.1775,days:365.2425,hours:8765.82,minutes:525949.2,seconds:31556952,milliseconds:31556952e3},quarters:{months:3,weeks:13.044375,days:91.310625,hours:2191.455,minutes:131487.3,seconds:7889238,milliseconds:7889238e3},months:{weeks:30.436875/7,days:30.436875,hours:730.485,minutes:43829.1,seconds:2629746,milliseconds:2629746e3}},lo),ho=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],mo=ho.slice(0).reverse();function yo(e,t,n){void 0===n&&(n=!1);var r={values:n?t.values:gn({},e.values,t.values||{}),loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy};return new po(r)}function vo(e,t,n,r,i){var o,s=e[i][n],u=t[n]/s,a=!(Math.sign(u)===Math.sign(r[i]))&&0!==r[i]&&Math.abs(u)<=1?(o=u)<0?Math.floor(o):Math.ceil(o):Math.trunc(u);r[i]+=a,t[n]-=a*s}var po=function(){function e(e){var t="longterm"===e.conversionAccuracy||!1;this.values=e.values,this.loc=e.loc||xi.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=t?fo:co,this.isLuxonDuration=!0}e.fromMillis=function(t,n){return e.fromObject({milliseconds:t},n)},e.fromObject=function(t,n){if(void 0===n&&(n={}),null==t||"object"!=typeof t)throw new Fn("Duration.fromObject: argument expected to be an object, got "+(null===t?"null":typeof t));return new e({values:Mr(t,e.normalizeUnit),loc:xi.fromObject(n),conversionAccuracy:n.conversionAccuracy})},e.fromDurationLike=function(t){if(or(t))return e.fromMillis(t);if(e.isDuration(t))return t;if("object"==typeof t)return e.fromObject(t);throw new Fn("Unknown duration argument "+t+" of type "+typeof t)},e.fromISO=function(t,n){var r=Mi(t,[Pi,Yi])[0];return r?e.fromObject(r,n):e.invalid("unparsable",'the input "'+t+"\" can't be parsed as ISO 8601")},e.fromISOTime=function(t,n){var r=Mi(t,[ji,oo])[0];return r?e.fromObject(r,n):e.invalid("unparsable",'the input "'+t+"\" can't be parsed as ISO 8601")},e.invalid=function(t,n){if(void 0===n&&(n=null),!t)throw new Fn("need to specify a reason the Duration is invalid");var r=t instanceof Hr?t:new Hr(t,n);if(li.throwOnInvalid)throw new In(r);return new e({invalid:r})},e.normalizeUnit=function(e){var t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e?e.toLowerCase():e];if(!t)throw new Cn(e);return t},e.isDuration=function(e){return e&&e.isLuxonDuration||!1};var t=e.prototype;return t.toFormat=function(e,t){void 0===t&&(t={});var n=gn({},t,{floor:!1!==t.round&&!1!==t.floor});return this.isValid?Ur.create(this.loc,n).formatDurationFromString(this,e):"Invalid Duration"},t.toHuman=function(e){var t=this;void 0===e&&(e={});var n=ho.map((function(n){var r=t.values[n];return ir(r)?null:t.loc.numberFormatter(gn({style:"unit",unitDisplay:"long"},e,{unit:n.slice(0,-1)})).format(r)})).filter((function(e){return e}));return this.loc.listFormatter(gn({type:"conjunction",style:e.listStyle||"narrow"},e)).format(n)},t.toObject=function(){return this.isValid?gn({},this.values):{}},t.toISO=function(){if(!this.isValid)return null;var e="P";return 0!==this.years&&(e+=this.years+"Y"),0===this.months&&0===this.quarters||(e+=this.months+3*this.quarters+"M"),0!==this.weeks&&(e+=this.weeks+"W"),0!==this.days&&(e+=this.days+"D"),0===this.hours&&0===this.minutes&&0===this.seconds&&0===this.milliseconds||(e+="T"),0!==this.hours&&(e+=this.hours+"H"),0!==this.minutes&&(e+=this.minutes+"M"),0===this.seconds&&0===this.milliseconds||(e+=yr(this.seconds+this.milliseconds/1e3,3)+"S"),"P"===e&&(e+="T0S"),e},t.toISOTime=function(e){if(void 0===e&&(e={}),!this.isValid)return null;var t=this.toMillis();if(t<0||t>=864e5)return null;e=gn({suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended"},e);var n=this.shiftTo("hours","minutes","seconds","milliseconds"),r="basic"===e.format?"hhmm":"hh:mm";e.suppressSeconds&&0===n.seconds&&0===n.milliseconds||(r+="basic"===e.format?"ss":":ss",e.suppressMilliseconds&&0===n.milliseconds||(r+=".SSS"));var i=n.toFormat(r);return e.includePrefix&&(i="T"+i),i},t.toJSON=function(){return this.toISO()},t.toString=function(){return this.toISO()},t.toMillis=function(){return this.as("milliseconds")},t.valueOf=function(){return this.toMillis()},t.plus=function(t){if(!this.isValid)return this;for(var n,r=e.fromDurationLike(t),i={},o=Dn(ho);!(n=o()).done;){var s=n.value;(lr(r.values,s)||lr(this.values,s))&&(i[s]=r.get(s)+this.get(s))}return yo(this,{values:i},!0)},t.minus=function(t){if(!this.isValid)return this;var n=e.fromDurationLike(t);return this.plus(n.negate())},t.mapUnits=function(e){if(!this.isValid)return this;for(var t={},n=0,r=Object.keys(this.values);n<r.length;n++){var i=r[n];t[i]=Tr(e(this.values[i],i))}return yo(this,{values:t},!0)},t.get=function(t){return this[e.normalizeUnit(t)]},t.set=function(t){return this.isValid?yo(this,{values:gn({},this.values,Mr(t,e.normalizeUnit))}):this},t.reconfigure=function(e){var t=void 0===e?{}:e,n=t.locale,r=t.numberingSystem,i=t.conversionAccuracy,o={loc:this.loc.clone({locale:n,numberingSystem:r})};return i&&(o.conversionAccuracy=i),yo(this,o)},t.as=function(e){return this.isValid?this.shiftTo(e).get(e):NaN},t.normalize=function(){if(!this.isValid)return this;var e=this.toObject();return function(e,t){mo.reduce((function(n,r){return ir(t[r])?n:(n&&vo(e,t,n,t,r),r)}),null)}(this.matrix,e),yo(this,{values:e},!0)},t.shiftTo=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!this.isValid)return this;if(0===n.length)return this;n=n.map((function(t){return e.normalizeUnit(t)}));for(var i,o,s={},u={},a=this.toObject(),l=Dn(ho);!(o=l()).done;){var c=o.value;if(n.indexOf(c)>=0){i=c;var f=0;for(var d in u)f+=this.matrix[d][c]*u[d],u[d]=0;or(a[c])&&(f+=a[c]);var h=Math.trunc(f);for(var m in s[c]=h,u[c]=(1e3*f-1e3*h)/1e3,a)ho.indexOf(m)>ho.indexOf(c)&&vo(this.matrix,a,m,s,c)}else or(a[c])&&(u[c]=a[c])}for(var y in u)0!==u[y]&&(s[i]+=y===i?u[y]:u[y]/this.matrix[i][y]);return yo(this,{values:s},!0).normalize()},t.negate=function(){if(!this.isValid)return this;for(var e={},t=0,n=Object.keys(this.values);t<n.length;t++){var r=n[t];e[r]=0===this.values[r]?0:-this.values[r]}return yo(this,{values:e},!0)},t.equals=function(e){if(!this.isValid||!e.isValid)return!1;if(!this.loc.equals(e.loc))return!1;for(var t,n=Dn(ho);!(t=n()).done;){var r=t.value;if(i=this.values[r],o=e.values[r],!(void 0===i||0===i?void 0===o||0===o:i===o))return!1}var i,o;return!0},pn(e,[{key:"locale",get:function(){return this.isValid?this.loc.locale:null}},{key:"numberingSystem",get:function(){return this.isValid?this.loc.numberingSystem:null}},{key:"years",get:function(){return this.isValid?this.values.years||0:NaN}},{key:"quarters",get:function(){return this.isValid?this.values.quarters||0:NaN}},{key:"months",get:function(){return this.isValid?this.values.months||0:NaN}},{key:"weeks",get:function(){return this.isValid?this.values.weeks||0:NaN}},{key:"days",get:function(){return this.isValid?this.values.days||0:NaN}},{key:"hours",get:function(){return this.isValid?this.values.hours||0:NaN}},{key:"minutes",get:function(){return this.isValid?this.values.minutes||0:NaN}},{key:"seconds",get:function(){return this.isValid?this.values.seconds||0:NaN}},{key:"milliseconds",get:function(){return this.isValid?this.values.milliseconds||0:NaN}},{key:"isValid",get:function(){return null===this.invalid}},{key:"invalidReason",get:function(){return this.invalid?this.invalid.reason:null}},{key:"invalidExplanation",get:function(){return this.invalid?this.invalid.explanation:null}}]),e}();var go=function(){function e(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}e.invalid=function(t,n){if(void 0===n&&(n=null),!t)throw new Fn("need to specify a reason the Interval is invalid");var r=t instanceof Hr?t:new Hr(t,n);if(li.throwOnInvalid)throw new _n(r);return new e({invalid:r})},e.fromDateTimes=function(t,n){var r=gs(t),i=gs(n),o=function(e,t){return e&&e.isValid?t&&t.isValid?t<e?go.invalid("end before start","The end of an interval must be after its start, but you had start="+e.toISO()+" and end="+t.toISO()):null:go.invalid("missing or invalid end"):go.invalid("missing or invalid start")}(r,i);return null==o?new e({start:r,end:i}):o},e.after=function(t,n){var r=po.fromDurationLike(n),i=gs(t);return e.fromDateTimes(i,i.plus(r))},e.before=function(t,n){var r=po.fromDurationLike(n),i=gs(t);return e.fromDateTimes(i.minus(r),i)},e.fromISO=function(t,n){var r=(t||"").split("/",2),i=r[0],o=r[1];if(i&&o){var s,u,a,l;try{u=(s=ps.fromISO(i,n)).isValid}catch(e){u=!1}try{l=(a=ps.fromISO(o,n)).isValid}catch(e){l=!1}if(u&&l)return e.fromDateTimes(s,a);if(u){var c=po.fromISO(o,n);if(c.isValid)return e.after(s,c)}else if(l){var f=po.fromISO(i,n);if(f.isValid)return e.before(a,f)}}return e.invalid("unparsable",'the input "'+t+"\" can't be parsed as ISO 8601")},e.isInterval=function(e){return e&&e.isLuxonInterval||!1};var t=e.prototype;return t.length=function(e){return void 0===e&&(e="milliseconds"),this.isValid?this.toDuration.apply(this,[e]).get(e):NaN},t.count=function(e){if(void 0===e&&(e="milliseconds"),!this.isValid)return NaN;var t=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(t,e).get(e))+1},t.hasSame=function(e){return!!this.isValid&&(this.isEmpty()||this.e.minus(1).hasSame(this.s,e))},t.isEmpty=function(){return this.s.valueOf()===this.e.valueOf()},t.isAfter=function(e){return!!this.isValid&&this.s>e},t.isBefore=function(e){return!!this.isValid&&this.e<=e},t.contains=function(e){return!!this.isValid&&(this.s<=e&&this.e>e)},t.set=function(t){var n=void 0===t?{}:t,r=n.start,i=n.end;return this.isValid?e.fromDateTimes(r||this.s,i||this.e):this},t.splitAt=function(){var t=this;if(!this.isValid)return[];for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];for(var o=r.map(gs).filter((function(e){return t.contains(e)})).sort(),s=[],u=this.s,a=0;u<this.e;){var l=o[a]||this.e,c=+l>+this.e?this.e:l;s.push(e.fromDateTimes(u,c)),u=c,a+=1}return s},t.splitBy=function(t){var n=po.fromDurationLike(t);if(!this.isValid||!n.isValid||0===n.as("milliseconds"))return[];for(var r,i=this.s,o=1,s=[];i<this.e;){var u=this.start.plus(n.mapUnits((function(e){return e*o})));r=+u>+this.e?this.e:u,s.push(e.fromDateTimes(i,r)),i=r,o+=1}return s},t.divideEqually=function(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]},t.overlaps=function(e){return this.e>e.s&&this.s<e.e},t.abutsStart=function(e){return!!this.isValid&&+this.e==+e.s},t.abutsEnd=function(e){return!!this.isValid&&+e.e==+this.s},t.engulfs=function(e){return!!this.isValid&&(this.s<=e.s&&this.e>=e.e)},t.equals=function(e){return!(!this.isValid||!e.isValid)&&(this.s.equals(e.s)&&this.e.equals(e.e))},t.intersection=function(t){if(!this.isValid)return this;var n=this.s>t.s?this.s:t.s,r=this.e<t.e?this.e:t.e;return n>=r?null:e.fromDateTimes(n,r)},t.union=function(t){if(!this.isValid)return this;var n=this.s<t.s?this.s:t.s,r=this.e>t.e?this.e:t.e;return e.fromDateTimes(n,r)},e.merge=function(e){var t=e.sort((function(e,t){return e.s-t.s})).reduce((function(e,t){var n=e[0],r=e[1];return r?r.overlaps(t)||r.abutsStart(t)?[n,r.union(t)]:[n.concat([r]),t]:[n,t]}),[[],null]),n=t[0],r=t[1];return r&&n.push(r),n},e.xor=function(t){for(var n,r,i=null,o=0,s=[],u=t.map((function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]})),a=Dn((n=Array.prototype).concat.apply(n,u).sort((function(e,t){return e.time-t.time})));!(r=a()).done;){var l=r.value;1===(o+="s"===l.type?1:-1)?i=l.time:(i&&+i!=+l.time&&s.push(e.fromDateTimes(i,l.time)),i=null)}return e.merge(s)},t.difference=function(){for(var t=this,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return e.xor([this].concat(r)).map((function(e){return t.intersection(e)})).filter((function(e){return e&&!e.isEmpty()}))},t.toString=function(){return this.isValid?"["+this.s.toISO()+" – "+this.e.toISO()+")":"Invalid Interval"},t.toISO=function(e){return this.isValid?this.s.toISO(e)+"/"+this.e.toISO(e):"Invalid Interval"},t.toISODate=function(){return this.isValid?this.s.toISODate()+"/"+this.e.toISODate():"Invalid Interval"},t.toISOTime=function(e){return this.isValid?this.s.toISOTime(e)+"/"+this.e.toISOTime(e):"Invalid Interval"},t.toFormat=function(e,t){var n=(void 0===t?{}:t).separator,r=void 0===n?" – ":n;return this.isValid?""+this.s.toFormat(e)+r+this.e.toFormat(e):"Invalid Interval"},t.toDuration=function(e,t){return this.isValid?this.e.diff(this.s,e,t):po.invalid(this.invalidReason)},t.mapEndpoints=function(t){return e.fromDateTimes(t(this.s),t(this.e))},pn(e,[{key:"start",get:function(){return this.isValid?this.s:null}},{key:"end",get:function(){return this.isValid?this.e:null}},{key:"isValid",get:function(){return null===this.invalidReason}},{key:"invalidReason",get:function(){return this.invalid?this.invalid.reason:null}},{key:"invalidExplanation",get:function(){return this.invalid?this.invalid.explanation:null}}]),e}(),wo=function(){function e(){}return e.hasDST=function(e){void 0===e&&(e=li.defaultZone);var t=ps.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset},e.isValidIANAZone=function(e){return Kr.isValidZone(e)},e.normalizeZone=function(e){return ni(e,li.defaultZone)},e.months=function(e,t){void 0===e&&(e="long");var n=void 0===t?{}:t,r=n.locale,i=void 0===r?null:r,o=n.numberingSystem,s=void 0===o?null:o,u=n.locObj,a=void 0===u?null:u,l=n.outputCalendar,c=void 0===l?"gregory":l;return(a||xi.create(i,s,c)).months(e)},e.monthsFormat=function(e,t){void 0===e&&(e="long");var n=void 0===t?{}:t,r=n.locale,i=void 0===r?null:r,o=n.numberingSystem,s=void 0===o?null:o,u=n.locObj,a=void 0===u?null:u,l=n.outputCalendar,c=void 0===l?"gregory":l;return(a||xi.create(i,s,c)).months(e,!0)},e.weekdays=function(e,t){void 0===e&&(e="long");var n=void 0===t?{}:t,r=n.locale,i=void 0===r?null:r,o=n.numberingSystem,s=void 0===o?null:o,u=n.locObj;return((void 0===u?null:u)||xi.create(i,s,null)).weekdays(e)},e.weekdaysFormat=function(e,t){void 0===e&&(e="long");var n=void 0===t?{}:t,r=n.locale,i=void 0===r?null:r,o=n.numberingSystem,s=void 0===o?null:o,u=n.locObj;return((void 0===u?null:u)||xi.create(i,s,null)).weekdays(e,!0)},e.meridiems=function(e){var t=(void 0===e?{}:e).locale,n=void 0===t?null:t;return xi.create(n).meridiems()},e.eras=function(e,t){void 0===e&&(e="short");var n=(void 0===t?{}:t).locale,r=void 0===n?null:n;return xi.create(r,null,"gregory").eras(e)},e.features=function(){return{relative:ur()}},e}();function ko(e,t){var n=function(e){return e.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf()},r=n(t)-n(e);return Math.floor(po.fromMillis(r).as("days"))}function bo(e,t,n,r){var i=function(e,t,n){for(var r,i,o={},s=0,u=[["years",function(e,t){return t.year-e.year}],["quarters",function(e,t){return t.quarter-e.quarter}],["months",function(e,t){return t.month-e.month+12*(t.year-e.year)}],["weeks",function(e,t){var n=ko(e,t);return(n-n%7)/7}],["days",ko]];s<u.length;s++){var a=u[s],l=a[0],c=a[1];if(n.indexOf(l)>=0){var f;r=l;var d,h=c(e,t);(i=e.plus(((f={})[l]=h,f)))>t?(e=e.plus(((d={})[l]=h-1,d)),h-=1):e=i,o[l]=h}}return[e,o,i,r]}(e,t,n),o=i[0],s=i[1],u=i[2],a=i[3],l=t-o,c=n.filter((function(e){return["hours","minutes","seconds","milliseconds"].indexOf(e)>=0}));if(0===c.length){var f;if(u<t)u=o.plus(((f={})[a]=1,f));u!==o&&(s[a]=(s[a]||0)+l/(u-o))}var d,h=po.fromObject(s,r);return c.length>0?(d=po.fromMillis(l,r)).shiftTo.apply(d,c).plus(h):h}var xo={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},So={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},To=xo.hanidec.replace(/[\[|\]]/g,"").split("");function Mo(e,t){var n=e.numberingSystem;return void 0===t&&(t=""),new RegExp(""+xo[n||"latn"]+t)}function Oo(e,t){return void 0===t&&(t=function(e){return e}),{regex:e,deser:function(e){var n=e[0];return t(function(e){var t=parseInt(e,10);if(isNaN(t)){t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(-1!==e[n].search(xo.hanidec))t+=To.indexOf(e[n]);else for(var i in So){var o=So[i],s=o[0],u=o[1];r>=s&&r<=u&&(t+=r-s)}}return parseInt(t,10)}return t}(n))}}}var Do="[ "+String.fromCharCode(160)+"]",No=new RegExp(Do,"g");function Eo(e){return e.replace(/\./g,"\\.?").replace(No,Do)}function _o(e){return e.replace(/\./g,"").replace(No," ").toLowerCase()}function Io(e,t){return null===e?null:{regex:RegExp(e.map(Eo).join("|")),deser:function(n){var r=n[0];return e.findIndex((function(e){return _o(r)===_o(e)}))+t}}}function Vo(e,t){return{regex:e,deser:function(e){return Sr(e[1],e[2])},groups:t}}function Co(e){return{regex:e,deser:function(e){return e[0]}}}var Fo={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"}};var zo=null;function Ao(e,t){if(e.literal)return e;var n=Ur.macroTokenToFormatOpts(e.val);if(!n)return e;var r=Ur.create(t,n).formatDateTimeParts((zo||(zo=ps.fromMillis(1555555555555)),zo)).map((function(e){return function(e,t,n){var r=e.type,i=e.value;if("literal"===r)return{literal:!0,val:i};var o=n[r],s=Fo[r];return"object"==typeof s&&(s=s[o]),s?{literal:!1,val:s}:void 0}(e,0,n)}));return r.includes(void 0)?e:r}function Lo(e,t,n){var r=function(e,t){var n;return(n=Array.prototype).concat.apply(n,e.map((function(e){return Ao(e,t)})))}(Ur.parseFormat(n),e),i=r.map((function(t){return n=t,i=Mo(r=e),o=Mo(r,"{2}"),s=Mo(r,"{3}"),u=Mo(r,"{4}"),a=Mo(r,"{6}"),l=Mo(r,"{1,2}"),c=Mo(r,"{1,3}"),f=Mo(r,"{1,6}"),d=Mo(r,"{1,9}"),h=Mo(r,"{2,4}"),m=Mo(r,"{4,6}"),y=function(e){return{regex:RegExp((t=e.val,t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"))),deser:function(e){return e[0]},literal:!0};var t},v=function(e){if(n.literal)return y(e);switch(e.val){case"G":return Io(r.eras("short",!1),0);case"GG":return Io(r.eras("long",!1),0);case"y":return Oo(f);case"yy":case"kk":return Oo(h,br);case"yyyy":case"kkkk":return Oo(u);case"yyyyy":return Oo(m);case"yyyyyy":return Oo(a);case"M":case"L":case"d":case"H":case"h":case"m":case"q":case"s":case"W":return Oo(l);case"MM":case"LL":case"dd":case"HH":case"hh":case"mm":case"qq":case"ss":case"WW":return Oo(o);case"MMM":return Io(r.months("short",!0,!1),1);case"MMMM":return Io(r.months("long",!0,!1),1);case"LLL":return Io(r.months("short",!1,!1),1);case"LLLL":return Io(r.months("long",!1,!1),1);case"o":case"S":return Oo(c);case"ooo":case"SSS":return Oo(s);case"u":return Co(d);case"uu":return Co(l);case"uuu":case"E":case"c":return Oo(i);case"a":return Io(r.meridiems(),0);case"EEE":return Io(r.weekdays("short",!1,!1),1);case"EEEE":return Io(r.weekdays("long",!1,!1),1);case"ccc":return Io(r.weekdays("short",!0,!1),1);case"cccc":return Io(r.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Vo(new RegExp("([+-]"+l.source+")(?::("+o.source+"))?"),2);case"ZZZ":return Vo(new RegExp("([+-]"+l.source+")("+o.source+")?"),2);case"z":return Co(/[a-z_+-/]{1,256}?/i);default:return y(e)}}(n)||{invalidReason:"missing Intl.DateTimeFormat.formatToParts support"},v.token=n,v;var n,r,i,o,s,u,a,l,c,f,d,h,m,y,v})),o=i.find((function(e){return e.invalidReason}));if(o)return{input:t,tokens:r,invalidReason:o.invalidReason};var s=function(e){return["^"+e.map((function(e){return e.regex})).reduce((function(e,t){return e+"("+t.source+")"}),"")+"$",e]}(i),u=s[0],a=s[1],l=RegExp(u,"i"),c=function(e,t,n){var r=e.match(t);if(r){var i={},o=1;for(var s in n)if(lr(n,s)){var u=n[s],a=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(r.slice(o,o+a))),o+=a}return[r,i]}return[r,{}]}(t,l,a),f=c[0],d=c[1],h=d?function(e){var t,n=null;return ir(e.z)||(n=Kr.create(e.z)),ir(e.Z)||(n||(n=new ei(e.Z)),t=e.Z),ir(e.q)||(e.M=3*(e.q-1)+1),ir(e.h)||(e.h<12&&1===e.a?e.h+=12:12===e.h&&0===e.a&&(e.h=0)),0===e.G&&e.y&&(e.y=-e.y),ir(e.u)||(e.S=mr(e.u)),[Object.keys(e).reduce((function(t,n){var r=function(e){switch(e){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}}(n);return r&&(t[r]=e[n]),t}),{}),n,t]}(d):[null,null,void 0],m=h[0],y=h[1],v=h[2];if(lr(d,"a")&&lr(d,"H"))throw new Vn("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:r,regex:l,rawMatches:f,matches:d,result:m,zone:y,specificOffset:v}}var Zo=[0,31,59,90,120,151,181,212,243,273,304,334],jo=[0,31,60,91,121,152,182,213,244,274,305,335];function Po(e,t){return new Hr("unit out of range","you specified "+t+" (of type "+typeof t+") as a "+e+", which is invalid")}function Yo(e,t,n){var r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);var i=r.getUTCDay();return 0===i?7:i}function qo(e,t,n){return n+(vr(e)?jo:Zo)[t-1]}function Wo(e,t){var n=vr(e)?jo:Zo,r=n.findIndex((function(e){return e<t}));return{month:r+1,day:t-n[r]}}function Uo(e){var t,n=e.year,r=e.month,i=e.day,o=qo(n,r,i),s=Yo(n,r,i),u=Math.floor((o-s+10)/7);return u<1?u=kr(t=n-1):u>kr(n)?(t=n+1,u=1):t=n,gn({weekYear:t,weekNumber:u,weekday:s},Dr(e))}function Ho(e){var t,n=e.weekYear,r=e.weekNumber,i=e.weekday,o=Yo(n,1,4),s=pr(n),u=7*r+i-o-3;u<1?u+=pr(t=n-1):u>s?(t=n+1,u-=pr(n)):t=n;var a=Wo(t,u);return gn({year:t,month:a.month,day:a.day},Dr(e))}function Ro(e){var t=e.year;return gn({year:t,ordinal:qo(t,e.month,e.day)},Dr(e))}function Go(e){var t=e.year,n=Wo(t,e.ordinal);return gn({year:t,month:n.month,day:n.day},Dr(e))}function Jo(e){var t=sr(e.year),n=cr(e.month,1,12),r=cr(e.day,1,gr(e.year,e.month));return t?n?!r&&Po("day",e.day):Po("month",e.month):Po("year",e.year)}function Bo(e){var t=e.hour,n=e.minute,r=e.second,i=e.millisecond,o=cr(t,0,23)||24===t&&0===n&&0===r&&0===i,s=cr(n,0,59),u=cr(r,0,59),a=cr(i,0,999);return o?s?u?!a&&Po("millisecond",i):Po("second",r):Po("minute",n):Po("hour",t)}function $o(e){return new Hr("unsupported zone",'the zone "'+e.name+'" is not supported')}function Qo(e){return null===e.weekData&&(e.weekData=Uo(e.c)),e.weekData}function Ko(e,t){var n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new ps(gn({},n,t,{old:n}))}function Xo(e,t,n){var r=e-6e4*t,i=n.offset(r);if(t===i)return[r,t];r-=6e4*(i-t);var o=n.offset(r);return i===o?[r,i]:[e-6e4*Math.min(i,o),Math.max(i,o)]}function es(e,t){var n=new Date(e+=6e4*t);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function ts(e,t,n){return Xo(wr(e),t,n)}function ns(e,t){var n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+3*Math.trunc(t.quarters),o=gn({},e.c,{year:r,month:i,day:Math.min(e.c.day,gr(r,i))+Math.trunc(t.days)+7*Math.trunc(t.weeks)}),s=po.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),u=Xo(wr(o),n,e.zone),a=u[0],l=u[1];return 0!==s&&(a+=s,l=e.zone.offset(a)),{ts:a,o:l}}function rs(e,t,n,r,i,o){var s=n.setZone,u=n.zone;if(e&&0!==Object.keys(e).length){var a=t||u,l=ps.fromObject(e,gn({},n,{zone:a,specificOffset:o}));return s?l:l.setZone(u)}return ps.invalid(new Hr("unparsable",'the input "'+i+"\" can't be parsed as "+r))}function is(e,t,n){return void 0===n&&(n=!0),e.isValid?Ur.create(xi.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function os(e,t){var n=e.c.year>9999||e.c.year<0,r="";return n&&e.c.year>=0&&(r+="+"),r+=fr(e.c.year,n?6:4),t?(r+="-",r+=fr(e.c.month),r+="-",r+=fr(e.c.day)):(r+=fr(e.c.month),r+=fr(e.c.day)),r}function ss(e,t,n,r,i,o){var s=fr(e.c.hour);return t?(s+=":",s+=fr(e.c.minute),0===e.c.second&&n||(s+=":")):s+=fr(e.c.minute),0===e.c.second&&n||(s+=fr(e.c.second),0===e.c.millisecond&&r||(s+=".",s+=fr(e.c.millisecond,3))),i&&(e.isOffsetFixed&&0===e.offset&&!o?s+="Z":e.o<0?(s+="-",s+=fr(Math.trunc(-e.o/60)),s+=":",s+=fr(Math.trunc(-e.o%60))):(s+="+",s+=fr(Math.trunc(e.o/60)),s+=":",s+=fr(Math.trunc(e.o%60)))),o&&(s+="["+e.zone.ianaName+"]"),s}var us={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},as={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},ls={ordinal:1,hour:0,minute:0,second:0,millisecond:0},cs=["year","month","day","hour","minute","second","millisecond"],fs=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],ds=["year","ordinal","hour","minute","second","millisecond"];function hs(e){var t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new Cn(e);return t}function ms(e,t){var n,r,i=ni(t.zone,li.defaultZone),o=xi.fromObject(t),s=li.now();if(ir(e.year))n=s;else{for(var u,a=Dn(cs);!(u=a()).done;){var l=u.value;ir(e[l])&&(e[l]=us[l])}var c=Jo(e)||Bo(e);if(c)return ps.invalid(c);var f=ts(e,i.offset(s),i);n=f[0],r=f[1]}return new ps({ts:n,zone:i,loc:o,o:r})}function ys(e,t,n){var r=!!ir(n.round)||n.round,i=function(e,i){return e=yr(e,r||n.calendary?0:2,!0),t.loc.clone(n).relFormatter(n).format(e,i)},o=function(r){return n.calendary?t.hasSame(e,r)?0:t.startOf(r).diff(e.startOf(r),r).get(r):t.diff(e,r).get(r)};if(n.unit)return i(o(n.unit),n.unit);for(var s,u=Dn(n.units);!(s=u()).done;){var a=s.value,l=o(a);if(Math.abs(l)>=1)return i(l,a)}return i(e>t?-0:0,n.units[n.units.length-1])}function vs(e){var t,n={};return e.length>0&&"object"==typeof e[e.length-1]?(n=e[e.length-1],t=Array.from(e).slice(0,e.length-1)):t=Array.from(e),[n,t]}var ps=function(){function e(e){var t=e.zone||li.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Hr("invalid input"):null)||(t.isValid?null:$o(t));this.ts=ir(e.ts)?li.now():e.ts;var r=null,i=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t)){var o=[e.old.c,e.old.o];r=o[0],i=o[1]}else{var s=t.offset(this.ts);r=es(this.ts,s),r=(n=Number.isNaN(r.year)?new Hr("invalid input"):null)?null:r,i=n?null:s}this._zone=t,this.loc=e.loc||xi.create(),this.invalid=n,this.weekData=null,this.c=r,this.o=i,this.isLuxonDateTime=!0}e.now=function(){return new e({})},e.local=function(){var e=vs(arguments),t=e[0],n=e[1],r=n[0],i=n[1],o=n[2],s=n[3],u=n[4],a=n[5],l=n[6];return ms({year:r,month:i,day:o,hour:s,minute:u,second:a,millisecond:l},t)},e.utc=function(){var e=vs(arguments),t=e[0],n=e[1],r=n[0],i=n[1],o=n[2],s=n[3],u=n[4],a=n[5],l=n[6];return t.zone=ei.utcInstance,ms({year:r,month:i,day:o,hour:s,minute:u,second:a,millisecond:l},t)},e.fromJSDate=function(t,n){void 0===n&&(n={});var r,i=(r=t,"[object Date]"===Object.prototype.toString.call(r)?t.valueOf():NaN);if(Number.isNaN(i))return e.invalid("invalid input");var o=ni(n.zone,li.defaultZone);return o.isValid?new e({ts:i,zone:o,loc:xi.fromObject(n)}):e.invalid($o(o))},e.fromMillis=function(t,n){if(void 0===n&&(n={}),or(t))return t<-864e13||t>864e13?e.invalid("Timestamp out of range"):new e({ts:t,zone:ni(n.zone,li.defaultZone),loc:xi.fromObject(n)});throw new Fn("fromMillis requires a numerical input, but received a "+typeof t+" with value "+t)},e.fromSeconds=function(t,n){if(void 0===n&&(n={}),or(t))return new e({ts:1e3*t,zone:ni(n.zone,li.defaultZone),loc:xi.fromObject(n)});throw new Fn("fromSeconds requires a numerical input")},e.fromObject=function(t,n){void 0===n&&(n={}),t=t||{};var r=ni(n.zone,li.defaultZone);if(!r.isValid)return e.invalid($o(r));var i=li.now(),o=ir(n.specificOffset)?r.offset(i):n.specificOffset,s=Mr(t,hs),u=!ir(s.ordinal),a=!ir(s.year),l=!ir(s.month)||!ir(s.day),c=a||l,f=s.weekYear||s.weekNumber,d=xi.fromObject(n);if((c||u)&&f)throw new Vn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&u)throw new Vn("Can't mix ordinal dates with month/day");var h,m,y=f||s.weekday&&!c,v=es(i,o);y?(h=fs,m=as,v=Uo(v)):u?(h=ds,m=ls,v=Ro(v)):(h=cs,m=us);for(var p,g=!1,w=Dn(h);!(p=w()).done;){var k=p.value;ir(s[k])?s[k]=g?m[k]:v[k]:g=!0}var b=y?function(e){var t=sr(e.weekYear),n=cr(e.weekNumber,1,kr(e.weekYear)),r=cr(e.weekday,1,7);return t?n?!r&&Po("weekday",e.weekday):Po("week",e.week):Po("weekYear",e.weekYear)}(s):u?function(e){var t=sr(e.year),n=cr(e.ordinal,1,pr(e.year));return t?!n&&Po("ordinal",e.ordinal):Po("year",e.year)}(s):Jo(s),x=b||Bo(s);if(x)return e.invalid(x);var S=ts(y?Ho(s):u?Go(s):s,o,r),T=new e({ts:S[0],zone:r,o:S[1],loc:d});return s.weekday&&c&&t.weekday!==T.weekday?e.invalid("mismatched weekday","you can't specify both a weekday of "+s.weekday+" and a date of "+T.toISO()):T},e.fromISO=function(e,t){void 0===t&&(t={});var n=Mi(e,[Qi,to],[Ki,no],[Xi,ro],[eo,io]);return rs(n[0],n[1],t,"ISO 8601",e)},e.fromRFC2822=function(e,t){void 0===t&&(t={});var n=Mi(e.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim(),[Ui,Hi]);return rs(n[0],n[1],t,"RFC 2822",e)},e.fromHTTP=function(e,t){void 0===t&&(t={});var n=Mi(e,[Ri,Bi],[Gi,Bi],[Ji,$i]);return rs(n[0],n[1],t,"HTTP",t)},e.fromFormat=function(t,n,r){if(void 0===r&&(r={}),ir(t)||ir(n))throw new Fn("fromFormat requires an input string and a format");var i=r,o=i.locale,s=void 0===o?null:o,u=i.numberingSystem,a=void 0===u?null:u,l=function(e,t,n){var r=Lo(e,t,n);return[r.result,r.zone,r.specificOffset,r.invalidReason]}(xi.fromOpts({locale:s,numberingSystem:a,defaultToEN:!0}),t,n),c=l[0],f=l[1],d=l[2],h=l[3];return h?e.invalid(h):rs(c,f,r,"format "+n,t,d)},e.fromString=function(t,n,r){return void 0===r&&(r={}),e.fromFormat(t,n,r)},e.fromSQL=function(e,t){void 0===t&&(t={});var n=Mi(e,[so,to],[uo,ao]);return rs(n[0],n[1],t,"SQL",e)},e.invalid=function(t,n){if(void 0===n&&(n=null),!t)throw new Fn("need to specify a reason the DateTime is invalid");var r=t instanceof Hr?t:new Hr(t,n);if(li.throwOnInvalid)throw new En(r);return new e({invalid:r})},e.isDateTime=function(e){return e&&e.isLuxonDateTime||!1};var t=e.prototype;return t.get=function(e){return this[e]},t.resolvedLocaleOptions=function(e){void 0===e&&(e={});var t=Ur.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t.locale,numberingSystem:t.numberingSystem,outputCalendar:t.calendar}},t.toUTC=function(e,t){return void 0===e&&(e=0),void 0===t&&(t={}),this.setZone(ei.instance(e),t)},t.toLocal=function(){return this.setZone(li.defaultZone)},t.setZone=function(t,n){var r=void 0===n?{}:n,i=r.keepLocalTime,o=void 0!==i&&i,s=r.keepCalendarTime,u=void 0!==s&&s;if((t=ni(t,li.defaultZone)).equals(this.zone))return this;if(t.isValid){var a=this.ts;if(o||u){var l=t.offset(this.ts);a=ts(this.toObject(),l,t)[0]}return Ko(this,{ts:a,zone:t})}return e.invalid($o(t))},t.reconfigure=function(e){var t=void 0===e?{}:e,n=t.locale,r=t.numberingSystem,i=t.outputCalendar;return Ko(this,{loc:this.loc.clone({locale:n,numberingSystem:r,outputCalendar:i})})},t.setLocale=function(e){return this.reconfigure({locale:e})},t.set=function(e){if(!this.isValid)return this;var t,n=Mr(e,hs),r=!ir(n.weekYear)||!ir(n.weekNumber)||!ir(n.weekday),i=!ir(n.ordinal),o=!ir(n.year),s=!ir(n.month)||!ir(n.day),u=o||s,a=n.weekYear||n.weekNumber;if((u||i)&&a)throw new Vn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(s&&i)throw new Vn("Can't mix ordinal dates with month/day");r?t=Ho(gn({},Uo(this.c),n)):ir(n.ordinal)?(t=gn({},this.toObject(),n),ir(n.day)&&(t.day=Math.min(gr(t.year,t.month),t.day))):t=Go(gn({},Ro(this.c),n));var l=ts(t,this.o,this.zone);return Ko(this,{ts:l[0],o:l[1]})},t.plus=function(e){return this.isValid?Ko(this,ns(this,po.fromDurationLike(e))):this},t.minus=function(e){return this.isValid?Ko(this,ns(this,po.fromDurationLike(e).negate())):this},t.startOf=function(e){if(!this.isValid)return this;var t={},n=po.normalizeUnit(e);switch(n){case"years":t.month=1;case"quarters":case"months":t.day=1;case"weeks":case"days":t.hour=0;case"hours":t.minute=0;case"minutes":t.second=0;case"seconds":t.millisecond=0}if("weeks"===n&&(t.weekday=1),"quarters"===n){var r=Math.ceil(this.month/3);t.month=3*(r-1)+1}return this.set(t)},t.endOf=function(e){var t;return this.isValid?this.plus((t={},t[e]=1,t)).startOf(e).minus(1):this},t.toFormat=function(e,t){return void 0===t&&(t={}),this.isValid?Ur.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):"Invalid DateTime"},t.toLocaleString=function(e,t){return void 0===e&&(e=An),void 0===t&&(t={}),this.isValid?Ur.create(this.loc.clone(t),e).formatDateTime(this):"Invalid DateTime"},t.toLocaleParts=function(e){return void 0===e&&(e={}),this.isValid?Ur.create(this.loc.clone(e),e).formatDateTimeParts(this):[]},t.toISO=function(e){var t=void 0===e?{}:e,n=t.format,r=void 0===n?"extended":n,i=t.suppressSeconds,o=void 0!==i&&i,s=t.suppressMilliseconds,u=void 0!==s&&s,a=t.includeOffset,l=void 0===a||a,c=t.extendedZone,f=void 0!==c&&c;if(!this.isValid)return null;var d="extended"===r,h=os(this,d);return h+="T",h+=ss(this,d,o,u,l,f)},t.toISODate=function(e){var t=(void 0===e?{}:e).format,n=void 0===t?"extended":t;return this.isValid?os(this,"extended"===n):null},t.toISOWeekDate=function(){return is(this,"kkkk-'W'WW-c")},t.toISOTime=function(e){var t=void 0===e?{}:e,n=t.suppressMilliseconds,r=void 0!==n&&n,i=t.suppressSeconds,o=void 0!==i&&i,s=t.includeOffset,u=void 0===s||s,a=t.includePrefix,l=void 0!==a&&a,c=t.extendedZone,f=void 0!==c&&c,d=t.format,h=void 0===d?"extended":d;return this.isValid?(l?"T":"")+ss(this,"extended"===h,o,r,u,f):null},t.toRFC2822=function(){return is(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)},t.toHTTP=function(){return is(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")},t.toSQLDate=function(){return this.isValid?os(this,!0):null},t.toSQLTime=function(e){var t=void 0===e?{}:e,n=t.includeOffset,r=void 0===n||n,i=t.includeZone,o=void 0!==i&&i,s=t.includeOffsetSpace,u="HH:mm:ss.SSS";return(o||r)&&((void 0===s||s)&&(u+=" "),o?u+="z":r&&(u+="ZZ")),is(this,u,!0)},t.toSQL=function(e){return void 0===e&&(e={}),this.isValid?this.toSQLDate()+" "+this.toSQLTime(e):null},t.toString=function(){return this.isValid?this.toISO():"Invalid DateTime"},t.valueOf=function(){return this.toMillis()},t.toMillis=function(){return this.isValid?this.ts:NaN},t.toSeconds=function(){return this.isValid?this.ts/1e3:NaN},t.toUnixInteger=function(){return this.isValid?Math.floor(this.ts/1e3):NaN},t.toJSON=function(){return this.toISO()},t.toBSON=function(){return this.toJSDate()},t.toObject=function(e){if(void 0===e&&(e={}),!this.isValid)return{};var t=gn({},this.c);return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t},t.toJSDate=function(){return new Date(this.isValid?this.ts:NaN)},t.diff=function(e,t,n){if(void 0===t&&(t="milliseconds"),void 0===n&&(n={}),!this.isValid||!e.isValid)return po.invalid("created by diffing an invalid DateTime");var r,i=gn({locale:this.locale,numberingSystem:this.numberingSystem},n),o=(r=t,Array.isArray(r)?r:[r]).map(po.normalizeUnit),s=e.valueOf()>this.valueOf(),u=bo(s?this:e,s?e:this,o,i);return s?u.negate():u},t.diffNow=function(t,n){return void 0===t&&(t="milliseconds"),void 0===n&&(n={}),this.diff(e.now(),t,n)},t.until=function(e){return this.isValid?go.fromDateTimes(this,e):this},t.hasSame=function(e,t){if(!this.isValid)return!1;var n=e.valueOf(),r=this.setZone(e.zone,{keepLocalTime:!0});return r.startOf(t)<=n&&n<=r.endOf(t)},t.equals=function(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)},t.toRelative=function(t){if(void 0===t&&(t={}),!this.isValid)return null;var n=t.base||e.fromObject({},{zone:this.zone}),r=t.padding?this<n?-t.padding:t.padding:0,i=["years","months","days","hours","minutes","seconds"],o=t.unit;return Array.isArray(t.unit)&&(i=t.unit,o=void 0),ys(n,this.plus(r),gn({},t,{numeric:"always",units:i,unit:o}))},t.toRelativeCalendar=function(t){return void 0===t&&(t={}),this.isValid?ys(t.base||e.fromObject({},{zone:this.zone}),this,gn({},t,{numeric:"auto",units:["years","months","days"],calendary:!0})):null},e.min=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.every(e.isDateTime))throw new Fn("min requires all arguments be DateTimes");return ar(n,(function(e){return e.valueOf()}),Math.min)},e.max=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.every(e.isDateTime))throw new Fn("max requires all arguments be DateTimes");return ar(n,(function(e){return e.valueOf()}),Math.max)},e.fromFormatExplain=function(e,t,n){void 0===n&&(n={});var r=n,i=r.locale,o=void 0===i?null:i,s=r.numberingSystem,u=void 0===s?null:s;return Lo(xi.fromOpts({locale:o,numberingSystem:u,defaultToEN:!0}),e,t)},e.fromStringExplain=function(t,n,r){return void 0===r&&(r={}),e.fromFormatExplain(t,n,r)},pn(e,[{key:"isValid",get:function(){return null===this.invalid}},{key:"invalidReason",get:function(){return this.invalid?this.invalid.reason:null}},{key:"invalidExplanation",get:function(){return this.invalid?this.invalid.explanation:null}},{key:"locale",get:function(){return this.isValid?this.loc.locale:null}},{key:"numberingSystem",get:function(){return this.isValid?this.loc.numberingSystem:null}},{key:"outputCalendar",get:function(){return this.isValid?this.loc.outputCalendar:null}},{key:"zone",get:function(){return this._zone}},{key:"zoneName",get:function(){return this.isValid?this.zone.name:null}},{key:"year",get:function(){return this.isValid?this.c.year:NaN}},{key:"quarter",get:function(){return this.isValid?Math.ceil(this.c.month/3):NaN}},{key:"month",get:function(){return this.isValid?this.c.month:NaN}},{key:"day",get:function(){return this.isValid?this.c.day:NaN}},{key:"hour",get:function(){return this.isValid?this.c.hour:NaN}},{key:"minute",get:function(){return this.isValid?this.c.minute:NaN}},{key:"second",get:function(){return this.isValid?this.c.second:NaN}},{key:"millisecond",get:function(){return this.isValid?this.c.millisecond:NaN}},{key:"weekYear",get:function(){return this.isValid?Qo(this).weekYear:NaN}},{key:"weekNumber",get:function(){return this.isValid?Qo(this).weekNumber:NaN}},{key:"weekday",get:function(){return this.isValid?Qo(this).weekday:NaN}},{key:"ordinal",get:function(){return this.isValid?Ro(this.c).ordinal:NaN}},{key:"monthShort",get:function(){return this.isValid?wo.months("short",{locObj:this.loc})[this.month-1]:null}},{key:"monthLong",get:function(){return this.isValid?wo.months("long",{locObj:this.loc})[this.month-1]:null}},{key:"weekdayShort",get:function(){return this.isValid?wo.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}},{key:"weekdayLong",get:function(){return this.isValid?wo.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}},{key:"offset",get:function(){return this.isValid?+this.o:NaN}},{key:"offsetNameShort",get:function(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}},{key:"offsetNameLong",get:function(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}},{key:"isOffsetFixed",get:function(){return this.isValid?this.zone.isUniversal:null}},{key:"isInDST",get:function(){return!this.isOffsetFixed&&(this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return vr(this.year)}},{key:"daysInMonth",get:function(){return gr(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?pr(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?kr(this.weekYear):NaN}}],[{key:"DATE_SHORT",get:function(){return An}},{key:"DATE_MED",get:function(){return Ln}},{key:"DATE_MED_WITH_WEEKDAY",get:function(){return Zn}},{key:"DATE_FULL",get:function(){return jn}},{key:"DATE_HUGE",get:function(){return Pn}},{key:"TIME_SIMPLE",get:function(){return Yn}},{key:"TIME_WITH_SECONDS",get:function(){return qn}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return Wn}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return Un}},{key:"TIME_24_SIMPLE",get:function(){return Hn}},{key:"TIME_24_WITH_SECONDS",get:function(){return Rn}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return Gn}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return Jn}},{key:"DATETIME_SHORT",get:function(){return Bn}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return $n}},{key:"DATETIME_MED",get:function(){return Qn}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return Kn}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return Xn}},{key:"DATETIME_FULL",get:function(){return er}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return tr}},{key:"DATETIME_HUGE",get:function(){return nr}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return rr}}]),e}();function gs(e){if(ps.isDateTime(e))return e;if(e&&e.valueOf&&or(e.valueOf()))return ps.fromJSDate(e);if(e&&"object"==typeof e)return ps.fromObject(e);throw new Fn("Unknown datetime argument: "+e+", of type "+typeof e)}yn.DateTime=ps,yn.Duration=po,yn.FixedOffsetZone=ei,yn.IANAZone=Kr,yn.Info=wo,yn.Interval=go,yn.InvalidZone=ti,yn.Settings=li,yn.SystemZone=Jr,yn.VERSION="2.4.0",yn.Zone=Rr;const ws=new XMLHttpRequest;ws.onreadystatechange=function(){if(4===this.readyState&&200===this.status){let e=JSON.parse(this.responseText).intradayPricing,t=0,n=yn.DateTime.now();e.length>0&&(t=parseFloat(e[e.length-1].price).toFixed(2),n=yn.DateTime.fromISO(e[e.length-1].time));document.getElementById("md-current-price").innerHTML="$"+t;document.getElementById("md-current-time").innerHTML=n.toLocaleString(yn.DateTime.DATETIME_FULL);const r=[],i=[];e.forEach((e=>{const{price:t,time:n}=e,o=yn.DateTime.fromISO(n),s=parseFloat(t).toFixed(2);r.push(o.toUnixInteger()),i.push(s)}));const o=document.getElementById("md-intraday-chart"),s=new mn({width:300,height:120,class:"spark",pxAlign:!1,cursor:{show:!1},select:{show:!1},legend:{show:!1},scales:{x:{time:!1}},axes:[{show:!1},{show:!1}],series:[{},{stroke:"#ec5b2e",fill:"#ffb39c"}]},[r,i]).ctx.canvas;o.parentNode.append(s)}},ws.open("GET","https://medtech100.com/md100/json/pricing",!0),ws.send(); //# sourceMappingURL=index.80f28a61.js.map </script> </head> <body> <div id="md-tech-ad"> <table class="md-table" align="center" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="100%"> <div class="md-align"> <img id="md-logo" class="md-margin" src="https://images.designworldonline.com/newsletters/images/ee034d8d8274c1ee5e8111f11cf1be49.png" alt="Medtech 100 logo"> </div> </td> </tr> <tr> <td width="100%"> <div class="md-align"> <div class="margin-text"> <span style="font-weight:600;color:#e06636!important;font-size:16px!important;line-height:14px!important"> Market Summary > Current Price </span> </div> </div> </td> </tr> <tr> <td width="100%"> <div class="md-align" id="md-content-container"> <div id="md-current-price"></div> <div id="md-current-time"></div> <div id="md-chart-container"> <div id="md-intraday-chart"></div> </div> </div> </td> </tr> <tr> <td width="100%"> <div class="md-align"> <div class="md-margin-text"> <span style="font-size:13px;line-height:15px!important"> The MedTech 100 is a financial index calculated using the BIG100 companies covered in Medical Design and Outsourcing. </span> </div> </div> </td> </tr> <tr> <td width="100%"> <div class="md-margin-text"> <a href="https://medtech100.com/?utm_source=MASS&utm_medium=BOXAD&utm_campaign=boxad&utm_id=MD100"> <button class="md-btn"> <span style="font-size:13px;font-weight:600"> Click for Index Details >> </span> </button> </a> </div> </td> </tr> </table> </div> </body> </html></div></div></section> <section id="text-25" class="widget widget_text"><div class="widget-wrap"> <div class="textwidget"><div id='div-gpt-md_sidebarbottom'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-md_sidebarbottom'); }); </script> </div> </div> </div></section> <section id="custom_html-4" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"> <center><a href="https://www.medicaldesignandoutsourcing.com/"><img src="/wp-content/uploads/2019/05/MDO_webAD_5-19_Vs1.jpg" alt="MDO ad"></a> </center></div></div></section> </aside></div></div><div class="footer-widgets" id="genesis-footer-widgets"><h2 class="genesis-sidebar-title screen-reader-text">Footer</h2><div class="wrap"><div class="widget-area footer-widgets-1 footer-widget-area"><section id="text-20" class="widget widget_text"><div class="widget-wrap"> <div class="textwidget"><img src="/wp-content/uploads/2017/01/massdevice-logo-inv.png"></div> </div></section> </div><div class="widget-area footer-widgets-2 footer-widget-area"><section id="text-17" class="widget widget_text"><div class="widget-wrap"><h3 class="widgettitle widget-title">MASSDEVICE MEDICAL NETWORK</h3> <div class="textwidget"><a href="http://www.devicetalks.com/" target="_blank">DeviceTalks</a> <br> <a href="http://www.drugdeliverybusiness.com/" target="_blank">Drug Delivery Business News</a> <br> <a href="http://www.medicaldesignandoutsourcing.com/" target="_blank">Medical Design & Outsourcing</a> <br> <a href="https://www.medicaltubingandextrusion.com/" target="_blank">Medical Tubing + Extrusion</a> <br /> <a href="https://www.drugdiscoverytrends.com/" target="_blank">Drug Discovery & Development</a> <br> <a href="https://www.pharmaceuticalprocessingworld.com/" target="_blank">Pharmaceutical Processing World</a> <br> <a href="https://medtech100.com/" target="_blank">MedTech 100 Index</a> <br> <a href="https://www.rdworldonline.com/" target="_blank">R&D World</a> <br> <a href="https://www.medicaldesignsourcing.com/" target="_blank">Medical Design Sourcing </a> <br></div> </div></section> <section id="custom_html-11" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h3 class="widgettitle widget-title">DeviceTalks Webinars, Podcasts, & Discussions</h3> <div class="textwidget custom-html-widget"><a href="https://www.medicaldesignandoutsourcing.com/medical-design-and-outsourcing-webinars-and-digital-events/" target="_blank" rel="noopener">Attend our Monthly Webinars</a> <br /> <a href="https://www.devicetalks.com/podcast/" target="_blank" rel="noopener">Listen to our Weekly Podcasts</a> <br /> <a href="https://gateway.on24.com/wcc/experience/elitewtwhmedia/2927718/4415884/devicetalks-tuesdays" target="_blank" rel="noopener">Join our DeviceTalks Tuesdays Discussion</a> </div></div></section> </div><div class="widget-area footer-widgets-3 footer-widget-area"><section id="text-19" class="widget widget_text"><div class="widget-wrap"><h3 class="widgettitle widget-title">MASSDEVICE</h3> <div class="textwidget"><a href="/massdevice-enews-signup/">Subscribe to MassDevice E-Newsletter</a> <br> <a href="https://marketing.wtwhmedia.com/2024-massdevice-media-guide/" target="_blank">Advertise with us</a> <br> <a href="/about-us/">About</a> <br> <a href="/contact-us/">Contact us</a> <br></div> </div></section> <section id="a2a_follow_widget-3" class="widget widget_a2a_follow_widget"><div class="widget-wrap"><div class="a2a_kit a2a_kit_size_34 a2a_follow addtoany_list"><a class="a2a_button_facebook" href="https://www.facebook.com/massdevicejournal" title="Facebook" rel="noopener" target="_blank"></a><a class="a2a_button_linkedin_company" href="https://www.linkedin.com/company/massdevice" title="LinkedIn Company" rel="noopener" target="_blank"></a><a class="a2a_button_x" href="https://x.com/MassDevice" title="X" rel="noopener" target="_blank"></a><a class="a2a_button_youtube_channel" href="https://www.youtube.com/channel/UCp-4HkKlpFY-2PfecQz2t_Q" title="YouTube Channel" rel="noopener" target="_blank"></a></div></div></section> </div></div></div><footer class="site-footer"><div class="wrap"><p>Copyright © 2024 · WTWH Media LLC and its licensors. All rights reserved. <br>The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media.</p> <p><a href="http://www.wtwhmedia.com/privacy">Privacy Policy </a></p></div></footer></div></div> <!-- xyzzy bottom --> </div> <script> var GAMaccountID = 5272491; var GAMnetworkName = 'lifesci_network'; var GAMadUnitName = 'md_prestitial'; googletag.slots = googletag.slots || {}; </script> <script defer src='//js.trendmd.com/trendmd.min.js' data-trendmdconfig='{"element":"#trendmd-suggestions"}'></script> <!-- Google Tag Manager (noscript) Global --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MMC9PJ9" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WNG82RC" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id='div-gpt-md_wallpaper'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-md_wallpaper'); }); </script> </div> <div id='div-gpt-mdo_allstreamflex'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-mdo_allstreamflex'); }); </script> </div> <div id='div-gpt-mdo_allstreamprelude'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-mdo_allstreamprelude'); }); </script> </div> <script type='text/javascript'>jQuery(document).ready(function($) {$(".flexslider").flexslider({controlsContainer: "#genesis-responsive-slider",animation: "fade",directionNav: 1,controlNav: 1,animationDuration: 800,slideshowSpeed: 8000 }); });</script> <script type="text/html" id="tmpl-media-frame"> <div class="media-frame-title" id="media-frame-title"></div> <h2 class="media-frame-menu-heading">Actions</h2> <button type="button" class="button button-link media-frame-menu-toggle" aria-expanded="false"> Menu <span class="dashicons dashicons-arrow-down" aria-hidden="true"></span> </button> <div class="media-frame-menu"></div> <div class="media-frame-tab-panel"> <div class="media-frame-router"></div> <div class="media-frame-content"></div> </div> <h2 class="media-frame-actions-heading screen-reader-text"> Selected media actions </h2> <div class="media-frame-toolbar"></div> <div class="media-frame-uploader"></div> </script> <script type="text/html" id="tmpl-media-modal"> <div tabindex="0" class="media-modal wp-core-ui" role="dialog" aria-labelledby="media-frame-title"> <# if ( data.hasCloseButton ) { #> <button type="button" class="media-modal-close"><span class="media-modal-icon"><span class="screen-reader-text"> Close dialog </span></span></button> <# } #> <div class="media-modal-content" role="document"></div> </div> <div class="media-modal-backdrop"></div> </script> <script type="text/html" id="tmpl-uploader-window"> <div class="uploader-window-content"> <div class="uploader-editor-title">Drop files to upload</div> </div> </script> <script type="text/html" id="tmpl-uploader-editor"> <div class="uploader-editor-content"> <div class="uploader-editor-title">Drop files to upload</div> </div> </script> <script type="text/html" id="tmpl-uploader-inline"> <# var messageClass = data.message ? 'has-upload-message' : 'no-upload-message'; #> <# if ( data.canClose ) { #> <button class="close dashicons dashicons-no"><span class="screen-reader-text"> Close uploader </span></button> <# } #> <div class="uploader-inline-content {{ messageClass }}"> <# if ( data.message ) { #> <h2 class="upload-message">{{ data.message }}</h2> <# } #> <div class="upload-ui"> <h2 class="upload-instructions drop-instructions">Drop files to upload</h2> <p class="upload-instructions drop-instructions">or</p> <button type="button" class="browser button button-hero" aria-labelledby="post-upload-info">Select Files</button> </div> <div class="upload-inline-status"></div> <div class="post-upload-ui" id="post-upload-info"> <p class="max-upload-size"> Maximum upload file size: 50 MB. </p> <# if ( data.suggestedWidth && data.suggestedHeight ) { #> <p class="suggested-dimensions"> Suggested image dimensions: {{data.suggestedWidth}} by {{data.suggestedHeight}} pixels. </p> <# } #> </div> </div> </script> <script type="text/html" id="tmpl-media-library-view-switcher"> <a href="https://www.massdevice.com/wp-admin/upload.php?mode=list" class="view-list"> <span class="screen-reader-text"> List view </span> </a> <a href="https://www.massdevice.com/wp-admin/upload.php?mode=grid" class="view-grid current" aria-current="page"> <span class="screen-reader-text"> Grid view </span> </a> </script> <script type="text/html" id="tmpl-uploader-status"> <h2>Uploading</h2> <div class="media-progress-bar"><div></div></div> <div class="upload-details"> <span class="upload-count"> <span class="upload-index"></span> / <span class="upload-total"></span> </span> <span class="upload-detail-separator">–</span> <span class="upload-filename"></span> </div> <div class="upload-errors"></div> <button type="button" class="button upload-dismiss-errors">Dismiss errors</button> </script> <script type="text/html" id="tmpl-uploader-status-error"> <span class="upload-error-filename">{{{ data.filename }}}</span> <span class="upload-error-message">{{ data.message }}</span> </script> <script type="text/html" id="tmpl-edit-attachment-frame"> <div class="edit-media-header"> <button class="left dashicons"<# if ( ! data.hasPrevious ) { #> disabled<# } #>><span class="screen-reader-text">Edit previous media item</span></button> <button class="right dashicons"<# if ( ! data.hasNext ) { #> disabled<# } #>><span class="screen-reader-text">Edit next media item</span></button> <button type="button" class="media-modal-close"><span class="media-modal-icon"><span class="screen-reader-text">Close dialog</span></span></button> </div> <div class="media-frame-title"></div> <div class="media-frame-content"></div> </script> <script type="text/html" id="tmpl-attachment-details-two-column"> <div class="attachment-media-view {{ data.orientation }}"> <h2 class="screen-reader-text">Attachment Preview</h2> <div class="thumbnail thumbnail-{{ data.type }}"> <# if ( data.uploading ) { #> <div class="media-progress-bar"><div></div></div> <# } else if ( data.sizes && data.sizes.full ) { #> <img class="details-image" src="{{ data.sizes.full.url }}" draggable="false" alt="" /> <# } else if ( data.sizes && data.sizes.large ) { #> <img class="details-image" src="{{ data.sizes.large.url }}" draggable="false" alt="" /> <# } else if ( -1 === jQuery.inArray( data.type, [ 'audio', 'video' ] ) ) { #> <img class="details-image icon" src="{{ data.icon }}" draggable="false" alt="" /> <# } #> <# if ( 'audio' === data.type ) { #> <div class="wp-media-wrapper wp-audio"> <audio style="visibility: hidden" controls class="wp-audio-shortcode" width="100%" preload="none"> <source type="{{ data.mime }}" src="{{ data.url }}" /> </audio> </div> <# } else if ( 'video' === data.type ) { var w_rule = ''; if ( data.width ) { w_rule = 'width: ' + data.width + 'px;'; } else if ( wp.media.view.settings.contentWidth ) { w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; } #> <div style="{{ w_rule }}" class="wp-media-wrapper wp-video"> <video controls="controls" class="wp-video-shortcode" preload="metadata" <# if ( data.width ) { #>width="{{ data.width }}"<# } #> <# if ( data.height ) { #>height="{{ data.height }}"<# } #> <# if ( data.image && data.image.src !== data.icon ) { #>poster="{{ data.image.src }}"<# } #>> <source type="{{ data.mime }}" src="{{ data.url }}" /> </video> </div> <# } #> <div class="attachment-actions"> <# if ( 'image' === data.type && ! data.uploading && data.sizes && data.can.save ) { #> <button type="button" class="button edit-attachment">Edit Image</button> <# } else if ( 'pdf' === data.subtype && data.sizes ) { #> <p>Document Preview</p> <# } #> </div> </div> </div> <div class="attachment-info"> <span class="settings-save-status" role="status"> <span class="spinner"></span> <span class="saved">Saved.</span> </span> <div class="details"> <h2 class="screen-reader-text"> Details </h2> <div class="uploaded"><strong>Uploaded on:</strong> {{ data.dateFormatted }}</div> <div class="uploaded-by"> <strong>Uploaded by:</strong> <# if ( data.authorLink ) { #> <a href="{{ data.authorLink }}">{{ data.authorName }}</a> <# } else { #> {{ data.authorName }} <# } #> </div> <# if ( data.uploadedToTitle ) { #> <div class="uploaded-to"> <strong>Uploaded to:</strong> <# if ( data.uploadedToLink ) { #> <a href="{{ data.uploadedToLink }}">{{ data.uploadedToTitle }}</a> <# } else { #> {{ data.uploadedToTitle }} <# } #> </div> <# } #> <div class="filename"><strong>File name:</strong> {{ data.filename }}</div> <div class="file-type"><strong>File type:</strong> {{ data.mime }}</div> <div class="file-size"><strong>File size:</strong> {{ data.filesizeHumanReadable }}</div> <# if ( 'image' === data.type && ! data.uploading ) { #> <# if ( data.width && data.height ) { #> <div class="dimensions"><strong>Dimensions:</strong> {{ data.width }} by {{ data.height }} pixels </div> <# } #> <# if ( data.originalImageURL && data.originalImageName ) { #> <div class="word-wrap-break-word"> <strong>Original image:</strong> <a href="{{ data.originalImageURL }}">{{data.originalImageName}}</a> </div> <# } #> <# } #> <# if ( data.fileLength && data.fileLengthHumanReadable ) { #> <div class="file-length"><strong>Length:</strong> <span aria-hidden="true">{{ data.fileLengthHumanReadable }}</span> <span class="screen-reader-text">{{ data.fileLengthHumanReadable }}</span> </div> <# } #> <# if ( 'audio' === data.type && data.meta.bitrate ) { #> <div class="bitrate"> <strong>Bitrate:</strong> {{ Math.round( data.meta.bitrate / 1000 ) }}kb/s <# if ( data.meta.bitrate_mode ) { #> {{ ' ' + data.meta.bitrate_mode.toUpperCase() }} <# } #> </div> <# } #> <# if ( data.mediaStates ) { #> <div class="media-states"><strong>Used as:</strong> {{ data.mediaStates }}</div> <# } #> <div class="compat-meta"> <# if ( data.compat && data.compat.meta ) { #> {{{ data.compat.meta }}} <# } #> </div> </div> <div class="settings"> <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #> <# if ( 'image' === data.type ) { #> <span class="setting alt-text has-description" data-setting="alt"> <label for="attachment-details-two-column-alt-text" class="name">Alternative Text</label> <textarea id="attachment-details-two-column-alt-text" aria-describedby="alt-text-description" {{ maybeReadOnly }}>{{ data.alt }}</textarea> </span> <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span></a>. Leave empty if the image is purely decorative.</p> <# } #> <span class="setting" data-setting="title"> <label for="attachment-details-two-column-title" class="name">Title</label> <input type="text" id="attachment-details-two-column-title" value="{{ data.title }}" {{ maybeReadOnly }} /> </span> <# if ( 'audio' === data.type ) { #> <span class="setting" data-setting="artist"> <label for="attachment-details-two-column-artist" class="name">Artist</label> <input type="text" id="attachment-details-two-column-artist" value="{{ data.artist || data.meta.artist || '' }}" /> </span> <span class="setting" data-setting="album"> <label for="attachment-details-two-column-album" class="name">Album</label> <input type="text" id="attachment-details-two-column-album" value="{{ data.album || data.meta.album || '' }}" /> </span> <# } #> <span class="setting" data-setting="caption"> <label for="attachment-details-two-column-caption" class="name">Caption</label> <textarea id="attachment-details-two-column-caption" {{ maybeReadOnly }}>{{ data.caption }}</textarea> </span> <span class="setting" data-setting="description"> <label for="attachment-details-two-column-description" class="name">Description</label> <textarea id="attachment-details-two-column-description" {{ maybeReadOnly }}>{{ data.description }}</textarea> </span> <span class="setting" data-setting="url"> <label for="attachment-details-two-column-copy-link" class="name">File URL:</label> <input type="text" class="attachment-details-copy-link" id="attachment-details-two-column-copy-link" value="{{ data.url }}" readonly /> <span class="copy-to-clipboard-container"> <button type="button" class="button button-small copy-attachment-url" data-clipboard-target="#attachment-details-two-column-copy-link">Copy URL to clipboard</button> <span class="success hidden" aria-hidden="true">Copied!</span> </span> </span> <div class="attachment-compat"></div> </div> <div class="actions"> <# if ( data.link ) { #> <a class="view-attachment" href="{{ data.link }}">View attachment page</a> <# } #> <# if ( data.can.save ) { #> <# if ( data.link ) { #> <span class="links-separator">|</span> <# } #> <a href="{{ data.editLink }}">Edit more details</a> <# } #> <# if ( data.can.save && data.link ) { #> <span class="links-separator">|</span> <a href="{{ data.url }}" download>Download file</a> <# } #> <# if ( ! data.uploading && data.can.remove ) { #> <# if ( data.link || data.can.save ) { #> <span class="links-separator">|</span> <# } #> <button type="button" class="button-link delete-attachment">Delete permanently</button> <# } #> </div> </div> </script> <script type="text/html" id="tmpl-attachment"> <div class="attachment-preview js--select-attachment type-{{ data.type }} subtype-{{ data.subtype }} {{ data.orientation }}"> <div class="thumbnail"> <# if ( data.uploading ) { #> <div class="media-progress-bar"><div style="width: {{ data.percent }}%"></div></div> <# } else if ( 'image' === data.type && data.size && data.size.url ) { #> <div class="centered"> <img src="{{ data.size.url }}" draggable="false" alt="" /> </div> <# } else { #> <div class="centered"> <# if ( data.image && data.image.src && data.image.src !== data.icon ) { #> <img src="{{ data.image.src }}" class="thumbnail" draggable="false" alt="" /> <# } else if ( data.sizes ) { if ( data.sizes.medium ) { #> <img src="{{ data.sizes.medium.url }}" class="thumbnail" draggable="false" alt="" /> <# } else { #> <img src="{{ data.sizes.full.url }}" class="thumbnail" draggable="false" alt="" /> <# } #> <# } else { #> <img src="{{ data.icon }}" class="icon" draggable="false" alt="" /> <# } #> </div> <div class="filename"> <div>{{ data.filename }}</div> </div> <# } #> </div> <# if ( data.buttons.close ) { #> <button type="button" class="button-link attachment-close media-modal-icon"><span class="screen-reader-text"> Remove </span></button> <# } #> </div> <# if ( data.buttons.check ) { #> <button type="button" class="check" tabindex="-1"><span class="media-modal-icon"></span><span class="screen-reader-text"> Deselect </span></button> <# } #> <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; if ( data.describe ) { if ( 'image' === data.type ) { #> <input type="text" value="{{ data.caption }}" class="describe" data-setting="caption" aria-label="Caption" placeholder="Caption…" {{ maybeReadOnly }} /> <# } else { #> <input type="text" value="{{ data.title }}" class="describe" data-setting="title" <# if ( 'video' === data.type ) { #> aria-label="Video title" placeholder="Video title…" <# } else if ( 'audio' === data.type ) { #> aria-label="Audio title" placeholder="Audio title…" <# } else { #> aria-label="Media title" placeholder="Media title…" <# } #> {{ maybeReadOnly }} /> <# } } #> </script> <script type="text/html" id="tmpl-attachment-details"> <h2> Attachment Details <span class="settings-save-status" role="status"> <span class="spinner"></span> <span class="saved">Saved.</span> </span> </h2> <div class="attachment-info"> <# if ( 'audio' === data.type ) { #> <div class="wp-media-wrapper wp-audio"> <audio style="visibility: hidden" controls class="wp-audio-shortcode" width="100%" preload="none"> <source type="{{ data.mime }}" src="{{ data.url }}" /> </audio> </div> <# } else if ( 'video' === data.type ) { var w_rule = ''; if ( data.width ) { w_rule = 'width: ' + data.width + 'px;'; } else if ( wp.media.view.settings.contentWidth ) { w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; } #> <div style="{{ w_rule }}" class="wp-media-wrapper wp-video"> <video controls="controls" class="wp-video-shortcode" preload="metadata" <# if ( data.width ) { #>width="{{ data.width }}"<# } #> <# if ( data.height ) { #>height="{{ data.height }}"<# } #> <# if ( data.image && data.image.src !== data.icon ) { #>poster="{{ data.image.src }}"<# } #>> <source type="{{ data.mime }}" src="{{ data.url }}" /> </video> </div> <# } else { #> <div class="thumbnail thumbnail-{{ data.type }}"> <# if ( data.uploading ) { #> <div class="media-progress-bar"><div></div></div> <# } else if ( 'image' === data.type && data.size && data.size.url ) { #> <img src="{{ data.size.url }}" draggable="false" alt="" /> <# } else { #> <img src="{{ data.icon }}" class="icon" draggable="false" alt="" /> <# } #> </div> <# } #> <div class="details"> <div class="filename">{{ data.filename }}</div> <div class="uploaded">{{ data.dateFormatted }}</div> <div class="file-size">{{ data.filesizeHumanReadable }}</div> <# if ( 'image' === data.type && ! data.uploading ) { #> <# if ( data.width && data.height ) { #> <div class="dimensions"> {{ data.width }} by {{ data.height }} pixels </div> <# } #> <# if ( data.originalImageURL && data.originalImageName ) { #> <div class="word-wrap-break-word"> Original image: <a href="{{ data.originalImageURL }}">{{data.originalImageName}}</a> </div> <# } #> <# if ( data.can.save && data.sizes ) { #> <a class="edit-attachment" href="{{ data.editLink }}&image-editor" target="_blank">Edit Image</a> <# } #> <# } #> <# if ( data.fileLength && data.fileLengthHumanReadable ) { #> <div class="file-length">Length: <span aria-hidden="true">{{ data.fileLengthHumanReadable }}</span> <span class="screen-reader-text">{{ data.fileLengthHumanReadable }}</span> </div> <# } #> <# if ( data.mediaStates ) { #> <div class="media-states"><strong>Used as:</strong> {{ data.mediaStates }}</div> <# } #> <# if ( ! data.uploading && data.can.remove ) { #> <button type="button" class="button-link delete-attachment">Delete permanently</button> <# } #> <div class="compat-meta"> <# if ( data.compat && data.compat.meta ) { #> {{{ data.compat.meta }}} <# } #> </div> </div> </div> <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #> <# if ( 'image' === data.type ) { #> <span class="setting alt-text has-description" data-setting="alt"> <label for="attachment-details-alt-text" class="name">Alt Text</label> <textarea id="attachment-details-alt-text" aria-describedby="alt-text-description" {{ maybeReadOnly }}>{{ data.alt }}</textarea> </span> <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span></a>. Leave empty if the image is purely decorative.</p> <# } #> <span class="setting" data-setting="title"> <label for="attachment-details-title" class="name">Title</label> <input type="text" id="attachment-details-title" value="{{ data.title }}" {{ maybeReadOnly }} /> </span> <# if ( 'audio' === data.type ) { #> <span class="setting" data-setting="artist"> <label for="attachment-details-artist" class="name">Artist</label> <input type="text" id="attachment-details-artist" value="{{ data.artist || data.meta.artist || '' }}" /> </span> <span class="setting" data-setting="album"> <label for="attachment-details-album" class="name">Album</label> <input type="text" id="attachment-details-album" value="{{ data.album || data.meta.album || '' }}" /> </span> <# } #> <span class="setting" data-setting="caption"> <label for="attachment-details-caption" class="name">Caption</label> <textarea id="attachment-details-caption" {{ maybeReadOnly }}>{{ data.caption }}</textarea> </span> <span class="setting" data-setting="description"> <label for="attachment-details-description" class="name">Description</label> <textarea id="attachment-details-description" {{ maybeReadOnly }}>{{ data.description }}</textarea> </span> <span class="setting" data-setting="url"> <label for="attachment-details-copy-link" class="name">File URL:</label> <input type="text" class="attachment-details-copy-link" id="attachment-details-copy-link" value="{{ data.url }}" readonly /> <div class="copy-to-clipboard-container"> <button type="button" class="button button-small copy-attachment-url" data-clipboard-target="#attachment-details-copy-link">Copy URL to clipboard</button> <span class="success hidden" aria-hidden="true">Copied!</span> </div> </span> </script> <script type="text/html" id="tmpl-media-selection"> <div class="selection-info"> <span class="count"></span> <# if ( data.editable ) { #> <button type="button" class="button-link edit-selection">Edit Selection</button> <# } #> <# if ( data.clearable ) { #> <button type="button" class="button-link clear-selection">Clear</button> <# } #> </div> <div class="selection-view"></div> </script> <script type="text/html" id="tmpl-attachment-display-settings"> <h2>Attachment Display Settings</h2> <# if ( 'image' === data.type ) { #> <span class="setting align"> <label for="attachment-display-settings-alignment" class="name">Alignment</label> <select id="attachment-display-settings-alignment" class="alignment" data-setting="align" <# if ( data.userSettings ) { #> data-user-setting="align" <# } #>> <option value="left"> Left </option> <option value="center"> Center </option> <option value="right"> Right </option> <option value="none" selected> None </option> </select> </span> <# } #> <span class="setting"> <label for="attachment-display-settings-link-to" class="name"> <# if ( data.model.canEmbed ) { #> Embed or Link <# } else { #> Link To <# } #> </label> <select id="attachment-display-settings-link-to" class="link-to" data-setting="link" <# if ( data.userSettings && ! data.model.canEmbed ) { #> data-user-setting="urlbutton" <# } #>> <# if ( data.model.canEmbed ) { #> <option value="embed" selected> Embed Media Player </option> <option value="file"> <# } else { #> <option value="none" selected> None </option> <option value="file"> <# } #> <# if ( data.model.canEmbed ) { #> Link to Media File <# } else { #> Media File <# } #> </option> <option value="post"> <# if ( data.model.canEmbed ) { #> Link to Attachment Page <# } else { #> Attachment Page <# } #> </option> <# if ( 'image' === data.type ) { #> <option value="custom"> Custom URL </option> <# } #> </select> </span> <span class="setting"> <label for="attachment-display-settings-link-to-custom" class="name">URL</label> <input type="text" id="attachment-display-settings-link-to-custom" class="link-to-custom" data-setting="linkUrl" /> </span> <# if ( 'undefined' !== typeof data.sizes ) { #> <span class="setting"> <label for="attachment-display-settings-size" class="name">Size</label> <select id="attachment-display-settings-size" class="size" name="size" data-setting="size" <# if ( data.userSettings ) { #> data-user-setting="imgsize" <# } #>> <# var size = data.sizes['thumbnail']; if ( size ) { #> <option value="thumbnail" > Thumbnail – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['medium']; if ( size ) { #> <option value="medium" > Medium – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['large']; if ( size ) { #> <option value="large" > Large – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['full']; if ( size ) { #> <option value="full" selected='selected'> Full Size – {{ size.width }} × {{ size.height }} </option> <# } #> </select> </span> <# } #> </script> <script type="text/html" id="tmpl-gallery-settings"> <h2>Gallery Settings</h2> <span class="setting"> <label for="gallery-settings-link-to" class="name">Link To</label> <select id="gallery-settings-link-to" class="link-to" data-setting="link" <# if ( data.userSettings ) { #> data-user-setting="urlbutton" <# } #>> <option value="post" <# if ( ! wp.media.galleryDefaults.link || 'post' === wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>> Attachment Page </option> <option value="file" <# if ( 'file' === wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>> Media File </option> <option value="none" <# if ( 'none' === wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>> None </option> </select> </span> <span class="setting"> <label for="gallery-settings-columns" class="name select-label-inline">Columns</label> <select id="gallery-settings-columns" class="columns" name="columns" data-setting="columns"> <option value="1" <# if ( 1 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 1 </option> <option value="2" <# if ( 2 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 2 </option> <option value="3" <# if ( 3 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 3 </option> <option value="4" <# if ( 4 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 4 </option> <option value="5" <# if ( 5 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 5 </option> <option value="6" <# if ( 6 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 6 </option> <option value="7" <# if ( 7 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 7 </option> <option value="8" <# if ( 8 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 8 </option> <option value="9" <# if ( 9 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 9 </option> </select> </span> <span class="setting"> <input type="checkbox" id="gallery-settings-random-order" data-setting="_orderbyRandom" /> <label for="gallery-settings-random-order" class="checkbox-label-inline">Random Order</label> </span> <span class="setting size"> <label for="gallery-settings-size" class="name">Size</label> <select id="gallery-settings-size" class="size" name="size" data-setting="size" <# if ( data.userSettings ) { #> data-user-setting="imgsize" <# } #> > <option value="thumbnail"> Thumbnail </option> <option value="medium"> Medium </option> <option value="large"> Large </option> <option value="full"> Full Size </option> </select> </span> </script> <script type="text/html" id="tmpl-playlist-settings"> <h2>Playlist Settings</h2> <# var emptyModel = _.isEmpty( data.model ), isVideo = 'video' === data.controller.get('library').props.get('type'); #> <span class="setting"> <input type="checkbox" id="playlist-settings-show-list" data-setting="tracklist" <# if ( emptyModel ) { #> checked="checked" <# } #> /> <label for="playlist-settings-show-list" class="checkbox-label-inline"> <# if ( isVideo ) { #> Show Video List <# } else { #> Show Tracklist <# } #> </label> </span> <# if ( ! isVideo ) { #> <span class="setting"> <input type="checkbox" id="playlist-settings-show-artist" data-setting="artists" <# if ( emptyModel ) { #> checked="checked" <# } #> /> <label for="playlist-settings-show-artist" class="checkbox-label-inline"> Show Artist Name in Tracklist </label> </span> <# } #> <span class="setting"> <input type="checkbox" id="playlist-settings-show-images" data-setting="images" <# if ( emptyModel ) { #> checked="checked" <# } #> /> <label for="playlist-settings-show-images" class="checkbox-label-inline"> Show Images </label> </span> </script> <script type="text/html" id="tmpl-embed-link-settings"> <span class="setting link-text"> <label for="embed-link-settings-link-text" class="name">Link Text</label> <input type="text" id="embed-link-settings-link-text" class="alignment" data-setting="linkText" /> </span> <div class="embed-container" style="display: none;"> <div class="embed-preview"></div> </div> </script> <script type="text/html" id="tmpl-embed-image-settings"> <div class="wp-clearfix"> <div class="thumbnail"> <img src="{{ data.model.url }}" draggable="false" alt="" /> </div> </div> <span class="setting alt-text has-description"> <label for="embed-image-settings-alt-text" class="name">Alternative Text</label> <textarea id="embed-image-settings-alt-text" data-setting="alt" aria-describedby="alt-text-description"></textarea> </span> <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span></a>. Leave empty if the image is purely decorative.</p> <span class="setting caption"> <label for="embed-image-settings-caption" class="name">Caption</label> <textarea id="embed-image-settings-caption" data-setting="caption"></textarea> </span> <fieldset class="setting-group"> <legend class="name">Align</legend> <span class="setting align"> <span class="button-group button-large" data-setting="align"> <button class="button" value="left"> Left </button> <button class="button" value="center"> Center </button> <button class="button" value="right"> Right </button> <button class="button active" value="none"> None </button> </span> </span> </fieldset> <fieldset class="setting-group"> <legend class="name">Link To</legend> <span class="setting link-to"> <span class="button-group button-large" data-setting="link"> <button class="button" value="file"> Image URL </button> <button class="button" value="custom"> Custom URL </button> <button class="button active" value="none"> None </button> </span> </span> <span class="setting"> <label for="embed-image-settings-link-to-custom" class="name">URL</label> <input type="text" id="embed-image-settings-link-to-custom" class="link-to-custom" data-setting="linkUrl" /> </span> </fieldset> </script> <script type="text/html" id="tmpl-image-details"> <div class="media-embed"> <div class="embed-media-settings"> <div class="column-settings"> <span class="setting alt-text has-description"> <label for="image-details-alt-text" class="name">Alternative Text</label> <textarea id="image-details-alt-text" data-setting="alt" aria-describedby="alt-text-description">{{ data.model.alt }}</textarea> </span> <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span></a>. Leave empty if the image is purely decorative.</p> <span class="setting caption"> <label for="image-details-caption" class="name">Caption</label> <textarea id="image-details-caption" data-setting="caption">{{ data.model.caption }}</textarea> </span> <h2>Display Settings</h2> <fieldset class="setting-group"> <legend class="legend-inline">Align</legend> <span class="setting align"> <span class="button-group button-large" data-setting="align"> <button class="button" value="left"> Left </button> <button class="button" value="center"> Center </button> <button class="button" value="right"> Right </button> <button class="button active" value="none"> None </button> </span> </span> </fieldset> <# if ( data.attachment ) { #> <# if ( 'undefined' !== typeof data.attachment.sizes ) { #> <span class="setting size"> <label for="image-details-size" class="name">Size</label> <select id="image-details-size" class="size" name="size" data-setting="size" <# if ( data.userSettings ) { #> data-user-setting="imgsize" <# } #>> <# var size = data.sizes['thumbnail']; if ( size ) { #> <option value="thumbnail"> Thumbnail – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['medium']; if ( size ) { #> <option value="medium"> Medium – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['large']; if ( size ) { #> <option value="large"> Large – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['full']; if ( size ) { #> <option value="full"> Full Size – {{ size.width }} × {{ size.height }} </option> <# } #> <option value="custom"> Custom Size </option> </select> </span> <# } #> <div class="custom-size wp-clearfix<# if ( data.model.size !== 'custom' ) { #> hidden<# } #>"> <span class="custom-size-setting"> <label for="image-details-size-width">Width</label> <input type="number" id="image-details-size-width" aria-describedby="image-size-desc" data-setting="customWidth" step="1" value="{{ data.model.customWidth }}" /> </span> <span class="sep" aria-hidden="true">×</span> <span class="custom-size-setting"> <label for="image-details-size-height">Height</label> <input type="number" id="image-details-size-height" aria-describedby="image-size-desc" data-setting="customHeight" step="1" value="{{ data.model.customHeight }}" /> </span> <p id="image-size-desc" class="description">Image size in pixels</p> </div> <# } #> <span class="setting link-to"> <label for="image-details-link-to" class="name">Link To</label> <select id="image-details-link-to" data-setting="link"> <# if ( data.attachment ) { #> <option value="file"> Media File </option> <option value="post"> Attachment Page </option> <# } else { #> <option value="file"> Image URL </option> <# } #> <option value="custom"> Custom URL </option> <option value="none"> None </option> </select> </span> <span class="setting"> <label for="image-details-link-to-custom" class="name">URL</label> <input type="text" id="image-details-link-to-custom" class="link-to-custom" data-setting="linkUrl" /> </span> <div class="advanced-section"> <h2><button type="button" class="button-link advanced-toggle">Advanced Options</button></h2> <div class="advanced-settings hidden"> <div class="advanced-image"> <span class="setting title-text"> <label for="image-details-title-attribute" class="name">Image Title Attribute</label> <input type="text" id="image-details-title-attribute" data-setting="title" value="{{ data.model.title }}" /> </span> <span class="setting extra-classes"> <label for="image-details-css-class" class="name">Image CSS Class</label> <input type="text" id="image-details-css-class" data-setting="extraClasses" value="{{ data.model.extraClasses }}" /> </span> </div> <div class="advanced-link"> <span class="setting link-target"> <input type="checkbox" id="image-details-link-target" data-setting="linkTargetBlank" value="_blank" <# if ( data.model.linkTargetBlank ) { #>checked="checked"<# } #>> <label for="image-details-link-target" class="checkbox-label">Open link in a new tab</label> </span> <span class="setting link-rel"> <label for="image-details-link-rel" class="name">Link Rel</label> <input type="text" id="image-details-link-rel" data-setting="linkRel" value="{{ data.model.linkRel }}" /> </span> <span class="setting link-class-name"> <label for="image-details-link-css-class" class="name">Link CSS Class</label> <input type="text" id="image-details-link-css-class" data-setting="linkClassName" value="{{ data.model.linkClassName }}" /> </span> </div> </div> </div> </div> <div class="column-image"> <div class="image"> <img src="{{ data.model.url }}" draggable="false" alt="" /> <# if ( data.attachment && window.imageEdit ) { #> <div class="actions"> <input type="button" class="edit-attachment button" value="Edit Original" /> <input type="button" class="replace-attachment button" value="Replace" /> </div> <# } #> </div> </div> </div> </div> </script> <script type="text/html" id="tmpl-image-editor"> <div id="media-head-{{ data.id }}"></div> <div id="image-editor-{{ data.id }}"></div> </script> <script type="text/html" id="tmpl-audio-details"> <# var ext, html5types = { mp3: wp.media.view.settings.embedMimes.mp3, ogg: wp.media.view.settings.embedMimes.ogg }; #> <div class="media-embed media-embed-details"> <div class="embed-media-settings embed-audio-settings"> <audio style="visibility: hidden" controls class="wp-audio-shortcode" width="{{ _.isUndefined( data.model.width ) ? 400 : data.model.width }}" preload="{{ _.isUndefined( data.model.preload ) ? 'none' : data.model.preload }}" <# if ( ! _.isUndefined( data.model.autoplay ) && data.model.autoplay ) { #> autoplay<# } if ( ! _.isUndefined( data.model.loop ) && data.model.loop ) { #> loop<# } #> > <# if ( ! _.isEmpty( data.model.src ) ) { #> <source src="{{ data.model.src }}" type="{{ wp.media.view.settings.embedMimes[ data.model.src.split('.').pop() ] }}" /> <# } #> <# if ( ! _.isEmpty( data.model.mp3 ) ) { #> <source src="{{ data.model.mp3 }}" type="{{ wp.media.view.settings.embedMimes[ 'mp3' ] }}" /> <# } #> <# if ( ! _.isEmpty( data.model.ogg ) ) { #> <source src="{{ data.model.ogg }}" type="{{ wp.media.view.settings.embedMimes[ 'ogg' ] }}" /> <# } #> <# if ( ! _.isEmpty( data.model.flac ) ) { #> <source src="{{ data.model.flac }}" type="{{ wp.media.view.settings.embedMimes[ 'flac' ] }}" /> <# } #> <# if ( ! _.isEmpty( data.model.m4a ) ) { #> <source src="{{ data.model.m4a }}" type="{{ wp.media.view.settings.embedMimes[ 'm4a' ] }}" /> <# } #> <# if ( ! _.isEmpty( data.model.wav ) ) { #> <source src="{{ data.model.wav }}" type="{{ wp.media.view.settings.embedMimes[ 'wav' ] }}" /> <# } #> </audio> <# if ( ! _.isEmpty( data.model.src ) ) { ext = data.model.src.split('.').pop(); if ( html5types[ ext ] ) { delete html5types[ ext ]; } #> <span class="setting"> <label for="audio-details-source" class="name">URL</label> <input type="text" id="audio-details-source" readonly data-setting="src" value="{{ data.model.src }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.mp3 ) ) { if ( ! _.isUndefined( html5types.mp3 ) ) { delete html5types.mp3; } #> <span class="setting"> <label for="audio-details-mp3-source" class="name">MP3</label> <input type="text" id="audio-details-mp3-source" readonly data-setting="mp3" value="{{ data.model.mp3 }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.ogg ) ) { if ( ! _.isUndefined( html5types.ogg ) ) { delete html5types.ogg; } #> <span class="setting"> <label for="audio-details-ogg-source" class="name">OGG</label> <input type="text" id="audio-details-ogg-source" readonly data-setting="ogg" value="{{ data.model.ogg }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.flac ) ) { if ( ! _.isUndefined( html5types.flac ) ) { delete html5types.flac; } #> <span class="setting"> <label for="audio-details-flac-source" class="name">FLAC</label> <input type="text" id="audio-details-flac-source" readonly data-setting="flac" value="{{ data.model.flac }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.m4a ) ) { if ( ! _.isUndefined( html5types.m4a ) ) { delete html5types.m4a; } #> <span class="setting"> <label for="audio-details-m4a-source" class="name">M4A</label> <input type="text" id="audio-details-m4a-source" readonly data-setting="m4a" value="{{ data.model.m4a }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.wav ) ) { if ( ! _.isUndefined( html5types.wav ) ) { delete html5types.wav; } #> <span class="setting"> <label for="audio-details-wav-source" class="name">WAV</label> <input type="text" id="audio-details-wav-source" readonly data-setting="wav" value="{{ data.model.wav }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( html5types ) ) { #> <fieldset class="setting-group"> <legend class="name">Add alternate sources for maximum HTML5 playback</legend> <span class="setting"> <span class="button-large"> <# _.each( html5types, function (mime, type) { #> <button class="button add-media-source" data-mime="{{ mime }}">{{ type }}</button> <# } ) #> </span> </span> </fieldset> <# } #> <fieldset class="setting-group"> <legend class="name">Preload</legend> <span class="setting preload"> <span class="button-group button-large" data-setting="preload"> <button class="button" value="auto">Auto</button> <button class="button" value="metadata">Metadata</button> <button class="button active" value="none">None</button> </span> </span> </fieldset> <span class="setting-group"> <span class="setting checkbox-setting autoplay"> <input type="checkbox" id="audio-details-autoplay" data-setting="autoplay" /> <label for="audio-details-autoplay" class="checkbox-label">Autoplay</label> </span> <span class="setting checkbox-setting"> <input type="checkbox" id="audio-details-loop" data-setting="loop" /> <label for="audio-details-loop" class="checkbox-label">Loop</label> </span> </span> </div> </div> </script> <script type="text/html" id="tmpl-video-details"> <# var ext, html5types = { mp4: wp.media.view.settings.embedMimes.mp4, ogv: wp.media.view.settings.embedMimes.ogv, webm: wp.media.view.settings.embedMimes.webm }; #> <div class="media-embed media-embed-details"> <div class="embed-media-settings embed-video-settings"> <div class="wp-video-holder"> <# var w = ! data.model.width || data.model.width > 640 ? 640 : data.model.width, h = ! data.model.height ? 360 : data.model.height; if ( data.model.width && w !== data.model.width ) { h = Math.ceil( ( h * w ) / data.model.width ); } #> <# var w_rule = '', classes = [], w, h, settings = wp.media.view.settings, isYouTube = isVimeo = false; if ( ! _.isEmpty( data.model.src ) ) { isYouTube = data.model.src.match(/youtube|youtu\.be/); isVimeo = -1 !== data.model.src.indexOf('vimeo'); } if ( settings.contentWidth && data.model.width >= settings.contentWidth ) { w = settings.contentWidth; } else { w = data.model.width; } if ( w !== data.model.width ) { h = Math.ceil( ( data.model.height * w ) / data.model.width ); } else { h = data.model.height; } if ( w ) { w_rule = 'width: ' + w + 'px; '; } if ( isYouTube ) { classes.push( 'youtube-video' ); } if ( isVimeo ) { classes.push( 'vimeo-video' ); } #> <div style="{{ w_rule }}" class="wp-video"> <video controls class="wp-video-shortcode {{ classes.join( ' ' ) }}" <# if ( w ) { #>width="{{ w }}"<# } #> <# if ( h ) { #>height="{{ h }}"<# } #> <# if ( ! _.isUndefined( data.model.poster ) && data.model.poster ) { #> poster="{{ data.model.poster }}"<# } #> preload ="{{ _.isUndefined( data.model.preload ) ? 'metadata' : data.model.preload }}" <# if ( ! _.isUndefined( data.model.autoplay ) && data.model.autoplay ) { #> autoplay<# } if ( ! _.isUndefined( data.model.loop ) && data.model.loop ) { #> loop<# } #> > <# if ( ! _.isEmpty( data.model.src ) ) { if ( isYouTube ) { #> <source src="{{ data.model.src }}" type="video/youtube" /> <# } else if ( isVimeo ) { #> <source src="{{ data.model.src }}" type="video/vimeo" /> <# } else { #> <source src="{{ data.model.src }}" type="{{ settings.embedMimes[ data.model.src.split('.').pop() ] }}" /> <# } } #> <# if ( data.model.mp4 ) { #> <source src="{{ data.model.mp4 }}" type="{{ settings.embedMimes[ 'mp4' ] }}" /> <# } #> <# if ( data.model.m4v ) { #> <source src="{{ data.model.m4v }}" type="{{ settings.embedMimes[ 'm4v' ] }}" /> <# } #> <# if ( data.model.webm ) { #> <source src="{{ data.model.webm }}" type="{{ settings.embedMimes[ 'webm' ] }}" /> <# } #> <# if ( data.model.ogv ) { #> <source src="{{ data.model.ogv }}" type="{{ settings.embedMimes[ 'ogv' ] }}" /> <# } #> <# if ( data.model.flv ) { #> <source src="{{ data.model.flv }}" type="{{ settings.embedMimes[ 'flv' ] }}" /> <# } #> {{{ data.model.content }}} </video> </div> <# if ( ! _.isEmpty( data.model.src ) ) { ext = data.model.src.split('.').pop(); if ( html5types[ ext ] ) { delete html5types[ ext ]; } #> <span class="setting"> <label for="video-details-source" class="name">URL</label> <input type="text" id="video-details-source" readonly data-setting="src" value="{{ data.model.src }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.mp4 ) ) { if ( ! _.isUndefined( html5types.mp4 ) ) { delete html5types.mp4; } #> <span class="setting"> <label for="video-details-mp4-source" class="name">MP4</label> <input type="text" id="video-details-mp4-source" readonly data-setting="mp4" value="{{ data.model.mp4 }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.m4v ) ) { if ( ! _.isUndefined( html5types.m4v ) ) { delete html5types.m4v; } #> <span class="setting"> <label for="video-details-m4v-source" class="name">M4V</label> <input type="text" id="video-details-m4v-source" readonly data-setting="m4v" value="{{ data.model.m4v }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.webm ) ) { if ( ! _.isUndefined( html5types.webm ) ) { delete html5types.webm; } #> <span class="setting"> <label for="video-details-webm-source" class="name">WEBM</label> <input type="text" id="video-details-webm-source" readonly data-setting="webm" value="{{ data.model.webm }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.ogv ) ) { if ( ! _.isUndefined( html5types.ogv ) ) { delete html5types.ogv; } #> <span class="setting"> <label for="video-details-ogv-source" class="name">OGV</label> <input type="text" id="video-details-ogv-source" readonly data-setting="ogv" value="{{ data.model.ogv }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.flv ) ) { if ( ! _.isUndefined( html5types.flv ) ) { delete html5types.flv; } #> <span class="setting"> <label for="video-details-flv-source" class="name">FLV</label> <input type="text" id="video-details-flv-source" readonly data-setting="flv" value="{{ data.model.flv }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> </div> <# if ( ! _.isEmpty( html5types ) ) { #> <fieldset class="setting-group"> <legend class="name">Add alternate sources for maximum HTML5 playback</legend> <span class="setting"> <span class="button-large"> <# _.each( html5types, function (mime, type) { #> <button class="button add-media-source" data-mime="{{ mime }}">{{ type }}</button> <# } ) #> </span> </span> </fieldset> <# } #> <# if ( ! _.isEmpty( data.model.poster ) ) { #> <span class="setting"> <label for="video-details-poster-image" class="name">Poster Image</label> <input type="text" id="video-details-poster-image" readonly data-setting="poster" value="{{ data.model.poster }}" /> <button type="button" class="button-link remove-setting">Remove poster image</button> </span> <# } #> <fieldset class="setting-group"> <legend class="name">Preload</legend> <span class="setting preload"> <span class="button-group button-large" data-setting="preload"> <button class="button" value="auto">Auto</button> <button class="button" value="metadata">Metadata</button> <button class="button active" value="none">None</button> </span> </span> </fieldset> <span class="setting-group"> <span class="setting checkbox-setting autoplay"> <input type="checkbox" id="video-details-autoplay" data-setting="autoplay" /> <label for="video-details-autoplay" class="checkbox-label">Autoplay</label> </span> <span class="setting checkbox-setting"> <input type="checkbox" id="video-details-loop" data-setting="loop" /> <label for="video-details-loop" class="checkbox-label">Loop</label> </span> </span> <span class="setting" data-setting="content"> <# var content = ''; if ( ! _.isEmpty( data.model.content ) ) { var tracks = jQuery( data.model.content ).filter( 'track' ); _.each( tracks.toArray(), function( track, index ) { content += track.outerHTML; #> <label for="video-details-track-{{ index }}" class="name">Tracks (subtitles, captions, descriptions, chapters, or metadata)</label> <input class="content-track" type="text" id="video-details-track-{{ index }}" aria-describedby="video-details-track-desc-{{ index }}" value="{{ track.outerHTML }}" /> <span class="description" id="video-details-track-desc-{{ index }}"> The srclang, label, and kind values can be edited to set the video track language and kind. </span> <button type="button" class="button-link remove-setting remove-track">Remove video track</button><br /> <# } ); #> <# } else { #> <span class="name">Tracks (subtitles, captions, descriptions, chapters, or metadata)</span><br /> <em>There are no associated subtitles.</em> <# } #> <textarea class="hidden content-setting">{{ content }}</textarea> </span> </div> </div> </script> <script type="text/html" id="tmpl-editor-gallery"> <# if ( data.attachments.length ) { #> <div class="gallery gallery-columns-{{ data.columns }}"> <# _.each( data.attachments, function( attachment, index ) { #> <dl class="gallery-item"> <dt class="gallery-icon"> <# if ( attachment.thumbnail ) { #> <img src="{{ attachment.thumbnail.url }}" width="{{ attachment.thumbnail.width }}" height="{{ attachment.thumbnail.height }}" alt="{{ attachment.alt }}" /> <# } else { #> <img src="{{ attachment.url }}" alt="{{ attachment.alt }}" /> <# } #> </dt> <# if ( attachment.caption ) { #> <dd class="wp-caption-text gallery-caption"> {{{ data.verifyHTML( attachment.caption ) }}} </dd> <# } #> </dl> <# if ( index % data.columns === data.columns - 1 ) { #> <br style="clear: both;" /> <# } #> <# } ); #> </div> <# } else { #> <div class="wpview-error"> <div class="dashicons dashicons-format-gallery"></div><p>No items found.</p> </div> <# } #> </script> <script type="text/html" id="tmpl-crop-content"> <img class="crop-image" src="{{ data.url }}" alt="Image crop area preview. Requires mouse interaction." /> <div class="upload-errors"></div> </script> <script type="text/html" id="tmpl-site-icon-preview-crop"> <style> :root{ --site-icon-url: url( "{{ data.url }}" ); } </style> <h2>Site Icon Preview</h2> <p>As an app icon and a browser icon.</p> <div class="site-icon-preview crop"> <div class="image-preview-wrap app-icon-preview"> <img id="preview-app-icon" src="{{ data.url }}" class="app-icon-preview" alt="Preview as an app icon" /> </div> <div class="site-icon-preview-browser"> <svg role="img" aria-hidden="true" fill="none" xmlns="http://www.w3.org/2000/svg" class="browser-buttons"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 20a6 6 0 1 1 12 0 6 6 0 0 1-12 0Zm18 0a6 6 0 1 1 12 0 6 6 0 0 1-12 0Zm24-6a6 6 0 1 0 0 12 6 6 0 0 0 0-12Z" /></svg> <div class="site-icon-preview-tab"> <div class="image-preview-wrap browser"> <img id="preview-favicon" src="{{ data.url }}" class="browser-icon-preview" alt="Preview as a browser icon" /> </div> <div class="site-icon-preview-site-title" aria-hidden="true"><# print( 'MassDevice' ) #></div> <svg role="img" aria-hidden="true" fill="none" xmlns="http://www.w3.org/2000/svg" class="close-button"> <path d="M12 13.0607L15.7123 16.773L16.773 15.7123L13.0607 12L16.773 8.28772L15.7123 7.22706L12 10.9394L8.28771 7.22705L7.22705 8.28771L10.9394 12L7.22706 15.7123L8.28772 16.773L12 13.0607Z" /> </svg> </div> </div> </div> </div> </script> <script type="text/html" id="yrc-shortcode-instructions"> <div class="yrc-ics"> <div class="yrc-ics-header"> <h2>YourChannel Instructions</h2> <p>We're working on a visual shortcode editor, until then please follow these instructions.</p> <p>Email us to <a href="mailto:support@plugin.builders?subject=YourChannel Shortcode Instructions" target="_blank">support@plugin.builders</a> for any problems, we'll be fast.</p> </div> <div> <div class="yrc-ics-set"> <h3>Show single videos</h3> <div> <h4>Show video by URL or Video ID</h4> <ul> <li>Put <code>[yourchannel user="<em>your username</em>" video="https://www.youtube.com/watch?v=e3dVDn1A4C8"]</code></li> <li>Or <code>[yourchannel user="<em>your username</em>" video="e3dVDn1A4C8"]</code></li> <li>You can also leave the <code>user="..."</code> part, now your shortcode'll look like: <code>[yourchannel video="e3dVDn1A4C8"]</code>. Any styles needed will be taken from the first channel you have in YourChannel page.</li> </ul> <h4 class="yrc-ics-pro">Show video by getting video IDs from URL</h4> <ul class="yrc-ics-pro"> <li>Add <code>?v=<em>https://www.youtube.com/watch?v=e3dVDn1A4C8</em></code> to your site URL and put <code>[yourchannel video_from="url_parameter" url_parameter="<em>v</em>"]</code> in your post. You can use any term in place of the <code>v</code>, they just need to be same in both URL and <code>url_parameter</code> field of shortcode. You can enter multiple video URLs or IDs separated by commas in the URL and YourChannel will show multiple videos one after another.</li> </ul> <h4 class="yrc-ics-pro">Show video from search results</h4> <ul class="yrc-ics-pro"> <li>Add <code>[yourchannel video_from="search" search="<em>what to search</em>"]</code> to the post and it'll show first video from the search results. You can show multiple videos by adding <code>limit="<em>n</em>"</code> to shortcode, replace <code>n</code> with a number.</li> </ul> <h4 class="yrc-ics-pro">Show video from a playlist</h4> <ul class="yrc-ics-pro"> <li>Add <code>[yourchannel video_from="playlist" playlist="<em>https://www.youtube.com/watch?v=e3dVDn1A4C8&list=RDe3dVDn1A4C8</em>"]</code> to the post and it'll show first video from the playlist. You can show multiple videos by adding <code>limit="<em>n</em>"</code> to shortcode, replace <code>n</code> with a number.</li> </ul> </div> </div> <div class="yrc-ics-set"> <h3>Show channels / streams</h3> <div> <h4>Show a channel</h4> <ul> <li>Add <code>[yourchannel user="<em>your username</em>"]</code> to your post. This will show the channel you created in YourChannel page. Copy & Paste the shortcode in YourChannel page.</li> </ul> <h4>Show a different channel</h4> <ul> <li>Add <code>[yourchannel user="<em>your username</em>" channel="<em>https://www.youtube.com/channel/UCnOTVWVaIh3NoJsbwq4Tucg</em>"]</code> to your post. This will show everything (Banner, Videos, Playlists) of this channel in shortcode.</li> </ul> <h4 class="yrc-ics-pro">Show videos from a playlist in Videos tab</h4> <ul class="yrc-ics-pro"> <li>Add <code>playlist="<em>https://www.youtube.com/watch?v=e3dVDn1A4C8&list=RDe3dVDn1A4C8</em>"</code> to the shortcode.</li> </ul> <h4 class="yrc-ics-pro">Show videos by a search term in Videos tab</h4> <ul class="yrc-ics-pro"> <li>Add <code>search="<em>what to search</em>"</code> to the shortcode. Add <code>own="1"</code> to shortcode if you want to restrict the search to your channel. You can also add <code>channel="<em>https://www.youtube.com/channel/UCEkBEbI7ME92qqjMjqvuIQA</em>"</code> to shortcode to search any specific channel.</li> </ul> <h4 class="yrc-ics-pro">Show videos from a custom playlist</h4> <ul class="yrc-ics-pro"> <li>Add <code>custom="<em>custom_playlist_name</em>"</code> to the shortcode. You must have created a custom playlist in YourChannel page with the name <code><em>custom_playlist_name</em></code>. You can also create custom playlists in the shortcode itself, add <code>custom="<em>3pLWskANffo,jNebrSB-r7Q</em>"</code> (video IDs or URLs separated by commas) to shortcode.</li> </ul> </div> </div> <div class="yrc-ics-set"> <h3>Other important options</h3> <div> <h4>Autoplay video</h4> <ul> <li>Add <code>autoplay="1"</code> to the shortcode. Add <code>autoplay=""</code> if the channel has autoplay enabled in its form in YourChannel page and you want to disable it for this shortcode. *This option only works with single videos in Free version.</li> </ul> <h4>Sticky (Floating) player</h4> <ul> <li>Add <code>sticky="1"</code> to shortcode to make player for this shortcode sticky when user scrolls out of view. You can customise more sticky options in <strong>Style > Show Options > Sticky Player</strong> section of YourChannel form.</li> </ul> <h4>Pagination</h4> <ul> <li>Add <code>limit="<em>n</em>"</code> to shortcode to show <code><em>n</em></code> videos per load. Add <code>max="<em>n</em>"</code> to show maximum of <code><em>n</em></code> videos (There'll be no <strong>Load more</strong> button after this many videos are shown).</li> </ul> <h4>Ads</h4> <ul> <li>We use some workarounds to show ads in videos that are autoplayed (YouTube doesn't show ads in videos that are not just <code>iframe</code> embeds without autoplay). Because of this, you might notice sometimes videos don't start playing immediately, add <code>ads=""</code> to shortcode to fix this (you won't see ads). <strong>But you'll generally not notice the delay caused by workaround.</strong></li> </ul> <h4 class="yrc-ics-pro">Video start time</h4> <ul class="yrc-ics-pro"> <li>Add <code>start="n"</code> to the shortcode. Replace <code>n</code> with number of seconds to start at.</li> </ul> <h4 class="yrc-ics-pro">Initial player volume</h4> <ul class="yrc-ics-pro"> <li>Add <code>volume="n"</code> to the shortcode. Replace <code>n</code> with a number between <code>0</code> and <code>100</code>.</li> </ul> <h4 class="yrc-ics-pro">Rich player</h4> <ul class="yrc-ics-pro"> <li>Add <code>show_meta="1"</code> to show player title, uploader & statistics under the player. Add <code>show_desc="1"</code> to show description. And add <code>show_comments="1"</code> to show comments.</li> </ul> <h4 class="yrc-ics-pro">Sorting</h4> <ul class="yrc-ics-pro"> <li>Add <code>sortby="sorting_method"</code> to shortcode to sort videos in a certain way. <code>sorting_method</code> must be one of <code>date</code>, <code>rating</code>, <code>viewCount</code> or <code>title</code>.</li> </ul> </div> </div> </div> </div> </script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/plugins/wtwh-ticker/assets/js/wtwh-ticker.js?ver=1" id="wtwh_ticker_js-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/plugins/prestitial/assets/js/adlogic.js?ver=1.1.0" id="wtwh_prestitial_core_js-js"></script> <script type="text/javascript" id="thickbox-js-extra"> /* <![CDATA[ */ var thickboxL10n = {"next":"Next >","prev":"< Prev","image":"Image","of":"of","close":"Close","noiframes":"This feature requires inline frames. You have iframes disabled or your browser does not support them.","loadingAnimation":"https:\/\/www.massdevice.com\/wp-includes\/js\/thickbox\/loadingAnimation.gif"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/thickbox/thickbox.js?ver=3.1-20121105" id="thickbox-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/underscore.min.js?ver=1.13.7" id="underscore-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/shortcode.min.js?ver=6.7" id="shortcode-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-admin/js/media-upload.min.js?ver=6.7" id="media-upload-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/backbone.min.js?ver=1.6.0" id="backbone-js"></script> <script type="text/javascript" id="wp-util-js-extra"> /* <![CDATA[ */ var _wpUtilSettings = {"ajax":{"url":"\/wp-admin\/admin-ajax.php"}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/wp-util.min.js?ver=6.7" id="wp-util-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/wp-backbone.min.js?ver=6.7" id="wp-backbone-js"></script> <script type="text/javascript" id="media-models-js-extra"> /* <![CDATA[ */ var _wpMediaModelsL10n = {"settings":{"ajaxurl":"\/wp-admin\/admin-ajax.php","post":{"id":0}}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/media-models.min.js?ver=6.7" id="media-models-js"></script> <script type="text/javascript" id="wp-plupload-js-extra"> /* <![CDATA[ */ var pluploadL10n = {"queue_limit_exceeded":"You have attempted to queue too many files.","file_exceeds_size_limit":"%s exceeds the maximum upload size for this site.","zero_byte_file":"This file is empty. Please try another.","invalid_filetype":"Sorry, you are not allowed to upload this file type.","not_an_image":"This file is not an image. Please try another.","image_memory_exceeded":"Memory exceeded. Please try another smaller file.","image_dimensions_exceeded":"This is larger than the maximum size. Please try another.","default_error":"An error occurred in the upload. Please try again later.","missing_upload_url":"There was a configuration error. Please contact the server administrator.","upload_limit_exceeded":"You may only upload 1 file.","http_error":"Unexpected response from the server. The file may have been uploaded successfully. Check in the Media Library or reload the page.","http_error_image":"The server cannot process the image. This can happen if the server is busy or does not have enough resources to complete the task. Uploading a smaller image may help. Suggested maximum size is 2560 pixels.","upload_failed":"Upload failed.","big_upload_failed":"Please try uploading this file with the %1$sbrowser uploader%2$s.","big_upload_queued":"%s exceeds the maximum upload size for the multi-file uploader when used in your browser.","io_error":"IO error.","security_error":"Security error.","file_cancelled":"File canceled.","upload_stopped":"Upload stopped.","dismiss":"Dismiss","crunching":"Crunching\u2026","deleted":"moved to the Trash.","error_uploading":"\u201c%s\u201d has failed to upload.","unsupported_image":"This image cannot be displayed in a web browser. For best results convert it to JPEG before uploading.","noneditable_image":"This image cannot be processed by the web server. Convert it to JPEG or PNG before uploading.","file_url_copied":"The file URL has been copied to your clipboard"}; var _wpPluploadSettings = {"defaults":{"file_data_name":"async-upload","url":"\/wp-admin\/async-upload.php","filters":{"max_file_size":"52428800b","mime_types":[{"extensions":"jpg,jpeg,jpe,gif,png,bmp,tiff,tif,webp,avif,ico,heic,heif,heics,heifs,asf,asx,wmv,wmx,wm,avi,divx,flv,mov,qt,mpeg,mpg,mpe,mp4,m4v,ogv,webm,mkv,3gp,3gpp,3g2,3gp2,txt,asc,c,cc,h,srt,csv,tsv,ics,rtx,css,vtt,dfxp,mp3,m4a,m4b,aac,ra,ram,wav,ogg,oga,flac,mid,midi,wma,wax,mka,rtf,pdf,class,tar,zip,gz,gzip,rar,7z,psd,xcf,doc,pot,pps,ppt,wri,xla,xls,xlt,xlw,mdb,mpp,docx,docm,dotx,dotm,xlsx,xlsm,xlsb,xltx,xltm,xlam,pptx,pptm,ppsx,ppsm,potx,potm,ppam,sldx,sldm,onetoc,onetoc2,onetmp,onepkg,oxps,xps,odt,odp,ods,odg,odc,odb,odf,wp,wpd,key,numbers,pages"}]},"multipart_params":{"action":"upload-attachment","_wpnonce":"36c25bd5f1"}},"browser":{"mobile":false,"supported":true},"limitExceeded":false}; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/plupload/wp-plupload.min.js?ver=6.7" id="wp-plupload-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" id="jquery-ui-core-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/jquery/ui/mouse.min.js?ver=1.13.3" id="jquery-ui-mouse-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/jquery/ui/sortable.min.js?ver=1.13.3" id="jquery-ui-sortable-js"></script> <script type="text/javascript" id="mediaelement-core-js-before"> /* <![CDATA[ */ var mejsL10n = {"language":"en","strings":{"mejs.download-file":"Download File","mejs.install-flash":"You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https:\/\/get.adobe.com\/flashplayer\/","mejs.fullscreen":"Fullscreen","mejs.play":"Play","mejs.pause":"Pause","mejs.time-slider":"Time Slider","mejs.time-help-text":"Use Left\/Right Arrow keys to advance one second, Up\/Down arrows to advance ten seconds.","mejs.live-broadcast":"Live Broadcast","mejs.volume-help-text":"Use Up\/Down Arrow keys to increase or decrease volume.","mejs.unmute":"Unmute","mejs.mute":"Mute","mejs.volume-slider":"Volume Slider","mejs.video-player":"Video Player","mejs.audio-player":"Audio Player","mejs.captions-subtitles":"Captions\/Subtitles","mejs.captions-chapters":"Chapters","mejs.none":"None","mejs.afrikaans":"Afrikaans","mejs.albanian":"Albanian","mejs.arabic":"Arabic","mejs.belarusian":"Belarusian","mejs.bulgarian":"Bulgarian","mejs.catalan":"Catalan","mejs.chinese":"Chinese","mejs.chinese-simplified":"Chinese (Simplified)","mejs.chinese-traditional":"Chinese (Traditional)","mejs.croatian":"Croatian","mejs.czech":"Czech","mejs.danish":"Danish","mejs.dutch":"Dutch","mejs.english":"English","mejs.estonian":"Estonian","mejs.filipino":"Filipino","mejs.finnish":"Finnish","mejs.french":"French","mejs.galician":"Galician","mejs.german":"German","mejs.greek":"Greek","mejs.haitian-creole":"Haitian Creole","mejs.hebrew":"Hebrew","mejs.hindi":"Hindi","mejs.hungarian":"Hungarian","mejs.icelandic":"Icelandic","mejs.indonesian":"Indonesian","mejs.irish":"Irish","mejs.italian":"Italian","mejs.japanese":"Japanese","mejs.korean":"Korean","mejs.latvian":"Latvian","mejs.lithuanian":"Lithuanian","mejs.macedonian":"Macedonian","mejs.malay":"Malay","mejs.maltese":"Maltese","mejs.norwegian":"Norwegian","mejs.persian":"Persian","mejs.polish":"Polish","mejs.portuguese":"Portuguese","mejs.romanian":"Romanian","mejs.russian":"Russian","mejs.serbian":"Serbian","mejs.slovak":"Slovak","mejs.slovenian":"Slovenian","mejs.spanish":"Spanish","mejs.swahili":"Swahili","mejs.swedish":"Swedish","mejs.tagalog":"Tagalog","mejs.thai":"Thai","mejs.turkish":"Turkish","mejs.ukrainian":"Ukrainian","mejs.vietnamese":"Vietnamese","mejs.welsh":"Welsh","mejs.yiddish":"Yiddish"}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/mediaelement/mediaelement-and-player.min.js?ver=4.2.17" id="mediaelement-core-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/mediaelement/mediaelement-migrate.min.js?ver=6.7" id="mediaelement-migrate-js"></script> <script type="text/javascript" id="mediaelement-js-extra"> /* <![CDATA[ */ var _wpmejsSettings = {"pluginPath":"\/wp-includes\/js\/mediaelement\/","classPrefix":"mejs-","stretching":"responsive","audioShortcodeLibrary":"mediaelement","videoShortcodeLibrary":"mediaelement"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/mediaelement/wp-mediaelement.min.js?ver=6.7" id="wp-mediaelement-js"></script> <script type="text/javascript" id="wp-api-request-js-extra"> /* <![CDATA[ */ var wpApiSettings = {"root":"https:\/\/www.massdevice.com\/wp-json\/","nonce":"661fee2858","versionString":"wp\/v2\/"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/api-request.min.js?ver=6.7" id="wp-api-request-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/dist/dom-ready.min.js?ver=f77871ff7694fffea381" id="wp-dom-ready-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/dist/a11y.min.js?ver=3156534cc54473497e14" id="wp-a11y-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/clipboard.min.js?ver=2.0.11" id="clipboard-js"></script> <script type="text/javascript" id="media-views-js-extra"> /* <![CDATA[ */ var _wpMediaViewsL10n = {"mediaFrameDefaultTitle":"Media","url":"URL","addMedia":"Add media","search":"Search","select":"Select","cancel":"Cancel","update":"Update","replace":"Replace","remove":"Remove","back":"Back","selected":"%d selected","dragInfo":"Drag and drop to reorder media files.","uploadFilesTitle":"Upload files","uploadImagesTitle":"Upload images","mediaLibraryTitle":"Media Library","insertMediaTitle":"Add media","createNewGallery":"Create a new gallery","createNewPlaylist":"Create a new playlist","createNewVideoPlaylist":"Create a new video playlist","returnToLibrary":"\u2190 Go to library","allMediaItems":"All media items","allDates":"All dates","noItemsFound":"No items found.","insertIntoPost":"Insert into post","unattached":"Unattached","mine":"Mine","trash":"Trash","uploadedToThisPost":"Uploaded to this post","warnDelete":"You are about to permanently delete this item from your site.\nThis action cannot be undone.\n 'Cancel' to stop, 'OK' to delete.","warnBulkDelete":"You are about to permanently delete these items from your site.\nThis action cannot be undone.\n 'Cancel' to stop, 'OK' to delete.","warnBulkTrash":"You are about to trash these items.\n 'Cancel' to stop, 'OK' to delete.","bulkSelect":"Bulk select","trashSelected":"Move to Trash","restoreSelected":"Restore from Trash","deletePermanently":"Delete permanently","errorDeleting":"Error in deleting the attachment.","apply":"Apply","filterByDate":"Filter by date","filterByType":"Filter by type","searchLabel":"Search media","searchMediaLabel":"Search media","searchMediaPlaceholder":"Search media items...","mediaFound":"Number of media items found: %d","noMedia":"No media items found.","noMediaTryNewSearch":"No media items found. Try a different search.","attachmentDetails":"Attachment details","insertFromUrlTitle":"Insert from URL","setFeaturedImageTitle":"Featured image","setFeaturedImage":"Set featured image","createGalleryTitle":"Create gallery","editGalleryTitle":"Edit gallery","cancelGalleryTitle":"\u2190 Cancel gallery","insertGallery":"Insert gallery","updateGallery":"Update gallery","addToGallery":"Add to gallery","addToGalleryTitle":"Add to gallery","reverseOrder":"Reverse order","imageDetailsTitle":"Image details","imageReplaceTitle":"Replace image","imageDetailsCancel":"Cancel edit","editImage":"Edit image","chooseImage":"Choose image","selectAndCrop":"Select and crop","skipCropping":"Skip cropping","cropImage":"Crop image","cropYourImage":"Crop your image","cropping":"Cropping\u2026","suggestedDimensions":"Suggested image dimensions: %1$s by %2$s pixels.","cropError":"There has been an error cropping your image.","audioDetailsTitle":"Audio details","audioReplaceTitle":"Replace audio","audioAddSourceTitle":"Add audio source","audioDetailsCancel":"Cancel edit","videoDetailsTitle":"Video details","videoReplaceTitle":"Replace video","videoAddSourceTitle":"Add video source","videoDetailsCancel":"Cancel edit","videoSelectPosterImageTitle":"Select poster image","videoAddTrackTitle":"Add subtitles","playlistDragInfo":"Drag and drop to reorder tracks.","createPlaylistTitle":"Create audio playlist","editPlaylistTitle":"Edit audio playlist","cancelPlaylistTitle":"\u2190 Cancel audio playlist","insertPlaylist":"Insert audio playlist","updatePlaylist":"Update audio playlist","addToPlaylist":"Add to audio playlist","addToPlaylistTitle":"Add to Audio Playlist","videoPlaylistDragInfo":"Drag and drop to reorder videos.","createVideoPlaylistTitle":"Create video playlist","editVideoPlaylistTitle":"Edit video playlist","cancelVideoPlaylistTitle":"\u2190 Cancel video playlist","insertVideoPlaylist":"Insert video playlist","updateVideoPlaylist":"Update video playlist","addToVideoPlaylist":"Add to video playlist","addToVideoPlaylistTitle":"Add to video Playlist","filterAttachments":"Filter media","attachmentsList":"Media list","settings":{"tabs":[],"tabUrl":"https:\/\/www.massdevice.com\/wp-admin\/media-upload.php?chromeless=1","mimeTypes":{"image":"Images","audio":"Audio","video":"Video","application\/msword,application\/vnd.openxmlformats-officedocument.wordprocessingml.document,application\/vnd.ms-word.document.macroEnabled.12,application\/vnd.ms-word.template.macroEnabled.12,application\/vnd.oasis.opendocument.text,application\/vnd.apple.pages,application\/pdf,application\/vnd.ms-xpsdocument,application\/oxps,application\/rtf,application\/wordperfect,application\/octet-stream":"Documents","application\/vnd.apple.numbers,application\/vnd.oasis.opendocument.spreadsheet,application\/vnd.ms-excel,application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application\/vnd.ms-excel.sheet.macroEnabled.12,application\/vnd.ms-excel.sheet.binary.macroEnabled.12":"Spreadsheets","application\/x-gzip,application\/rar,application\/x-tar,application\/zip,application\/x-7z-compressed":"Archives"},"captions":true,"nonce":{"sendToEditor":"0a5724bb96","setAttachmentThumbnail":"2a8bdadeed"},"post":{"id":0},"defaultProps":{"link":"","align":"","size":""},"attachmentCounts":{"audio":1,"video":1},"oEmbedProxyUrl":"https:\/\/www.massdevice.com\/wp-json\/oembed\/1.0\/proxy","embedExts":["mp3","ogg","flac","m4a","wav","mp4","m4v","webm","ogv","flv"],"embedMimes":{"mp3":"audio\/mpeg","ogg":"audio\/ogg","flac":"audio\/flac","m4a":"audio\/mpeg","wav":"audio\/wav","mp4":"video\/mp4","m4v":"video\/mp4","webm":"video\/webm","ogv":"video\/ogg","flv":"video\/x-flv"},"contentWidth":697,"months":[{"year":"2024","month":"11","text":"November 2024"},{"year":"2024","month":"10","text":"October 2024"},{"year":"2024","month":"9","text":"September 2024"},{"year":"2024","month":"8","text":"August 2024"},{"year":"2024","month":"7","text":"July 2024"},{"year":"2024","month":"6","text":"June 2024"},{"year":"2024","month":"5","text":"May 2024"},{"year":"2024","month":"4","text":"April 2024"},{"year":"2024","month":"3","text":"March 2024"},{"year":"2024","month":"2","text":"February 2024"},{"year":"2024","month":"1","text":"January 2024"},{"year":"2023","month":"12","text":"December 2023"},{"year":"2023","month":"11","text":"November 2023"},{"year":"2023","month":"10","text":"October 2023"},{"year":"2023","month":"9","text":"September 2023"},{"year":"2023","month":"8","text":"August 2023"},{"year":"2023","month":"7","text":"July 2023"},{"year":"2023","month":"6","text":"June 2023"},{"year":"2023","month":"5","text":"May 2023"},{"year":"2023","month":"4","text":"April 2023"},{"year":"2023","month":"3","text":"March 2023"},{"year":"2023","month":"2","text":"February 2023"},{"year":"2023","month":"1","text":"January 2023"},{"year":"2022","month":"12","text":"December 2022"},{"year":"2022","month":"11","text":"November 2022"},{"year":"2022","month":"10","text":"October 2022"},{"year":"2022","month":"9","text":"September 2022"},{"year":"2022","month":"8","text":"August 2022"},{"year":"2022","month":"7","text":"July 2022"},{"year":"2022","month":"6","text":"June 2022"},{"year":"2022","month":"5","text":"May 2022"},{"year":"2022","month":"4","text":"April 2022"},{"year":"2022","month":"3","text":"March 2022"},{"year":"2022","month":"2","text":"February 2022"},{"year":"2022","month":"1","text":"January 2022"},{"year":"2021","month":"12","text":"December 2021"},{"year":"2021","month":"11","text":"November 2021"},{"year":"2021","month":"10","text":"October 2021"},{"year":"2021","month":"9","text":"September 2021"},{"year":"2021","month":"8","text":"August 2021"},{"year":"2021","month":"7","text":"July 2021"},{"year":"2021","month":"6","text":"June 2021"},{"year":"2021","month":"5","text":"May 2021"},{"year":"2021","month":"4","text":"April 2021"},{"year":"2021","month":"3","text":"March 2021"},{"year":"2021","month":"2","text":"February 2021"},{"year":"2021","month":"1","text":"January 2021"},{"year":"2020","month":"12","text":"December 2020"},{"year":"2020","month":"11","text":"November 2020"},{"year":"2020","month":"10","text":"October 2020"},{"year":"2020","month":"9","text":"September 2020"},{"year":"2020","month":"8","text":"August 2020"},{"year":"2020","month":"7","text":"July 2020"},{"year":"2020","month":"6","text":"June 2020"},{"year":"2020","month":"5","text":"May 2020"},{"year":"2020","month":"4","text":"April 2020"},{"year":"2020","month":"3","text":"March 2020"},{"year":"2020","month":"2","text":"February 2020"},{"year":"2020","month":"1","text":"January 2020"},{"year":"2019","month":"12","text":"December 2019"},{"year":"2019","month":"11","text":"November 2019"},{"year":"2019","month":"10","text":"October 2019"},{"year":"2019","month":"9","text":"September 2019"},{"year":"2019","month":"8","text":"August 2019"},{"year":"2019","month":"7","text":"July 2019"},{"year":"2019","month":"6","text":"June 2019"},{"year":"2019","month":"5","text":"May 2019"},{"year":"2019","month":"4","text":"April 2019"},{"year":"2019","month":"3","text":"March 2019"},{"year":"2019","month":"2","text":"February 2019"},{"year":"2019","month":"1","text":"January 2019"},{"year":"2018","month":"12","text":"December 2018"},{"year":"2018","month":"11","text":"November 2018"},{"year":"2018","month":"10","text":"October 2018"},{"year":"2018","month":"9","text":"September 2018"},{"year":"2018","month":"8","text":"August 2018"},{"year":"2018","month":"7","text":"July 2018"},{"year":"2018","month":"6","text":"June 2018"},{"year":"2018","month":"5","text":"May 2018"},{"year":"2018","month":"4","text":"April 2018"},{"year":"2018","month":"3","text":"March 2018"},{"year":"2018","month":"2","text":"February 2018"},{"year":"2018","month":"1","text":"January 2018"},{"year":"2017","month":"12","text":"December 2017"},{"year":"2017","month":"11","text":"November 2017"},{"year":"2017","month":"10","text":"October 2017"},{"year":"2017","month":"9","text":"September 2017"},{"year":"2017","month":"8","text":"August 2017"},{"year":"2017","month":"7","text":"July 2017"},{"year":"2017","month":"6","text":"June 2017"},{"year":"2017","month":"5","text":"May 2017"},{"year":"2017","month":"4","text":"April 2017"},{"year":"2017","month":"3","text":"March 2017"},{"year":"2017","month":"2","text":"February 2017"},{"year":"2017","month":"1","text":"January 2017"},{"year":"2016","month":"12","text":"December 2016"},{"year":"2016","month":"11","text":"November 2016"},{"year":"2016","month":"10","text":"October 2016"},{"year":"2016","month":"9","text":"September 2016"},{"year":"2016","month":"8","text":"August 2016"},{"year":"2016","month":"7","text":"July 2016"},{"year":"2016","month":"6","text":"June 2016"},{"year":"2016","month":"5","text":"May 2016"},{"year":"2016","month":"4","text":"April 2016"},{"year":"2016","month":"3","text":"March 2016"},{"year":"2016","month":"2","text":"February 2016"},{"year":"2016","month":"1","text":"January 2016"},{"year":"2015","month":"12","text":"December 2015"},{"year":"2015","month":"11","text":"November 2015"},{"year":"2015","month":"10","text":"October 2015"},{"year":"2015","month":"9","text":"September 2015"},{"year":"2015","month":"8","text":"August 2015"},{"year":"2015","month":"7","text":"July 2015"},{"year":"2015","month":"6","text":"June 2015"},{"year":"2015","month":"5","text":"May 2015"}],"mediaTrash":0,"infiniteScrolling":0}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/media-views.min.js?ver=6.7" id="media-views-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/media-editor.min.js?ver=6.7" id="media-editor-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/media-audiovideo.min.js?ver=6.7" id="media-audiovideo-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/plugins/widget-options/assets/js/widgetopts.resize.js?ver=4.0.8" id="widgetopts-resize-script-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/themes/genesis/lib/js/menu/superfish.min.js?ver=1.7.10" id="superfish-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/themes/genesis/lib/js/menu/superfish.args.min.js?ver=3.5.0" id="superfish-args-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/themes/genesis/lib/js/skip-links.min.js?ver=3.5.0" id="skip-links-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/themes/news-pro/js/jquery.matchHeight.min.js?ver=3.2.3" id="news-match-height-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/themes/news-pro/js/global.js?ver=3.2.3" id="news-global-js-js"></script> <script type="text/javascript" id="news-responsive-menus-js-extra"> /* <![CDATA[ */ var genesis_responsive_menu = {"mainMenu":"Menu","subMenu":"Submenu","menuClasses":{"combine":[".nav-secondary",".nav-primary",".nav-header"]}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/themes/news-pro/js/responsive-menus.min.js?ver=3.2.3" id="news-responsive-menus-js"></script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/plugins/genesis-responsive-slider/assets/js/jquery.flexslider.js?ver=1.0.1" id="flexslider-js"></script> <script type="text/javascript" id="q2w3_fixed_widget-js-extra"> /* <![CDATA[ */ var q2w3_sidebar_options = [{"sidebar":"sidebar","use_sticky_position":false,"margin_top":10,"margin_bottom":700,"stop_elements_selectors":"","screen_max_width":0,"screen_max_height":0,"widgets":["#custom_html-4"]}]; /* ]]> */ </script> <script type="text/javascript" src="https://www.massdevice.com/wp-content/plugins/q2w3-fixed-widget/js/frontend.min.js?ver=6.2.3" id="q2w3_fixed_widget-js"></script> <script type="text/javascript" defer='defer' src="https://www.massdevice.com/wp-content/plugins/gravityforms/assets/js/dist/vendor-theme.min.js?ver=ddd2702ee024d421149a5e61416f1ff5" id="gform_gravityforms_theme_vendors-js"></script> <script type="text/javascript" id="gform_gravityforms_theme-js-extra"> /* <![CDATA[ */ var gform_theme_config = {"common":{"form":{"honeypot":{"version_hash":"0e68abc758091b9ef9fad54effde155d"},"ajax":{"ajaxurl":"https:\/\/www.massdevice.com\/wp-admin\/admin-ajax.php","ajax_submission_nonce":"3ab955d84d","i18n":{"step_announcement":"Step %1$s of %2$s, %3$s","unknown_error":"There was an unknown error processing your request. Please try again."}}}},"hmr_dev":"","public_path":"https:\/\/www.massdevice.com\/wp-content\/plugins\/gravityforms\/assets\/js\/dist\/","config_nonce":"b093a1e169"}; /* ]]> */ </script> <script type="text/javascript" defer='defer' src="https://www.massdevice.com/wp-content/plugins/gravityforms/assets/js/dist/scripts-theme.min.js?ver=c055226f9b8c432c9206edab9070263c" id="gform_gravityforms_theme-js"></script> <script defer type="text/javascript" src="https://www.massdevice.com/wp-content/plugins/akismet/_inc/akismet-frontend.js?ver=1732020354" id="akismet-frontend-js"></script> <script type="text/javascript"> /* <![CDATA[ */ gform.initializeOnLoaded( function() { jQuery(document).on('gform_post_render', function(event, formId, currentPage){if(formId == 122) {} } );jQuery(document).on('gform_post_conditional_logic', function(event, formId, fields, isInit){} ) } ); /* ]]> */ </script> <script type="text/javascript"> /* <![CDATA[ */ gform.initializeOnLoaded( function() {jQuery(document).trigger("gform_pre_post_render", [{ formId: "122", currentPage: "1", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_122" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_122"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_122" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; jQuery( document ).trigger( 'gform_post_render', [122, 1] ); gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId: 122, currentPage: 1 } } ); gform.utils.trigger( { event: 'gform/post_render', native: false, data: { formId: 122, currentPage: 1 } } ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } ); /* ]]> */ </script> </body></html>