CINXE.COM
Boskone 62 – February 14-16, 2025 — Westin Boston Seaport District
<!doctype html> <html lang="en-US"> <head> <meta charset="UTF-8" /> <link href="https://fonts.googleapis.com/css?family=Lato:400,400i,700,700i,900,900i&display=swap" rel="stylesheet"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="profile" href="https://gmpg.org/xfn/11" /> <meta property="og:title" content="Boskone 62 | Home" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://boskone.org" /> <meta property="og:image" content="https://boskone.org/wp-content/uploads/2024/10/b62-fbimage-1024x533.png" /> <meta property="og:description" content="If this is your first convention or your tenth, you’ll find an open and welcoming gathering of people who share your same interests, talents, and love of anything to do with science fiction or fantasy!" /> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Boskone 62 | Home"> <meta name="twitter:description" content="If this is your first convention or your tenth, you’ll find an open and welcoming gathering of people who share your same interests, talents, and love of anything to do with science fiction or fantasy!"> <meta name="twitter:image" content="https://boskone.org/wp-content/uploads/2024/10/b62-fbimage-1024x533.png"> <meta name="twitter:domain" content="https://boskone.org"> <link href="https://boskone.org/wp-content/themes/boskone/boskone.css?v=4" rel="stylesheet" type="text/css"> <!-- bjqs.css contains the *essential* css needed for the slider to work --> <link rel="stylesheet" href="https://boskone.org/wp-content/themes/boskone/bjqs.css"> <!-- load jQuery and the plugin --> <!--<script src="https://code.jquery.com/jquery-1.7.1.min.js"></script>--> <style> /* Dynamic Colors & Images */ /*Dark*/ h1, .guest-title, .one-section h4, .dark .lineOne, a.boxed-link, .grayed h4, .breadcrumbs a, .entry-footer { color: #000156; } #topbar, .home .dark-top, #all-news, a.solid-box, .dark a.overlay-button, input.search-submit, .page-numbers { background-color: #000156; } a.boxed-link {border: 2px solid #000156;} /*DarkLight*/ .bjqs-markers .active-marker a, a.page-numbers:hover { background-color: #9da3e8; } .right-call { border-left: 8px solid #9da3e8;} .the-date, #footer a {color: #9da3e8; } @media only screen and (max-width: 1000px) { .right-call { border-top: 8px solid #9da3e8; border-left: 0px;} } /*DarkDark*/ a.dark-boxed, .dark a.overlay-button:hover { background-color: #3f1d68;} .guest-name a { color: #3f1d68; } /*Light*/ .the-name, .subhead, .subhead a, .f-logo, #footer a:hover, #footer-nav a, .lineOne, #all-news h2, #all-news h2 a { color: #ffd37e; } a.reg-button, a.overlay-button {background-color: #ffd37e; } /*LightLight*/ h2 {color: #ffdfa0;} /*LightDark*/ .one-guest .guest-image { border: 5px solid #eab435; } .guest-left img { border: 7px solid #eab435; } a.overlay-button:hover { background-color: #eab435;} .banner-text h3, h2, .large-question { color: #eab435;} /* End of Colors */ </style> <title>Boskone 62 – February 14-16, 2025 — Westin Boston Seaport District</title> <meta name='robots' content='max-image-preview:large' /> <link rel="alternate" type="application/rss+xml" title="Boskone 62 » Feed" href="https://boskone.org/feed/" /> <link rel="alternate" type="application/rss+xml" title="Boskone 62 » Comments Feed" href="https://boskone.org/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="Boskone 62 » Home Comments Feed" href="https://boskone.org/home/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/boskone.org\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.4.5"}}; /*! 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,"\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udfff","\ud83e\udef1\ud83c\udffb\u200b\ud83e\udef2\ud83c\udfff")}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> <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://boskone.org/wp-includes/css/dist/block-library/style.min.css?ver=6.4.5' type='text/css' media='all' /> <style id='wp-block-library-theme-inline-css' type='text/css'> .wp-block-audio figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio figcaption{color:hsla(0,0%,100%,.65)}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed figcaption{color:hsla(0,0%,100%,.65)}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:hsla(0,0%,100%,.65)}.wp-block-image figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-image figcaption{color:hsla(0,0%,100%,.65)}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote.is-style-plain{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table figcaption{color:hsla(0,0%,100%,.65)}.wp-block-video figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video figcaption{color:hsla(0,0%,100%,.65)}.wp-block-video{margin:0 0 1em}.wp-block-template-part.has-background{margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <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'> body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #FFF;--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--color--primary: #0073a8;--wp--preset--color--secondary: #005075;--wp--preset--color--dark-gray: #111;--wp--preset--color--light-gray: #767676;--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: 19.5px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36.5px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 22px;--wp--preset--font-size--huge: 49.5px;--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-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{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;} .wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;} :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;} .wp-block-pullquote{font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='page-list-style-css' href='https://boskone.org/wp-content/plugins/page-list/css/page-list.css?ver=5.6' type='text/css' media='all' /> <link rel='stylesheet' id='SFSImainCss-css' href='https://boskone.org/wp-content/plugins/ultimate-social-media-icons/css/sfsi-style.css?ver=2.9.5' type='text/css' media='all' /> <link rel='stylesheet' id='buttons-css' href='https://boskone.org/wp-includes/css/buttons.min.css?ver=6.4.5' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='https://boskone.org/wp-includes/css/dashicons.min.css?ver=6.4.5' type='text/css' media='all' /> <link rel='stylesheet' id='mediaelement-css' href='https://boskone.org/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://boskone.org/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=6.4.5' type='text/css' media='all' /> <link rel='stylesheet' id='media-views-css' href='https://boskone.org/wp-includes/css/media-views.min.css?ver=6.4.5' type='text/css' media='all' /> <link rel='stylesheet' id='imgareaselect-css' href='https://boskone.org/wp-includes/js/imgareaselect/imgareaselect.css?ver=0.9.8' type='text/css' media='all' /> <link rel='stylesheet' id='puzzle-style-css' href='https://boskone.org/wp-content/plugins/wha-puzzle/css/main.min.css?ver=6.4.5' type='text/css' media='all' /> <link rel='stylesheet' id='yop-public-css' href='https://boskone.org/wp-content/plugins/yop-poll/public/assets/css/yop-poll-public-6.5.36.css?ver=6.4.5' type='text/css' media='all' /> <link rel='stylesheet' id='twentynineteen-style-css' href='https://boskone.org/wp-content/themes/boskone/style.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='twentynineteen-print-style-css' href='https://boskone.org/wp-content/themes/boskone/print.css?ver=1.0' type='text/css' media='print' /> <script type="text/javascript" src="https://boskone.org/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" id="utils-js-extra"> /* <![CDATA[ */ var userSettings = {"url":"\/","uid":"0","time":"1742732553","secure":"1"}; /* ]]> */ </script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/utils.min.js?ver=6.4.5" id="utils-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/plupload/moxie.min.js?ver=1.3.5" id="moxiejs-js"></script> <script type="text/javascript" src="https://boskone.org/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://boskone.org/wp-includes/js/json2.min.js?ver=2015-05-03" id="json2-js"></script> <![endif]--> <script type="text/javascript" id="yop-public-js-extra"> /* <![CDATA[ */ var objectL10n = {"yopPollParams":{"urlParams":{"ajax":"https:\/\/boskone.org\/wp-admin\/admin-ajax.php","wpLogin":"https:\/\/boskone.org\/wp-login.php?redirect_to=https%3A%2F%2Fboskone.org%2Fwp-admin%2Fadmin-ajax.php%3Faction%3Dyop_poll_record_wordpress_vote"},"apiParams":{"reCaptcha":{"siteKey":""},"reCaptchaV2Invisible":{"siteKey":""},"reCaptchaV3":{"siteKey":""},"hCaptcha":{"siteKey":""},"cloudflareTurnstile":{"siteKey":""}},"captchaParams":{"imgPath":"https:\/\/boskone.org\/wp-content\/plugins\/yop-poll\/public\/assets\/img\/","url":"https:\/\/boskone.org\/wp-content\/plugins\/yop-poll\/app.php","accessibilityAlt":"Sound icon","accessibilityTitle":"Accessibility option: listen to a question and answer it!","accessibilityDescription":"Type below the <strong>answer<\/strong> to what you hear. Numbers or words:","explanation":"Click or touch the <strong>ANSWER<\/strong>","refreshAlt":"Refresh\/reload icon","refreshTitle":"Refresh\/reload: get new images and accessibility option!"},"voteParams":{"invalidPoll":"Invalid Poll","noAnswersSelected":"No answer selected","minAnswersRequired":"At least {min_answers_allowed} answer(s) required","maxAnswersRequired":"A max of {max_answers_allowed} answer(s) accepted","noAnswerForOther":"No other answer entered","noValueForCustomField":"{custom_field_name} is required","tooManyCharsForCustomField":"Text for {custom_field_name} is too long","consentNotChecked":"You must agree to our terms and conditions","noCaptchaSelected":"Captcha is required","thankYou":"Thank you for your vote"},"resultsParams":{"singleVote":"vote","multipleVotes":"votes","singleAnswer":"answer","multipleAnswers":"answers"}}}; /* ]]> */ </script> <script type="text/javascript" src="https://boskone.org/wp-content/plugins/yop-poll/public/assets/js/yop-poll-public-6.5.36.min.js?ver=6.4.5" id="yop-public-js"></script> <link rel="https://api.w.org/" href="https://boskone.org/wp-json/" /><link rel="alternate" type="application/json" href="https://boskone.org/wp-json/wp/v2/pages/2" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://boskone.org/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.4.5" /> <link rel="canonical" href="https://boskone.org/" /> <link rel='shortlink' href='https://boskone.org/' /> <link rel="alternate" type="application/json+oembed" href="https://boskone.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fboskone.org%2F" /> <link rel="alternate" type="text/xml+oembed" href="https://boskone.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fboskone.org%2F&format=xml" /> <meta name="follow.it-verification-code-T3VXUE51U1dWMUFncW9VSEk5eVlVR001eWZXbmlnV2lQK2IvSU0xMWNoUk93Z2dUL2lpR0llOURmeEdBd1RCQlRTRVNVbEs1NXg1Tmg4SHRmR0ZuOXp0bWhkTkZqRGxMOHlMWElEc3UwMkVBTU5ycFVXYkNGWnJVTEV0Mmp1bDF8ckRSMDMxOEV2b1ovcVFiZ0RmRyt3QmhVTjRKY3lHVlpKREZZU1hpaWxYVT0=" content="tBwNbxrWrjW71rTZmRm7"/><link rel="pingback" href="https://boskone.org/xmlrpc.php"><style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> <style type="text/css" id="wp-custom-css"> .artist-table table{ border-collapse:collapse; border:1px solid black; padding:5px; } .artist-table table td{ border:1px solid black; padding:5px; } .wp-custom-logo .site-identity { display: block; } @media screen and (max-width: 522px) { .site-branding { max-width: 80%; } } .column { float: left; width: 50%; } /* Clear floats after the columns */ .row:after { content: ""; display: table; clear: both; } </style> <script src="https://boskone.org/wp-content/themes/boskone/js/bjqs-1.3.min.js"></script> </head> <body class="home page-template page-template-page-home page-template-page-home-php page page-id-2 wp-embed-responsive sfsi_actvite_theme_default singular image-filters-enabled"> <div class="dark-top"><div class="content"> <div class="top-search"> <form action="/" method="get"> <input name="s" type="text" id="search" placeholder="Search..." value="" /> <input id="submit" type="image" alt="Search" src="https://boskone.org/wp-content/themes/boskone/images/search.png" /> </form> </div> <div class="topsocial"> <a href="https://twitter.com/boskonenews" target="_blank"><img src="https://boskone.org/wp-content/themes/boskone/images/twitter.png" alt="Twitter" /></a> <a href="https://www.facebook.com/groups/boskone/" target="_blank"><img src="https://boskone.org/wp-content/themes/boskone/images/facebook.png" alt="Facebook" /></a> <a href="mailto:info@boskone.org" target="_blank"><img src="https://boskone.org/wp-content/themes/boskone/images/email.png" alt="Email" /></a> </div><!--topsocial--> <div id="mobileMenu"><a><img src="https://boskone.org/wp-content/themes/boskone/images/menu.png" alt="Menu Drop-down" /> Menu</a></div> <div class="topnav" id="fullMenu"> <div class="menu-main-menu-container"><ul id="menu-main-menu" class="menu"><li id="menu-item-64" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-64"><a href="https://boskone.org/about/" aria-haspopup="true" aria-expanded="false">About</a> <ul class="sub-menu"> <li id="menu-item-4678" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4678"><a href="https://boskone.org/about/">About</a></li> <li id="menu-item-4589" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4589"><a href="https://boskone.org/about/access/">Access</a></li> <li id="menu-item-132" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-132"><a href="https://boskone.org/about/blog/">Blog</a></li> <li id="menu-item-128" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-128"><a href="https://boskone.org/about/committee/">Committee</a></li> <li id="menu-item-126" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-126"><a href="https://boskone.org/about/history/">History</a></li> <li id="menu-item-281" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-281"><a href="https://boskone.org/get-involved/documents/">Publications</a></li> <li id="menu-item-2791" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2791"><a href="https://nesfa.org">Parent Organization: NESFA</a></li> <li id="menu-item-5969" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5969"><a href="https://www.nesfa.org/press">NESFA Press</a></li> <li id="menu-item-129" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-129"><a href="https://boskone.org/about/photo-gallery/">Photo Gallery</a></li> <li id="menu-item-127" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-127"><a href="https://boskone.org/about/policies/">Policies</a></li> <li id="menu-item-65" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-65"><a href="https://boskone.org/about/what-people-are-saying/">What People are Saying</a></li> </ul> </li> <li id="menu-item-144" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-144"><a href="https://boskone.org/guests/" aria-haspopup="true" aria-expanded="false">Guests</a> <ul class="sub-menu"> <li id="menu-item-4679" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4679"><a href="https://boskone.org/guests/">Guests</a></li> <li id="menu-item-146" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-146"><a href="https://boskone.org/guests/featured-guests/">Featured Guests</a></li> <li id="menu-item-145" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-145"><a href="https://boskone.org/guests/program-participants/">Program Participants</a></li> </ul> </li> <li id="menu-item-202" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-202"><a href="https://boskone.org/program/" aria-haspopup="true" aria-expanded="false">Program</a> <ul class="sub-menu"> <li id="menu-item-4753" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4753"><a href="https://boskone.org/guests/program-participants/">Program Participants</a></li> <li id="menu-item-4680" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4680"><a href="https://boskone.org/program/">Program</a></li> <li id="menu-item-350" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-350"><a href="https://boskone.org/program/schedule/">Schedule</a></li> <li id="menu-item-352" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-352"><a href="https://boskone.org/program/program-planning/">Program Planning</a></li> </ul> </li> <li id="menu-item-161" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-161"><a href="https://boskone.org/at-the-con/" aria-haspopup="true" aria-expanded="false">At The Con</a> <ul class="sub-menu"> <li id="menu-item-4683" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4683"><a href="https://boskone.org/at-the-con/">At The Con</a></li> <li id="menu-item-354" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-354"><a href="https://boskone.org/at-the-con/hours-events/">Hours & Functions</a></li> <li id="menu-item-3328" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3328"><a href="https://boskone.org/at-the-con/art-show/">Art Show</a></li> <li id="menu-item-6641" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6641"><a href="https://boskone.org/at-the-con/author-alley/">Author Alley</a></li> <li id="menu-item-3325" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3325"><a href="https://boskone.org/at-the-con/dealers-room/">Dealers Room</a></li> <li id="menu-item-203" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-203"><a href="https://boskone.org/at-the-con/events/">Events</a></li> <li id="menu-item-205" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-205"><a href="https://boskone.org/at-the-con/fan-tables/">Fan Tables</a></li> <li id="menu-item-3669" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3669"><a href="https://boskone.org/at-the-con/gaming/">Gaming</a></li> <li id="menu-item-5989" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5989"><a href="https://boskone.org/at-the-con/dances/">Movement</a></li> <li id="menu-item-6014" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6014"><a href="https://boskone.org/about/policies/">Policies</a></li> <li id="menu-item-208" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-208"><a href="https://boskone.org/at-the-con/social-space/">Social Space</a></li> <li id="menu-item-200" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-200"><a href="https://boskone.org/at-the-con/things-to-do/">Things to Do</a></li> </ul> </li> <li id="menu-item-240" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-240"><a href="https://boskone.org/hotel/" aria-haspopup="true" aria-expanded="false">Hotel</a> <ul class="sub-menu"> <li id="menu-item-4755" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4755"><a href="https://boskone.org/hotel/the-hotel/">Westin Boston Seaport District</a></li> <li id="menu-item-4754" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4754"><a href="https://boskone.org/hotel/accommodations/">Accommodations</a></li> <li id="menu-item-4758" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4758"><a href="https://boskone.org/hotel/food/">Food</a></li> <li id="menu-item-4756" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4756"><a href="https://boskone.org/hotel/maps/">Maps</a></li> <li id="menu-item-4757" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4757"><a href="https://boskone.org/hotel/travel/">Travel</a></li> </ul> </li> <li id="menu-item-244" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-244"><a href="https://boskone.org/contact/" aria-haspopup="true" aria-expanded="false">Contact</a> <ul class="sub-menu"> <li id="menu-item-4677" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4677"><a href="https://boskone.org/contact/">Contact Us</a></li> <li id="menu-item-260" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-260"><a href="https://boskone.org/contact/social-media/">Social Media</a></li> <li id="menu-item-259" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-259"><a href="https://boskone.org/contact/press/">Press</a></li> <li id="menu-item-258" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-258"><a href="https://boskone.org/contact/advertising/">Advertising</a></li> <li id="menu-item-3025" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3025"><a href="https://boskone.org/contact/newsletter/">Newsletter</a></li> </ul> </li> <li id="menu-item-280" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-280"><a href="https://boskone.org/get-involved/" aria-haspopup="true" aria-expanded="false">Get Involved</a> <ul class="sub-menu"> <li id="menu-item-4681" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4681"><a href="https://boskone.org/get-involved/">Get Involved</a></li> <li id="menu-item-4871" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4871"><a href="https://boskone.org/get-involved/author-alley-signup/">Author Alley</a></li> <li id="menu-item-3354" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3354"><a href="https://boskone.org/get-involved/artists/">Artists</a></li> <li id="menu-item-3326" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3326"><a href="https://boskone.org/get-involved/vendors/">Vendors</a></li> <li id="menu-item-284" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-284"><a href="https://boskone.org/get-involved/volunteer/">Volunteer</a></li> </ul> </li> <li id="menu-item-337" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-337"><a href="https://boskone.org/registration/" aria-haspopup="true" aria-expanded="false">Registration</a> <ul class="sub-menu"> <li id="menu-item-4682" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4682"><a href="https://boskone.org/registration/">Registration</a></li> <li id="menu-item-409" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-409"><a target="_blank" rel="noopener" href="https://boskone.org/registration/buy-a-membership/">Buy a Membership</a></li> <li id="menu-item-338" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-338"><a href="https://boskone.org/registration/update-a-membership/">Update a Membership</a></li> </ul> </li> <li id="menu-item-2854" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2854"><a href="https://boskone.org/about/blog/">Blog</a></li> </ul></div> </div><!--topnav--> </div></div><!--dark-top--> <div id="mainbody" style="background-image: url(https://boskone.org/wp-content/uploads/2024/06/reading-dragon-stone.jpg);"><div class="swirl-overlay"> <div class="content"> <div id="name-area"> <div class="register"> <a class="reg-button" href="https://boskone.org/registration/buy-a-membership/" target="_blank">Register<br />Now</a> </div><!--register--> <h3><b>February 14-16, 2025<br>The Westin Boston Seaport District, Boston, Massachusetts</b></h3> <h1>Boskone 62</h1> <h3><b>New England Science Fiction Association</b></h3> <!-- Outer wrapper for presentation only, this can be anything you like --> <div id="banner-fade"> <!-- start Basic Jquery Slider --> <ul class="bjqs"> <li> <div class="the-quote">"Boskone offers passionate fans, numerous professionals, and a great location."</div> <div class="the-name">— </div> </li> <li> <div class="the-quote">“Boskone became my home convention, is still very much part of my science fiction and fantasy life.”</div> <div class="the-name">— Jane Yolen, Guest of Honor, Boskone 29</div> </li> <li> <div class="the-quote">“Boskone is ... a haven of SF&F enthusiasts and enthusiasm.”</div> <div class="the-name">— Garth Nix, Guest of Honor, Boskone 53</div> </li> <li> <div class="the-quote">"Such a lovely time with such lovely people."</div> <div class="the-name">— John Scalzi, Guest of Honor, Boskone 49</div> </li> <li> <div class="the-quote">"I look forward to the warm, comfortable lobby ... watching the annual blizzard glide in."</div> <div class="the-name">— Michael Swanwick, Guest of Honor, Boskone 37</div> </li> <li> <div class="the-quote">"This convention was fun, welcoming, and had many thought-provoking panels and discussions."</div> <div class="the-name">— Cindy Pon, Young Adult Fiction Guest, Boskone 56</div> </li> </ul> <!-- end Basic jQuery Slider --> </div> <!-- End outer wrapper --> <script class="secret-source"> jQuery(document).ready(function($) { $('#banner-fade').bjqs({ height : 125, width : "100%", responsive : true, animspeed : 3000, }); }); </script> <div class="artist-name">Image by <strong>Theresa Mather</strong></div> </div><!--name-area--> <div id="all-guests" ><div class="guest-inner"> <div class="one-guest"> <a href="https://boskone.org/guest/jasper-fford/"><div class="guest-image" style="background-image: url(https://boskone.org/wp-content/uploads/2024/06/jasper_fforde_2018_2500x1669-200x300.jpg);"></div></a> <div class="guest-name">Jasper Fforde</div> <div class="guest-title">Guest of Honor</div> </div> <div class="one-guest"> <a href="https://boskone.org/guest/theresa-mather/"><div class="guest-image" style="background-image: url(https://boskone.org/wp-content/uploads/2024/06/theresa-pic-a-224x300.jpg);"></div></a> <div class="guest-name">Theresa Mather</div> <div class="guest-title">Official Artist</div> </div> <div class="one-guest"> <a href="https://boskone.org/guest/kelley-armstrong/"><div class="guest-image" style="background-image: url(https://boskone.org/wp-content/uploads/2024/06/kelley_armstrong_3-lrg-200x300.jpg);"></div></a> <div class="guest-name">Kelley Armstrong</div> <div class="guest-title">Special Guest</div> </div> <div class="one-guest"> <a href="https://boskone.org/guest/madison-metricula-roberts/"><div class="guest-image" style="background-image: url(https://boskone.org/wp-content/uploads/2024/06/metricula-195x300.jpg);"></div></a> <div class="guest-name">Madison Metricula Roberts</div> <div class="guest-title">Musical Guest</div> </div> <div class="one-guest"> <a href="https://boskone.org/guest/heather-preston/"><div class="guest-image" style="background-image: url(https://boskone.org/wp-content/uploads/2024/10/hl-preston-20240926_221044-300x251.png);"></div></a> <div class="guest-name">Heather Preston</div> <div class="guest-title">Hal Clement Science Speaker</div> </div> </div><!--guest-inner--> </div><!--all-guests--> <div id="call-to-action"> <div class="left-call"> <div class="large-question"> <div class="smaller">Do you love</div> science fiction and fantasy? </div> </div> <div class="right-call"><p><strong>Boskone 62 is coming! Join us in-person or online.<br /> </strong></p> <p>If this is your first convention or your tenth, you’ll find an open and welcoming gathering of people who share your same interests, talents, and love of anything to do with science fiction or fantasy!</p> <p>Join us February 14-16, 2025, at Boskone, the longest-running science fiction & fantasy convention in New England. Please note that Boskone 62 will be back on Presidents Weekend. <a href="https://boskone.org/registration/">Register for this year’s convention today!</a></p> </div> </div><!--call-to-action--> <div id="all-news"> <h4>Boskone Blog</h4> <div class="one-news"> <div class="the-date">February 22, 2025</div> <h2><a href="https://boskone.org/boskone-63-year-ahead-rates-good-through-april-30-2025/">Boskone 63 Year Ahead Rates Good Through 4-30-2025</a></h2> <p><p>Did snow keep you away from purchasing your Boskone 63 membership? They are now online at reg.boskone.org. These rates are good through April 30, 2025. Adult: $50 Young Adult (18-25): $30 Teen (13-17): $20 Child (5-12): $20 Card to Culture: Free Boskone 63, February 13-15, 2026 Guest of Honor: Greg Cox Special Guest: Stefan Rudnicki […]</p> </p> <a href="https://boskone.org/boskone-63-year-ahead-rates-good-through-april-30-2025/" class="boxed">More</a> </div> <div class="one-news"> <div class="the-date">January 22, 2025</div> <h2><a href="https://boskone.org/hotel-block-reservation-deadline-extended-2/">Hotel Block Reservation Deadline Extended</a></h2> <p><p>Our block rates are now good through January 31, 2025 or until the block is sold out. 15 more quiet block room nights have been added to Friday, February 14 and Saturday, February 15, and 5 more rooms on Thursday, February 13 and Sunday, February 16. These are likely to be double bed rooms. Please […]</p> </p> <a href="https://boskone.org/hotel-block-reservation-deadline-extended-2/" class="boxed">More</a> </div> <div class="one-news"> <div class="the-date">January 20, 2025</div> <h2><a href="https://boskone.org/free-friday-is-back-at-boskone-62/">Free Friday is Back at Boskone 62!</a></h2> <p><p>Exciting news! Free Friday is back! Join us at Boskone 62 for free programming on Friday, February 14, 2025, until 6:30 pm, at the Westin Boston Seaport District in Boston, MA. Join us for an afternoon filled with panels and discussions with authors, artists, musicians, and fans who are part of our vibrant community that […]</p> </p> <a href="https://boskone.org/free-friday-is-back-at-boskone-62/" class="boxed">More</a> </div> <a href="https://boskone.org/about/blog/" class="dark-boxed">More news on our blog</a> </div><!--all-news--> <div id="social-stream"> <h4>Boskone on Twitter <a href="https://twitter.com/boskonenews" target="_blank">@boskonenews</a></h4> <link rel='stylesheet' id='ff-dynamic-css1' type='text/css' href='https://boskone.org/wp-content/resources/flow-flow/css/stream-id1.css?ver=1576100909'/><!-- Flow-Flow — Social stream plugin for WordPress --> <div class="ff-stream" data-plugin="flow_flow" id="ff-stream-1"><span class="ff-loader"><span class="ff-square" ></span><span class="ff-square"></span><span class="ff-square ff-last"></span><span class="ff-square ff-clear"></span><span class="ff-square"></span><span class="ff-square ff-last"></span><span class="ff-square ff-clear"></span><span class="ff-square"></span><span class="ff-square ff-last"></span></span></div> <script type="text/javascript" class="ff-stream-inline-js" id="ff-stream-inline-js-1"> <!-- (function () { var timer, abortTimer; timer = setInterval( function() { if ( window.jQuery ) { clearInterval( timer ); afterContentArrived( window.jQuery ); } }, 67); abortTimer = setTimeout( function () { if ( !window.jQuery ) { clearInterval( timer ); console.log('FLOW-FLOW DEBUG MESSAGE: No jQuery on page, please make sure it\'s loaded as jQuery is plugin requirement') } }, 20000); function afterContentArrived ( $ ) { "use strict"; var hash = '1676830538.ca701ef911351b1f9bf0138082d681568eb32e3a77f8dcadeb0b0a7ef75fa4131e58516bd70ce72f62ace2e1f1f32901'; var opts = window.FlowFlowOpts || {"streams":{},"open_in_new":"nope","filter_all":"All","filter_search":"Search","expand_text":"Expand","collapse_text":"Collapse","posted_on":"Posted on","followers":"Followers","following":"Following","posts":"Posts","show_more":"Show more","date_style":"wpStyleDate","dates":{"Yesterday":"Yesterday","s":"s","m":"m","h":"h","ago":"ago","months":["Jan","Feb","March","April","May","June","July","Aug","Sept","Oct","Nov","Dec"]},"lightbox_navigate":"Navigate with arrow keys","view_on":"View on","view_on_site":"View on site","view_all":"View all","comments":"comments","scroll":"Scroll for more","no_comments":"No comments yet.","be_first":"Be the first!","loading":"Loading","server_time":1742718153,"forceHTTPS":"yep","isAdmin":false,"ajaxurl":"https:\/\/boskone.org\/wp-admin\/admin-ajax.php","isLog":false,"plugin_base":"https:\/\/boskone.org\/wp-content\/plugins\/flow-flow-social-streams","plugin_ver":"4.7.5","domain":"boskone.org","token":""}; var isLS = isLocalStorageNameSupported(); var FF_resource = window.FF_resource || { scriptDeferred: $.Deferred(), styleDeferred: $.Deferred(), scriptLoading: false, styleLoading: false }; if ( !window.FF_resource ) window.FF_resource = FF_resource; if ( !window.FlowFlowOpts ) window.FlowFlowOpts = opts; var data = { 'shop': 'boskone.org', 'action': 'fetch_posts', 'stream-id': '1', 'disable-cache': '', 'hash': hash, 'page': '0', 'preview': '0', 'token': '', 'boosted': '0' }; var isMobile = /android|blackBerry|iphone|ipad|ipod|opera mini|iemobile/i.test( navigator.userAgent ); var streamOpts = {"name":"","moderation":"nope","order":"compareByTime","posts":"30","days":"","page-posts":"15","cache":"yep","cache_lifetime":"10","gallery":"yep","private":"nope","hide-on-desktop":"nope","hide-on-mobile":"nope","max-res":"nope","show-only-media-posts":"nope","titles":"nope","hidemeta":"nope","hidetext":"nope","heading":"","headingcolor":"rgb(59, 61, 64)","subheading":"","subheadingcolor":"rgb(114, 112, 114)","hhalign":"center","bgcolor":"rgb(240, 240, 240)","filter":"yep","filtercolor":"rgb(205, 205, 205)","mobileslider":"nope","viewportin":"yep","width":"260","margin":"20","layout":"masonry","theme":"classic","gc-style":"style-1","upic-pos":"timestamp","upic-style":"round","icon-style":"label1","cardcolor":"rgb(255, 255, 255)","namecolor":"rgb(59, 61, 64)","textcolor":"rgb(131, 141, 143)","linkscolor":"rgb(94, 159, 202)","restcolor":"rgb(131, 141, 143)","shadow":"rgba(0, 0, 0, 0.05)","bcolor":"rgba(240, 237, 231, 0.4)","talign":"left","icons-style":"outline","cards-num":"3","scrolltop":"yep","c-desktop":"5","c-laptop":"4","c-tablet-l":"3","c-tablet-p":"2","c-smart-l":"2","c-smart-p":"1","s-desktop":"15","s-laptop":"15","s-tablet-l":"10","s-tablet-p":"10","s-smart-l":"5","s-smart-p":"5","m-c-desktop":"5","m-c-laptop":"4","m-c-tablet-l":"3","m-c-tablet-p":"2","m-c-smart-l":"2","m-c-smart-p":"1","m-s-desktop":"15","m-s-laptop":"15","m-s-tablet-l":"10","m-s-tablet-p":"10","m-s-smart-l":"5","m-s-smart-p":"5","j-h-desktop":"260","j-h-laptop":"240","j-h-tablet-l":"220","j-h-tablet-p":"200","j-h-smart-l":"180","j-h-smart-p":"160","j-s-desktop":"0","j-s-laptop":"0","j-s-tablet-l":"0","j-s-tablet-p":"0","j-s-smart-l":"0","j-s-smart-p":"0","g-ratio-w":"1","g-ratio-h":"2","g-ratio-img":"1\/2","g-overlay":"nope","m-overlay":"nope","css":"","template":["image","header","text","meta"],"tv":"nope","tv-int":"5","tv-logo":"","tv-bg":"","big":"nope","id":"1","last_changes":1576100909,"feeds":[{"id":"tp67855","errors":[{"type":"twitter","message":"Could not authenticate you.","url":"https:\/\/api.twitter.com\/1.1\/statuses\/user_timeline.json"},{"type":"twitter","message":""}],"status":"0","enabled":"nope","last_update":"N\/A","cache_lifetime":"120","system_enabled":"0","boosted":"nope","timeline-type":"user_timeline","content":"boskonenews","list-name":"","lang":"all","retweets":"nope","replies":"nope","posts":"5","mod":"nope","type":"twitter","include":"","filter-by-words":""}],"status":"0","preview":false}; var ads = false; streamOpts.plugin = 'flow_flow'; streamOpts.trueLayout = streamOpts.layout; /*we will modify 'grid' layout to get 'carousel' layout*/ if ( streamOpts.layout == 'carousel' ) { streamOpts['layout'] = 'grid'; streamOpts['g-ratio-h'] = "1"; streamOpts['g-ratio-img'] = "1/2"; streamOpts['g-ratio-w'] = "1"; streamOpts['g-overlay'] = "yep"; streamOpts['c-overlay'] = "yep"; streamOpts['s-desktop'] = "0"; streamOpts['s-laptop'] = "0"; streamOpts['s-smart-l'] = "0"; streamOpts['s-smart-p'] = "0"; streamOpts['s-tablet-l'] = "0"; streamOpts['s-tablet-p'] = "0"; } else if ( streamOpts.layout == 'list' ) { /*the same with list, we only need news feed style*/ streamOpts['layout'] = 'masonry'; } if ( streamOpts.cloud !== 'yep' ) { streamOpts['gallery'] = 'nope'; streamOpts['max-res'] = 'nope'; streamOpts['filter'] = 'nope'; streamOpts['layout'] = 'masonry'; } if ( ads ) streamOpts.ads = ads; opts.streams['stream' + streamOpts.id] = streamOpts; var $cont = $("[data-plugin='flow_flow']#ff-stream-"+data['stream-id']); var ajaxDeferred; var script, style; var layout_pre = streamOpts.layout.charAt(0); var isOverlay = layout_pre === 'j' || streamOpts[layout_pre + '-overlay'] === 'yep' && streamOpts.trueLayout !== 'list'; var imgIndex; if (isOverlay) { if (streamOpts.template[0] !== 'image') { for (var i = 0, len = streamOpts.template.length; i < len; i++) { if (streamOpts.template[i] === 'image') imgIndex = i; } streamOpts.template.splice(0, 0, streamOpts.template.splice(imgIndex, 1)[0]); } streamOpts.isOverlay = true; }; if (FF_resource.scriptDeferred.state() === 'pending' && !FF_resource.scriptLoading) { script = document.createElement('script'); script.src = "https://boskone.org/wp-content/plugins/flow-flow-social-streams/js/public.js?ver=4.7.5"; script.onload = function( script, textStatus ) { FF_resource.scriptDeferred.resolve(); }; document.body.appendChild(script); FF_resource.scriptLoading = true; }; if (FF_resource.styleDeferred.state() === 'pending' && !FF_resource.styleLoading) { style = document.createElement('link'); style.type = "text/css"; style.id = "ff_style"; style.rel = "stylesheet"; style.href = "https://boskone.org/wp-content/plugins/flow-flow-social-streams/css/public.css?ver=4.7.5"; style.media = "screen"; style.onload = function( script, textStatus ) { FF_resource.styleDeferred.resolve(); }; document.getElementsByTagName("head")[0].appendChild(style); FF_resource.styleLoading = true; } $cont.addClass('ff-layout-' + streamOpts.trueLayout); if (!isMobile && streamOpts.trueLayout !== 'carousel') $cont.css('minHeight', '500px'); ajaxDeferred = isLS && sessionStorage.getItem(hash) ? {} : $.get(opts.ajaxurl, data) ; $.when( ajaxDeferred, FF_resource.scriptDeferred, FF_resource.styleDeferred ).done(function ( data ) { var response, $errCont, err; var moderation = 0; var original = (isLS && sessionStorage.getItem(hash)) ? JSON.parse( sessionStorage.getItem(hash) ) : data[0]; try { /* response = JSON.parse(original); */ response = original; /* since 4.1 */ } catch (e) { window.console && window.console.log('FLOW-FLOW: invalid data from server'); if (opts.isAdmin || opts.isLog) { $errCont = $('<' + 'div class="ff-errors"><' + 'div class="ff-disclaim">If you see this message then you have administrator permissions and Flow-Flow got invalid data from server. Please provide error message below if you are doing support request.<' + '/div><' + 'div class="ff-err-info"><'+'/div><'+'/div>'); $cont.before($errCont); $errCont.find('.ff-err-info').html(original == '' ? 'Empty response from server' : original); } return; } if ( ! response ) { console.log( 'FLOW-FLOW: null response from server' ); return; } // injecting ads for cloud streams if ( ads ) { var newArr = []; var post, ad; for ( var i = 0, len = response.items.length; i < len; i++ ) { post = response.items[ i ]; if ( ads[ i ] ) { ad = ads[ i ]; ad.id = 'ad_el_' + ad.id; newArr.push ( ad ); delete ads[ i ]; } newArr.push( post ); } response.items = newArr; } opts.streams['stream' + streamOpts.id]['items'] = response; if (!FlowFlowOpts.dependencies) FlowFlowOpts.dependencies = {}; FlowFlow.extensionResourcesRequests = FlowFlow.extensionResourcesRequests || []; var request, extension, style; for ( extension in FlowFlowOpts.dependencies ) { if ( FlowFlowOpts.dependencies[extension] && FlowFlowOpts.dependencies[extension] !== 'loaded') { request = $.getScript( opts.plugin_base + '-' + extension + '/js/ff_' + extension + '_public.js?ver=4.7.5'); FlowFlow.extensionResourcesRequests.push(request); style = document.createElement('link'); style.type = "text/css"; style.rel = "stylesheet"; style.id = "ff_ad_style"; style.href = opts.plugin_base + '-' + extension + '/css/ff_' + extension + '_public.css?ver=4.7.5'; style.media = "screen"; document.getElementsByTagName("head")[0].appendChild(style); FlowFlowOpts.dependencies[extension] = 'loaded'; } } var resourcesLoaded = $.when.apply($, FlowFlow.extensionResourcesRequests); resourcesLoaded.done(function(){ var $stream, width; console.log(response); $stream = FlowFlow.buildStreamWith(response, streamOpts, moderation, FlowFlowOpts.dependencies); if (isLS && response.items.length > 0 && response.hash.length > 0) sessionStorage.setItem( response.hash, JSON.stringify( original ) ); var num = streamOpts.layout === 'compact' || (streamOpts.mobileslider === 'yep' && isMobile)? (streamOpts.mobileslider === 'yep' ? 3 : streamOpts['cards-num']) : false; $cont.append( $stream ); if ( typeof $stream !== 'string' ) { FlowFlow.setupGrid($cont.find('.ff-stream-wrapper'), num, streamOpts.scrolltop === 'yep', streamOpts.gallery === 'yep', streamOpts, $cont); } setTimeout(function(){ $cont.find('.ff-header').removeClass('ff-loading').end().find('.ff-loader').addClass('ff-squeezed').delay(300).hide(); }, 0); }).fail(function(){ console.log('Flow-Flow: resource loading failed'); }); var isErr = response.status === "errors"; if ((opts.isAdmin || opts.isLog) && isErr) { $errCont = $('<'+'div class="ff-errors"><'+'div class="ff-err-info">If you see this then you are administrator and Flow-Flow got errors from APIs while requesting data. Please go to plugin admin and after refreshing page check for error(s) on stream settings page. Please provide error message info if you are doing support request.<'+'/div><'+'/div>'); $cont.before($errCont); } }); function isLocalStorageNameSupported() { var testKey = 'test', storage = window.sessionStorage; try { storage.setItem(testKey, '1'); storage.removeItem(testKey); return true; } catch (error) { return false; } }; return false; } })() //--></script> <!-- Flow-Flow — Social streams plugin for Wordpress --><a href="https://twitter.com/boskonenews" target="_blank" class="dark-boxed">More at Twitter</a> </div><!--social-stream--> <footer id="footer"> <div class="f-about"> <div class="f-logo">BOSKONE<sup>®</sup></div> <div class="f-brought">is brought to you by NESFA®,<br /> the New England Science Fiction Association.</div> </div><!--f-about--> <p>Contact us at <a href="mailto:info@boskone.org">info@boskone.org</a> with questions or for queries related to the website.<br /> Boskone / PO Box 809 / Framingham, MA 01701<br /><br /><br /><a href="https://massculturalcouncil.org/organizations/card-to-culture/" target="_blank"><img src="https://boskone.org/wp-content/themes/boskone/images/mcc.png" alt="Mass Cultural Council" style="width: 100px; height: auto; " /></a></p> <div class="top-search"> <form action="/" method="get"> <input name="s" type="text" id="search" placeholder="Search..." value="" /> <input id="submit" type="image" alt="Search" src="https://boskone.org/wp-content/themes/boskone/images/search.png" /> </form> </div> <div class="topsocial"> <a href="https://twitter.com/boskonenews" target="_blank"><img src="https://boskone.org/wp-content/themes/boskone/images/twitter.png" alt="Twitter" /></a> <a href="https://www.facebook.com/groups/boskone/" target="_blank"><img src="https://boskone.org/wp-content/themes/boskone/images/facebook.png" alt="Facebook" /></a> <a href="mailto:info@boskone.org" target="_blank"><img src="https://boskone.org/wp-content/themes/boskone/images/email.png" alt="Email" /></a> </div><!--topsocial--> <div id="footer-nav"> <div class="menu-main-menu-container"><ul id="menu-main-menu-1" class="menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-64"><a href="https://boskone.org/about/" aria-haspopup="true" aria-expanded="false">About</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4678"><a href="https://boskone.org/about/">About</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4589"><a href="https://boskone.org/about/access/">Access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-132"><a href="https://boskone.org/about/blog/">Blog</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-128"><a href="https://boskone.org/about/committee/">Committee</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-126"><a href="https://boskone.org/about/history/">History</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-281"><a href="https://boskone.org/get-involved/documents/">Publications</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2791"><a href="https://nesfa.org">Parent Organization: NESFA</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5969"><a href="https://www.nesfa.org/press">NESFA Press</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-129"><a href="https://boskone.org/about/photo-gallery/">Photo Gallery</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-127"><a href="https://boskone.org/about/policies/">Policies</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-65"><a href="https://boskone.org/about/what-people-are-saying/">What People are Saying</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-144"><a href="https://boskone.org/guests/" aria-haspopup="true" aria-expanded="false">Guests</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4679"><a href="https://boskone.org/guests/">Guests</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-146"><a href="https://boskone.org/guests/featured-guests/">Featured Guests</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-145"><a href="https://boskone.org/guests/program-participants/">Program Participants</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-202"><a href="https://boskone.org/program/" aria-haspopup="true" aria-expanded="false">Program</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4753"><a href="https://boskone.org/guests/program-participants/">Program Participants</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4680"><a href="https://boskone.org/program/">Program</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-350"><a href="https://boskone.org/program/schedule/">Schedule</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-352"><a href="https://boskone.org/program/program-planning/">Program Planning</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-161"><a href="https://boskone.org/at-the-con/" aria-haspopup="true" aria-expanded="false">At The Con</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4683"><a href="https://boskone.org/at-the-con/">At The Con</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-354"><a href="https://boskone.org/at-the-con/hours-events/">Hours & Functions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3328"><a href="https://boskone.org/at-the-con/art-show/">Art Show</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6641"><a href="https://boskone.org/at-the-con/author-alley/">Author Alley</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3325"><a href="https://boskone.org/at-the-con/dealers-room/">Dealers Room</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-203"><a href="https://boskone.org/at-the-con/events/">Events</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-205"><a href="https://boskone.org/at-the-con/fan-tables/">Fan Tables</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3669"><a href="https://boskone.org/at-the-con/gaming/">Gaming</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5989"><a href="https://boskone.org/at-the-con/dances/">Movement</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6014"><a href="https://boskone.org/about/policies/">Policies</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-208"><a href="https://boskone.org/at-the-con/social-space/">Social Space</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-200"><a href="https://boskone.org/at-the-con/things-to-do/">Things to Do</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-240"><a href="https://boskone.org/hotel/" aria-haspopup="true" aria-expanded="false">Hotel</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4755"><a href="https://boskone.org/hotel/the-hotel/">Westin Boston Seaport District</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4754"><a href="https://boskone.org/hotel/accommodations/">Accommodations</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4758"><a href="https://boskone.org/hotel/food/">Food</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4756"><a href="https://boskone.org/hotel/maps/">Maps</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4757"><a href="https://boskone.org/hotel/travel/">Travel</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-244"><a href="https://boskone.org/contact/" aria-haspopup="true" aria-expanded="false">Contact</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4677"><a href="https://boskone.org/contact/">Contact Us</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-260"><a href="https://boskone.org/contact/social-media/">Social Media</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-259"><a href="https://boskone.org/contact/press/">Press</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-258"><a href="https://boskone.org/contact/advertising/">Advertising</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3025"><a href="https://boskone.org/contact/newsletter/">Newsletter</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-280"><a href="https://boskone.org/get-involved/" aria-haspopup="true" aria-expanded="false">Get Involved</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4681"><a href="https://boskone.org/get-involved/">Get Involved</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4871"><a href="https://boskone.org/get-involved/author-alley-signup/">Author Alley</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3354"><a href="https://boskone.org/get-involved/artists/">Artists</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3326"><a href="https://boskone.org/get-involved/vendors/">Vendors</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-284"><a href="https://boskone.org/get-involved/volunteer/">Volunteer</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-337"><a href="https://boskone.org/registration/" aria-haspopup="true" aria-expanded="false">Registration</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4682"><a href="https://boskone.org/registration/">Registration</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-409"><a target="_blank" rel="noopener" href="https://boskone.org/registration/buy-a-membership/">Buy a Membership</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-338"><a href="https://boskone.org/registration/update-a-membership/">Update a Membership</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2854"><a href="https://boskone.org/about/blog/">Blog</a></li> </ul></div> </div><!--footer-nav--> </footer><!--footer--> </div><!--content--> </div></div><!--mainbody and swirl overlay--> <!--facebook like and share js --> <div id="fb-root"></div> <script> (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.2"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> <script> window.addEventListener('sfsi_functions_loaded', function() { if (typeof sfsi_responsive_toggle == 'function') { sfsi_responsive_toggle(0); // console.log('sfsi_responsive_toggle'); } }) </script> <script> window.addEventListener('sfsi_functions_loaded', function () { if (typeof sfsi_plugin_version == 'function') { sfsi_plugin_version(2.77); } }); function sfsi_processfurther(ref) { var feed_id = 'T3VXUE51U1dWMUFncW9VSEk5eVlVR001eWZXbmlnV2lQK2IvSU0xMWNoUk93Z2dUL2lpR0llOURmeEdBd1RCQlRTRVNVbEs1NXg1Tmg4SHRmR0ZuOXp0bWhkTkZqRGxMOHlMWElEc3UwMkVBTU5ycFVXYkNGWnJVTEV0Mmp1bDF8ckRSMDMxOEV2b1ovcVFiZ0RmRyt3QmhVTjRKY3lHVlpKREZZU1hpaWxYVT0='; var feedtype = 8; var email = jQuery(ref).find('input[name="email"]').val(); var filter = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if ((email != "Enter your email") && (filter.test(email))) { if (feedtype == "8") { var url = "https://api.follow.it/subscription-form/" + feed_id + "/" + feedtype; window.open(url, "popupwindow", "scrollbars=yes,width=1080,height=760"); return true; } } else { alert("Please enter email address"); jQuery(ref).find('input[name="email"]').focus(); return false; } } </script> <style type="text/css" aria-selected="true"> .sfsi_subscribe_Popinner { width: 100% !important; height: auto !important; padding: 18px 0px !important; background-color: #ffffff !important; } .sfsi_subscribe_Popinner form { margin: 0 20px !important; } .sfsi_subscribe_Popinner h5 { font-family: Helvetica,Arial,sans-serif !important; font-weight: bold !important; color:#000000 !important; font-size: 16px !important; text-align:center !important; margin: 0 0 10px !important; padding: 0 !important; } .sfsi_subscription_form_field { margin: 5px 0 !important; width: 100% !important; display: inline-flex; display: -webkit-inline-flex; } .sfsi_subscription_form_field input { width: 100% !important; padding: 10px 0px !important; } .sfsi_subscribe_Popinner input[type=email] { font-family: Helvetica,Arial,sans-serif !important; font-style:normal !important; color: #000000 !important; font-size:14px !important; text-align: center !important; } .sfsi_subscribe_Popinner input[type=email]::-webkit-input-placeholder { font-family: Helvetica,Arial,sans-serif !important; font-style:normal !important; color:#000000 !important; font-size: 14px !important; text-align:center !important; } .sfsi_subscribe_Popinner input[type=email]:-moz-placeholder { /* Firefox 18- */ font-family: Helvetica,Arial,sans-serif !important; font-style:normal !important; color:#000000 !important; font-size: 14px !important; text-align:center !important; } .sfsi_subscribe_Popinner input[type=email]::-moz-placeholder { /* Firefox 19+ */ font-family: Helvetica,Arial,sans-serif !important; font-style: normal !important; color:#000000 !important; font-size: 14px !important; text-align:center !important; } .sfsi_subscribe_Popinner input[type=email]:-ms-input-placeholder { font-family: Helvetica,Arial,sans-serif !important; font-style:normal !important; color: #000000 !important; font-size:14px !important; text-align: center !important; } .sfsi_subscribe_Popinner input[type=submit] { font-family: Helvetica,Arial,sans-serif !important; font-weight: bold !important; color:#000000 !important; font-size: 16px !important; text-align:center !important; background-color: #dedede !important; } .sfsi_shortcode_container { float: left; } .sfsi_shortcode_container .norm_row .sfsi_wDiv { position: relative !important; } .sfsi_shortcode_container .sfsi_holders { display: none; } </style> <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: 512 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://boskone.org/wp-admin/upload.php?mode=list" class="view-list"> <span class="screen-reader-text"> List view </span> </a> <a href="https://boskone.org/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.fileLength }}</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" rel="noopener">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 && data.sizes.medium ) { #> <img src="{{ data.sizes.medium.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.fileLength }}</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" rel="noopener">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" rel="noopener">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" rel="noopener">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"> <h2>Preview</h2> <strong aria-hidden="true">As a browser icon</strong> <div class="favicon-preview"> <img src="https://boskone.org/wp-admin/images/browser.png" class="browser-preview" width="182" height="" alt="" /> <div class="favicon"> <img id="preview-favicon" src="{{ data.url }}" alt="Preview as a browser icon" /> </div> <span class="browser-title" aria-hidden="true"><# print( 'Boskone 62' ) #></span> </div> <strong aria-hidden="true">As an app icon</strong> <div class="app-icon-preview"> <img id="preview-app-icon" src="{{ data.url }}" alt="Preview as an app icon" /> </div> </script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/jquery/ui/core.min.js?ver=1.13.2" id="jquery-ui-core-js"></script> <script type="text/javascript" src="https://boskone.org/wp-content/plugins/ultimate-social-media-icons/js/shuffle/modernizr.custom.min.js?ver=6.4.5" id="SFSIjqueryModernizr-js"></script> <script type="text/javascript" src="https://boskone.org/wp-content/plugins/ultimate-social-media-icons/js/shuffle/jquery.shuffle.min.js?ver=6.4.5" id="SFSIjqueryShuffle-js"></script> <script type="text/javascript" src="https://boskone.org/wp-content/plugins/ultimate-social-media-icons/js/shuffle/random-shuffle-min.js?ver=6.4.5" id="SFSIjqueryrandom-shuffle-js"></script> <script type="text/javascript" id="SFSICustomJs-js-extra"> /* <![CDATA[ */ var sfsi_icon_ajax_object = {"nonce":"649f96084c","ajax_url":"https:\/\/boskone.org\/wp-admin\/admin-ajax.php","plugin_url":"https:\/\/boskone.org\/wp-content\/plugins\/ultimate-social-media-icons\/"}; /* ]]> */ </script> <script type="text/javascript" src="https://boskone.org/wp-content/plugins/ultimate-social-media-icons/js/custom.js?ver=2.9.5" id="SFSICustomJs-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/underscore.min.js?ver=1.13.4" id="underscore-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/shortcode.min.js?ver=6.4.5" id="shortcode-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/backbone.min.js?ver=1.5.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://boskone.org/wp-includes/js/wp-util.min.js?ver=6.4.5" id="wp-util-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/wp-backbone.min.js?ver=6.4.5" 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://boskone.org/wp-includes/js/media-models.min.js?ver=6.4.5" 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":"536870912b","mime_types":[{"extensions":"jpg,jpeg,jpe,gif,png,bmp,tiff,tif,webp,ico,heic,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"}]},"heic_upload_error":true,"multipart_params":{"action":"upload-attachment","_wpnonce":"16fffedfa6"}},"browser":{"mobile":false,"supported":true},"limitExceeded":false}; /* ]]> */ </script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/plupload/wp-plupload.min.js?ver=6.4.5" id="wp-plupload-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/jquery/ui/mouse.min.js?ver=1.13.2" id="jquery-ui-mouse-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/jquery/ui/sortable.min.js?ver=1.13.2" 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://boskone.org/wp-includes/js/mediaelement/mediaelement-and-player.min.js?ver=4.2.17" id="mediaelement-core-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/mediaelement/mediaelement-migrate.min.js?ver=6.4.5" 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://boskone.org/wp-includes/js/mediaelement/wp-mediaelement.min.js?ver=6.4.5" id="wp-mediaelement-js"></script> <script type="text/javascript" id="wp-api-request-js-extra"> /* <![CDATA[ */ var wpApiSettings = {"root":"https:\/\/boskone.org\/wp-json\/","nonce":"c87182b97b","versionString":"wp\/v2\/"}; /* ]]> */ </script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/api-request.min.js?ver=6.4.5" id="wp-api-request-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/dist/vendor/wp-polyfill-inert.min.js?ver=3.1.2" id="wp-polyfill-inert-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.14.0" id="regenerator-runtime-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0" id="wp-polyfill-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/dist/dom-ready.min.js?ver=392bdd43726760d1f3ca" id="wp-dom-ready-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/dist/hooks.min.js?ver=c6aec9a8d4e5a5d543a1" id="wp-hooks-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/dist/i18n.min.js?ver=7701b0c3857f914212ef" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/dist/a11y.min.js?ver=7032343a947cfccf5608" id="wp-a11y-js"></script> <script type="text/javascript" src="https://boskone.org/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","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:\/\/boskone.org\/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":"92d0786fbf","setAttachmentThumbnail":"c125029c2b"},"post":{"id":0},"defaultProps":{"link":"none","align":"","size":""},"attachmentCounts":{"audio":1,"video":1},"oEmbedProxyUrl":"https:\/\/boskone.org\/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":640,"months":[{"year":"2025","month":"2","text":"February 2025"},{"year":"2025","month":"1","text":"January 2025"},{"year":"2024","month":"12","text":"December 2024"},{"year":"2024","month":"11","text":"November 2024"},{"year":"2024","month":"10","text":"October 2024"},{"year":"2024","month":"6","text":"June 2024"},{"year":"2024","month":"2","text":"February 2024"},{"year":"2024","month":"1","text":"January 2024"},{"year":"2023","month":"6","text":"June 2023"},{"year":"2023","month":"5","text":"May 2023"},{"year":"2023","month":"4","text":"April 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":"8","text":"August 2022"},{"year":"2022","month":"7","text":"July 2022"},{"year":"2022","month":"6","text":"June 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":"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":"5","text":"May 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":"7","text":"July 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":"2018","month":"12","text":"December 2018"},{"year":"2018","month":"11","text":"November 2018"},{"year":"2018","month":"10","text":"October 2018"},{"year":"2018","month":"8","text":"August 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":"2015","month":"2","text":"February 2015"},{"year":"2014","month":"12","text":"December 2014"},{"year":"2014","month":"11","text":"November 2014"},{"year":"2014","month":"5","text":"May 2014"},{"year":"2014","month":"2","text":"February 2014"},{"year":"2014","month":"1","text":"January 2014"},{"year":"2013","month":"10","text":"October 2013"},{"year":"2013","month":"3","text":"March 2013"},{"year":"2013","month":"2","text":"February 2013"},{"year":"2013","month":"1","text":"January 2013"},{"year":"2012","month":"12","text":"December 2012"}],"mediaTrash":0,"infiniteScrolling":0}}; /* ]]> */ </script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/media-views.min.js?ver=6.4.5" id="media-views-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/media-editor.min.js?ver=6.4.5" id="media-editor-js"></script> <script type="text/javascript" src="https://boskone.org/wp-includes/js/media-audiovideo.min.js?ver=6.4.5" id="media-audiovideo-js"></script> <script type="text/javascript" src="https://boskone.org/wp-content/plugins/wha-puzzle/js/jquery.cookie.js?ver=6.4.5" id="whapz-puzzle-cookie-js"></script> <script type="text/javascript" src="https://boskone.org/wp-content/plugins/wha-puzzle/js/createjs_1.1_min.js?ver=6.4.5" id="whapz-puzzle-create-js"></script> <script type="text/javascript" src="https://boskone.org/wp-content/plugins/wha-puzzle/js/zim_6.9.0.js?ver=6.4.5" id="whapz-puzzle-zim-js"></script> <script type="text/javascript" src="https://boskone.org/wp-content/plugins/wha-puzzle/js/puzzle.js?ver=1.0.0" id="whapz-puzzle-script-js"></script> <script type="text/javascript" src="https://boskone.org/wp-content/themes/boskone/js/priority-menu.js?ver=1.1" id="twentynineteen-priority-menu-js"></script> <script> /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1); </script> <script> jQuery( "#mobileMenu" ).click(function() { jQuery( "#fullMenu" ).toggleClass( "show-hide" ); }); //jQuery( "#fullMenu.topnav ul li.menu-item-has-children a" ).click(function() { // jQuery( "#fullMenu.topnav ul li.menu-item-has-children ul" ).toggleClass( "showMobile" ); //}); </script> </body> </html>