CINXE.COM
Admin
<!-- APPLICATION LAYOUT --> <!DOCTYPE html> <html xmlns:og="http://ogp.me/ns#" lang="en-US"> <head> <!-- Data Layer --> <script> window.dataLayer = window.dataLayer || [{"bc.siteId":"WA-SEATTLE","bc.language":"en-US","bc.libraryId":30,"bc.localBranch":null,"bc.shortName":"SPL","bc.longName":"The Seattle Public Library","bc.domain":"seattle","bc.externalGaId":"UA-20103826-1","bc.externalCoreGAId":"UA-20103826-1","bc.gaCrossDomainNames":[],"bc.gaCrossDomainEnabled":false,"bc.ga4MeasurementId":"G-QLGZKJXH1V","bc.cmsEnabled":false,"bc.cmsUrl":"http://bibliocms.com/","bc.crazyEggId":"00178067","bc.allowGoogleAdFeatures":false,"bc.externalEventsGAId":null,"bc.product":"core","bc.version":"Version 9.25.0 Last updated 2024/10/01 11:54 [cor-liv-app09]"}]; </script> <!-- end Data Layer --> <!-- Start Google Tag Manager--> <script>(function(w,d,s,l,i) { w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'}); var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl+''; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer', 'GTM-TDPBXX');</script> <!-- End Google Tag Manager --> <!-- NEW RELIC --> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"167eb90b9b","applicationID":"3220185","transactionName":"cw0NTEZbVVpSFxkFV1EWFkpRUGZaXhZCEB1DCgxP","queueTime":0,"applicationTime":174,"agent":""}</script> <script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={xpid:"VQYAUFJaGwACVlFTDwQ=",licenseKey:"167eb90b9b",applicationID:"3220185"};;/*! For license information please see nr-loader-full-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>d});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function d(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>p,xN:()=>g});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const d="[data-nr-mask]",u=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function g(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,u());const r=(0,s.nY)(e);r&&(r.init=l[e])}function p(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},d={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},u={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!u[e])throw new Error("Runtime for ".concat(e," was never set"));return u[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");u[e]={...(0,n.a)(t,d),...c},Object.hasOwnProperty.call(u[e],"harvestCount")||Object.defineProperty(u[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=u[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>d,RI:()=>i,WN:()=>f,bv:()=>o,gm:()=>a,lR:()=>l,m:()=>c,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>d});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function d(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function u(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(u(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)g(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function g(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>d});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),d=function e(t,r){var n={},s={},u={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(d.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=p(e),u=c.length,l=0;l<u;l++)c[l].apply(a,r);var g=v()[s[e]];g&&g.push([f,e,r,a]);return a},get:m,listeners:p,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function g(e,t){n[e]=p(e).concat(t)}function p(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=d)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>d});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function d(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>d,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},d={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>u,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>d,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function d(e){let t=a();return t.initializedAgents?.[e]}function u(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(d+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(u+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],d=e[c];u(d)||(e[c]=r(d,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return u(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){d([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,u,l;try{a=this,o=[...arguments],u="function"==typeof n?n(o,a):n||{}}catch(t){d([t,"",[o,a,s],u],e)}i(r+"start",[o,a,s],u,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],u,c),e}finally{i(r+"end",[o,a,l],u,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){d([t,r,n,i],e)}s=a}}}function d(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function u(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>u,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>d,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},d={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},u=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>d,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function d(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>d,Rz:()=>u,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,d="fn"+s,u="pushState",l=1e3},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),d=r(5289),u=r(6154),l=r(944),f=r(3969),h=r(384),g=r(6344);const p=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",g.G4.RECORD,g.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),R=r(3785),x=r(2646),w=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,w.YM)(i),a=new x.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();p.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),_=r(5603),O=r(5284);const N=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function P(e,t={},p,x){let{init:w,info:P,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=p;const H=(0,h.pV)();P||(w=H.init,P=H.info,j=H.loader_config),(0,S.xN)(e.agentIdentifier,w||{}),(0,_.a)(e.agentIdentifier,j||{}),P.jsAttributes??={},u.bv&&(P.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,P);const D=(0,S.D0)(e.agentIdentifier),L=[P.beacon,P.errorBeacon];I||(D.proxy.assets&&(N(D.proxy.assets),L.push(D.proxy.assets)),D.proxy.beacon&&L.push(D.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===D.soft_navigations.enabled&&D.feature_flags.includes("soft_nav")),C.denyList=[...D.ajax.deny_list||[],...D.ajax.block_internal?L:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const p={};var x=s.ee.get(e),w=x.get("tracer");E[e]=b.g.OFF,x.on(g.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=A+"ixn-";function _(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}p.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,x),(0,R.R)(x,e,t,r)},p.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,x),T(x,e,t,{customAttributes:r,level:i})},m.forEach((e=>{p[e]=I(A,e,!0,"api")})),p.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),p.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},p.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return _(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},p.setUserId=function(e){if("string"==typeof e||null===e)return _("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},p.setApplicationVersion=function(e){if("string"==typeof e||null===e)return _("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},p.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,x),x.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},p[g.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.RECORD,[],void 0,n.K7.sessionReplay,x)},p[g.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.PAUSE,[],void 0,n.K7.sessionReplay,x)},p.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const N=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,x),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,x),function(){if(w.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw w.emit("fn-err",[arguments,this,t],r),t}finally{w.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,x),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,x),r?void 0:this}}function P(){r.e(891).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),x.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{N[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),p.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),p.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,x),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,x)},u.RI?(0,d.GG)((()=>P()),!0):P(),p}(e.agentIdentifier,x,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",891:"nr-full"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var d=document.getElementsByTagName("script"),u=0;u<d.length;u++){var l=d[u];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={891:"sha512-Sx2xJQrHp2m/Ngn/ZcfBCUwNr2Xy/C5urYtWpfm3bWpil4spXOQGTtNwIfF5HvPGioGASn9QTyE4Z+zC7r7wcg==",222:"sha512-hMte3OWgwwYeisSiD7WCIx/6tT16zLaPjag9uF4tIZp7ybOvrJKbeyzhe4fz1tDbkdcdOMm8dvgPPLBatSAGeA==",95:"sha512-MPaT9dkHv16XzwEUVZPyqpN1do/Er1XFAZoIAPYWylmv+iGIThqN+GwQq27pUyAX7sNXVJQVZezH96p53Ks3Pg=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(g);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={959:0,85:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,d=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);d<a.length;d++)o=a[d],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function d(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var u=i(425);var l=i(1687),f=i(4234),h=i(5289),g=i(6154),p=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(891).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(891).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(891).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};g.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,p.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class R extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var x=i(384);var w=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class _ extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),g.RI&&((0,T.u)((()=>(0,w.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,w.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class N extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return D(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(D(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function H(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return D(e.error)?e.error:C(e)}function D(e){return e instanceof Error&&!!e.stack}class L extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,w.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),g.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,w.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",(e=>{this.abortHandler&&(0,w.p)("err",[H(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var K=i(8990);let M=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,K.I)(e,U,(function(){return M++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,s=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=g.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(p?p.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var p=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===d||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",Q=["arrayBuffer","blob","json","text","formData"],J=g.gm.Request,ee=g.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(J&&ee&&g.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,Q.forEach((e=>{r(J[te],e,X),r(ee[te],e,X)})),r(g.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),d={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),de=["load","error","abort","timeout"],ue=de.length,le=(0,x.dV)().o.REQ,fe=(0,x.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,w.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};ge(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),g.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},ge(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<ue;s++)r.addEventListener(de[s],this.listener,(0,A.jT)(!1))}function d(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function u(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function p(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:g.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),ge(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function R(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function x(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<ue;t++)e.removeEventListener(de[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,w.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",d),t.on("xhr-load-added",u),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",p),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",R)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function ge(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const pe={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!g.RI||pe[t.debugId]++||(pe[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:Re,d3:xe,Kp:we,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class _e extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,w.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+xe,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+we,(function(e){(0,w.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,w.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:Re,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class Ne extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,p.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,w.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,p.Aw)(this.agentIdentifier)}#d=!1;async#c(e){if(!this.#d){this.#d=!0;try{const{Recorder:t}=await Promise.all([i.e(891),i.e(222)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3333);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){super(e,Ie.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];g.RI&&e.init.user_actions.enabled&&(Ie.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),Ie.qN.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var je=i(993),Ce=i(3785);class ke extends b{static featureName=je.TZ;constructor(e,t=!0){super(e,je.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,Ce.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),g.gm?(this.features={},(0,x.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,u.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=d(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,_,_e,Ne,he,N,L,Pe,ke],loaderType:"pro"})})()})();</script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Library", "url": "https://seattle.bibliocommons.com/", "name": "The Seattle Public Library", "logo": "https://cor-liv-cdn-static.bibliocommons.com/images/WA-SEATTLE/logo.png?1732975876495", "image": "https://cor-liv-cdn-static.bibliocommons.com/images/WA-SEATTLE/logo.png?1732975876495" } </script> <script type="text/javascript" charset="utf-8"> var registered_messages = []; var controller_js = '//cor-cdn-static.bibliocommons.com/assets/controllers/featured_lists-4aa8c932ed2c9830d3a85c516ed44886.js'; </script> <script type="text/javascript"> document.write("<style type=\"text/css\">.hide_on_script{display:none;}</style>"); var event_query = "" </script> <title data-analytics="featured_lists">World Languages | The Seattle Public Library | BiblioCommons</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="App-Version" content="Version 9.25.0 Last updated 2024/10/01 11:54 [cor-liv-app09]"> <meta name="format-detection" content="telephone=no"> <meta name="google-site-verification" content="XP15EF9-Mx4nKTFwmhzJkL6q7mc-CuNVTmbkg8MnZRU" /> <meta content="authenticity_token" name="csrf-param" /> <meta content="IpaN4HgVwpsU8YetCpPkV/Wq5TuqOK8bUDo7emQy044=" name="csrf-token" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta property="og:site_name" content="The Seattle Public Library"> <meta property="og:url" content="https://seattle.bibliocommons.com/explore/featured_lists/languages"> <meta property="fb:app_id" content="821053187955346"> <meta name="twitter:site" content="@SPLBuzz"> <meta name="twitter:creator" content="@SPLBuzz"> <meta property="title" content="World Languages | The Seattle Public Library | BiblioCommons"> <meta property="og:title" content="World Languages | The Seattle Public Library | BiblioCommons"> <meta name="twitter:title" content="World Languages | The Seattle Public Library | BiblioCommons"> <meta name="description" content="Explore The Seattle Public Library. New titles, recently rated, and recently tagged by the library community."> <meta name="og:description" content="Explore The Seattle Public Library. New titles, recently rated, and recently tagged by the library community."> <meta name="twitter:description" content="Explore The Seattle Public Library. New titles, recently rated, and recently tagged by the library community."> <meta name="twitter:card" content="summary"> <link href="//cor-cdn-static.bibliocommons.com/assets/bc_base-7458b34fb4de9be11818e405e123b860.css" media="screen" rel="stylesheet" type="text/css" /> <link href="//cor-cdn-static.bibliocommons.com/assets/core-0ebb1c96c1022e0da243d70f0cde2466.css" media="screen" rel="stylesheet" type="text/css" /> <link href="//cor-cdn-static.bibliocommons.com/assets/controllers/featured_lists-8225a991757b0018a19a534df465b280.css" media="screen" rel="stylesheet" type="text/css" /> <link href="//cor-liv-cdn-static.bibliocommons.com/dynamic_stylesheet/WA-SEATTLE/library_branding.css?1732975876495" media="all" rel="stylesheet" type="text/css" /> <link href="//cor-liv-cdn-static.bibliocommons.com/dynamic_stylesheet/WA-SEATTLE/stylesheet.css?1732975876495" media="all" rel="stylesheet" type="text/css" /> <!--[if lt IE 9]><link href="//cor-cdn-static.bibliocommons.com/assets/deprecated/context/core/IE-223cce97d2a1ab4365e01eb4070abbb7.css" media="screen" rel="stylesheet" type="text/css" /><![endif]--> <!--[if IE 8]><link href="//cor-cdn-static.bibliocommons.com/assets/deprecated/context/core/IE8-6423c920b2af42d04525fdd61d76a9ee.css" media="screen" rel="stylesheet" type="text/css" /><![endif]--> <!--[if IE 9]><link href="//cor-cdn-static.bibliocommons.com/assets/deprecated/context/core/ie9-f9eebad232c8e6d89bc517dc1c34ab40.css" media="screen" rel="stylesheet" type="text/css" /><![endif]--> <script type="text/javascript" charset="utf-8"> var registered_messages = []; </script> <script type="text/javascript"> var AUTH_TOKEN = "IpaN4HgVwpsU8YetCpPkV/Wq5TuqOK8bUDo7emQy044="; var BC_USER_ID = 0; var BC_LIBRARY_ID = 30; var BC_USERNAME = ""; var BC_MD5_USER = ""; var at_local_branch = ""; var USER_PRESENT = "false"; var current_time = "Sun, 01 Dec 2024 05:49:17 GMT"; var j_callback = ""; var SEND_FORMS = true; var CURRENT_LOCALE = "en-US"; var back_to_link_page_id = ""; var AUTH_RULES = { is_program_agency: false, recently_returned_enabled: true, registration_requires_user_segments: false, digital_service_enabled: true, show_barcodeless_if_login_fail: false, reminder_messaging_enabled: false, numeric_password_required: false, confirm_password: true, supported_registration_types: ["ILS_BACKED"], required_fields: ["barcode", "user_pin", "first_name", "last_name", "location_city", "location_name", "user_name", "password", "confirm_password", "accept_terms", "user_zip_code", "user_grade"], reminder_types: [], default_page: 'dashboard', restricted_age_limit: 13, password_min_length: 4, password_max_length: 4, pre_registration_account_linking: true, pre_registration_matching: false, restrict_free_text_entry: true }; var READING_TIME_LAST_NUDGE = false; var USER_HAS_NEW_BADGES = false; var DOE_LOGIN_REDIRECT = false; /* Localization */ var less = "Show less"; var more = "Show more"; var sSearch = "Search entries:"; var sLengthMenu = "Display _MENU_ records per page"; var sZeroRecords = "Nothing found"; var sInfo = "Showing _START_ to _END_ of _TOTAL_ records"; var sInfoEmpty = "Showing 0 to 0 of 0 records"; var sInfoFiltered = "(filtered from _MAX_ total records)"; var sNext = "Next"; var sPrevious = "Previous"; var od_localizations = { fetch_message: "Checking Availability...", wait_message: "Please wait, other requests are pending.", request_available: "Check availability", digital_request: "Place hold", checkout: "Available for checkout" } var DISABLE_MSG = "If you edit the query directly, the form below will be disabled."; var ADDED = '<i aria-hidden="true" class=" icon-ok"></i> Added to...'; var CLOSETEXT = "Close"; var START_DATE = "Pick a start date."; var DONE_BUTTON = "Done"; var END_DATE = "Suspend End Date"; var START_DATE = "Suspend Start Date"; var YOUR_USERNAME_IS = "Your username is:"; var localized_validator_messages = { accept_terms: { required: "You must accept the terms." } , user_name:{ remote: "Someone already has that username", matchesPattern: "Your username can contain only letters, numbers, or underscores (no spaces). It cannot contain numbers only." } , validExactPwd: "Your password must be {0} characters in length" , validExactPin: "Your PIN must be {0} numeric digits" , required: "This field is required." , remote: "Please fix this field." , email: "Please enter a valid email address." , multiemail: "Please enter valid email address(es)." , url: "Please enter a valid URL." , date: "Please enter a valid date." , dateISO: "Please enter a valid date (ISO)." , number: "Please enter a valid number." , digits: "Please enter only digits." , creditcard: "Please enter a valid credit card number." , equalTo: "Please enter the same value again." , accept: "Please enter a value with a valid extension." , maxlength: "Please enter no more than {0} characters." , minlength: "Please enter at least {0} characters." , rangelength: "Please enter a value between {0} and {1} characters long." , range: "Please enter a value between {0} and {1}." , max: "Please enter a value less than or equal to {0}." , min: "Please enter a value greater than or equal to {0}." , filteredPhone: "Please enter a valid 10-digit North American phone number." , s4pYearRange: "Please enter a 4-digit year from 1901 to {0}" , reportDateRange: "This date is outside the maximum range of 3 months." , badgesAgeRange: "Minimum age cannot be more than max age." , badgesCode: "Text, numbers, underscores and hashtags only please. Code must have at least 2 characters." , twitterusername: "Twitter username cannot contain spaces or symbols." , suggested_purchases_select_reason: "Please select a reason." }; var BCLang = { more: "More", like: "Like", likes: "likes", liked: "Liked", unlike: "Unlike", unliked: "unliked", list: "List", lists: "Lists", title: "Title", titles: "Titles", library: "library", libraries: "libraries", person: "person", people: "people", show_more: "Show More", loading: "Loading...", buttons: { save: "Save", cancel: "Cancel" }, errors_and_messages: { errors: "An error occurred and your request could not be completed. Please try again later", preferred_location_selected: "This location has been selected.", covers_copied: "Jacket cover images copied to clipboard." }, user_profile: { duplicate_label: "You have entered a duplicate label", user_added: "User added" }, color: "color", animal: "animal", reg_color_picked: "picked color", reg_animal_picked: "picked animal", reg_confirm_tos: "Confirm your acceptance of the terms and conditions", something_went_wrong: "Something went wrong, please try later.", help_bubble: { borrowing_select_items: { text: "Switch to manage multiple items from here...", title: "You will be able to select and manage items of all status types." }, borrowing_summary: { title: "Your borrowing summary menu can be accessed from here" }, checkedout_ratings: { text: "Titles you rate are automatically added to your Completed Shelf, and default to the privacy setting of your shelf.<br><a data-js=\"help_popout\" href=\"https://help.bibliocommons.com/045faq/040faq-my-shelves\">Learn more<\/a>", title: "Rate or add titles to your Shelves" }, borrowing_summary_view: { text: "Your items are grouped by status when 2 or more status types exist. You can manage your items in groups, or...", title: "This is your summary view" }, holds_shelves: { text: "Shelves allow you to keep a reference to the items you have borrowed or wish to borrow. You can add and move items to your For Later, In Progress, or Completed Shelf, and you can keep them private or public.<br><a data-js=\"help_popout\" href=\"https://help.bibliocommons.com/045faq/040faq-my-shelves\">Learn more<\/a>", title: "Add items to your Shelves" }, borrowing_faqs: { text: "You can access the FAQs or take this tour from here." }, next_text: "OK, Next", close_text: "OK, Got it.", borrowing_batch_actions: { title: "Select the items you want to manage, and then choose the action you want to take from here" }, borrowing_individual_actions: { title: "Access individual item actions from here" } } }; var HELP_BUBBLES = {}; var bc_feature = {}; bc_feature['CirculationPopularity'] = true; bc_feature['RecentCommentsCarousel'] = false; bc_feature['ReaderAssetBuild'] = false; bc_feature['ReaderConsolidatedMenu'] = false; bc_feature['ReaderEcwImageFix'] = false; bc_feature['ReaderForceDownload'] = false; bc_feature['ReaderForceDownloadReadPage'] = false; bc_feature['ReaderNativeLogout'] = false; bc_feature['ReaderStartupScreen'] = false; bc_feature['ReaderSafariHomescreen'] = false; bc_feature['ResponsiveShelves'] = false; bc_feature['ResponsiveShelvesOptIn'] = false; bc_feature['RevisedFrbrRatingFacet'] = false; bc_feature['MyConversations'] = false; bc_feature['UseAcquisitionCoreStub'] = false; bc_feature['RemoveFooterPartials'] = false; bc_feature['LikingLibraryBreakdown'] = false; bc_feature['ShowOclcIds'] = false; bc_feature['SaveUserInfoForReporting'] = false; bc_feature['BootstrapPopovers'] = false; bc_feature['CheckedOutOUTStatus'] = true; bc_feature['EHoldingsStatus'] = false; bc_feature['BorrowingWidgetCaching'] = false; bc_feature['WrapLegacyWithBootstrap'] = true; bc_feature['NerfListCarousel'] = true; bc_feature['ItemFormatPicker'] = true; bc_feature['NerfShelves'] = true; bc_feature['NerfShelvesOptIn'] = true; bc_feature['NerfBorrowing'] = true; bc_feature['NerfBorrowingOptIn'] = true; bc_feature['HoldsWhileYouWaitRecommendations'] = false; bc_feature['BatchAddToShelf'] = false; bc_feature['ReactPrivacyToggle'] = false; bc_feature['ReactCommentEditor'] = false; bc_feature['ReactSummaryEditor'] = false; bc_feature['ReactQuotationEditor'] = false; bc_feature['ReactContentAdvisoryEditor'] = false; bc_feature['SecurityDarkRelease'] = false; bc_feature['ReactAgeSuitibilityEditor'] = false; bc_feature['CopyListCoversButton'] = true; bc_feature['ThreeWayAccountLinking'] = false; bc_feature['SearchBoosting'] = false; var THIRD_PARTY_RECOMMENDATIONS = {}; THIRD_PARTY_RECOMMENDATIONS['novelist'] = {"apikey":"s9224929.main.novsel4:dGJyMOPY8Umwp7MA","maxitems":5,"maxisbns":5}; var is_responsive_registration = true; var frbr_enabled = false if (typeof console == "undefined" || typeof console.debug == "undefined") var console = { log: function() {}, warn: function() {}, info: function() {}, error: function() {} }; console.debug = function() {}; document.write("<style type=\"text/css\">.hide_on_script{display:none;}</style>"); var auto_suggest_enabled = true; var open_dropdown = ""; var open_popup = ""; var open_editor = ""; var open_details = ""; var selected_items = []; var open_tip = ""; var help_win = false; var fines_popup_width = 750; var fines_popup_height = 600; var renew_enabled = true; var registrar = { hooks: {}, handlers: {}, remove_hook: function(type){ this.hooks[type] = []; }, add_hook: function(type, o) { if (typeof(o) == "string") o = {element: o}; if (this.hooks[type] == undefined) { this.hooks[type] = []; } this.hooks[type].push(o); if (this.handlers[type] != undefined) { for (var i=0; i < this.handlers[type].length; i++) { this.inform_handler(this.handlers[type][i], o); }; } }, add_handler: function(types, handler, opts) { if (typeof(types) != "object") { types = [types]; } if (opts == undefined) { opts = {delay: 0}; } for (var i=0; i < types.length; i++) { var type = types[i]; if (this.handlers[type] == undefined) { this.handlers[type] = []; } var h = {handler: handler, opts: opts}; this.handlers[type].push(h); if (this.hooks[type] != undefined) { var hook_length = this.hooks[type].length; if (hook_length > 0) { if (h.opts.delay != 0) { this.chained_inform_handler(0, h, type); } else { for (var i=0; i < this.hooks[type].length; i++) { this.inform_handler(h, this.hooks[type][i]); } } } } }; }, chained_inform_handler: function(idx, h, type) { if (idx < this.hooks[type].length) { registrar.inform_handler(h, this.hooks[type][idx]); setTimeout(function() { registrar.chained_inform_handler(idx+1, h, type); }, h.opts.delay); } }, inform_handler: function(h, hook) { h.handler(hook); } }; registrar.add_handler("dropdown", function(o) { var hover = false; if (o.hover != undefined && o.hover != null) hover = o.hover; if (!o.hover && o.trigger) document.getElementById(o.trigger).onclick = function(){return false;}; }); var DOAUTH = true; HAS_SCHOOLS = false var CHECK_FOR_BADGES = false; var CMS_ENABLED = false; var CMS_URL = ""; var images_path_location = /assets/; </script> <script type="text/javascript"> if (typeof console == "undefined" || typeof console.debug == "undefined") var console = { log: function() {}, warn: function() {}, info: function() {}, error: function() {} }; console.debug = function() {}; </script> <script type="text/javascript"> var messages = []; </script> <link href="//cor-cdn-static.bibliocommons.com/assets/print-887e1ad12746a48f7a18776d8f41080c.css" media="print" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="/images/WA-SEATTLE/favicon.ico"/> </head> <body id="context_core" class='lt_responsive one_col '> <div class="screen_reader_navigation" role="navigation"> <a class="hidden-xs hidden-sm screen_reader_nav" href="#header_main_nav" data-js="skip_to_main_nav"> Skip to main navigation </a> <a class="hidden-lg hidden-md screen_reader_nav" href="#header_main_nav" data-js="header_nav_xs_trigger" data-target = "header-main-nav"> Skip to main navigation </a> <a class="hidden-xs hidden-sm screen_reader_nav" href="#desktop_search_form" data-js="skip_to_search_field"> Skip to search </a> <a class="hidden-lg hidden-md screen_reader_nav" href="#mobile_search_form" data-js="header_search_xs_trigger"> Skip to search </a> <a class="screen_reader_nav" href="#content-start" data-js="skip_to_content_start"> Skip to content </a> </div> <div id="ct_featured_lists" data-test-id="featured_lists_page" class="view_medium"> <div class="cp_biblio_master_message"> <!-- IE Browser Message --><p>We're sorry, the Internet Explorer web browser is no longer supported by this website.</p> <p>Please download a different browser such as <a href="https://www.mozilla.org/en-US/firefox/new/">Mozilla Firefox</a>, <a href="https://www.google.com/chrome/">Google Chrome</a>, or <a href="https://www.microsoft.com/en-us/edge">Microsoft Edge</a> to improve your experience.</p> <p>Contact your library if you need assistance.</p> </div> <header> <script type="text/javascript"> window.BCHeaderConfig = {"is_externally_rendered":false,"initial_state":{},"core_base_url":"https://seattle.bibliocommons.com/","web_base_url":null,"domain":"seattle","messages":{"ada_suggestions_below":"Suggestions below."}}; </script> <div class="cp_header_wrapper"> <div class="cp_header" data-js="cp_header" testid="header" data-responsive="true"> <div class="cp_header_biblio_bar"> <div class="container"> <div class="row"> <div class="col-xs-12"> <div class="pull-left"> <div class="hidden-xs"> <a href="javascript:void(0);" aria-expanded="false" class="biblio_bar_link language_dropdown_trigger dropdown-toggle hide_trigger_icon" data-toggle="dropdown" id="biblio_language_trigger" lang="en-US" testid="selected_language"> <svg aria-hidden="true" class="svg_icon " focusable="false" height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"> <path d="M5.994 0C2.682 0 0 2.688 0 6C0 9.312 2.682 12 5.994 12C9.312 12 12 9.312 12 6C12 2.688 9.312 0 5.994 0ZM10.152 3.6H8.382C8.19 2.85 7.914 2.13 7.554 1.464C8.658 1.842 9.576 2.61 10.152 3.6ZM6 1.224C6.498 1.944 6.888 2.742 7.146 3.6H4.854C5.112 2.742 5.502 1.944 6 1.224ZM1.356 7.2C1.26 6.816 1.2 6.414 1.2 6C1.2 5.586 1.26 5.184 1.356 4.8H3.384C3.336 5.196 3.3 5.592 3.3 6C3.3 6.408 3.336 6.804 3.384 7.2H1.356ZM1.848 8.4H3.618C3.81 9.15 4.086 9.87 4.446 10.536C3.342 10.158 2.424 9.396 1.848 8.4ZM3.618 3.6H1.848C2.424 2.604 3.342 1.842 4.446 1.464C4.086 2.13 3.81 2.85 3.618 3.6ZM6 10.776C5.502 10.056 5.112 9.258 4.854 8.4H7.146C6.888 9.258 6.498 10.056 6 10.776ZM7.404 7.2H4.596C4.542 6.804 4.5 6.408 4.5 6C4.5 5.592 4.542 5.19 4.596 4.8H7.404C7.458 5.19 7.5 5.592 7.5 6C7.5 6.408 7.458 6.804 7.404 7.2ZM7.554 10.536C7.914 9.87 8.19 9.15 8.382 8.4H10.152C9.576 9.39 8.658 10.158 7.554 10.536ZM8.616 7.2C8.664 6.804 8.7 6.408 8.7 6C8.7 5.592 8.664 5.196 8.616 4.8H10.644C10.74 5.184 10.8 5.586 10.8 6C10.8 6.414 10.74 6.816 10.644 7.2H8.616Z" /> </svg> <span aria-hidden="true">English</span><span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="English, collapsed" data-text-expanded="English, expanded">English, collapsed</span><span aria-hidden="true" class="icon-arrow"></span></a> <ul class="dropdown-menu biblio_languages" aria-labelledby="biblio_language_trigger" testid="list_of_langs"> <li><a href="/info/switch_language?external=false&selected_language=es-ES" class="" lang="es-ES">Español</a></li> <li><a href="/info/switch_language?external=false&selected_language=zh-CN" class="" lang="zh-CN">简体中文</a></li> <li><a href="/info/switch_language?external=false&selected_language=zh-TW" class="" lang="zh-TW">繁體中文</a></li> <li><a href="/info/switch_language?external=false&selected_language=ru-RU" class="" lang="ru-RU">Русский</a></li> <li><a href="/info/switch_language?external=false&selected_language=vi-VN" class="" lang="vi-VN">Tiếng Việt</a></li> </ul> </div> <a href="#language-switcher-overlay" class="biblio_bar_link visible-xs language_overlay_trigger" data-js="language_overlay_trigger" data-target="language_switcher_overlay" testid="language_trigger"> <svg aria-hidden="true" class="svg_icon " focusable="false" height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"> <path d="M5.994 0C2.682 0 0 2.688 0 6C0 9.312 2.682 12 5.994 12C9.312 12 12 9.312 12 6C12 2.688 9.312 0 5.994 0ZM10.152 3.6H8.382C8.19 2.85 7.914 2.13 7.554 1.464C8.658 1.842 9.576 2.61 10.152 3.6ZM6 1.224C6.498 1.944 6.888 2.742 7.146 3.6H4.854C5.112 2.742 5.502 1.944 6 1.224ZM1.356 7.2C1.26 6.816 1.2 6.414 1.2 6C1.2 5.586 1.26 5.184 1.356 4.8H3.384C3.336 5.196 3.3 5.592 3.3 6C3.3 6.408 3.336 6.804 3.384 7.2H1.356ZM1.848 8.4H3.618C3.81 9.15 4.086 9.87 4.446 10.536C3.342 10.158 2.424 9.396 1.848 8.4ZM3.618 3.6H1.848C2.424 2.604 3.342 1.842 4.446 1.464C4.086 2.13 3.81 2.85 3.618 3.6ZM6 10.776C5.502 10.056 5.112 9.258 4.854 8.4H7.146C6.888 9.258 6.498 10.056 6 10.776ZM7.404 7.2H4.596C4.542 6.804 4.5 6.408 4.5 6C4.5 5.592 4.542 5.19 4.596 4.8H7.404C7.458 5.19 7.5 5.592 7.5 6C7.5 6.408 7.458 6.804 7.404 7.2ZM7.554 10.536C7.914 9.87 8.19 9.15 8.382 8.4H10.152C9.576 9.39 8.658 10.158 7.554 10.536ZM8.616 7.2C8.664 6.804 8.7 6.408 8.7 6C8.7 5.592 8.664 5.196 8.616 4.8H10.644C10.74 5.184 10.8 5.586 10.8 6C10.8 6.414 10.74 6.816 10.644 7.2H8.616Z" /> </svg> <span class="sr-only"> Select language, opens an overlay </span> </a> <script type="text/html" data-js="language_switcher_overlay"> <div class="language_switcher_overlay"> <h3>Select language</h3> <ul> <li><a href="/info/switch_language?external=false&selected_language=es-ES" class="" lang="es-ES">Español</a></li> <li><a href="/info/switch_language?external=false&selected_language=zh-CN" class="" lang="zh-CN">简体中文</a></li> <li><a href="/info/switch_language?external=false&selected_language=zh-TW" class="" lang="zh-TW">繁體中文</a></li> <li><a href="/info/switch_language?external=false&selected_language=ru-RU" class="" lang="ru-RU">Русский</a></li> <li><a href="/info/switch_language?external=false&selected_language=vi-VN" class="" lang="vi-VN">Tiếng Việt</a></li> </ul> </div> </script> </div> <div class="pull-left visible-xs help_location_links_xs"> <a href="https://help.bibliocommons.com" class="biblio_bar_link header_help_link" data-js="header_help_link" data-target="header_help_dropdown_menu" data-ga-category="header_help_link" data-ga-label="Help Link" testid="link_help"> <i aria-hidden="true" class=" icon-help-circled"></i> <span class="hidden-xs" aria-hidden="true">Help</span> <span class="sr-only">Help, opens a new window</span> </a> </div> <div class="pull-right header_biblio_bar_right" > <div class="hidden-xs help_location_links" > <a href="https://help.bibliocommons.com" class="biblio_bar_link header_help_link" data-js="header_help_link" data-target="header_help_dropdown_menu" data-ga-category="header_help_link" data-ga-label="Help Link" testid="link_help"> <i aria-hidden="true" class=" icon-help-circled"></i> <span class="hidden-xs" aria-hidden="true">Help</span> <span class="sr-only">Help, opens a new window</span> </a> </div> <!-- begin BCNAV --> <div data-js="bc_my_account_nav" class="bc_my_account_nav"> <!-- Template: t_biblionav_admin_nav --> <div class="admin_nav hidden" data-js="biblionav_admin_nav" testid="admin_nav"> <a href="#" aria-expanded="false" class="biblio_bar_link admin_nav_trigger dropdown-toggle hide_trigger_icon" data-js="admin_nav_trigger" data-toggle="dropdown" id="admin_nav_trigger" testid="admin_nav_trigger"> <svg aria-hidden="false" class="svg_icon " focusable="false" height="14" viewBox="0 0 30 32" width="14" xmlns="http://www.w3.org/2000/svg"> <title>Admin</title> <path d="M6.848 26.272q0-0.448-0.32-0.8t-0.8-0.32-0.8 0.32-0.352 0.8 0.352 0.8 0.8 0.352 0.8-0.352 0.32-0.8zM18.368 18.784l-12.192 12.192q-0.672 0.64-1.6 0.64t-1.632-0.64l-1.888-1.952q-0.672-0.64-0.672-1.6 0-0.928 0.672-1.632l12.16-12.16q0.704 1.76 2.048 3.104t3.104 2.048zM29.696 11.008q0 0.704-0.416 1.888-0.864 2.4-2.944 3.904t-4.608 1.472q-3.328 0-5.664-2.336t-2.336-5.664 2.336-5.632 5.664-2.368q1.024 0 2.144 0.32t1.92 0.832q0.288 0.192 0.288 0.48t-0.288 0.512l-5.216 3.008v4l3.456 1.92q0.064-0.064 1.408-0.864t2.4-1.44 1.28-0.64q0.256 0 0.416 0.16t0.16 0.448z"></path> </svg> <span aria-hidden="true" class="hidden-sm hidden-xs">Admin</span><span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="Admin, collapsed" data-text-expanded="Admin, expanded">Admin, collapsed</span><span aria-hidden="true" class="icon-arrow"></span></a> <ul class="dropdown-menu admin_nav_menu" data-js="admin_nav_menu" aria-labelledby="admin_nav_trigger"> </ul> </div> <script id="t_biblionav_admin_nav" type="x-handlebars-template"> {{#if admin_nav.length}} <li aria-hidden="true" class="dropdown-header"> Library </li> {{#each admin_nav}} <li aria-hidden="true"> <a href="{{link}}" testid="biblionav_admin_{{locals.testid}}">{{title}}</a> </li> {{/each}} {{/if}} {{#if bcadmin_nav.length}} <li aria-hidden="true" class="divider"></li> <li aria-hidden="true" class="dropdown-header"> BC Admin </li> {{#each bcadmin_nav}} <li aria-hidden="true"> <a href="{{link}}" testid="biblionav_admin_{{locals.testid}}">{{title}}</a> </li> {{/each}} {{/if}} </script> <div class="biblio_bar_my_account"> <a href="javascript:void(0);" class="dropdown-toggle my_account_toggle biblio_bar_link hide_trigger_icon " data-test-id="user_state_logged_out" id="biblionav_account_trigger" data-js="biblionav_account_trigger" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <!-- Template: t_biblionav_account_trigger --> <span data-test-id="biblio-bar-login"> Log In / My SPL </span> </a> <ul class="dropdown-menu biblionav_my_account" data-js="biblionav_my_account" aria-labelledby="biblionav_account_trigger"> <!-- Template - t_biblionav_my_account_user_info --> <li class="info" data-js="biblionav_my_account_user_info"> <a href="https://seattle.bibliocommons.com/user/login" class="btn btn-transactional btn-block log_in_btn" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_value":"https://seattle.bibliocommons.com/user/login"},"ui":{"ui_component_label":"Log In / Register","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" data-js="header_login_link" testid="biblionav_login">Log In / Register</a> </li> <li aria-hidden="true" role="presentation" class="divider"></li> <li> <a href="https://seattle.bibliocommons.com/dashboard/user_dashboard" class=" " data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/dashboard/user_dashboard"},"ui":{"ui_component_label":"My Library Dashboard","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_mylibrary">My Library Dashboard</a> </li> <li aria-hidden="true" role="presentation" class="divider"></li> <li class="dropdown-header">My Borrowing</li> <li> <a href="https://seattle.bibliocommons.com/checkedout" class=" indented" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/checkedout"},"ui":{"ui_component_label":"Checked Out","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_checkedout">Checked Out</a> </li> <li> <a href="https://seattle.bibliocommons.com/holds" class=" indented" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/holds"},"ui":{"ui_component_label":"On Hold","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_holds">On Hold</a> </li> <li> <a href="https://seattle.bibliocommons.com/recentlyreturned" class="hidden indented" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/recentlyreturned"},"ui":{"ui_component_label":"Borrowing History","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" data-js="borrowing_history_menu_item" testid="biblionav_borrowing_history">Borrowing History</a> </li> <li> <a href="https://seattle.bibliocommons.com/fines" class=" indented" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/fines"},"ui":{"ui_component_label":"Fees","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_fines">Fees</a> </li> <li> <a href="https://seattle.bibliocommons.com/v2/interlibraryloans" class="hidden indented" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/v2/interlibraryloans"},"ui":{"ui_component_label":"ILL Requests","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}">ILL Requests</a> </li> <li aria-hidden="true" role="presentation" class="divider"></li> <li class="dropdown-header">My Collections</li> <li> <a href="https://seattle.bibliocommons.com/collection/show/my/library/for_later" class=" indented" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/collection/show/my/library/for_later"},"ui":{"ui_component_label":"For Later Shelf","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_shelves_future">For Later Shelf</a> </li> <li> <a href="https://seattle.bibliocommons.com/collection/show/my/library/completed" class=" indented" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/collection/show/my/library/completed"},"ui":{"ui_component_label":"Completed Shelf","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_shelves_past">Completed Shelf</a> </li> <li> <a href="https://seattle.bibliocommons.com/collection/show/my/library/in_progress" class=" indented" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/collection/show/my/library/in_progress"},"ui":{"ui_component_label":"In Progress Shelf","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_shelves_present">In Progress Shelf</a> </li> <li> <a href="https://seattle.bibliocommons.com/lists/show/mine" class=" indented" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/lists/show/mine"},"ui":{"ui_component_label":"Lists","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_lists">Lists</a> </li> <li aria-hidden="true" role="presentation" class="divider"></li> <li> <a href="https://seattle.bibliocommons.com/user_profile/me" class=" " data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/user_profile/me"},"ui":{"ui_component_label":"My Profile","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_myprofile">My Profile</a> </li> <li aria-hidden="true" role="presentation" class="divider"></li> <li> <a href="https://seattle.bibliocommons.com/account" class=" " data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/account"},"ui":{"ui_component_label":"My Settings","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_mysettings">My Settings</a> </li> <!-- Template: t_biblionav_account_selector --> <li data-js='biblionav_account_selector'></li> </ul> </div> </div> <!-- end BCNAV --> <script id="t_biblionav_divider" type="x-handlebars-template"> <li aria-hidden="true" role="presentation" class="divider" data-js="divider_{{divider_name}}"></li> </script> <script id="t_biblionav_account_trigger" type="x-handlebars-template"> {{#if logged_in}} <div class="cp_user_avatar sm home_patron" testid="user_avatar_{{user_id}}"> {{#if user_avatar}} <img src="{{user_avatar}}" class="img-circle" alt=""> {{else}} <div class="img-circle initial"><span aria-hidden="true">{{user_initial}}</span></div> {{/if}} </div> <span class="hidden-xs user_identity_name" aria-hidden= "true">{{user_name}}</span> <span class="sr-only hidden-xs" data-js="sr-only-dropdown-toggle" data-text-collapsed="User {{user_name}}." data-text-expanded="User {{user_name}}.">User {{user_name}}.</span> <span class="sr-only visible-xs" data-js="sr-only-dropdown-toggle" data-text-collapsed="For {{user_name}}. Double-tap to expand." data-text-expanded="Menu for {{user_name}} shows pop-up">For {{user_name}}. Double-tap to expand.</span> {{else}} <span aria-hidden= "true" class="my_account_label">Log In / My SPL</span> <span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="User Log In / My SPL." data-text-expanded="User Log In / My SPL.">User Log In / My SPL.</span> {{/if}} <span class="icon-arrow" aria-hidden="true"></span> </script> <script id="t_biblionav_my_account_user_info" type="x-handlebars-template"> <li class="info" data-js="biblionav_my_account_user_info"> {{#if logged_in}} <div class="pull-left"> <div class="my-account"><b>My Account</b></div> </div> <div class="pull-right notification-buttons"> <a href="https://seattle.bibliocommons.com/user_profile/me/notification_feed" class="btn btn-default btn-flat" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_value":"https://seattle.bibliocommons.com/user_profile/me/notification_feed"},"ui":{"ui_component_label":"{{unread_notifications}} notifications","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_notifications"> <i aria-hidden="true" class=" icon-bell"></i> {{#if unread_notifications}} <span class="badge" aria-hidden="true">{{unread_notifications}}</span> <span class="sr-only"> {{unread_notifications}} notifications </span> {{else}} <span class="sr-only">Notifications</span> {{/if}} </a> <a href="https://seattle.bibliocommons.com/account/personal_information" class="btn btn-default btn-flat" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_value":"https://seattle.bibliocommons.com/account/personal_information"},"ui":{"ui_component_label":"My Settings","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_mysettings"> <i aria-hidden="true" class=" icon-cog"></i> <span class="sr-only">My Settings</span> </a> </div> <a href="https://seattle.bibliocommons.com/user/logout" class="btn btn-transactional btn-block log_out_btn" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_value":"https://seattle.bibliocommons.com/user/logout"},"ui":{"ui_component_label":"Log Out","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" testid="biblionav_logout">Log Out</a> {{else}} <a href="https://seattle.bibliocommons.com/user/login" class="btn btn-transactional btn-block log_in_btn" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_value":"https://seattle.bibliocommons.com/user/login"},"ui":{"ui_component_label":"Log In / Register","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" data-js="header_login_link" testid="biblionav_login">Log In / Register</a> {{/if}} </li> </script> <script id="t_biblionav_account_selector" type="x-handlebars-template"> <ul> <li aria-hidden="true" role="presentation" class="divider"></li> <li aria-hidden="true" role="presentation" class="dropdown-header"> Switch Library Account </li> {{#each accounts}} <li> <a href="https://{{link}}" class="indented" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_value":"https://{{link}}"},"ui":{"ui_component_label":"{{text}}","ui_component_type":"link-text","ui_container_type":"header-account-menu"}}]}" data-js="switch_linked_library" data-host="{{link}}" testid="biblionav_multiaccount_lib_{{text}}"> {{text}} <i aria-hidden="true" class=" icon-right"></i> </a> </li> {{/each}} </ul> </script> </div> </div> </div> </div> </div><!-- /.cp_header_biblio_bar --> <div class="header_main"> <div class="client_and_search" data-test-id="header-desktop-search"> <div class="container"> <div class="pull-left cp_header_client_area"> <div class="pull-left logo"> <a href="http://www.spl.org/"><picture><source media="(max-width: 991px)" sizes="64px" srcset="//cor-liv-cdn-static.bibliocommons.com/images/WA-SEATTLE/mobile_logo.png?1732975876495" /><img alt="The Seattle Public Library" src="//cor-liv-cdn-static.bibliocommons.com/images/WA-SEATTLE/logo.png?1732975876495" title="" /></picture></a> </div> <div class="pull-left visible-xs-block visible-sm-block xs_icon_triggers"> <a href="#" aria-label="Main navigation" data-ga-category="mobile_header_main_nav" data-ga-label="Mobile Main Nav" data-js="header_nav_xs_trigger" data-main-nav="true" data-target="header-main-nav" id="header_nav_xs_trigger" role="button"><i aria-hidden="true" class=" icon-menu"></i><span class="sr-only">Main navigation</span></a> </div> </div> <div class="visible-xs-block visible-sm-block xs_icon_triggers"> <a href="#" aria-label="Open search form" class="header_search_xs" data-icon-off="icon-cancel" data-icon-on="icon-search" data-js="header_search_xs_trigger" role="button"><i aria-hidden="true" class=" icon-search"></i><span class="sr-only">Open search form</span></a> </div> <div class="hidden-xs hidden-sm header_collapsible_search_wrapper"> <div class="header_search_wrapper header_search_wrapper_desktop header_search_catalogue" data-js="header_search_wrapper header_search_wrapper_desktop"> <div class="cp_header_search" id="header_search" data-js="header_search"> <div> <form action="https://seattle.bibliocommons.com/search" class="collapsible_search_form" data-js="header_search_form desktop_search_form" id="desktop_search_form" name="desktop_search_form"> <input data-js="header_search_origin" name="origin" type="hidden" value="user-query" /> <div class="pull-left"> <div data-js="header_target_search_options" data-target="catalogue"> <div class="form-group"> <span class="connector" aria-hidden="true"> Search by </span> <!-- begin SEARCH TYPE --> <div class="bootstrap-select-wrapper" data-test-id="header-search-type-dropdown"><select aria-label="Search type" class="form-control selectpicker form-control" data-dropup-auto="false" data-js="search_type" data-style="btn-flat btn-default" id="search_filter_id_3etq9r7tutr4lbrv0g6ff45h2b" name="t" testid="search_filter"><option value="smart">Keyword</option> <option value="title">Title</option> <option value="author">Author</option> <option value="subject">Subject</option> <option value="tag">Tag</option> <option value="userlist">List</option> <option value="user">User</option></select></div> <input data-js="search_category" id="search_category_id_1rdi5fm23auka6g4824eda4hu" name="search_category" testid="search_category" type="hidden" value="keyword" /> <!-- end SEARCH TYPE--> </div> </div> </div> <!-- begin SEARCH INPUT --> <div class="input-group header_search_box"> <label class="sr-only" for="search_box_id_1ndn2c8ada7le5fakeo36l2acc">Enter search query</label> <span class="main_search_input_wrapper" data-js="main_search_input_wrapper"> <input aria-activedescendant="" aria-autocomplete="both" aria-haspopup="listbox" aria-owns="header_auto_suggest_id_1omlom8hu1j9p0c4jnc6t95dhn" autocomplete="off" class="form-control main_search_input text" data-js="main_search_input" id="search_box_id_1ndn2c8ada7le5fakeo36l2acc" maxlength="1000" name="q" testid="main_search_input" type="search" /> <span class="header_search_filter_lock form-control-feedback" data-js="search_filter_locked" aria-hidden="true"> <svg aria-hidden="true" class="svg_icon " focusable="false" height="16" style="margin-top:10px;" viewBox="0 0 24 24" width="16" xmlns="http://www.w3.org/2000/svg"> <path d="M16 11.998V3.998H17V1.998H7V3.998H8V11.998L6 13.998V15.998H11.2V21.998H12.8V15.998H18V13.998L16 11.998Z" /> </svg> </span> <button class="btn btn-link header_search_clear_button" data-js="header_search_clear_button" type="button"> <div class="sr-only"> Clear Text </div> <svg aria-hidden="true" class="svg_icon svg_close_icon" focusable="false" height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"> <rect width="2" height="16" x="6.964" y="-.036" fill="currentColor" transform="rotate(45 7.964 7.964)"/> <rect width="2" height="16" x="6.964" y="-.036" fill="currentColor" transform="scale(-1 1) rotate(45 0 -11.263)"/> </svg> </button> <div data-js="header_auto_suggest" class="cp_header_auto_suggest hidden"> <div data-js="auto_suggest_aria_messages" class="sr-only" role="alert" aria-live="polite" aria-atomic="false"></div> <ul id="header_auto_suggest_id_1omlom8hu1j9p0c4jnc6t95dhn" data-js="suggestion-menu" class="dropdown-menu" role="listbox"></ul> <div class="hidden"> <svg aria-hidden="true" class="suggestion-skeleton-icon pulse" data-js="suggestion_skeleton_svg" focusable="false" height="14" preserveAspectRatio="xMinYMin meet" viewBox="0 0 10 10" width="14" xmlns="http://www.w3.org/2000/svg"> <rect fill="currentColor" width="2000" height="10"></rect> </svg> </div> </div> </span> <span class="input-group-btn"> <button type="submit" class="btn btn-primary btn-flat"> <i aria-hidden="true" class=" icon-search"></i> <span class="sr-only">Search</span> </button> </span> </div> <!-- end SEARCH INPUT --> </form> </div> <div class="pull-right small adv_search"> <a href="https://seattle.bibliocommons.com/user/saved_searches" class="hidden" data-ga-category="header_saved_searches" data-js="save_search_overlay" testid="link_savedsearches">Saved Searches</a> <a href="https://seattle.bibliocommons.com/search" test_id="link_advancedsearch">Advanced Search</a> </div> </div> </div> </div> </div> </div><!-- /.client_and_search --> <div class="clearfix header_search_wrapper search_wrapper_xs header_search_catalogue" data-js="header_search_wrapper header_search_wrapper_xs" data-test-id="header-mobile-search"> <div class="col-xs-12"> <div class="cp_header_search" data-js="header_search"> <h2 data-js="header_search_title" class="header_search_title" tabindex="-1"> Search </h2> <form accept-charset="UTF-8" action="https://seattle.bibliocommons.com/search" data-js="header_search_form mobile_search_form" id="mobile_search_form" method="get" name="mobile_search_form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div> <input data-js="header_search_origin" id="origin" name="origin" type="hidden" value="user-query" /> <div data-js="header_target_search_options" data-target="catalogue"> <div class="form-group"> <span class="connector" aria-hidden="true"> Search by </span> <!-- begin SEARCH TYPE --> <div class="bootstrap-select-wrapper" data-test-id="header-search-type-dropdown"><select aria-label="Search type" class="form-control selectpicker form-control" data-dropup-auto="false" data-js="search_type" data-style="btn-flat btn-default" id="search_filter_id_6uheuqep2fv39mg8jo91t6k2cp" name="t" testid="search_filter"><option value="smart">Keyword</option> <option value="title">Title</option> <option value="author">Author</option> <option value="subject">Subject</option> <option value="tag">Tag</option> <option value="userlist">List</option> <option value="user">User</option></select></div> <input data-js="search_category" id="search_category_id_2rn7bu69u9lsb5f1ct9hhp5gut" name="search_category" testid="search_category" type="hidden" value="keyword" /> <!-- end SEARCH TYPE--> </div> </div> <div class="form-group"> <!-- begin SEARCH INPUT --> <div class="input-group header_search_box"> <label class="sr-only" for="search_box_id_7b9bi5p0qhb95mfglsjj6v3ji5">Enter search query</label> <span class="main_search_input_wrapper" data-js="main_search_input_wrapper"> <input aria-activedescendant="" aria-autocomplete="both" aria-haspopup="listbox" aria-owns="header_auto_suggest_id_36dhgef07tg4992imth1g4ddl1" autocomplete="off" class="form-control main_search_input text" data-js="main_search_input" id="search_box_id_7b9bi5p0qhb95mfglsjj6v3ji5" maxlength="1000" name="q" testid="main_search_input" type="search" /> <span class="header_search_filter_lock form-control-feedback" data-js="search_filter_locked" aria-hidden="true"> <svg aria-hidden="true" class="svg_icon " focusable="false" height="16" style="margin-top:10px;" viewBox="0 0 24 24" width="16" xmlns="http://www.w3.org/2000/svg"> <path d="M16 11.998V3.998H17V1.998H7V3.998H8V11.998L6 13.998V15.998H11.2V21.998H12.8V15.998H18V13.998L16 11.998Z" /> </svg> </span> <button class="btn btn-link header_search_clear_button" data-js="header_search_clear_button" type="button"> <div class="sr-only"> Clear Text </div> <svg aria-hidden="true" class="svg_icon svg_close_icon" focusable="false" height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"> <rect width="2" height="16" x="6.964" y="-.036" fill="currentColor" transform="rotate(45 7.964 7.964)"/> <rect width="2" height="16" x="6.964" y="-.036" fill="currentColor" transform="scale(-1 1) rotate(45 0 -11.263)"/> </svg> </button> <div data-js="header_auto_suggest" class="cp_header_auto_suggest hidden"> <div data-js="auto_suggest_aria_messages" class="sr-only" role="alert" aria-live="polite" aria-atomic="false"></div> <ul id="header_auto_suggest_id_36dhgef07tg4992imth1g4ddl1" data-js="suggestion-menu" class="dropdown-menu" role="listbox"></ul> <div class="hidden"> <svg aria-hidden="true" class="suggestion-skeleton-icon pulse" data-js="suggestion_skeleton_svg" focusable="false" height="14" preserveAspectRatio="xMinYMin meet" viewBox="0 0 10 10" width="14" xmlns="http://www.w3.org/2000/svg"> <rect fill="currentColor" width="2000" height="10"></rect> </svg> </div> </div> </span> <span class="input-group-btn"> <button type="submit" class="btn btn-primary btn-flat"> <i aria-hidden="true" class=" icon-search"></i> <span class="sr-only">Search</span> </button> </span> </div> <!-- end SEARCH INPUT --> </div> </form> <div class="form-group pull-right adv_search"> <a href="https://seattle.bibliocommons.com/user/saved_searches" class="hidden" data-ga-category="header_saved_searches" data-js="save_search_overlay" testid="link_savedsearches">Saved Searches</a> <a href="https://seattle.bibliocommons.com/search" test_id="link_advancedsearch">Advanced Search</a> </div> </div> <!-- /.cp_header_search --> </div> </div> <div class="navbar yamm navbar-default hidden-xs hidden-sm cp_header_nav" data-js="header-top-nav"> <div class="container"> <nav class="navbar-collapse collapse col-md-12"> <ul class="nav navbar-nav header_main_nav" id="header_main_nav" aria-haspopup="true" data-js="header-main-nav"> <li class='desktop mobile'><a href="https://seattle.bibliocommons.com/dashboard" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/dashboard"},"ui":{"ui_component_label":"Home","ui_component_type":"link-text","ui_container_title":"Home","ui_container_type":"header-navigation"}}]}" data-ga-category="header_top_level_nav" data-ga-label="Home">Home</a></li><li class='dropdown active desktop mobile' data-ga-category='header_top_level_nav' data-ga-label='Explore' data-ga-event='show'><a href="#explore_menu" class="dropdown-toggle hide_trigger_icon" data-analytics-payload="{"method":"trackNavigate","args":[{"ui":{"ui_component_label":"Explore","ui_component_type":"dropdown-menu","ui_container_title":"Explore","ui_container_type":"header-navigation"}}]}" data-toggle="dropdown" testid="link_explore"><span aria-hidden="true">Explore</span><span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="Explore, collapsed" data-text-expanded="Explore, expanded">Explore, collapsed</span><span aria-hidden="true" class="icon-arrow"></span></a><div class="dropdown-menu" data-listbox="true"> <div class="yamm-content"><div class="menu-column"><ul class="list-unstyled"><li class='desktop mobile'><a href="/" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":{"controller":"dashboard"}},"ui":{"ui_component_label":"Recent Activity","ui_component_type":"link-text","ui_container_title":"Explore","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Recent Activity - Explore" testid="link_whatsnew">Recent Activity</a></li><li class='desktop mobile'><a href="/explore/recent_arrivals" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":{"controller":"recent_arrivals"}},"ui":{"ui_component_label":"New Titles","ui_component_type":"link-text","ui_container_title":"Explore","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="New Titles - Explore" testid="link_explorenewlyacquired">New Titles</a></li><li class='desktop mobile'><a href="/explore/awards" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":{"controller":"awards"}},"ui":{"ui_component_label":"Awards","ui_component_type":"link-text","ui_container_title":"Explore","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Awards - Explore" testid="link_exploreawards">Awards</a></li><li class='desktop mobile'><a href="/explore/bestsellers" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":{"controller":"bestsellers"}},"ui":{"ui_component_label":"Bestsellers","ui_component_type":"link-text","ui_container_title":"Explore","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Bestsellers - Explore" testid="link_explorebestsellers">Bestsellers</a></li><li class='desktop mobile'><a href="/explore/featured_lists/staff_picks" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":{"controller":"featured_lists","action":"show","id":"staff_picks"}},"ui":{"ui_component_label":"Staff Picks","ui_component_type":"link-text","ui_container_title":"Explore","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Staff Picks - Explore" testid="link_e">Staff Picks</a></li><li class='active desktop mobile'><a href="/explore/featured_lists/languages" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":{"controller":"featured_lists","action":"show","id":"languages"}},"ui":{"ui_component_label":"World Languages","ui_component_type":"link-text","ui_container_title":"Explore","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="World Languages - Explore" testid="link_e">World Languages</a></li></ul></div> </div></div></li><li class='dropdown desktop mobile' data-ga-category='header_top_level_nav' data-ga-label='Books & More' data-ga-event='show'><a href="#books_more_menu" class="dropdown-toggle hide_trigger_icon" data-analytics-payload="{"method":"trackNavigate","args":[{"ui":{"ui_component_label":"Books & More","ui_component_type":"dropdown-menu","ui_container_title":"Books & More","ui_container_type":"header-navigation"}}]}" data-toggle="dropdown"><span aria-hidden="true">Books & More</span><span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="Books & More, collapsed" data-text-expanded="Books & More, expanded">Books & More, collapsed</span><span aria-hidden="true" class="icon-arrow"></span></a><div class="dropdown-menu" data-listbox="true"> <div class="yamm-content"><div class="menu-column"><ul class="list-unstyled"><li class='desktop mobile'><a href="https://www.spl.org/library-collection/books-movies-and-music" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/library-collection/books-movies-and-music"},"ui":{"ui_component_label":"Books & Media","ui_component_type":"link-text","ui_container_title":"Books & More","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Books & Media - Books & More">Books & Media</a></li><li class='desktop mobile'><a href="https://www.spl.org/books-and-media/whats-new" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/books-and-media/whats-new"},"ui":{"ui_component_label":"What's New","ui_component_type":"link-text","ui_container_title":"Books & More","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="What's New - Books & More">What's New</a></li><li class='desktop mobile'><a href="https://www.spl.org/books-and-media/whats-popular" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/books-and-media/whats-popular"},"ui":{"ui_component_label":"What's Popular","ui_component_type":"link-text","ui_container_title":"Books & More","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="What's Popular - Books & More">What's Popular</a></li><li class='desktop mobile'><a href="https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=formatcode%3A(CS%20OR%20BOOK_CD%20OR%20BK%20OR%20BOOK_PCD%20OR%20CDROM%20OR%20DVD%20OR%20GRAPHIC_NOVEL%20OR%20LPRINT%20OR%20LP%20OR%20MUSIC_CD%20OR%20MN%20OR%20VC%20)&searchType=bl&suppress=true&f_STATUS=_anywhere_&f_CIRC=CIRC&title=Popular+Titles+Available+Now" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=formatcode%3A(CS%20OR%20BOOK_CD%20OR%20BK%20OR%20BOOK_PCD%20OR%20CDROM%20OR%20DVD%20OR%20GRAPHIC_NOVEL%20OR%20LPRINT%20OR%20LP%20OR%20MUSIC_CD%20OR%20MN%20OR%20VC%20)&searchType=bl&suppress=true&f_STATUS=_anywhere_&f_CIRC=CIRC&title=Popular+Titles+Available+Now"},"ui":{"ui_component_label":"What's Available Now","ui_component_type":"link-text","ui_container_title":"Books & More","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="What's Available Now - Books & More">What's Available Now</a></li><li class='desktop mobile'><a href="https://www.spl.org/programs-and-services/authors-and-books/your-next-5-books" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/programs-and-services/authors-and-books/your-next-5-books"},"ui":{"ui_component_label":"Your Next 5 Books","ui_component_type":"link-text","ui_container_title":"Books & More","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Your Next 5 Books - Books & More">Your Next 5 Books</a></li><li class='desktop mobile'><a href="https://shelftalkblog.wordpress.com/" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://shelftalkblog.wordpress.com/"},"ui":{"ui_component_label":"Shelf Talk Blog","ui_component_type":"link-text","ui_container_title":"Books & More","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Shelf Talk Blog - Books & More">Shelf Talk Blog</a></li><li class='desktop mobile'><a href="https://seattle.bibliocommons.com/list/share/1234612607_seattlepeakpicks/1234963637" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/list/share/1234612607_seattlepeakpicks/1234963637"},"ui":{"ui_component_label":"Peak Picks","ui_component_type":"link-text","ui_container_title":"Books & More","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Peak Picks - Books & More">Peak Picks</a></li></ul></div> </div></div></li><li class='dropdown desktop mobile' data-ga-category='header_top_level_nav' data-ga-label='eBooks' data-ga-event='show'><a href="#ebooks_menu" class="dropdown-toggle hide_trigger_icon" data-analytics-payload="{"method":"trackNavigate","args":[{"ui":{"ui_component_label":"eBooks","ui_component_type":"dropdown-menu","ui_container_title":"eBooks","ui_container_type":"header-navigation"}}]}" data-toggle="dropdown"><span aria-hidden="true">eBooks</span><span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="eBooks, collapsed" data-text-expanded="eBooks, expanded">eBooks, collapsed</span><span aria-hidden="true" class="icon-arrow"></span></a><div class="dropdown-menu" data-listbox="true"> <div class="yamm-content"><div class="menu-column"><ul class="list-unstyled"><li class='desktop mobile'><a href="https://www.spl.org/library-collection/e-books-and-downloads" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/library-collection/e-books-and-downloads"},"ui":{"ui_component_label":"Books on Your Device","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Books on Your Device - eBooks">Books on Your Device</a></li><li class='desktop mobile'><a href="https://spl.overdrive.com" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://spl.overdrive.com"},"ui":{"ui_component_label":"OverDrive","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="OverDrive - eBooks">OverDrive</a></li><li class='desktop mobile'><a href="https://spl.overdrive.com/search/title?showOnlyAvailable=true%26mediaType=ebook%26sortBy=mostpopular-site" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://spl.overdrive.com/search/title?showOnlyAvailable=true%26mediaType=ebook%26sortBy=mostpopular-site"},"ui":{"ui_component_label":"eBooks Available Now","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="eBooks Available Now - eBooks">eBooks Available Now</a></li><li class='desktop mobile indent'><a href="https://spl.overdrive.com/search/title?showOnlyAvailable=true%26mediaType=ebook%26sortBy=mostpopular-site%26format=ebook-kindle" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://spl.overdrive.com/search/title?showOnlyAvailable=true%26mediaType=ebook%26sortBy=mostpopular-site%26format=ebook-kindle"},"ui":{"ui_component_label":"Kindle","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Kindle - eBooks">Kindle</a></li><li class='desktop mobile indent'><a href="https://spl.overdrive.com/search/title?showOnlyAvailable=true%26mediaType=ebook%26sortBy=mostpopular-site%26format=ebook-epub-adobe" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://spl.overdrive.com/search/title?showOnlyAvailable=true%26mediaType=ebook%26sortBy=mostpopular-site%26format=ebook-epub-adobe"},"ui":{"ui_component_label":"ePub","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="ePub - eBooks">ePub</a></li><li class='desktop mobile'><a href="https://spl.overdrive.com/search/title?showOnlyAvailable=true&mediaType=audiobook&sortBy=mostpopular" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://spl.overdrive.com/search/title?showOnlyAvailable=true&mediaType=audiobook&sortBy=mostpopular"},"ui":{"ui_component_label":"eAudiobooks Available Now","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="eAudiobooks Available Now - eBooks">eAudiobooks Available Now</a></li><li class='desktop mobile'><a href="https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=audience%3A%22adult%22%20formatcode%3A(AB%20OR%20EBOOK%20)&searchType=bl&suppress=true&title=Adult%20eBooks%2FAudioBooks&sort=newly_acquired" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=audience%3A%22adult%22%20formatcode%3A(AB%20OR%20EBOOK%20)&searchType=bl&suppress=true&title=Adult%20eBooks%2FAudioBooks&sort=newly_acquired"},"ui":{"ui_component_label":"eBooks for adults","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="eBooks for adults - eBooks">eBooks for adults</a></li><li class='desktop mobile indent'><a href="https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=audience%3A%22adult%22%20contentclass%3A%22FICTION%22%20formatcode%3A(AB%20OR%20EBOOK%20)&searchType=bl&suppress=true&title=Adult%20Fiction%20eBooks%2FAudioBooks&sort=newly_acquired" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=audience%3A%22adult%22%20contentclass%3A%22FICTION%22%20formatcode%3A(AB%20OR%20EBOOK%20)&searchType=bl&suppress=true&title=Adult%20Fiction%20eBooks%2FAudioBooks&sort=newly_acquired"},"ui":{"ui_component_label":"Fiction for adults","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Fiction for adults - eBooks">Fiction for adults</a></li><li class='desktop mobile indent'><a href="https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=audience%3A%22adult%22%20contentclass%3A%22NONFICTION%22%20formatcode%3A(AB%20OR%20EBOOK%20)&searchType=bl&suppress=true&title=Non-Fiction%20eBooks%2FAudioBooks&sort=newly_acquired" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=audience%3A%22adult%22%20contentclass%3A%22NONFICTION%22%20formatcode%3A(AB%20OR%20EBOOK%20)&searchType=bl&suppress=true&title=Non-Fiction%20eBooks%2FAudioBooks&sort=newly_acquired"},"ui":{"ui_component_label":"Non-Fiction for adults","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Non-Fiction for adults - eBooks">Non-Fiction for adults</a></li><li class='desktop mobile indent'><a href="https://seattle.bibliocommons.com/v2/search?origin=header-navigation&query=O%27Reilly%20serials%20solutions&searchType=author&sort=newly_acquired&title=O'Reilly Complete" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/v2/search?origin=header-navigation&query=O%27Reilly%20serials%20solutions&searchType=author&sort=newly_acquired&title=O'Reilly Complete"},"ui":{"ui_component_label":"O'Reilly Complete","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="O'Reilly Complete - eBooks">O'Reilly Complete</a></li><li class='desktop mobile'><a href="https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=audience%3A%22children%22%20formatcode%3A(AB%20OR%20EBOOK%20)&searchType=bl&suppress=true&title=Children%27s%20eBooks%2FAudioBooks&sort=newly_acquired" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=audience%3A%22children%22%20formatcode%3A(AB%20OR%20EBOOK%20)&searchType=bl&suppress=true&title=Children%27s%20eBooks%2FAudioBooks&sort=newly_acquired"},"ui":{"ui_component_label":"Kids' eBooks","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Kids' eBooks - eBooks">Kids' eBooks</a></li><li class='desktop mobile indent'><a href="https://ezproxy.spl.org/login?url=http://www.tumblebooks.com/library/auto_login.asp?U=seattlepl&P=libra" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://ezproxy.spl.org/login?url=http://www.tumblebooks.com/library/auto_login.asp?U=seattlepl&P=libra"},"ui":{"ui_component_label":"Tumblebooks","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Tumblebooks - eBooks">Tumblebooks</a></li><li class='desktop mobile indent'><a href="https://catalog.spl.org/bookflix.asp" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://catalog.spl.org/bookflix.asp"},"ui":{"ui_component_label":"BookFlix","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="BookFlix - eBooks">BookFlix</a></li><li class='desktop mobile'><a href="https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=audience%3A%22teen%22%20formatcode%3A(AB%20OR%20EBOOK%20)&searchType=bl&suppress=true&title=Teen%20eBooks%2FAudioBooks&sort=newly_acquired" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://seattle.bibliocommons.com/v2/search?origin=header-navigation&custom_edit=false&query=audience%3A%22teen%22%20formatcode%3A(AB%20OR%20EBOOK%20)&searchType=bl&suppress=true&title=Teen%20eBooks%2FAudioBooks&sort=newly_acquired"},"ui":{"ui_component_label":"Teens' eBooks","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Teens' eBooks - eBooks">Teens' eBooks</a></li><li class='desktop mobile'><a href="https://frontline.overdrive.com/?Lib=Seattle%20Public%20Library/" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://frontline.overdrive.com/?Lib=Seattle%20Public%20Library/"},"ui":{"ui_component_label":"OverDrive Help","ui_component_type":"link-text","ui_container_title":"eBooks","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="OverDrive Help - eBooks">OverDrive Help</a></li></ul></div> </div></div></li><li class='dropdown desktop mobile' data-ga-category='header_top_level_nav' data-ga-label='Downloads' data-ga-event='show'><a href="#downloads_menu" class="dropdown-toggle hide_trigger_icon" data-analytics-payload="{"method":"trackNavigate","args":[{"ui":{"ui_component_label":"Downloads","ui_component_type":"dropdown-menu","ui_container_title":"Downloads","ui_container_type":"header-navigation"}}]}" data-toggle="dropdown"><span aria-hidden="true">Downloads</span><span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="Downloads, collapsed" data-text-expanded="Downloads, expanded">Downloads, collapsed</span><span aria-hidden="true" class="icon-arrow"></span></a><div class="dropdown-menu" data-listbox="true"> <div class="yamm-content"><div class="menu-column"><ul class="list-unstyled"><li class='desktop mobile'><a href="https://www.spl.org/books-and-media/music/music-on-your-device" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/books-and-media/music/music-on-your-device"},"ui":{"ui_component_label":"Music on Your Device","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Music on Your Device - Downloads">Music on Your Device</a></li><li class='desktop mobile'><a href="https://www.spl.org/library-collection/e-books-and-downloads/music" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/library-collection/e-books-and-downloads/music"},"ui":{"ui_component_label":"Music","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Music - Downloads">Music</a></li><li class='desktop mobile indent'><a href="https://www.hoopladigital.com/" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.hoopladigital.com/"},"ui":{"ui_component_label":"Hoopla Music","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Hoopla Music - Downloads">Hoopla Music</a></li><li class='desktop mobile indent'><a href="https://playback.spl.org/" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://playback.spl.org/"},"ui":{"ui_component_label":"PlayBack","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="PlayBack - Downloads">PlayBack</a></li><li class='desktop mobile'><a href="https://www.spl.org/library-collection/e-books-and-downloads/videos" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/library-collection/e-books-and-downloads/videos"},"ui":{"ui_component_label":"Movies & TV","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Movies & TV - Downloads">Movies & TV</a></li><li class='desktop mobile indent'><a href="https://ezproxy.spl.org/login?url=http://avod.films.com/PortalPlayLists.aspx?aid=17150" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://ezproxy.spl.org/login?url=http://avod.films.com/PortalPlayLists.aspx?aid=17150"},"ui":{"ui_component_label":"Access Video","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Access Video - Downloads">Access Video</a></li><li class='desktop mobile indent'><a href="https://www.hoopladigital.com/" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.hoopladigital.com/"},"ui":{"ui_component_label":"Hoopla Movies","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Hoopla Movies - Downloads">Hoopla Movies</a></li><li class='desktop mobile indent'><a href="https://spl.kanopystreaming.com/" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://spl.kanopystreaming.com/"},"ui":{"ui_component_label":"Kanopy Videos","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Kanopy Videos - Downloads">Kanopy Videos</a></li><li class='desktop mobile'><a href="https://www.spl.org/online-resources/magazines-and-newspapers" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/online-resources/magazines-and-newspapers"},"ui":{"ui_component_label":"Magazines","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Magazines - Downloads">Magazines</a></li><li class='desktop mobile indent'><a href="https://ezproxy.spl.org/login?url=https://search.ebscohost.com/login.aspx?authtype=ip,uid&profile=eon" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://ezproxy.spl.org/login?url=https://search.ebscohost.com/login.aspx?authtype=ip,uid&profile=eon"},"ui":{"ui_component_label":"Flipster","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Flipster - Downloads">Flipster</a></li><li class='desktop mobile indent'><a href="https://www.hoopladigital.com/browse/comic/popular" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.hoopladigital.com/browse/comic/popular"},"ui":{"ui_component_label":"Hoopla Digital Comics","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Hoopla Digital Comics - Downloads">Hoopla Digital Comics</a></li><li class='desktop mobile'><a href="https://www.spl.org/books-and-media/library-podcasts" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/books-and-media/library-podcasts"},"ui":{"ui_component_label":"Library Podcasts","ui_component_type":"link-text","ui_container_title":"Downloads","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Library Podcasts - Downloads">Library Podcasts</a></li></ul></div> </div></div></li><li class='dropdown desktop mobile' data-ga-category='header_top_level_nav' data-ga-label='Research' data-ga-event='show'><a href="#research_menu" class="dropdown-toggle hide_trigger_icon" data-analytics-payload="{"method":"trackNavigate","args":[{"ui":{"ui_component_label":"Research","ui_component_type":"dropdown-menu","ui_container_title":"Research","ui_container_type":"header-navigation"}}]}" data-toggle="dropdown"><span aria-hidden="true">Research</span><span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="Research, collapsed" data-text-expanded="Research, expanded">Research, collapsed</span><span aria-hidden="true" class="icon-arrow"></span></a><div class="dropdown-menu" data-listbox="true"> <div class="yamm-content"><div class="menu-column"><ul class="list-unstyled"><li class='desktop mobile'><a href="https://www.spl.org/library-collection/articles-and-research" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/library-collection/articles-and-research"},"ui":{"ui_component_label":"Online Resources","ui_component_type":"link-text","ui_container_title":"Research","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Online Resources - Research">Online Resources</a></li><li class='desktop mobile'><a href="https://www.spl.org/library-collection/articles-and-research/magazines-and-newspapers" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/library-collection/articles-and-research/magazines-and-newspapers"},"ui":{"ui_component_label":"Magazines & Newspapers","ui_component_type":"link-text","ui_container_title":"Research","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Magazines & Newspapers - Research">Magazines & Newspapers</a></li><li class='desktop mobile'><a href="https://www.spl.org/library-collection/articles-and-research/databases-a-z" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/library-collection/articles-and-research/databases-a-z"},"ui":{"ui_component_label":"Online Resources A-Z","ui_component_type":"link-text","ui_container_title":"Research","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Online Resources A-Z - Research">Online Resources A-Z</a></li><li class='desktop mobile'><a href="https://www.spl.org/online-resources/seattle-room-digital-collections" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/online-resources/seattle-room-digital-collections"},"ui":{"ui_component_label":"Seattle Room Digital Collections","ui_component_type":"link-text","ui_container_title":"Research","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Seattle Room Digital Collections - Research">Seattle Room Digital Collections</a></li></ul></div> </div></div></li><li class='dropdown desktop mobile' data-ga-category='header_top_level_nav' data-ga-label='Locations' data-ga-event='show'><a href="#locations_menu" class="dropdown-toggle hide_trigger_icon" data-analytics-payload="{"method":"trackNavigate","args":[{"ui":{"ui_component_label":"Locations","ui_component_type":"dropdown-menu","ui_container_title":"Locations","ui_container_type":"header-navigation"}}]}" data-toggle="dropdown"><span aria-hidden="true">Locations</span><span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="Locations, collapsed" data-text-expanded="Locations, expanded">Locations, collapsed</span><span aria-hidden="true" class="icon-arrow"></span></a><div class="dropdown-menu" data-listbox="true"> <div class="yamm-content"><div class="menu-column"><ul class="list-unstyled"><li class='desktop mobile'><a href="https://www.spl.org/using-the-library/visit-the-library/hours-and-locations" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/using-the-library/visit-the-library/hours-and-locations"},"ui":{"ui_component_label":"Hours & Locations","ui_component_type":"link-text","ui_container_title":"Locations","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Hours & Locations - Locations">Hours & Locations</a></li><li class='desktop mobile'><a href="https://www.spl.org/calendar-of-events" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/calendar-of-events"},"ui":{"ui_component_label":"Event Calendar","ui_component_type":"link-text","ui_container_title":"Locations","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Event Calendar - Locations">Event Calendar</a></li><li class='hidden'><a href="http://reservepc.spl.org/" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"http://reservepc.spl.org/"},"ui":{"ui_component_label":"Reserve a Computer","ui_component_type":"link-text","ui_container_title":"Locations","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Reserve a Computer - Locations">Reserve a Computer</a></li><li class='desktop mobile'><a href="https://www.spl.org/using-the-library/visit-the-library/holidays-and-closures" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/using-the-library/visit-the-library/holidays-and-closures"},"ui":{"ui_component_label":"Holidays & Closures","ui_component_type":"link-text","ui_container_title":"Locations","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Holidays & Closures - Locations">Holidays & Closures</a></li></ul></div> </div></div></li><li class='dropdown desktop mobile' data-ga-category='header_top_level_nav' data-ga-label='Get Help' data-ga-event='show'><a href="#get_help_menu" class="dropdown-toggle hide_trigger_icon" data-analytics-payload="{"method":"trackNavigate","args":[{"ui":{"ui_component_label":"Get Help","ui_component_type":"dropdown-menu","ui_container_title":"Get Help","ui_container_type":"header-navigation"}}]}" data-toggle="dropdown"><span aria-hidden="true">Get Help</span><span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="Get Help, collapsed" data-text-expanded="Get Help, expanded">Get Help, collapsed</span><span aria-hidden="true" class="icon-arrow"></span></a><div class="dropdown-menu" data-listbox="true"> <div class="yamm-content"><div class="menu-column"><ul class="list-unstyled"><li class='desktop mobile'><a href="https://www.spl.org/using-the-library/get-help/ask-a-librarian" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/using-the-library/get-help/ask-a-librarian"},"ui":{"ui_component_label":"Ask Us","ui_component_type":"link-text","ui_container_title":"Get Help","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Ask Us - Get Help">Ask Us</a></li><li class='desktop mobile'><a href="https://www.spl.org/programs-and-services/learning/student-success/homework-help" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/programs-and-services/learning/student-success/homework-help"},"ui":{"ui_component_label":"Homework Help","ui_component_type":"link-text","ui_container_title":"Get Help","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Homework Help - Get Help">Homework Help</a></li><li class='desktop mobile'><a href="https://www.spl.org/library-collection/interlibrary-loans" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/library-collection/interlibrary-loans"},"ui":{"ui_component_label":"Interlibrary Loan","ui_component_type":"link-text","ui_container_title":"Get Help","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Interlibrary Loan - Get Help">Interlibrary Loan</a></li><li class='hidden'><a href="https://www.spl.org/using-the-library/get-started/library-card-application" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/using-the-library/get-started/library-card-application"},"ui":{"ui_component_label":"Library Card Application","ui_component_type":"link-text","ui_container_title":"Get Help","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Library Card Application - Get Help">Library Card Application</a></li><li class='desktop mobile'><a href="https://www.spl.org/using-the-library/get-started/check-out-and-return" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/using-the-library/get-started/check-out-and-return"},"ui":{"ui_component_label":"Get Started","ui_component_type":"link-text","ui_container_title":"Get Help","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Get Started - Get Help">Get Started</a></li><li class='desktop mobile'><a href="https://www.spl.org/using-the-library/manage-your-account/payments" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://www.spl.org/using-the-library/manage-your-account/payments"},"ui":{"ui_component_label":"Payments","ui_component_type":"link-text","ui_container_title":"Get Help","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Payments - Get Help">Payments</a></li><li class='desktop mobile'><a href="https://catalog.spl.org/testemail/" data-analytics-payload="{"method":"trackNavigate","args":[{"metadata":{"metadata_category_type":"navigation","metadata_value":"https://catalog.spl.org/testemail/"},"ui":{"ui_component_label":"Send a Test Email Notice","ui_component_type":"link-text","ui_container_title":"Get Help","ui_container_type":"header-navigation-menu"}}]}" data-ga-category="header_sub_level_nav" data-ga-label="Send a Test Email Notice - Get Help">Send a Test Email Notice</a></li></ul></div> </div></div></li> </ul> </nav> </div> </div> <!-- /.cp_header_nav --> <script id="t_biblionav_header_nav_xs" type="x-handlebars-template"> <div class="navbar yamm navbar-default cp_header_nav"> <nav class="col-xs-12"> {{{nav_html}}} </nav> </div> </script> </div> </div><!-- /.cp_header --> </div> </header> <div class="container container_for_page"> <main id="page"> <div class="legacy_page_row"> <div id="top_banner"> </div> <div id="main" class="clearfix row"> <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12" id=""> <div class="row"> <div class="col-xs-12"> <div class="row cp_explore_navigation"> <div class="col-sm-3 heading"> <div class="hidden-xs">Explore the Catalog</div> <div class="hidden-sm hidden-md hidden-lg" id="accordion"> <a href="#explore_nav_dropdown" id="explore_heading" class="context accordion" data-toggle="collapse" data-parent="#accordion" aria-expanded="true" aria-controls="explore_nav_dropdown"> Explore the Catalog<i aria-hidden="true" class=" icon-angle-down"></i> </a> <div id="explore_nav_dropdown" class="collapse out" aria-labelledby="explore_heading"> <a href="/dashboard" testid="explore_nav_recent_activity">Recent Activity</a> <a href="https://seattle.bibliocommons.com/explore/recent_arrivals" testid="explore_nav_newly_acquired">New Titles</a> <a href="https://seattle.bibliocommons.com/explore/awards" testid="explore_nav_awards">Awards</a> <a href="https://seattle.bibliocommons.com/explore/bestsellers" testid="explore_nav_bestsellers">Bestsellers</a> <a href="https://seattle.bibliocommons.com/explore/featured_lists/staff_picks" testid="explore_nav_featured_staff_picks">Staff Picks</a> <a href="https://seattle.bibliocommons.com/explore/featured_lists/languages" testid="explore_nav_featured_languages">World Languages</a> </div> </div> </div> <div class="hidden-xs col-sm-9"> <ul class="nav nav-pills pull-right"> <li role="presentation"><a href="/dashboard" testid="explore_nav_recent_activity">Recent Activity</a></li> <li role="presentation" class=""><a href="https://seattle.bibliocommons.com/explore/recent_arrivals" testid="explore_nav_newly_acquired">New Titles</a></li> <li role="presentation" class=""><a href="https://seattle.bibliocommons.com/explore/awards" testid="explore_nav_awards">Awards</a></li> <li role="presentation" class=""><a href="https://seattle.bibliocommons.com/explore/bestsellers" testid="explore_nav_bestsellers">Bestsellers</a></li> <li role="presentation" class=""><a href="https://seattle.bibliocommons.com/explore/featured_lists/staff_picks" testid="explore_nav_featured_staff_picks">Staff Picks</a></li> <li role="presentation" class="active"><a href="https://seattle.bibliocommons.com/explore/featured_lists/languages" testid="explore_nav_featured_languages">World Languages</a></li> </ul> </div> </div> <h1>World Languages</h1> </div> </div> <div class="featured_lists flex-row"> <div class="col-xs-12 col-sm-6 col-md-3"> <div class="panel panel-default cp_explore_panel"> <div class="panel-heading clearfix"> <div class="title">Español | Spanish</div> </div> <div class="panel-body"> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:%22Spanish*%22&title=Libros,+pel%C3%ADculas+y+m%C3%BAsica+/+Books,+Movies+and+Music&spl=wlesp&suppress=true">Libros, películas y música | Books, Movies and Music</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:%22Spanish*%22&title=DVDs+/+Spanish+DVDs&formats=DVD&spl=wlesp&suppress=true">DVD | Spanish DVDs</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:%22Spanish*%22&title=Nuevos+Para+Ni%C3%B1os+/+New+for+Kids&audience=juvenile&spl=wlesp&suppress=true">Nuevos Para Niños | New for Kids</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=audience:%22adult%22+AND+ca:%28468.2421*+OR+%22CD+468.2421*%22+OR+%22EAUDIO+468.2421*%22%29&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Learn%20Spanish&suppress=true&spl=wlesp&suppress=true">Learn Spanish</a></div> <div class="link"><a href="https://spl.overdrive.com/library/spanish">eBooks from OverDrive</a></div> </div> </div> </div> <div class="col-xs-12 col-sm-6 col-md-3"> <div class="panel panel-default cp_explore_panel"> <div class="panel-heading clearfix"> <div class="title">中文 | Chinese</div> </div> <div class="panel-body"> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:%22chinese*%22&title=%E5%9B%BE%E4%B9%A6%E3%80%81%E5%BD%B1%E7%89%87%E3%80%81%E4%B8%8E%E9%9F%B3%E4%B9%90+/+Books,+Movies+and+Music&spl=wlchi&suppress=true">图书、影片、与音乐 | Books, Movies and Music</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:%22chinese*%22&title=%E6%96%B0%E7%9A%84DVD+/+DVDs&formats=DVD&spl=wlchi&suppress=true">新的DVD | DVDs</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:%22chinese*%22&title=%E6%96%B0%E5%88%B0%E5%84%BF%E7%AB%A5%E4%B9%A6%E5%88%8A+/+New+for+Kids&audience=juvenile&spl=wlchi&suppress=true">新到儿童书刊 | New for Kids</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:%28495.1*+OR+%22CD+495.1*%22+OR+%22EAUDIO+495.1*%22+OR+%22J495.1*%22%29&title=Learn%20Chinese&spl=wlchi&suppress=true">Learn Chinese</a></div> <div class="link"><a href="https://spl.overdrive.com/library/chinese">eBooks from OverDrive</a></div> </div> </div> </div> <div class="col-xs-12 col-sm-6 col-md-3"> <div class="panel panel-default cp_explore_panel"> <div class="panel-heading clearfix"> <div class="title">Tiếng Việt | Vietnamese</div> </div> <div class="panel-body"> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3Avietnam*&suppress=true&custom_edit=true&title=Ti%E1%BA%BFng%20Vi%E1%BB%87t%20:%20S%C3%A1ch,%20Phim,%20v%C3%A0%20Nh%E1%BA%A1c%20/%20Vietnamese&spl=wlvie&suppress=true">Tiếng Việt : Sách, Phim, và Nhạc | Vietnamese</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:vietnam*&suppress=true&custom_edit=true&formats=DVD&title=Ti%E1%BA%BFng%20Vi%E1%BB%87t%20DVDs&spl=wlvie&suppress=true">Tiếng Việt DVDs | DVDs</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:vietnam*&suppress=true&custom_edit=true&audience=juvenile&title=S%E1%BA%A3n%20Ph%E1%BA%A9m%20M%E1%BB%9Bi%20D%C3%A0nh%20Cho%20Tr%E1%BA%BB%20Em%20/%20New%20for%20Kids&spl=wlvie&suppress=true">Sản Phẩm Mới Dành Cho Trẻ Em | New for Kids</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=audience:%22adult%22+AND+ca:%28495.922*+OR+%22CD+495.922*%22+OR+%22EAUDIO+495.922*%22%29&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Learn%20Vietnamese&suppress=true&spl=wlvie&suppress=true">Learn Vietnamese</a></div> </div> </div> </div> <div class="col-xs-12 col-sm-6 col-md-3"> <div class="panel panel-default cp_explore_panel"> <div class="panel-heading clearfix"> <div class="title">Русский | Russian</div> </div> <div class="panel-body"> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3Arussian*&suppress=true&custom_edit=true&title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%20/%20Russian%20Books,%20movies%20and%20music&spl=wlrus&suppress=true">Книги, кинофильмы и музыкальные записи | Books, movies and music</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:russian*&suppress=true&custom_edit=true&formats=DVD&title=DVD-%D0%B4%D0%B8%D1%81%D0%BA%D0%B8+/+Russian+DVDs&spl=wlrus&suppress=true">DVD-диски | DVDs</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:russian*&suppress=true&custom_edit=true&audience=juvenile&title=%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5%20%D0%B4%D0%BB%D1%8F%20%D0%B4%D0%B5%D1%82%D0%B5%D0%B9%20/%20New%20for%20Kids&spl=wlrus&suppress=true">новые для детей | New for Kids</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=audience:%22adult%22+AND+ca:%28491.7*+OR+%22CD+491.7*%22+OR+%22EAUDIO+491.7*%22%29&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Learn%20Russian&suppress=true&spl=wlrus&suppress=true">Learn Russian</a></div> <div class="link"><a href="https://spl.overdrive.com/library/russian">eBooks from OverDrive</a></div> </div> </div> </div> <div class="col-xs-12 col-sm-6 col-md-3"> <div class="panel panel-default cp_explore_panel"> <div class="panel-heading clearfix"> <div class="title">Other Languages</div> </div> <div class="panel-body"> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3AAmharic*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=%E1%8A%A0%E1%88%9B%E1%88%AD%E1%8A%9B%20/%20Amharic&spl=wlother&suppress=true">አማርኛ | Amharic</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3AArabic*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Arabic%20/%20%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9&spl=wlother">Arabic | العربية</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3Aesperan*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Esperanto&spl=wlother">Esperanto</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3AFrench*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=French&spl=wlother">la langue française | French</a></div> <div class="link"><a href="https://spl.overdrive.com/library/french">French eBooks from OverDrive</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3AGerman*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=German&spl=wlother">Deutsch | German</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3AItalian*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Italian&spl=wlother">italiano | Italian</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3AJapanese*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=%E6%97%A5%E6%9C%AC%E8%AA%9E+/+Japanese&spl=wlother">日本語 | Japanese</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3AKorean*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=%ED%95%9C%EA%B5%AD%EC%96%B4+/+Korean&spl=wlother">한국어 | Korean</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3APolish*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Polish&spl=wlother">język polski | Polish</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3ASomali*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Soomaali&spl=wlother">Afsoomaali | Somali</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/v2/search?custom_edit=false&query=isolanguage%3A%22ukr%22&searchType=bl&suppress=true&f_FORMAT=BK">украї́нська | Ukrainian</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca%3AYiddish*&suppress=true&custom_edit=true&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Yiddish&spl=wlother">ייִדיש | Yiddish</a></div> </div> </div> </div> <div class="col-xs-12 col-sm-6 col-md-3"> <div class="panel panel-default cp_explore_panel"> <div class="panel-heading clearfix"> <div class="title">Learn a Language</div> </div> <div class="panel-body"> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=audience:%22adult%22+AND+ca:%28468.2421*+OR+%22CD+468.2421*%22+OR+%22EAUDIO+468.2421*%22%29&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Learn%20Spanish&suppress=true&spl=wllearn">Learn Spanish</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=ca:%28495.1*+OR+%22CD+495.1*%22+OR+%22EAUDIO+495.1*%22+OR+%22J495.1*%22%29&title=Learn%20Chinese&spl=wllearn&suppress=true">Learn Chinese</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=audience:%22adult%22+AND+ca:%28495.922*+OR+%22CD+495.922*%22+OR+%22EAUDIO+495.922*%22%29&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Learn%20Vietnamese&suppress=true&spl=wllearn">Learn Vietnamese</a></div> <div class="link"><a href="https://seattle.bibliocommons.com/search?custom_query=audience:%22adult%22+AND+ca:%28491.7*+OR+%22CD+491.7*%22+OR+%22EAUDIO+491.7*%22%29&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&sort[field]=NEWLY_ACQUIRED&sort[type]=BIB_FIELDS&sort[direction]=descending&title=Learn%20Russian&suppress=true&spl=wllearn">Learn Russian</a></div> <div class="link"><a href="https://spl.overdrive.com/search/title?subject=28&sortBy=newlyadded">eBooks from OverDrive</a></div> <div class="link"><a href="https://www.spl.org/online-resources/online-learning">Databases and Websites</a></div> </div> </div> </div> <div class="col-xs-12 col-sm-6 col-md-3"> <div class="panel panel-default cp_explore_panel"> <div class="panel-heading clearfix"> <div class="title">Databases and Web sites</div> </div> <div class="panel-body"> <div class="link"><a href="https://ezproxy.spl.org/login?url=http://libraries.mangolanguages.com/seattle/start">Mango Languages - 20 world languages plus ESL instruction in 15 ....</a></div> <div class="link"><a href="https://ezproxy.spl.org/login?url=http://library.pressdisplay.com">PressDisplay - 1,700+ newspapers in 48 languages ....</a></div> <div class="link"><a href="https://www.signingsavvy.com/library/seattlewa">Signing Savvy | ASL Sign Language Video Dictionary</a></div> <div class="link"><a href="https://www.spl.org/programs-and-services/learning/your-next-skill">Your Next Skill</a></div> </div> </div> </div> </div></div> </div> <!-- /#main --> </div> </main> <!-- /#page --> </div> <div data-react-class="FeedbackBoxContainer" data-react-props="{}"></div> <footer id="footer" class=""> <div class="footerContent clearfix container"> <div class="footerLinks"> <div class="library-custom-links"> <a href="https://www.spl.org/about-us/policies/website-privacy" testid="footer_link_1">SPL Privacy Policy</a> <a href="https://www.spl.org/using-the-library/ask-us" testid="footer_link_2">Get Help</a> <a href="https://www.spl.org/books-and-media/interlibrary-loan" testid="footer_link_3">Interlibrary Loan</a> <a href="https://www.spl.org/about-us/the-organization/contact-us" testid="footer_link_4">Contact the Library</a> <a href="https://www.spl.org/books-and-media/suggest-a-title" testid="footer_link_5">Suggest a Title</a> </div> <div class="policy-links"> <a href="/info/privacy" testid="footer_link_privacy">Privacy Statement</a> <a href="/info/terms" testid="footer_link_terms">Terms of Use</a> <a href="/info/accessibility" testid="footer_link_accessibility_statement">Accessibility Statement</a> </div> </div> </div> </footer> <div class="container"> <div class="appserver"> <div class="powered-by"> Powered by BiblioCommons. </div> <div class="product-version"> BiblioCore: app09 Version 9.25.0 Last updated 2024/10/01 11:54 </div> </div> </div> <!-- begin POSITIONED ELEMENTS --> <div class="errorSpace messaging"> <div class="errors">[]</div> </div> <div class="messageSpace messaging"> <div class="messages">[]</div> </div> <div data-analytics='{ "Section":"Messaging" }'> <div class="messaging" data-test-id="top-message-container" id="id_44a9vk6gstp3lufbbstssmc81v"> <div class="messageContent"> <span class="message-icon"></span> <div class="top_message" id="msg_id_7r7dm6una7nu3o4tv3m6qm30iu"> <a name=""></a> </div> </div> <div class="closeButton" data-js="close_system_message" data-test-id="message-close-button"></div> </div> <script type="text/javascript" charset="utf-8"> registered_messages.push( {element: 'msg_id_7r7dm6una7nu3o4tv3m6qm30iu', key: [], type: ["message","error"]}); </script> </div> <div class="cp_bc_modal"> <div class="modal fade" id="master_modal" data-test-id="modal-container" role="dialog" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> </div> </div> </div> </div> <!-- Currently, we cannot cache these templates because the content would change depending on the value of the feature flag.--> <script type="x-handlebars-template" id="discussion_flag_tpl" charset="utf-8"> <div class="flagging overlay-white" id="flag_{{content_id}}"> <div class="flag_selection"> <h4> <span class="flag_icon"><i aria-hidden="true" class=" icon-flag-empty"></i></span> Flag this content because: <a href="https://help.bibliocommons.com/025ug/060reporting-inappropriate-content/" class="help_icon blockHijack inline" id="main_help_025ug/060reporting-inappropriate-content/_id_271s17bltfffq00n4kq1ic56te" target="_blank"><i aria-hidden="true" class=" icon-info-circled"></i></a> </h4> {{#if flag_options.violates_appropriate_use_show_option}} <div class="types" testid="violates_appropriate_use"> <a href="#" data-js="type_form_trigger" data-type="violates_appropriate_use"><i aria-hidden="true" class=" icon-right-open"></i> Violates Appropriate Use Standards</a> </div> <form accept-charset="UTF-8" action="/{{controller}}/flag/{{content_id}}" class="flag_form" id="flag_form_violates_appropriate_use" method="post" style="display:none;" testid="flag_form_violates_appropriate_use"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="IpaN4HgVwpsU8YetCpPkV/Wq5TuqOK8bUDo7emQy044=" /></div> <input data-js="flag_type" id="flag_type" name="flag_type" type="hidden" value="VIOLATES_APPROPRIATE_USE" /> <input data-js="java-content-class" id="content_class" name="content_class" type="hidden" value="{{java_content_class}}" /> <p>Please review the Appropriate Use standard and tell us which term has been violated.</p> <input checked="checked" id="violation_type_UNRELATED" name="violation_type" type="radio" value="UNRELATED" /> Unrelated <br/> <input id="violation_type_UNLAWFUL" name="violation_type" type="radio" value="UNLAWFUL" /> Unlawful <br/> <input id="violation_type_OBSCENE" name="violation_type" type="radio" value="OBSCENE" /> Obscene <br/> <input id="violation_type_MARKETING_SCHEME" name="violation_type" type="radio" value="MARKETING_SCHEME" /> Marketing Scheme <br/> <input id="violation_type_ADVERTISING" name="violation_type" type="radio" value="ADVERTISING" /> Advertising <br/> <input id="violation_type_PRIVACY_VIOLATION" name="violation_type" type="radio" value="PRIVACY_VIOLATION" /> Privacy Violation <br/> <input id="violation_type_VIRUS" name="violation_type" type="radio" value="VIRUS" /> Virus <br/> <input id="violation_type_RIGHTS_VIOLATION" name="violation_type" type="radio" value="RIGHTS_VIOLATION" /> Rights Violation <br/> <input id="violation_type_CRIMINAL_ADVICE" name="violation_type" type="radio" value="CRIMINAL_ADVICE" /> Criminal Advice <br/> <p><label for="accept" class="review_standards"><input class="required" id="accept" name="accept" type="checkbox" value="1" /> I have reviewed the <a href="/info/terms" target="_blank">Appropriate Use Standards</a></label></p> <input class="btn btn-primary" name="commit" type="submit" value="Submit" /> </form> {{/if}} {{#if flag_options.offensive_show_option}} <div class="types" testid="offensive"> <a href="#" data-js="type_form_trigger" data-type="offensive"><i aria-hidden="true" class=" icon-right-open"></i> Is offensive (To me or my community)</a> </div> <form accept-charset="UTF-8" action="/{{controller}}/flag/{{content_id}}" class="flag_form" id="flag_form_offensive" method="post" style="display:none;" testid="flag_form_offensive"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="IpaN4HgVwpsU8YetCpPkV/Wq5TuqOK8bUDo7emQy044=" /></div> <input data-js="flag_type" id="flag_type" name="flag_type" type="hidden" value="OFFENSIVE" /> <input data-js="java-content-class" id="content_class" name="content_class" type="hidden" value="{{java_content_class}}" /> <p>This content is offensive because:</p> <textarea class="required" id="reason" name="reason" placeholder="Please enter the reason"> </textarea> <input class="btn btn-primary" name="commit" type="submit" value="Submit" /> </form> {{/if}} {{#if flag_options.spoiler_show_option}} <div class="types" testid="spoiler"> <a href="#" data-js="type_form_trigger" data-type="spoiler"><i aria-hidden="true" class=" icon-right-open"></i> Contains spoilers (Gives away the ending)</a> </div> <form accept-charset="UTF-8" action="/{{controller}}/flag/{{content_id}}" class="flag_form" id="flag_form_spoiler" method="post" style="display:none;" testid="flag_form_spoiler"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="IpaN4HgVwpsU8YetCpPkV/Wq5TuqOK8bUDo7emQy044=" /></div> <input data-js="flag_type" id="flag_type" name="flag_type" type="hidden" value="SPOILER" /> <input data-js="java-content-class" id="content_class" name="content_class" type="hidden" value="{{java_content_class}}" /> <p>This content contains spoilers.</p> <p>Some people don't want to ruin the ending.</p> <input class="btn btn-primary" name="commit" type="submit" value="Submit" /> </form> {{/if}} </div> </div> </script> <!-- For the popout when user clicks "Contains Spoiler" on a tagged UGC. --> <script type="x-handlebars-template" id="ugc_flagged_content_spoiler_info" charset="utf-8"> <p><b>May contain spoilers</b><br> Spoilers give away details you may not want to know until you've read/watched this yourself.</p> </script> <!-- For the popout when user clicks "Contains Offensive Content" on a tagged UGC. --> <script type="x-handlebars-template" id="ugc_flagged_content_offensive_info" charset="utf-8"> <p><b>This content has been tagged as offensive</b><br> This content has been reported by other users as offensive. <a href="/info/terms">Learn more about reported content.</a></p> </script> <script id="dropdown_filter_template" type="x-handlebars-template" charset="UTF-8"> <div class="cp_filter_overlay"> <h2 class="filter_title" data-js='overlay-title'>{{{title}}}</h2> <div class="list-group"> {{#each options}} <a class="list-group-item {{#if active}} active {{/if}}" href="#" data-js="filter-option" data-filter-attribute="{{filterAttribute}}">{{filterLabel}}</a> {{/each}} </div> </div> </script> <script type="x-handlebars-template" id="list_more_actions_tmpl" charset="utf-8"> <div class="more_actions_overlay"> <div class="content-header"> <button type="button" class="close close_top_right" data-js="close_button"> <span aria-hidden="true">×</span> </button> <h4 class="content-title" id="modal_label"> {{{sectionTitle}}} </h4> </div> <div class="content-body"> <h3 class="inline_bib_title">{{{bibTitle}}}</h3> <div class="more_actions_info" data-js="more_actions_info_container"></div> <div class="list-group more_actions_list" data-js="append-links"> </div> <a href="#" data-js="close_button" class="nevermind_link"> No, go back </a> </div> </div> </script> <script data-js="like_button_template" type="text/x-handlebars-template" charset="utf-8"> <button class="like_button {{liking_like_status liked}}" data-liked="{{liked}}" data-js="like_button" data-count="{{like_count}}" data-content-id="{{content_id}}" data-resource="{{resource}}"> {{liking_like_heart_icon liked}}{{liking_like_state liked display_text="true"}} </button> {{#if like_count_button_enabled}} {{#if like_count}} <button class="like_count_button" data-js="like_count_button">{{format_number_with_commas like_count}} {{liking_like_noun like_count}}</button> {{/if}} {{/if}} </script> <script data-js="like_breakdown_template" type="text/x-handlebars-template" charset="utf-8"> <a href="#" class="like_breakdown_close" data-js="like_breakdown_close"><i aria-hidden="true" class=" icon-cancel"></i></a> {{#liking_ifContentHasLikes like_count}} <h4 class="like_breakdown_heading"> {{#liking_if_single_user_liked like_count}} {{liking_liked_users_count like_count}} likes this {{else}} {{liking_liked_users_count like_count}} like this {{/liking_if_single_user_liked}} </h4> <span class="like_usernames"> <i aria-hidden="true" class=" icon-heart"></i> {{#if liked}} You{{#liking_unlessContentOnlyHasOneLike like_count}},{{/liking_unlessContentOnlyHasOneLike}} {{/if}} {{#each liked_users.users}} {{#if is_active}} <a class="like_username" href="/user_profile/{{id}}">{{username}}</a>{{#unless @last}},{{/unless}} {{else}} <span class="like_username" title="Inactive User">{{username}}</span>{{#unless @last}},{{/unless}} {{/if}} {{/each}} </span> {{#if liked_users.see_more}} <div class="like_usernames_see_more_wrap"> <a href="{{url}}" data-js="like_breakdown_see_more">See more<i aria-hidden="true" class=" icon-down-dir"></i></a> <i aria-hidden="true" class="hidden icon-spinner" data-js="liked_users_spinner"></i> </div> {{/if}} {{else}} <h4 class="like_breakdown_heading">No one has liked this yet. Be the first!</h4> {{/liking_ifContentHasLikes}} </script> <script id="tmpl_save_search_form" type="text/x-handlebars"> <form accept-charset="UTF-8" action="/user/save_search" class="form-inline save_search_form" data-js="save_search_form" data-remote="true" data-type="json" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="IpaN4HgVwpsU8YetCpPkV/Wq5TuqOK8bUDo7emQy044=" /></div> <div data-js="messaging"> </div> <button type="button" class="close close_top_right" data-js="close_button"> <span aria-hidden="true">×</span> </button> <input type="hidden" name="search_string" data-js="search_string"> <input type="hidden" name="inline_messaging" value="true"> <input type="hidden" name="original_search_name" data-js="original_search_name"> <div class="search_prompt"> <div class="form-group"> <label for="search_name"> Save search as: </label> <input type="text" name="search_name" data-js="search_name" required class="form-control search_name_field" maxlength="100" value="{{current_query}}"> <div class="form_buttons"> <button type="submit" class="btn btn-primary" data-saving-text="<i class='icon-spinner animate-spin'></i> Saving..." data-js="save_button"> <i aria-hidden="true" class=" icon-ok"></i> Save it </button> <a href="#" data-js="close_button" class="btn btn-default"> Cancel </a> </div> </div> </div> <div class="duplicate_search_prompt"> <div class="form-group"> <span> You already have a search saved as "<span class="replace_query" data-js="search_name_replace"></span>". Replace it with this one? </span> <div class="form_buttons"> <button type="submit" class="btn btn-primary" data-saving-text="<i class='icon-spinner animate-spin'></i> Saving..." data-js="save_button" name="replace" value="true"> Yes, replace it </button> <a href="#" data-js="choose_new_name" class="btn btn-default"> Choose new name </a> <a href="#" data-js="close_button" class="btn btn-default"> Cancel </a> </div> </div> </div> </form></script> <script type="x-handlebars-template" id="confirmation_prompt_tpl" charset="utf-8"> <div class="content-header"> <button type="button" class="close close_top_right" data-js="close_button" data-test-id="modal-close-button"> <span aria-hidden="true">×</span> <span class="sr-only">Close Dialog</span> </button> <h4 class="content-title" id="modal_label"> {{#if title}} {{title}} {{else}} Are you sure? {{/if}} </h4> </div> <div class="content-body"> <p>Caution: This cannot be undone.</p> {{#if message}}<p> {{message}}</p>{{/if}} <label for="conf_prompt_ignore" data-js="confirmation-prompt-do-not-show-again"> <input data-js="pretty-checkbox conf_prompt_ignore" id="conf_prompt_ignore" name="conf_prompt_ignore" testid="conf_checkbox" type="checkbox" value="1" /> Don't show this message again </label> </div> <div class="content-footer"> <input class="btn btn-transactional" data-js="conf_proceed_btn" data-test-id="confirmation-proceed-button" name="commit" testid="conf_proceed_btn" type="submit" value="Yes, I'm sure" /> <a href="#" class="nevermind_link link_contextual" data-js="close_button" testid="conf_cancel_btn">No, go back</a> </div> </script> <script data-js="user_card_template" type="text/x-handlebars-template" charset="utf-8"> <div class="card" testid="user_card_hover_{{id}}" data-test-id="user-card-content-{{id}}"> <div class="row card-row"> <div class="col-xs-3"> <span class="cp_user_avatar md {{libraryMembership}}" testid="user_avatar"> <a href="/user_profile/{{id}}"> {{#if avatar}} <img src="{{avatar}}" class="img-circle"> {{else}} <div class="img-circle initial"><span>{{initial}}</span></div> {{/if}} </a> </span> </div> <div class="col-xs-9 user-card-info"> <h4 class="user-card-username"> <a href="/user_profile/{{id}}" title="{{name}}'s Profile" testid="user_profile_link" data-ga-category="user_card" data-ga-label="User Profile Link"> {{name}} </a> </h4> {{#if libraryName}} <p>{{libraryName}}</p> {{/if}} {{#if staff}}<p><span class="cp_staff_stamp">Library Staff</span></p>{{/if}} <p> <a href="/user_profile/{{id}}" title="{{name}}'s Profile" data-ga-category="user_card" data-ga-label="User Profile Link" data-test-id="user-profile-link" > View Profile </a> </p> <p> <a href="/user/login" class="btn btn-secondary btn-flat btn-sm" testid="logged_out_follow_user"><i aria-hidden="true" class=" icon-user-plus"></i>Follow</a> <a href="/user/login" class="btn btn-secondary btn-flat btn-sm" testid="logged_out_ignore_user"><i aria-hidden="true" class=" icon-block"></i>Ignore</a> </p> {{#if is_currently_logged_in_user}}<div class="status-label status-label-info">This is me!</div>{{/if}} </div> </div> </div> </script> <script charset="utf-8" data-js="tour_dots_template" type="text/x-handlebars-template"> <div class="pagination_dots"> {{#each steps}} <div class="dot {{#isTourDotFilledIn ../currentStep @index}}active{{/isTourDotFilledIn}}"></div> {{/each}} </div> </script> <div id="overlay" aria-hidden="true" role="application" data-js="overlay-container" data-test-id="overlay-container"> <div class="overlay-backdrop"></div> <div class="overlay-inner"> <div class="overlay-body" data-test-id="overlay-body"></div> <a href="#close-overlay" class="overlay-close js-close-trigger" data-test-id="overlay-close"> <i aria-hidden="true" class=" icon-cancel"></i> <span class="sr-only">Close Dialog</span> </a> </div> </div> <div class="popup-box-ie-position"> <div class="popout-box"> <div id="popout-box-content" aria-live="polite" aria-atomic="true" aria-relevant="additions"></div> <div class="popout-box-border"></div> <div class="popout-box-arrow"></div> </div> </div> <div class="spinner " data-test-id="" id="globalSpinner"> <img alt="" data-test-id="spinner-image" src="//cor-cdn-static.bibliocommons.com/assets/ajax-loader-2ad22ee6988a62b7f1661cb696219501.gif" title="" /> </div> <a class="btn btn-secondary cp_sticky_tab btn-float back_to_top" data-bottom="30" data-right="0" data-js="sticky_tab back_to_top"> <i aria-hidden="true" class=" icon-up"></i> To Top </a> <!-- end POSITIONED ELEMENTS --> </div> <!-- /#ct_controller --> <!-- begin JS BLOCK --> <script src="//cor-cdn-static.bibliocommons.com/assets/vendor-c51265b3f46952539b0d2eb34dbdeee1.js" type="text/javascript"></script> <script type="text/javascript" src="/v2/sdk.js"></script> <script src="//cor-cdn-static.bibliocommons.com/assets/core-9dcdf893958c70a566159f0e9c75e4b3.js" type="text/javascript"></script> <script src="//cor-cdn-static.bibliocommons.com/assets/controllers/featured_lists-4aa8c932ed2c9830d3a85c516ed44886.js" type="text/javascript"></script> <script> const sdk = window.BiblioCommonsSDK || null; if (sdk && sdk.onAnalyticsReady) { sdk.onAnalyticsReady(function(analytics) { let list = null; analytics.trackPageView({ list }); window.addEventListener('beforeprint', function() { analytics.trackPagePrint(); }); }); } else { console.error('BiblioCommonsSDK with onAnalyticsReady handler not found'); } </script> <!-- end JS BLOCK --> </body> </html>