{"id":102,"date":"2026-01-20T13:07:09","date_gmt":"2026-01-20T18:07:09","guid":{"rendered":"http:\/\/animatusstudio.com\/test\/?page_id=102"},"modified":"2026-03-01T14:22:42","modified_gmt":"2026-03-01T19:22:42","slug":"welcome","status":"publish","type":"page","link":"https:\/\/animatusstudio.com\/subway\/","title":{"rendered":"The End of the Line: Rochester&#8217;s Subway 2.0"},"content":{"rendered":"<p><a href=\"http:\/\/animatusstudio.com\/subway\/wp-content\/uploads\/2026\/01\/endoftheline2026.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-399\" src=\"http:\/\/animatusstudio.com\/subway\/wp-content\/uploads\/2026\/01\/endoftheline2026.jpg\" alt=\"\" width=\"622\" height=\"927\" srcset=\"https:\/\/animatusstudio.com\/subway\/wp-content\/uploads\/2026\/01\/endoftheline2026.jpg 622w, https:\/\/animatusstudio.com\/subway\/wp-content\/uploads\/2026\/01\/endoftheline2026-201x300.jpg 201w\" sizes=\"auto, (max-width: 622px) 100vw, 622px\" \/><\/a><\/p>\n<p>\u201cThe End of the Line \u2013 Rochester\u2019s Subway 2.0\u201d premieres at The Little Theatre on February 7, 2026. Doors open at 6:00 pm, screening at 7:00 pm.<\/p>\n<p><strong>UPDATE: The initial February 7 screening sold out, so other screenings have been added. <a href=\"https:\/\/thelittle.org\/end-of-the-line-rochesters-subway-2026\/\">Visit The Little&#8217;s website for tickets and the latest info.<\/a><\/strong><\/p>\n<blockquote><p><strong>Saturday, February 7 at 7:00pm SOLD OUT<br \/>\nSunday, February 15 at 12:00pm\u00a0 SOLD OUT<br \/>\nSaturday, February 28 at 4:00pm\u00a0 SOLD OUT<br \/>\nSunday, March 1 at 3:00pm\u00a0 SOLD OUT<br \/>\nFriday, March 6 at 6:00pm<br \/>\nSaturday, March 7 at 12:00pm<br \/>\nSaturday, March 7 at 3:00pm<br \/>\nSunday, March 8 at 12:00pm<\/strong><\/p><\/blockquote>\n<p>The award-winning documentary, originally produced in 1994, tells the little-known story of the rail line that operated in a former section of the Erie Canal from 1927 until its abandonment in 1956. Produced by filmmakers Fredrick Armstrong and James P. Harte, \u201cThe End of the Line\u201d recounts the tale of an American city\u2019s bumpy ride through the Twentieth Century, from the perspective of a little engine that could, but didn\u2019t. A fan-favorite for many years, this film has aired on WXXI and the History Channel.<\/p>\n<p>But something new has been in the works over the last 5 years\u2026 a complete digital restoration in HD from the ground up.<\/p>\n<p>The original team from Animatus Studio has reunited to bring this story into the 21st Century with Michael Champlin of DeBergerac Productions. The entire program has been remastered with enhanced audio, restored footage, and newly recreated graphics.<\/p>\n<p>In this updated version, the filmmakers return to the abandoned subway tunnel, as well as visiting the Rochester and Genesee Valley Railroad Museum. The resulting film covers what has changed since 1994 and reflects on why the subway still holds so much interest today.<\/p>\n<p>The result is a fresh, high-quality version that highlights Rochester\u2019s unique place in American transit history. \u201cThe End of the Line \u2013 Rochester\u2019s Subway 2.0\u201d offers both longtime fans and new viewers a vivid look at how one city\u2019s ambitions reflected those of many across the country.<\/p>\n<p>The Little Theatre is located at 240 East Ave, Rochester, NY 14604. <strong><a href=\"https:\/\/thelittle.org\/end-of-the-line-rochesters-subway-2026\/\">Tickets are $10 and available for pre-order on the Little\u2019s website<\/a>.<\/strong><\/p>\n<p><iframe loading=\"lazy\" title=\"The End of the Line - Rochester&#039;s Subway 2 0 Trailer\" width=\"660\" height=\"371\" src=\"https:\/\/www.youtube.com\/embed\/-GF41TgjCRk?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>Want to know about future screenings or where you can stream The End of the Line? Sign up for our email list below&#8230;<\/p>\n<div id=\"mc_embed_shell\">\n<style type=\"text\/css\">\n        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: px;}<br \/>        \/* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.<br \/>           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. *\/<br \/><\/style>\n<div id=\"mc_embed_signup\">\n<form id=\"mc-embedded-subscribe-form\" class=\"validate\" action=\"https:\/\/animatusstudio.us5.list-manage.com\/subscribe\/post?u=93c1c7d2c28b5d2010efd5f3a&amp;id=b4c857dabe&amp;f_id=002dbeedf0\" method=\"post\" name=\"mc-embedded-subscribe-form\" target=\"_blank\">\n<div id=\"mc_embed_signup_scroll\">\n<h2>Register your interest in\u00a0THE END OF THE LINE<\/h2>\n<div class=\"indicates-required\"><span class=\"asterisk\">*<\/span> indicates required<\/div>\n<div class=\"mc-field-group\"><label for=\"mce-EMAIL\">Email Address <span class=\"asterisk\">*<\/span><\/label><input id=\"mce-EMAIL\" class=\"required email\" name=\"EMAIL\" required=\"\" type=\"email\" value=\"\" \/><\/div>\n<div class=\"mc-field-group\"><label for=\"mce-FNAME\">First Name <\/label><input id=\"mce-FNAME\" class=\" text\" name=\"FNAME\" type=\"text\" value=\"\" \/><\/div>\n<div class=\"mc-field-group\"><label for=\"mce-LNAME\">Last Name <\/label><input id=\"mce-LNAME\" class=\" text\" name=\"LNAME\" type=\"text\" value=\"\" \/><\/div>\n<div class=\"mc-field-group\"><label for=\"mce-MMERGE3\">Town where you live <\/label><input id=\"mce-MMERGE3\" class=\" text\" name=\"MMERGE3\" type=\"text\" value=\"\" \/><\/div>\n<div hidden=\"\"><input name=\"tags\" type=\"hidden\" value=\"4522716\" \/><\/div>\n<div id=\"mce-responses\" class=\"clear foot\">\n<div id=\"mce-error-response\" class=\"response\" style=\"display: none;\"><\/div>\n<div id=\"mce-success-response\" class=\"response\" style=\"display: none;\"><\/div>\n<\/div>\n<div style=\"position: absolute; left: -5000px;\" aria-hidden=\"true\">\/* real people should not fill this in and expect good things &#8211; do not remove this or risk form bot signups *\/<br \/>\n<input tabindex=\"-1\" name=\"b_93c1c7d2c28b5d2010efd5f3a_b4c857dabe\" type=\"text\" value=\"\" \/><\/div>\n<div class=\"optionalParent\">\n<div class=\"clear foot\">\n<p><input id=\"mc-embedded-subscribe\" class=\"button\" name=\"subscribe\" type=\"submit\" value=\"Subscribe\" \/><\/p>\n<p style=\"margin: 0px auto;\"><a title=\"Mailchimp - email marketing made easy and fun\" href=\"http:\/\/eepurl.com\/jjPTGo\"><span style=\"display: inline-block; background-color: transparent; border-radius: 4px;\"><img decoding=\"async\" class=\"refferal_badge\" style=\"width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;\" src=\"https:\/\/digitalasset.intuit.com\/render\/content\/dam\/intuit\/mc-fe\/en_us\/images\/intuit-mc-rewards-text-dark.svg\" alt=\"Intuit Mailchimp\" \/><\/span><\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/form>\n<\/div>\n<p><script type=\"text\/javascript\" src=\"\/\/s3.amazonaws.com\/downloads.mailchimp.com\/js\/mc-validate.js\"><\/script><script type=\"text\/javascript\">(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[3]='MMERGE3';ftypes[3]='text';}(jQuery));var $mcj = jQuery.noConflict(true);\n    \/\/ SMS Phone Multi-Country Functionality\n    if(!window.MC) {\n      window.MC = {};\n    }\n    window.MC.smsPhoneData = {\n      defaultCountryCode: 'US',\n      programs: [],\n      smsProgramDataCountryNames: []\n    };<\/p>\n<p>    function getCountryUnicodeFlag(countryCode) {\n       return countryCode.toUpperCase().replace(\/.\/g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397))\n    };<\/p>\n<p>    \/\/ HTML sanitization function to prevent XSS\n    function sanitizeHtml(str) {\n      if (typeof str !== 'string') return '';\n      return str\n        .replace(\/&\/g, '&amp;')\n        .replace(\/<\/g, '&lt;') .replace(\/>\/g, '&gt;')\n        .replace(\/\"\/g, '&quot;')\n        .replace(\/'\/g, '&#x27;')\n        .replace(\/\\\/\/g, '&#x2F;');\n    }<\/p>\n<p>    \/\/ URL sanitization function to prevent javascript: and data: URLs\n    function sanitizeUrl(url) {\n      if (typeof url !== 'string') return '';\n      const trimmedUrl = url.trim().toLowerCase();\n      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {\n        return '#';\n      }\n      return url;\n    }<\/p>\n<p>    const getBrowserLanguage = () => {\n      if (!window?.navigator?.language?.split('-')[1]) {\n        return window?.navigator?.language?.toUpperCase();\n      }\n      return window?.navigator?.language?.split('-')[1];\n    };<\/p>\n<p>    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {\n      if (!smsProgramData || smsProgramData.length === 0) {\n        return null;\n      }<\/p>\n<p>      const browserLanguage = getBrowserLanguage();<\/p>\n<p>      if (browserLanguage) {\n        const foundProgram = smsProgramData.find(\n          (program) => program?.countryCode === browserLanguage,\n        );\n        if (foundProgram) {\n          return foundProgram;\n        }\n      }<\/p>\n<p>      if (defaultCountryCode) {\n        const foundProgram = smsProgramData.find(\n          (program) => program?.countryCode === defaultCountryCode,\n        );\n        if (foundProgram) {\n          return foundProgram;\n        }\n      }<\/p>\n<p>      return smsProgramData[0];\n    }<\/p>\n<p>    function updateSmsLegalText(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }<\/p>\n<p>      const programs = window?.MC?.smsPhoneData?.programs;\n      if (!programs || !Array.isArray(programs)) {\n        return;\n      }<\/p>\n<p>      const program = programs.find(program => program?.countryCode === countryCode);\n      if (!program || !program.requiredTemplate) {\n        return;\n      }<\/p>\n<p>      const legalTextElement = document.querySelector('#legal-text-' + fieldName);\n      if (!legalTextElement) {\n        return;\n      }<\/p>\n<p>      \/\/ Remove HTML tags and clean up the text\n      const divRegex = new RegExp('<\/?[div][^>]*>', 'gi');\n      const fullAnchorRegex = new RegExp('<a.*?<\/a>', 'g');\n      const anchorRegex = new RegExp('<a href=\"(.*?)\" target=\"(.*?)\">(.*?)<\/a>');<\/p>\n<p>      const template = program.requiredTemplate.replace(divRegex, '');<\/p>\n<p>      legalTextElement.textContent = '';\n      const parts = template.split(\/(<a href=\".*?\" target=\".*?\">.*?<\\\/a>)\/g);\n      parts.forEach(function(part) {\n        if (!part) {\n          return;\n        }\n        const anchorMatch = part.match(\/<a href=\"(.*?)\" target=\"(.*?)\">(.*?)<\\\/a>\/);\n        if (anchorMatch) {\n          const linkElement = document.createElement('a');\n          linkElement.href = sanitizeUrl(anchorMatch[1]);\n          linkElement.target = sanitizeHtml(anchorMatch[2]);\n          linkElement.textContent = sanitizeHtml(anchorMatch[3]);\n          legalTextElement.appendChild(linkElement);\n        } else {\n          legalTextElement.appendChild(document.createTextNode(part));\n        }\n      });<\/p>\n<p>    }<\/p>\n<p>    function generateDropdownOptions(smsProgramData) {\n      if (!smsProgramData || smsProgramData.length === 0) {\n        return '';\n      }<\/p>\n<p>      return smsProgramData.map(program => {\n        const flag = getCountryUnicodeFlag(program.countryCode);\n        const countryName = getCountryName(program.countryCode);\n        const callingCode = program.countryCallingCode || '';\n        \/\/ Sanitize all values to prevent XSS\n        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');\n        const sanitizedCountryName = sanitizeHtml(countryName || '');\n        const sanitizedCallingCode = sanitizeHtml(callingCode || '');\n        return '<option value=\"' + sanitizedCountryCode + '\">' + sanitizedCountryName + ' ' + sanitizedCallingCode + '<\/option>';\n      }).join('');\n    }<\/p>\n<p>    function getCountryName(countryCode) {\n      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames && Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {\n        for (let i = 0; i < window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {\n          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {\n            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;\n          }\n        }\n      }\n      return countryCode;\n    }\n\n    function getDefaultPlaceholder(countryCode) {\n      if (!countryCode || typeof countryCode !== 'string') {\n        return '+1 000 000 0000'; \/\/ Default US placeholder\n      }\n      \n            var mockPlaceholders = [\n        {\n          countryCode: 'US',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the US country code +1 before the phone number',\n        },\n        {\n          countryCode: 'GB',\n          placeholder: '+44 0000 000000',\n          helpText: 'Include the GB country code +44 before the phone number',\n        },\n        {\n          countryCode: 'CA',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the CA country code +1 before the phone number',\n        },\n        {\n          countryCode: 'AU',\n          placeholder: '+61 000 000 000',\n          helpText: 'Include the AU country code +61 before the phone number',\n        },\n        {\n          countryCode: 'DE',\n          placeholder: '+49 000 0000000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die DE-L\u00e4ndervorwahl +49 ein',\n        },\n        {\n          countryCode: 'FR',\n          placeholder: '+33 0 00 00 00 00',\n          helpText: 'Incluez le code pays FR +33 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'ES',\n          placeholder: '+34 000 000 000',\n          helpText: 'Incluya el c\u00f3digo de pa\u00eds ES +34 antes del n\u00famero de tel\u00e9fono',\n        },\n        {\n          countryCode: 'NL',\n          placeholder: '+31 0 00000000',\n          helpText: 'Voeg de NL-landcode +31 toe v\u00f3\u00f3r het telefoonnummer',\n        },\n        {\n          countryCode: 'BE',\n          placeholder: '+32 000 00 00 00',\n          helpText: 'Incluez le code pays BE +32 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'CH',\n          placeholder: '+41 00 000 00 00',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die CH-L\u00e4ndervorwahl +41 ein',\n        },\n        {\n          countryCode: 'AT',\n          placeholder: '+43 000 000 0000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die AT-L\u00e4ndervorwahl +43 ein',\n        },\n        {\n          countryCode: 'IE',\n          placeholder: '+353 00 000 0000',\n          helpText: 'Include the IE country code +353 before the phone number',\n        },\n        {\n          countryCode: 'IT',\n          placeholder: '+39 000 000 0000',\n          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',\n        },\n      ];\n\n      const selectedPlaceholder = mockPlaceholders.find(function(item) {\n        return item &#038;&#038; item.countryCode === countryCode;\n      });\n      \n      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;\n    }\n\n    function updatePlaceholder(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }\n      \n      const phoneInput = document.querySelector('#mce-' + fieldName);\n      if (!phoneInput) {\n        return;\n      }\n      \n      const placeholder = getDefaultPlaceholder(countryCode);\n      if (placeholder) {\n        phoneInput.placeholder = placeholder;\n      }\n    }\n\n    function updateCountryCodeInstruction(countryCode, fieldName) {\n      updatePlaceholder(countryCode, fieldName);\n      \n    }\n\n    function getDefaultHelpText(countryCode) {\n      var mockPlaceholders = [\n        {\n          countryCode: 'US',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the US country code +1 before the phone number',\n        },\n        {\n          countryCode: 'GB',\n          placeholder: '+44 0000 000000',\n          helpText: 'Include the GB country code +44 before the phone number',\n        },\n        {\n          countryCode: 'CA',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the CA country code +1 before the phone number',\n        },\n        {\n          countryCode: 'AU',\n          placeholder: '+61 000 000 000',\n          helpText: 'Include the AU country code +61 before the phone number',\n        },\n        {\n          countryCode: 'DE',\n          placeholder: '+49 000 0000000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die DE-L\u00e4ndervorwahl +49 ein',\n        },\n        {\n          countryCode: 'FR',\n          placeholder: '+33 0 00 00 00 00',\n          helpText: 'Incluez le code pays FR +33 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'ES',\n          placeholder: '+34 000 000 000',\n          helpText: 'Incluya el c\u00f3digo de pa\u00eds ES +34 antes del n\u00famero de tel\u00e9fono',\n        },\n        {\n          countryCode: 'NL',\n          placeholder: '+31 0 00000000',\n          helpText: 'Voeg de NL-landcode +31 toe v\u00f3\u00f3r het telefoonnummer',\n        },\n        {\n          countryCode: 'BE',\n          placeholder: '+32 000 00 00 00',\n          helpText: 'Incluez le code pays BE +32 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'CH',\n          placeholder: '+41 00 000 00 00',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die CH-L\u00e4ndervorwahl +41 ein',\n        },\n        {\n          countryCode: 'AT',\n          placeholder: '+43 000 000 0000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die AT-L\u00e4ndervorwahl +43 ein',\n        },\n        {\n          countryCode: 'IE',\n          placeholder: '+353 00 000 0000',\n          helpText: 'Include the IE country code +353 before the phone number',\n        },\n        {\n          countryCode: 'IT',\n          placeholder: '+39 000 000 0000',\n          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',\n        },\n      ];\n      \n      if (!countryCode || typeof countryCode !== 'string') {\n        return mockPlaceholders[0].helpText;\n      }\n      \n      const selectedHelpText = mockPlaceholders.find(function(item) {\n          return item &#038;&#038; item.countryCode === countryCode;\n        });\n        \n        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;\n    }\n\n    function setDefaultHelpText(countryCode) {\n      const helpTextSpan = document.querySelector('#help-text');\n      if (!helpTextSpan) {\n        return;\n      }\n\n        \n    }\n\n    function updateHelpTextCountryCode(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }\n      \n      setDefaultHelpText(countryCode);\n    }\n\n    function initializeSmsPhoneDropdown(fieldName) {\n      if (!fieldName || typeof fieldName !== 'string') {\n        return;\n      }\n      \n      const dropdown = document.querySelector('#country-select-' + fieldName);\n      const displayFlag = document.querySelector('#flag-display-' + fieldName);\n      \n      if (!dropdown || !displayFlag) {\n        return;\n      }\n\n      const smsPhoneData = window.MC?.smsPhoneData;\n      if (smsPhoneData &#038;&#038; smsPhoneData.programs &#038;&#038; Array.isArray(smsPhoneData.programs)) {\n        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);\n      }\n\n      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);\n      if (defaultProgram &#038;&#038; defaultProgram.countryCode) {\n        dropdown.value = defaultProgram.countryCode;\n        \n        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);\n        if (flagSpan) {\n          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);\n          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');\n        }\n        \n        updateSmsLegalText(defaultProgram.countryCode, fieldName);\n        updatePlaceholder(defaultProgram.countryCode, fieldName);\n        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);\n      }\n\n     \n      var smsNotRequiredRemoveCountryCodeEnabled = true;\n      var smsField = Object.values({\"EMAIL\":{\"name\":\"EMAIL\",\"label\":\"Email Address\",\"helper_text\":\"\",\"type\":\"email\",\"required\":true,\"audience_field_name\":\"Email Address\",\"merge_id\":0,\"help_text_enabled\":false,\"enabled\":true,\"order\":0,\"field_type\":\"merge\"},\"FNAME\":{\"name\":\"FNAME\",\"label\":\"First Name\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"First Name\",\"merge_id\":1,\"help_text_enabled\":false,\"enabled\":true,\"order\":1,\"field_type\":\"merge\"},\"LNAME\":{\"name\":\"LNAME\",\"label\":\"Last Name\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Last Name\",\"merge_id\":2,\"help_text_enabled\":false,\"enabled\":true,\"order\":2,\"field_type\":\"merge\"},\"MMERGE3\":{\"name\":\"MMERGE3\",\"label\":\"Town where you live\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Town where you live\",\"merge_id\":3,\"help_text_enabled\":false,\"enabled\":true,\"order\":3,\"field_type\":\"merge\"}}).find(function(f) { return f.name === fieldName &#038;&#038; f.type === 'smsphone'; });\n      var isRequired = smsField ? smsField.required : false;\n      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;\n      \n      var phoneInput = document.querySelector('#mce-' + fieldName);\n      if (phoneInput &#038;&#038; defaultProgram.countryCallingCode &#038;&#038; shouldAppendCountryCode) {\n        phoneInput.value = defaultProgram.countryCallingCode;\n      }\n      \n\n\n      displayFlag?.addEventListener('click', function(e) {\n        dropdown.focus();\n      });\n\n\n      dropdown?.addEventListener('change', function() {\n        const selectedCountry = this.value;\n        \n        if (!selectedCountry || typeof selectedCountry !== 'string') {\n          return;\n        }\n        \n        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);\n        if (flagSpan) {\n          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);\n          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');\n        }\n\n         \n        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {\n          return program &#038;&#038; program.countryCode === selectedCountry;\n        });\n\n        var smsNotRequiredRemoveCountryCodeEnabled = true;\n        var smsField = Object.values({\"EMAIL\":{\"name\":\"EMAIL\",\"label\":\"Email Address\",\"helper_text\":\"\",\"type\":\"email\",\"required\":true,\"audience_field_name\":\"Email Address\",\"merge_id\":0,\"help_text_enabled\":false,\"enabled\":true,\"order\":0,\"field_type\":\"merge\"},\"FNAME\":{\"name\":\"FNAME\",\"label\":\"First Name\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"First Name\",\"merge_id\":1,\"help_text_enabled\":false,\"enabled\":true,\"order\":1,\"field_type\":\"merge\"},\"LNAME\":{\"name\":\"LNAME\",\"label\":\"Last Name\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Last Name\",\"merge_id\":2,\"help_text_enabled\":false,\"enabled\":true,\"order\":2,\"field_type\":\"merge\"},\"MMERGE3\":{\"name\":\"MMERGE3\",\"label\":\"Town where you live\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Town where you live\",\"merge_id\":3,\"help_text_enabled\":false,\"enabled\":true,\"order\":3,\"field_type\":\"merge\"}}).find(function(f) { return f.name === fieldName &#038;&#038; f.type === 'smsphone'; });\n        var isRequired = smsField ? smsField.required : false;\n        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;\n        \n        var phoneInput = document.querySelector('#mce-' + fieldName);\n        if (phoneInput &#038;&#038; selectedProgram.countryCallingCode &#038;&#038; shouldAppendCountryCode) {\n          phoneInput.value = selectedProgram.countryCallingCode;\n        }\n        \n        \n        updateSmsLegalText(selectedCountry, fieldName);\n        updatePlaceholder(selectedCountry, fieldName);\n        updateCountryCodeInstruction(selectedCountry, fieldName);\n      });\n    }\n\n    document.addEventListener('DOMContentLoaded', function() {\n      const smsPhoneFields = document.querySelectorAll('[id^=\"country-select-\"]');\n      \n      smsPhoneFields.forEach(function(dropdown) {\n        const fieldName = dropdown?.id.replace('country-select-', '');\n        initializeSmsPhoneDropdown(fieldName);\n      });\n    });\n    <\/script><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u201cThe End of the Line \u2013 Rochester\u2019s Subway 2.0\u201d premieres at The Little Theatre on February 7, 2026. Doors open at 6:00 pm, screening at 7:00 pm. UPDATE: The initial February 7 screening sold out, so other screenings have been added. Visit The Little&#8217;s website for tickets and the latest info. Saturday, February 7 at &hellip; <a href=\"https:\/\/animatusstudio.com\/subway\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">The End of the Line: Rochester&#8217;s Subway 2.0<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-102","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/animatusstudio.com\/subway\/wp-json\/wp\/v2\/pages\/102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/animatusstudio.com\/subway\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/animatusstudio.com\/subway\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/animatusstudio.com\/subway\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/animatusstudio.com\/subway\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":37,"href":"https:\/\/animatusstudio.com\/subway\/wp-json\/wp\/v2\/pages\/102\/revisions"}],"predecessor-version":[{"id":417,"href":"https:\/\/animatusstudio.com\/subway\/wp-json\/wp\/v2\/pages\/102\/revisions\/417"}],"wp:attachment":[{"href":"https:\/\/animatusstudio.com\/subway\/wp-json\/wp\/v2\/media?parent=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}