PageSourceSearch

https://www.discoverphl.com/blog-post/philadelphia-2026/

html discoverphl.com collected 2026-10-01 11:46:24 UTC 313,571 bytes, 3,154 lines download raw bytes

1<!DOCTYPE html>
2<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
3<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
5<!--[if IE 9]>			<html class="no-js ie9"> <![endif]-->
6<!--[if gt IE 8]><!-->
7<html class="no-js" lang="en-US"> <!--<![endif]-->
8
9<head>
10   
11    <meta charset="UTF-8" />
12    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
12<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1386154133",accountID:"4372814",trustKey:"66686",xpid:"UAUAU15SDBABV1BaAgMDVVAB",licenseKey:"NRJS-ffbc3c15bbce2bcb1ca",applicationID:"1318524340",browserID:"1386154133"};;/*! For license information please see nr-loader-spa-1.322.0.min.js.LICENSE.txt */
13(()=>{var e={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)),s=0===Object.keys(r).length?e:r;for(let a in s)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]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={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};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="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),o=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)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(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;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
13e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(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].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(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],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,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,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[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()[a[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 s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},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,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(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 s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},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{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(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),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},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})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
13const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
13if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
13o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,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},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,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)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}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:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=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){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
13(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
13;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{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"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.322.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,s,a)=>
13{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-SARROoir04gFygxlr/+mTI+PyMeFL+epi1vnUA2G5mTQ7s3G44ItQBJKbOaIMdIE5OBzuaKhb4k5JYta0NICxg==",249:"sha512-6DKQo5WP7YlpzX6l9UfYkgGLGK2oITdoaYTcZtgl5Foa22NY63lED/0z1hBBLeD7qZCz/YdlY19/r8drlol1tg==",212:"sha512-CYxuvSpDx6ErqWJwAvpoHn54eY37YdMcFao/axOumlw3BsSL7yioOeB2LWViY/Njs818sQG10dSglUhYCMfLPw==",238:"sha512-mvbMILWa3ohYst+u6TLfNrmtY2swUIB3rbJFN/uzt3W62KhgvUVwB81UEZ1R0/it5bfrQ5EVz864pi/CAmucNQ=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},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,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},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},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
13ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.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){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.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,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
13{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
13null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
13dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
13imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)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,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
13return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}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,s){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 s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.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}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
13!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(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 h(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,t],t)}function w(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,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(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 R(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
13if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
13);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
13class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,_.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,St.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=xt(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
13h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,S.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
13
14
15    <meta name="viewport" content="width=device-width, initial-scale=1">
16
17    <title>Philadelphia 2026: Celebrate America&#039;s 250th Anniversary</title>
18
19    <link rel="profile" href="http://gmpg.org/xfn/11" />
20    <link rel="pingback" href="https://www.discoverphl.com/xmlrpc.php" />
21    
21<script>
22        // Vanilla JS Defer helper method for elimnating render blocking js including jQuery
23        function defer(method) {
24            if (window.jQuery) {
25                method();
26            } else {
27                setTimeout(function() {
28                    defer(method)
29                }, 50);
30            }
31        }
32    </script>
32
33                    <!-- Start cookieyes banner -->
34        <!-- 
34<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/37c27265c6259f66a0b40337/script.js"></script>
34 End cookieyes banner -->
35        <!-- recaptcha enterprise -->
36    
36<script src=https://www.google.com/recaptcha/enterprise.js?render=6LfAHssZAAAAAClKikT6P7e4Ip0vpLNbQsAbGrf4></script>
36
37    <!-- recaptcha enterprise -->
38    <!-- consent helper script, gtm/cookieyes -->
39    
39<script>
40        window.dataLayer = window.dataLayer || [];
41
42        function gtag() {
43            dataLayer.push(arguments);
44        }
45        gtag("consent", "default", {
46            ad_storage: "denied",
47            ad_user_data: "denied",
48            ad_personalization: "denied",
49            analytics_storage: "denied",
50            functionality_storage: "denied",
51            personalization_storage: "denied",
52            security_storage: "granted",
53            wait_for_update: 2000,
54        });
55        gtag("set", "ads_data_redaction", true);
56        gtag("set", "url_passthrough", true);
57    </script>
57
58    <!-- consent helper script, gtm/cookieyes -->
59
60 
61    <!-- Google Tag Manager -->
62    
62<script>
vendor: 554 bytes, lines 62-76
62
63        (function(w, d, s, l, i) {
64            w[l] = w[l] || [];
65            w[l].push({
66                'gtm.start': new Date().getTime(),
67                event: 'gtm.js'
68            });
69            var f = d.getElementsByTagName(s)[0],
70                j = d.createElement(s),
71                dl = l != 'dataLayer' ? '&l=' + l : '';
72            j.async = true;
73            j.src =
74                'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
75            f.parentNode.insertBefore(j, f);
76        })(window, document, 'script', 'dataLayer', '
76GTM-WV69RX
vendor: 8 bytes, lines 76-77
76');
77    
77</script>
77
78    <!-- End Google Tag Manager -->
79
80
81    <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
82<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/37c27265c6259f66a0b40337/script.js"></script>
82
83	<!-- This site is optimized with the Yoast SEO plugin v28.5 - https://yoast.com/product/yoast-seo-wordpress/ -->
84	<meta name="description" content="As America’s birthplace, Philadelphia 2026 will be the centerpiece of the United States’ 250th birthday in Philadelphia 2026." />
85	<link rel="canonical" href="https://www.discoverphl.com/blog-post/philadelphia-2026/" />
86	<meta property="og:locale" content="en_US" />
87	<meta property="og:type" content="article" />
88	<meta property="og:title" content="Philadelphia 2026: Celebrate America&#039;s 250th Anniversary" />
89	<meta property="og:description" content="As America’s birthplace, Philadelphia 2026 will be the centerpiece of the United States’ 250th birthday in Philadelphia 2026." />
90	<meta property="og:url" content="https://www.discoverphl.com/blog-post/philadelphia-2026/" />
91	<meta property="og:site_name" content="DiscoverPHL" />
92	<meta property="article:modified_time" content="2026-06-25T13:39:46+00:00" />
93	<meta property="og:image" content="https://www.discoverphl.com/wp-content/uploads/2024/06/July4th22-G.Widman_1sm-1920x1080-1.jpg" />
94	<meta property="og:image:width" content="1920" />
95	<meta property="og:image:height" content="1080" />
96	<meta property="og:image:type" content="image/jpeg" />
97	<meta name="twitter:card" content="summary_large_image" />
98	<meta name="twitter:label1" content="Est. reading time" />
99	<meta name="twitter:data1" content="14 minutes" />
100	
100<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/","url":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/","name":"Philadelphia 2026: Celebrate America's 250th Anniversary","isPartOf":{"@id":"https:\/\/www.discoverphl.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/#primaryimage"},"image":{"@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/#primaryimage"},"thumbnailUrl":"https:\/\/www.discoverphl.com\/wp-content\/uploads\/2024\/06\/July4th22-G.Widman_1sm-1920x1080-1.jpg","datePublished":"2026-06-18T12:12:53+00:00","dateModified":"2026-06-25T13:39:46+00:00","description":"As America’s birthplace, Philadelphia 2026 will be the centerpiece of the United States’ 250th birthday in Philadelphia 2026.","breadcrumb":{"@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/#primaryimage","url":"https:\/\/www.discoverphl.com\/wp-content\/uploads\/2024\/06\/July4th22-G.Widman_1sm-1920x1080-1.jpg","contentUrl":"https:\/\/www.discoverphl.com\/wp-content\/uploads\/2024\/06\/July4th22-G.Widman_1sm-1920x1080-1.jpg","width":1920,"height":1080,"caption":"Photo by G. Widman for Visit Philadelphia®"},{"@type":"BreadcrumbList","@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.discoverphl.com\/"},{"@type":"ListItem","position":2,"name":"Blog Posts","item":"https:\/\/www.discoverphl.com\/blog-post\/"},{"@type":"ListItem","position":3,"name":"Philadelphia Celebrates America’s 250th Birthday With So Much to Do"}]},{"@type":"WebSite","@id":"https:\/\/www.discoverphl.com\/#website","url":"https:\/\/www.discoverphl.com\/","name":"DiscoverPHL","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.discoverphl.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script>
100
101	<!-- / Yoast SEO plugin. -->
102
103
104<link rel='dns-prefetch' href='//api.mapbox.com' />
105<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
106<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.discoverphl.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.discoverphl.com%2Fblog-post%2Fphiladelphia-2026%2F" />
107<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.discoverphl.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.discoverphl.com%2Fblog-post%2Fphiladelphia-2026%2F&#038;format=xml" />
108<style id="wp-img-auto-sizes-contain-inline-css">
109img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
110/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
111</style>
112<link rel='stylesheet' id='map_style-css' href='https://api.mapbox.com/mapbox-gl-js/v2.9.1/mapbox-gl.css?ver=1' media='all' />
113<link rel='stylesheet' id='map_geo_style-css' href='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v4.7.0/mapbox-gl-geocoder.css?ver=1' media='all' />
114<link rel='stylesheet' id='main_style-css' href='https://www.discoverphl.com/wp-content/themes/pcvb/assets/dist/main.min.css?ver=1790721207' media='all' />
115<link rel='stylesheet' id='custom_style-css' href='https://www.discoverphl.com/wp-content/themes/pcvb/assets/stylesheets/custom_style.css?ver=1790721207' media='all' />
116<link rel='stylesheet' id='pcvb-newsletter-pop-out-style-css' href='https://www.discoverphl.com/wp-content/themes/pcvb/newsletter-pop-out/pcvb-newsletter-popout.css?ver=1790721207' media='all' />
117<style id="wp-emoji-styles-inline-css">
118
119	img.wp-smiley, img.emoji {
120		display: inline !important;
121		border: none !important;
122		box-shadow: none !important;
123		height: 1em !important;
124		width: 1em !important;
125		margin: 0 0.07em !important;
126		vertical-align: -0.1em !important;
127		background: none !important;
128		padding: 0 !important;
129	}
130/*# sourceURL=wp-emoji-styles-inline-css */
131</style>
132
133
134<link rel='stylesheet' id='simple-favorites-css' href='https://www.discoverphl.com/wp-content/plugins/favorites/assets/css/favorites.css?ver=2.3.4' media='all' />
135<link rel='stylesheet' id='tablepress-default-css' href='https://www.discoverphl.com/wp-content/plugins/tablepress/css/build/default.css?ver=3.3.4' media='all' />
136<link rel='stylesheet' id='p10eb-styles-css' href='https://www.discoverphl.com/wp-content/plugins/p10-essential-blocks//assets/assets/dist/main.min.css?ver=7.1.2' media='all' />
137<script id="jquery-core-js" src="https://www.discoverphl.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 137
137
138<script id="favorites-js-extra">
139var favorites_data = {"ajaxurl":"https://www.discoverphl.com/wp-admin/admin-ajax.php","nonce":"e2e92fa41e","favorite":"\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"35\" viewBox=\"0 0 40 35\" fill=\"none\"\u003E\u003Cpath d=\"M38.0526 10.4856C38.0526 5.17704 33.8007 1 28.5611 1C24.3303 1 20.7512 3.86864 19.5253 7.74468C18.2983 3.86915 14.7193 1.09983 10.4884 1.09983C5.24786 1.09983 1 5.15779 1 10.4684C1 13.148 2.08488 15.0412 3.83087 17.0671L19.534 33L35.2192 17.0671C36.9667 15.0412 38.0526 13.1632 38.0526 10.4856Z\" stroke=\"#fff\" stroke-width=\"2\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003Cspan\u003EAdd to Favorites\u003C/span\u003E","favorited":"\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"35\" viewBox=\"0 0 40 35\" fill=\"none\"\u003E\u003Cpath d=\"M38.0526 10.4856C38.0526 5.17704 33.8007 1 28.5611 1C24.3303 1 20.7512 3.86864 19.5253 7.74468C18.2983 3.86915 14.7193 1.09983 10.4884 1.09983C5.24786 1.09983 1 5.15779 1 10.4684C1 13.148 2.08488 15.0412 3.83087 17.0671L19.534 33L35.2192 17.0671C36.9667 15.0412 38.0526 13.1632 38.0526 10.4856Z\" stroke=\"#fff\" stroke-width=\"2\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003Cspan\u003EAdded to Favorites\u003C/span\u003E","includecount":"","indicate_loading":"","loading_text":"Loading","loading_image":"","loading_image_active":"","loading_image_preload":"","cache_enabled":"1","button_options":{"button_type":"custom","custom_colors":false,"box_shadow":false,"include_count":false,"default":{"background_default":false,"border_default":false,"text_default":false,"icon_default":false,"count_default":false},"active":{"background_active":false,"border_active":false,"text_active":false,"icon_active":false,"count_active":false}},"authentication_modal_content":"\u003Cp\u003EPlease login to add favorites.\u003C/p\u003E\n\u003Cp\u003E\u003Ca href=\"#\" data-favorites-modal-close\u003EDismiss this notice\u003C/a\u003E\u003C/p\u003E\n","authentication_redirect":"","dev_mode":"","logged_in":"","user_id":"0","authentication_redirect_url":"https://www.discoverphl.com/wp-login.php"};
140//# sourceURL=favorites-js-extra
141</script>
vendor: 1 bytes, line 141
141
142<script id="favorites-js" src="https://www.discoverphl.com/wp-content/plugins/favorites/assets/js/favorites.min.js?ver=2.3.4"></script>
vendor: 1 bytes, line 142
142
143<script id="p10eb-essential-js" src="https://www.discoverphl.com/wp-content/plugins/p10-essential-blocks//assets/js/global.js?ver=7.1.2"></script>
143
144<link rel="https://api.w.org/" href="https://www.discoverphl.com/wp-json/" /><link rel='shortlink' href='https://www.discoverphl.com/?p=53978' />
145<link rel="shortcut icon" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/favicon.ico?10/1/26-09:39:08" type="image/x-icon" />
146<link rel="apple-touch-icon-precomposed" sizes="152x152" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-152x152.png?10/1/26-09:39:08" />
147<link rel="apple-touch-icon-precomposed" sizes="144x144" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-144x144.png?10/1/26-09:39:08" />
148<link rel="apple-touch-icon-precomposed" sizes="120x120" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-120x120.png?10/1/26-09:39:08" />
149<link rel="apple-touch-icon-precomposed" sizes="114x114" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-114x114.png?10/1/26-09:39:08" />
150<link rel="apple-touch-icon-precomposed" sizes="76x76" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-76x76.png?10/1/26-09:39:08" />
151<link rel="apple-touch-icon-precomposed" sizes="72x72" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-72x72.png?10/1/26-09:39:08" />
152<link rel="apple-touch-icon-precomposed" sizes="57x57" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-57x57.png?10/1/26-09:39:08" />
153<link rel="apple-touch-icon-precomposed" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon.png?10/1/26-09:39:08" />
154<style id="wp-custom-css">
155/* Link styles in p text */
156
157p > a {
158	font-size: 20px !important;
159}
160
161
162
163/* Tablepress Font Styles */
164
165table.tablepress > tbody > tr td, table.tablepress > tbody > tr td a {
166	font-size: 18px !important;
167	line-height: 22px !important;
168}
169
170/* Other */
171@media (min-width:768px){
172	section.cb20-gravity-form{
173		min-height:880px;
174	}
175}
176#p10-tutorial-container {
177    display: grid;
178    grid-template-columns: repeat(2, 40%)!important;
179    grid-gap: 15px;
180    margin-top: 75px;
181}
182p.wysiwyg-summary > * {
183	color: var(--Blue,#3256a6) !important;
184}
185
186/* Newsletter in Footer */
187
188@media (min-width: 767px) {
189    footer .eb02-footer .footer-right-col a:first-of-type {
190        margin-left: 50px;
191    }
192}
193@media (max-width: 767px) {
194	body.page-id-12603 	.sub-footer ul {
195    display: block !important;
196    margin: 0;
197}
198	body.page-id-12603 .cb24-favorites-modal {
199		display:none;
200	}
201}
202@media (max-width: 768px){
203	
204
205#michelinBannerWrapper #michelinBannerContent .text-after-anim *{
206	opacity:1;
207}
208}
209
210/* michelin */
211
212@media only screen and (max-width: 768px) {
213	#michelinPopup {
214	bottom: 0% !important;
215	}
216#michelinPopup.active {
217	width: fit-content;
218  height: -webkit-fill-available !important;
219	}
220}
221#michelinPopup p.restaurant-michelin-stars {
222    display: flex;
223    flex-direction: row;
224    justify-content: left;
225    align-items: center;
226}
227#michelinPopup div..michelin-popup-content span#michelinPopupBanner {
228    font-size: 18px;
229}
230
231@media (max-width: 1024px) {
232	.restaurants-pagination {
233	align-items: baseline;
234}
235	.restaurants-pagination .pagination-dots-wrapper {
236		margin-top: 25px;
237	}
238}
239
240/*
241 *	2025-10-27 fix for simpleview forms showing labels next to submit and reset buttons 
242 */
243form[name^="frm_"] label.label_hidden {
244	position: absolute;
245	width: 1px;
246	height: 1px;
247	padding: 0;
248	overflow: hidden;
249	clip: rect(0, 0, 0, 0);
250	white-space: nowrap;
251	border: 0;
252}
253
254/* World Cup Blocks */
255@media screen and (max-width: 991.5px) {
256  .world-cup-background .slick-slide > div, .world-cup-background .slick-slide .game-slide {
257    max-width: 560px;
258  }
259	.game-schedule-slider .slick-slide {
260    max-width: 560px;
261  }
262}
263
264/* 12 June */
265body.page-id-58291 section.p10-block.p10-bg-block.cb13-repeater-block .cb13-banner-image {
266    width: 100%;
267}
268body.page-id-58291 .cb05-related-content-columns svg {
269    width: 100% !important;
270}
271body.page-id-58291 section.p10-block.p10-bg-block.cb13-repeater-block .parallax-bg {
272    width: 100%;
273}
274</style>
275
276    <!-- Hotjar Tracking Code for Discover PHL -->
277    
277<script>
vendor: 202 bytes, lines 277-283
277
278        (function(h, o, t, j, a, r) {
279            h.hj = h.hj || function() {
280                (h.hj.q = h.hj.q || []).push(arguments)
281            };
282            h._hjSettings = {
283                hjid: 
2835011875
vendor: 343 bytes, lines 283-292
283,
284                hjsv: 6
285            };
286            a = o.getElementsByTagName('head')[0];
287            r = o.createElement('script');
288            r.async = 1;
289            r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv;
290            a.appendChild(r);
291        })(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv=');
292    
292</script>
292
293    <!-- Hotjar Tracking Code for Discover PHL -->
294    
295    
295<script>
296        (function(w, d, n){
297        if (w.MAI) return;
298        w.MAI = w.MAI || {emit: function() {(w.MAI.q = w.MAI.q || []).push(arguments);}};
299        var e = d.createElement(n);
300        e.async = 1;
301        e.src = 'https://cdn.mgln.ai/pixel.min.js';
302        var s = d.getElementsByTagName(n)[0];
303        s.parentNode.insertBefore(e, s);
304        })(window, document, 'script');
305        MAI.emit('conf', '01a0cf79e8507e9e94dbefbc7e89364f');
306        MAI.emit('view');
307    </script>
307
308</head>
309<body class="wp-singular blog-post-template-default single single-blog-post postid-53978 wp-theme-pcvb interior-page" style="opacity:0.01; transition:all 0.5s">
310
311
312    
313
314    
315                
316    
317
318    <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 318-319
318
319    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
319GTM-WV69RX
vendor: 87 bytes, lines 319-320
319" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
320    
320<!-- End Google Tag Manager (noscript) -->
321    <div id="site">
322        <div id="skip-container" role="region" aria-label="skip to content">
323            <a id="skip-to-content" href="#main" tabindex="0" aria-label="skip to content">
324                Skip to content
325            </a>
326        </div>
327
328        <div class="searchform-wrap" id="global-search" aria-modal="true" aria-label="sitewide search" role="dialog">
329            <div class="large-frame">
330
331                <form role="search" method="get" id="searchform" class="searchform" aria-label="sitewide search popup" action="https://www.discoverphl.com/">
332                    <div>
333                        <!-- <label class="screen-reader-text" for="s">Search for:</label> -->
334
335                        <input type="text" value="" name="s" placeholder="Search" id="s">
336                        <div class="search-submit-wrap">
337                            <svg width="56" height="55" viewBox="0 0 56 55" fill="none" xmlns="http://www.w3.org/2000/svg">
338<circle cx="21.1763" cy="20.8867" r="12.7694" transform="rotate(-45 21.1763 20.8867)" stroke="#3256A6" stroke-width="4.00012"/>
339<line x1="44.5623" y1="44.4943" x2="34.1187" y2="34.0507" stroke="#3256A6" stroke-width="4.00012"/>
340</svg>
341                            <input type="submit" id="searchsubmit" aria-label="search submit" value="">
342                        </div>
343                    </div>
344                    <div class="form-close">
345                        <a href="javascript:void(0)" class="form-close-btn nav-close-icon">Close <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
346                                <path d="M18.6807 1L0.999999 19M19 19L1.31932 0.999999" stroke="#3256A6" stroke-width="2" />
347                            </svg></a>
348                    </div>
349                </form>
350                <a href="javascript:void(0)" class="form-close-btn nav-close-icon mobile-close-form" aria-label="close search input">
351                    <svg width="19" height="20" viewBox="0 0 19 20" fill="none" xmlns="http://www.w3.org/2000/svg">
352                        <path d="M1.125 1.9455L18.2778 19.2048M18.2778 1.63379L1.125 18.8931" stroke="white" stroke-width="2" />
353                    </svg>
354                </a>
355            </div>
356        </div>
357        <header>
358            <div class="large-frame flex-wrapper space-between center">
359                <div class="nav-wrap">
360
361
362                    <div class="main-nav">
363                                                <ul class="convention_">
364                            <li id="menu-item-12065" class="underline menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-12065"><a href="https://www.discoverphl.com/meet/">Meet</a>
365<ul class="sub-menu">
366	<li id="menu-item-6346" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6346"><a href="https://www.discoverphl.com/meet/">Start Planning</a></li>
367	<li id="menu-item-12933" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12933"><a href="https://www.discoverphl.com/meet/venues/">Search Venues &#038; Services</a></li>
368	<li id="menu-item-6522" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6522"><a href="https://www.discoverphl.com/meet/toolkit/">Planner Tools &#038; Resources</a></li>
369	<li id="menu-item-12873" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12873"><a href="https://www.discoverphl.com/meet/recent-developments/">What&#8217;s New</a></li>
370	<li id="menu-item-6523" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6523"><a href="https://www.discoverphl.com/meet/pa-convention-center/">PA Convention Center</a></li>
371	<li id="menu-item-6525" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6525"><a href="https://www.discoverphl.com/meet/expertise/">Business Divisions: <br />Diversity, Life Sciences, Sports</a></li>
372</ul>
373</li>
374<li id="menu-item-15485" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-15485"><a href="https://www.discoverphl.com/travel-trade/">Travel Trade</a>
375<ul class="sub-menu">
376	<li id="menu-item-15486" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15486"><a href="https://www.discoverphl.com/travel-trade/">International Travel</a></li>
377	<li id="menu-item-59322" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-59322"><a href="https://www.discoverphl.com/travel-trade/visitor-guides/">International Visitors Guides</a></li>
378	<li id="menu-item-6527" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6527"><a href="https://www.discoverphl.com/travel-trade/group-tours/">Group Tours</a></li>
379	<li id="menu-item-55274" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-55274"><a href="https://www.discoverphl.com/travel-trade/contact/">Global Tourism Team</a></li>
380</ul>
381</li>
382<li id="menu-item-11968" class="underline menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-11968"><a href="https://www.discoverphl.com/partner-overview/">Partners</a>
383<ul class="sub-menu">
384	<li id="menu-item-6528" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6528"><a href="https://www.discoverphl.com/partner-overview/">Join</a></li>
385	<li id="menu-item-6530" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6530"><a target="_blank" href="https://philadelphiapa.extranet.simpleviewcrm.com/login/">Partner Login</a></li>
386	<li id="menu-item-58121" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-58121"><a href="https://www.discoverphl.com/partner-overview/events/">Partner Events</a></li>
387	<li id="menu-item-6529" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6529"><a href="https://www.discoverphl.com/business-directory/">Partner Directory</a></li>
388</ul>
389</li>
390<li id="menu-item-6531" class="underline menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-6531"><a href="https://www.discoverphl.com/discover/">Discover</a>
391<ul class="sub-menu">
392	<li id="menu-item-12357" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12357"><a href="https://www.discoverphl.com/discover/">Plan Your Visit</a></li>
393	<li id="menu-item-55005" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-55005"><a href="https://www.discoverphl.com/discover/highlighted-experiences/">Curated Experiences</a></li>
394	<li id="menu-item-12361" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12361"><a href="https://www.discoverphl.com/discover/explore-philadelphia-neighborhoods/">Neighborhoods</a></li>
395	<li id="menu-item-12359" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12359"><a href="https://www.discoverphl.com/discover/where-to-eat/">Where to Eat</a></li>
396	<li id="menu-item-12358" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12358"><a href="https://www.discoverphl.com/discover/where-to-stay/">Where to Stay</a></li>
397	<li id="menu-item-12360" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12360"><a href="https://www.discoverphl.com/discover/things-to-do/">Things to Do</a></li>
398</ul>
399</li>
400<li id="menu-item-6532" class="underline menu-item menu-item-type-post_type menu-item-object-page menu-item-6532"><a href="https://www.discoverphl.com/contact-our-team/">Contact</a></li>
401                        </ul>
402
403
404                        <div id="p10-lang-selector-mobile" class="lang-selector p10-lang-selector menu-item mobile">
405                            <a href="javascript:void(0);" class="p10-lang-select-btn" aria-label="language selector">
406                                <svg class="world" width="31" height="31" viewBox="0 0 31 31" fill="none" xmlns="http://www.w3.org/2000/svg">
407<path fill-rule="evenodd" clip-rule="evenodd" d="M14.1248 2.88513C13.2994 2.95076 12.0089 3.24713 10.9607 3.6117C10.285 3.84672 8.81795 4.5806 8.19568 4.99492C5.38699 6.86494 3.35595 9.74705 2.52697 13.039C2.2633 14.0863 2.2009 14.6605 2.20242 16.0273C2.20347 16.9904 2.23131 17.5173 2.30578 17.9827C2.75027 20.7621 3.9931 23.2129 6.00439 25.2763C8.69613 28.0378 12.3081 29.4404 16.117 29.2033C17.9564 29.0888 19.39 28.7261 20.972 27.975C24.5742 26.2648 27.2833 22.9451 28.2392 19.0703C28.4849 18.0742 28.5834 17.2765 28.5933 16.2031C28.6032 15.1342 28.5293 14.3751 28.3252 13.4492C27.6664 10.4603 26.0389 7.79207 23.6724 5.82109C22.7099 5.01941 21.109 4.10646 19.8377 3.6342C18.9522 3.30519 17.5604 2.97414 16.7725 2.905C16.1303 2.84869 14.7169 2.83808 14.1248 2.88513ZM11.9275 5.71779C10.9303 6.05318 10.2426 6.38283 9.43728 6.9114C8.86008 7.29027 7.97244 7.97974 7.97244 8.04924C7.97244 8.07109 8.03174 8.12617 8.10428 8.1717C8.3666 8.33629 9.84539 9.05465 9.92191 9.05465C9.96504 9.05465 10.1746 8.70525 10.3877 8.27828C10.9933 7.06433 11.6016 6.32043 12.4799 5.71955C12.7193 5.55584 12.8907 5.42195 12.8608 5.42201C12.8309 5.42213 12.4109 5.55525 11.9275 5.71779ZM17.8169 5.47363C17.8172 5.49349 17.9779 5.59779 18.1738 5.70543C18.9609 6.13785 19.8187 7.15732 20.431 8.38808C20.7495 9.02834 20.7739 9.06033 20.9173 9.02459C21.1325 8.97092 22.4462 8.3149 22.6209 8.17381L22.7674 8.0555L22.4451 7.76049C21.6816 7.06158 20.1507 6.17418 19.0281 5.77967C18.4591 5.57974 17.8158 5.4172 17.8169 5.47363ZM14.1995 6.68388C13.4623 6.88246 12.7494 7.3876
4075 12.2269 8.08181C11.9252 8.48277 11.4881 9.29799 11.4881 9.45982C11.4881 9.49357 11.5606 9.53705 11.6492 9.55644C11.7378 9.5759 11.8477 9.60361 11.8934 9.61808C12.057 9.67 13.5524 9.87531 14.0388 9.91269L14.5349 9.95084V8.2723C14.5349 7.34904 14.5283 6.59547 14.5203 6.59758C14.5123 6.59968 14.3679 6.63853 14.1995 6.68388ZM16.2342 8.28543V9.93355H16.5162C17.0593 9.93355 19.0469 9.63185 19.2237 9.52263C19.2917 9.48056 19.2563 9.37099 19.0308 8.92597C18.3807 7.64236 17.4577 6.83295 16.4627 6.67386L16.2342 6.6373V8.28543ZM23.582 9.58603C23.0941 9.9373 22.4673 10.2678 21.8112 10.5197C21.4191 10.6703 21.3311 10.7259 21.3613 10.8036C21.5464 11.28 21.8681 13.0312 22.0027 14.295C22.0539 14.7764 22.1107 15.1851 22.1288 15.2032C22.1469 15.2214 23.0941 15.2438 24.2337 15.253L26.3056 15.2699L26.275 15.048C26.0085 13.1161 25.4091 11.4467 24.4491 9.96285C24.3032 9.73726 24.1393 9.4948 24.0848 9.42402L23.9859 9.29529L23.582 9.58603ZM6.49066 9.71383C5.43574 11.2158 4.69394 13.1639 4.53797 14.8417L4.49859 15.2656H6.58441H8.67023L8.69994 15.0752C8.71623 14.9704 8.759 14.5683 8.79492 14.1816C8.87437 13.3259 9.10101 11.9717 9.28822 11.2337L9.42656 10.6883L9.30011 10.6415C9.23051 10.6158 9.01541 10.5365 8.82205 10.4652C8.31879 10.2796 7.59246 9.9025 7.16396 9.60437C6.96099 9.46316 6.78433 9.34761 6.77144 9.34761C6.75849 9.34761 6.63217 9.51244 6.49066 9.71383ZM10.8789 11.2666C10.6868 11.8986 10.3963 13.6803 10.3391 14.5771L10.2989 15.207H12.4462H14.5935V13.4528V11.6986L14.3445 11.6676C14.2075 11.6507 13.9109 11.6208 13.6853 11.6012C13.2042 11.5595 12.4646 11.4459 11.6054 11.2816C10.8643 11.1399 10.917 11.1411 10.8789 11.2666ZM19.2224 11.2567C18.6988 11.3711 17.3668 11.5608 16.7469 11.609L16.2342 11.6489V13.428V15.207H18.3505H20.4669L20.426 14.6357C20.4035 14.3215 20.3747 13.9853 20.3621 13.8886C20.3495 13.792 20.3105 13.4887 20.2754 13.2148C20.2112 12.7132 20.0386 11.818 19.9242 11.3933C19.8534 11.1304 19.825 11.1248 19.2224 11.2567ZM4.77551 16.9011L4.47896 16.9355L4.55502 17.4628C4.73256 18.6938 5.13228 19.9677 5.68799 21.0735C5.9775 21.6495 6.61863 22.6601 6.74355 22.7372C6.77812 22.7587 6.99627 22.6467 7.2283 22.4884C7.84834 22.0656 8.14207 21.9076 8.77793 21.6545C9.44455 21.3892 9.41349 21.4783 9.18709 20.4804C9.02912 19.7845 8.77336 18.099 8.70469 17.3017L8.66554 16.8476L6.86883 16.8572C5.88058 16.8624 4.93863 16.8822 4.77551 16.9011ZM10.3168 17.0966C10.3185 17.7798 10.5484 19.4102 10.792 20.4673C10.8939 20.9096 10.935 21.0055 11.0122 20.9819C11.4385 20.852 14.0333 20.4804 14.5138 20.4804C14.5254 20.4804 14.5349 19.663 14.5349 18.664V16.8476H12.4256H10.3162L10.3168 17.0966ZM16.2342 18.6847V20.5217L16.8549 20.5619C17.5268 20.6054 18.453 20.7248 19.1849 20.8625C19.8811 20.9935 19.8358 21.0163 19.9734 20.4658C20.2023 19.5504 20.4529 17.7162 20.4529 16.9563C20.4529 16.8525 20.3588 16.8476 18.3435 16.8476H16.2342V18.6847ZM22.0689 16.9795C22.054 17.052 22.0278 17.3618 22.0106 17.6679C21.9567 18.6246 21.5786 20.7423 21.3598 21.3125C21.3362 21.3739 21.4807 21.4558 21.901 21.6193C22.5274 21.8631 23.1253 22.1867 23.5998 22.5391C23.7676 22.6636 23.9317 22.7656 23.9645 22.7656C24.0536 22.7656 24.6916 21.7912 25.0494 21.1089C25.632 19.9977 26.1352 18.3801 26.2275 17.3215L26.2688 16.8476H24.1823H22.0958L22.0689 16.9795ZM13.6267 22.2191C12.4784 22.3619 11.4881 22.5689 11.4881 22.666C11.4881 22.6944 11.6105 22.9547 11.7601 23.2444C12.0991 23.9008 12.5506 24.4834 12.9725 24.8089C13.3127 25.0714 13.9438 25.3649 14.3152 25.4334L14.5349 25.474V23.8268V22.1796L14.1687 22.1884C13.9673 22.1932 13.7234 22.2071 13.6267 22.2191ZM16.2342 23.8249V25.4702L16.4246 25.4296C17.2333 25.2573 18.0102 24.7426 18.4888 24.0621C18.8172 23.5952 19.3159 22.6637 19.2648 22.6127C19.1681 22.516 16.9863 22.1796 16.4556 22.1796H16.2342V23.8249ZM20.5309 23.5175C19.9568 24.7696 19.0235 25.9158 18.1678 26.4197C17.7918 26.641 17.7899 26.6434 18.0213 26.6039C18.3792 26.5427 19.3065 26.2345 19.8774 25.9868C20.7046 25.6281 21.6572 25.0129 22.5002 24.2934L22.804 24.034L22.4634 23.8369C22.1046 23.6294 21.1628 23.1614 20.9118 23.0659C20.769 23.0116 20.7556 23.0275 20.5309 23.5175ZM9.54896 23.1962C9.23086 23.327 8.28053 23.8227 8.0768 23.9639C7.98592 24.027 8.00021 24.0566 8.22328 24.2673C8.84508 24.8546 9.74215 25.4505 10.6811 25.8999C11.5721 26.3263 13.4027 26.878 12.6892 26.5051C12.292 26.2974 11.7366 25.8207 11.3805 25.3818C10.8725 24.7555 10.6901 24.4671 10.3353 23.7293C10.1579 23.3604 9.9822 23.0592 9.94476 23.06C9.90732 23.0607 9.72926 23.122 9.54896 23.1962Z" fill="white"/>
408</svg>
409                                Language <svg class="arrow" width="8" height="5" viewB
409ox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg">
410                                    <path d="M4 4.66699L0.535899 0.666991L7.4641 0.666992L4 4.66699Z" fill="#FAF6F2" />
411                                </svg>
412                            </a>
413                            <div class="gtranslate_wrapper" id="gt-wrapper-60558940"></div>                            <a href="javascript:void(0);" class="p10-lang-select-mob-close">
414                                <svg width="19" height="20" viewBox="0 0 19 20" fill="none" xmlns="http://www.w3.org/2000/svg">
415                                    <path d="M1.125 1.9455L18.2778 19.2048M18.2778 1.63379L1.125 18.8931" stroke="white" stroke-width="2" />
416                                </svg>
417                            </a>
418
419                        </div>
420                    </div>
421
422
423                    <div id="logo">
424                                                    <a aria-label="Home" href="https://www.discoverphl.com" id="logo-link"><img data-mobopen="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/Plan-your-next-event-in-Philadelphia.svg" src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/pcvb-logo.svg" data-src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/pcvb-logo.svg" alt="Logo" id="logo-img" /></a>
425                        
426                        <div class="mobile-controls">
427                            <a href="javascript:void(0)" class="search-icon mob nav-search-icon" aria-label="Sitewide Search">
428                                <svg width="29" height="32" viewBox="0 0 29 32" fill="none" xmlns="http://www.w3.org/2000/svg">
429<circle cx="11.4433" cy="11.2363" r="6.38452" transform="rotate(-45 11.4433 11.2363)" stroke="white" stroke-width="2"/>
430<line x1="23.1376" y1="23.0391" x2="17.916" y2="17.8175" stroke="white" stroke-width="2"/>
431</svg>
432                            </a>
433                            <a href="javascript:void(0)" aria-label="activate mobile menu" class="mobile-toggle">
434                                <span class="bar-1"></span>
435                                <span class="bar-2"></span>
436                                <span class="bar-3"></span>
437                            </a>
438
439                        </div>
440                    </div>
441                    <div class="util-nav">
442
443                        <a href="javascript:void(0)" class="nav-search-icon search-icon" aria-label="Sitewide Search">
444                            <svg width="29" height="32" viewBox="0 0 29 32" fill="none" xmlns="http://www.w3.org/2000/svg">
445<circle cx="11.4433" cy="11.2363" r="6.38452" transform="rotate(-45 11.4433 11.2363)" stroke="white" stroke-width="2"/>
446<line x1="23.1376" y1="23.0391" x2="17.916" y2="17.8175" stroke="white" stroke-width="2"/>
447</svg>
448                        </a>
449                        <a href="https://www.discoverphl.com/submit-rfp/" target="_self" class="btn-base light-blue arrow"><span>Submit RFP</span><svg xmlns="http://www.w3.org/2000/svg" width="22" height="9" viewBox="0 0 22 9" fill="none"><path d="M22 4.5L14.5 0.169873V8.83013L22 4.5ZM0 5.25H15.25V3.75H0V5.25Z" fill="#FF4D00"/></svg></a><a href="javascript:void(0)" target="_self" class="btn-base white favorite view-my-favorites"><span>View My Favorites</span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="13" viewBox="0 0 14 13" fill="none"><path d="M6.52326 3.18121L6.99984 4.67521L7.476 3.18108C7.87729 1.92189 9.04617 1 10.4137 1C12.1236 1 13.5 2.34885 13.5 4.05711C13.5 4.88567 13.1777 5.47478 12.5627 6.18491L7.00272 11.7902L1.43634 6.18488C0.822806 5.47576 0.5 4.88086 0.5 4.05065C0.5 2.34951 1.86674 1.03744 3.58511 1.03744C4.96079 1.03744 6.12416 1.93009 6.52326 3.18121Z" stroke="white"/></svg></a>                        <div id="p10-lang-selector" class="lang-selector p10-lang-selector menu-item desktop">
450                            <a href="javascript:void(0);" class="p10-lang-select-btn" aria-label="Language Selector">
451                                <svg class="world" width="31" height="31" viewBox="0 0 31 31" fill="none" xmlns="http://www.w3.org/2000/svg">
452<path fill-rule="evenodd" clip-rule="evenodd" d="M14.1248 2.88513C13.2994 2.95076 12.0089 3.24713 10.9607 3.6117C10.285 3.84672 8.81795 4.5806 8.19568 4.99492C5.38699 6.86494 3.35595 9.74705 2.52697 13.039C2.2633 14.0863 2.2009 14.6605 2.20242 16.0273C2.20347 16.9904 2.23131 17.5173 2.30578 17.9827C2.75027 20.7621 3.9931 23.2129 6.00439 25.2763C8.69613 28.0378 12.3081 29.4404 16.117 29.2033C17.9564 29.0888 19.39 28.7261 20.972 27.975C24.5742 26.2648 27.2833 22.9451 28.2392 19.0703C28.4849 18.0742 28.5834 17.2765 28.5933 16.2031C28.6032 15.1342 28.5293 14.3751 28.3252 13.4492C27.6664 10.4603 26.0389 7.79207 23.6724 5.82109C22.7099 5.01941 21.109 4.10646 19.8377 3.6342C18.9522 3.30519 17.5604 2.97414 16.7725 2.905C16.1303 2.84869 14.7169 2.83808 14.1248 2.88513ZM11.9275 5.71779C10.9303 6.05318 10.2426 6.38283 9.43728 6.9114C8.86008 7.29027 7.97244 7.97974 7.97244 8.04924C7.97244 8.07109 8.03174 8.12617 8.10428 8.1717C8.3666 8.33629 9.84539 9.05465 9.92191 9.05465C9.96504 9.05465 10.1746 8.70525 10.3877 8.27828C10.9933 7.06433 11.6016 6.32043 12.4799 5.71955C12.7193 5.55584 12.8907 5.42195 12.8608 5.42201C12.8309 5.42213 12.4109 5.55525 11.9275 5.71779ZM17.8169 5.47363C17.8172 5.49349 17.9779 5.59779 18.1738 5.70543C18.9609 6.13785 19.8187 7.15732 20.431 8.38808C20.7495 9.02834 20.7739 9.06033 20.9173 9.02459C21.1325 8.97092 22.4462 8.3149 22.6209 8.17381L22.7674 8.0555L22.4451 7.76049C21.6816 7.06158 20.1507 6.17418 19.0281 5.77967C18.4591 5.57974 17.8158 5.4172 17.8169 5.47363ZM14.1995 6.68388C13.4623 6.88246 12.7494 7.3876
4525 12.2269 8.08181C11.9252 8.48277 11.4881 9.29799 11.4881 9.45982C11.4881 9.49357 11.5606 9.53705 11.6492 9.55644C11.7378 9.5759 11.8477 9.60361 11.8934 9.61808C12.057 9.67 13.5524 9.87531 14.0388 9.91269L14.5349 9.95084V8.2723C14.5349 7.34904 14.5283 6.59547 14.5203 6.59758C14.5123 6.59968 14.3679 6.63853 14.1995 6.68388ZM16.2342 8.28543V9.93355H16.5162C17.0593 9.93355 19.0469 9.63185 19.2237 9.52263C19.2917 9.48056 19.2563 9.37099 19.0308 8.92597C18.3807 7.64236 17.4577 6.83295 16.4627 6.67386L16.2342 6.6373V8.28543ZM23.582 9.58603C23.0941 9.9373 22.4673 10.2678 21.8112 10.5197C21.4191 10.6703 21.3311 10.7259 21.3613 10.8036C21.5464 11.28 21.8681 13.0312 22.0027 14.295C22.0539 14.7764 22.1107 15.1851 22.1288 15.2032C22.1469 15.2214 23.0941 15.2438 24.2337 15.253L26.3056 15.2699L26.275 15.048C26.0085 13.1161 25.4091 11.4467 24.4491 9.96285C24.3032 9.73726 24.1393 9.4948 24.0848 9.42402L23.9859 9.29529L23.582 9.58603ZM6.49066 9.71383C5.43574 11.2158 4.69394 13.1639 4.53797 14.8417L4.49859 15.2656H6.58441H8.67023L8.69994 15.0752C8.71623 14.9704 8.759 14.5683 8.79492 14.1816C8.87437 13.3259 9.10101 11.9717 9.28822 11.2337L9.42656 10.6883L9.30011 10.6415C9.23051 10.6158 9.01541 10.5365 8.82205 10.4652C8.31879 10.2796 7.59246 9.9025 7.16396 9.60437C6.96099 9.46316 6.78433 9.34761 6.77144 9.34761C6.75849 9.34761 6.63217 9.51244 6.49066 9.71383ZM10.8789 11.2666C10.6868 11.8986 10.3963 13.6803 10.3391 14.5771L10.2989 15.207H12.4462H14.5935V13.4528V11.6986L14.3445 11.6676C14.2075 11.6507 13.9109 11.6208 13.6853 11.6012C13.2042 11.5595 12.4646 11.4459 11.6054 11.2816C10.8643 11.1399 10.917 11.1411 10.8789 11.2666ZM19.2224 11.2567C18.6988 11.3711 17.3668 11.5608 16.7469 11.609L16.2342 11.6489V13.428V15.207H18.3505H20.4669L20.426 14.6357C20.4035 14.3215 20.3747 13.9853 20.3621 13.8886C20.3495 13.792 20.3105 13.4887 20.2754 13.2148C20.2112 12.7132 20.0386 11.818 19.9242 11.3933C19.8534 11.1304 19.825 11.1248 19.2224 11.2567ZM4.77551 16.9011L4.47896 16.9355L4.55502 17.4628C4.73256 18.6938 5.13228 19.9677 5.68799 21.0735C5.9775 21.6495 6.61863 22.6601 6.74355 22.7372C6.77812 22.7587 6.99627 22.6467 7.2283 22.4884C7.84834 22.0656 8.14207 21.9076 8.77793 21.6545C9.44455 21.3892 9.41349 21.4783 9.18709 20.4804C9.02912 19.7845 8.77336 18.099 8.70469 17.3017L8.66554 16.8476L6.86883 16.8572C5.88058 16.8624 4.93863 16.8822 4.77551 16.9011ZM10.3168 17.0966C10.3185 17.7798 10.5484 19.4102 10.792 20.4673C10.8939 20.9096 10.935 21.0055 11.0122 20.9819C11.4385 20.852 14.0333 20.4804 14.5138 20.4804C14.5254 20.4804 14.5349 19.663 14.5349 18.664V16.8476H12.4256H10.3162L10.3168 17.0966ZM16.2342 18.6847V20.5217L16.8549 20.5619C17.5268 20.6054 18.453 20.7248 19.1849 20.8625C19.8811 20.9935 19.8358 21.0163 19.9734 20.4658C20.2023 19.5504 20.4529 17.7162 20.4529 16.9563C20.4529 16.8525 20.3588 16.8476 18.3435 16.8476H16.2342V18.6847ZM22.0689 16.9795C22.054 17.052 22.0278 17.3618 22.0106 17.6679C21.9567 18.6246 21.5786 20.7423 21.3598 21.3125C21.3362 21.3739 21.4807 21.4558 21.901 21.6193C22.5274 21.8631 23.1253 22.1867 23.5998 22.5391C23.7676 22.6636 23.9317 22.7656 23.9645 22.7656C24.0536 22.7656 24.6916 21.7912 25.0494 21.1089C25.632 19.9977 26.1352 18.3801 26.2275 17.3215L26.2688 16.8476H24.1823H22.0958L22.0689 16.9795ZM13.6267 22.2191C12.4784 22.3619 11.4881 22.5689 11.4881 22.666C11.4881 22.6944 11.6105 22.9547 11.7601 23.2444C12.0991 23.9008 12.5506 24.4834 12.9725 24.8089C13.3127 25.0714 13.9438 25.3649 14.3152 25.4334L14.5349 25.474V23.8268V22.1796L14.1687 22.1884C13.9673 22.1932 13.7234 22.2071 13.6267 22.2191ZM16.2342 23.8249V25.4702L16.4246 25.4296C17.2333 25.2573 18.0102 24.7426 18.4888 24.0621C18.8172 23.5952 19.3159 22.6637 19.2648 22.6127C19.1681 22.516 16.9863 22.1796 16.4556 22.1796H16.2342V23.8249ZM20.5309 23.5175C19.9568 24.7696 19.0235 25.9158 18.1678 26.4197C17.7918 26.641 17.7899 26.6434 18.0213 26.6039C18.3792 26.5427 19.3065 26.2345 19.8774 25.9868C20.7046 25.6281 21.6572 25.0129 22.5002 24.2934L22.804 24.034L22.4634 23.8369C22.1046 23.6294 21.1628 23.1614 20.9118 23.0659C20.769 23.0116 20.7556 23.0275 20.5309 23.5175ZM9.54896 23.1962C9.23086 23.327 8.28053 23.8227 8.0768 23.9639C7.98592 24.027 8.00021 24.0566 8.22328 24.2673C8.84508 24.8546 9.74215 25.4505 10.6811 25.8999C11.5721 26.3263 13.4027 26.878 12.6892 26.5051C12.292 26.2974 11.7366 25.8207 11.3805 25.3818C10.8725 24.7555 10.6901 24.4671 10.3353 23.7293C10.1579 23.3604 9.9822 23.0592 9.94476 23.06C9.90732 23.0607 9.72926 23.122 9.54896 23.1962Z" fill="white"/>
453</svg>
454
455                            </a>
456                            <div class="gtranslate_wrapper" id="gt-wrapper-53978902"></div>
457                        </div>
458                    </div>
459                </div>
460
461
462            </div>
463        </header>
464
465        <div id="cb24-favorites-modal" class="cb24-favorites-modal" aria-label="Favorites List" aria-modal="true" role="dialog">
466            <div class="blue-section">
467
468                <div class="frame">
469                    <a href="javascript:void(0);" id="close-favorites" aria-label="Close Favorites Popup">
470
471                        <svg width="69" height="54" viewBox="0 0 69 54" fill="none" xmlns="http://www.w3.org/2000/svg">
472<path d="M17.25 8.37272L53.6667 45.0156M53.6667 7.71094L17.25 44.3538" stroke="white" stroke-width="8"/>
473</svg>
474                    </a>
475                    <div class="cb24-header">
476                        <h2>favorites</h2>
477                        <a href="/meet/venues/" class="btn-base white"><span>Search More Venues</span></a>
478
479                        <a id="email-favorites" href="mailto:?subject=test&body=message%0Ahere" class="btn-base white"><span><svg width="15" height="13" viewBox="0 0 15 13" fill="none" xmlns="http://www.w3.org/2000/svg">
480                                    <path d="M1.10769 12.5C0.812308 12.5 0.553846 12.3875 0.332308 12.1625C0.110769 11.9375 0 11.675 0 11.375V1.625C0 1.325 0.110769 1.0625 0.332308 0.8375C0.553846 0.6125 0.812308 0.5 1.10769 0.5H13.661
4805C13.9569 0.5 14.2154 0.6125 14.4369 0.8375C14.6585 1.0625 14.7692 1.325 14.7692 1.625V11.375C14.7692 11.675 14.6585 11.9375 14.4369 12.1625C14.2154 12.3875 13.9569 12.5 13.6615 12.5H1.10769ZM7.38462 6.8375L13.6615 2.65625V1.625L7.38462 5.7125L1.10769 1.625V2.65625L7.38462 6.8375Z" fill="white" />
481                                </svg>
482                                Email List</span></a>
483                        <a id="clear-favorites-cookie" href="javascript:void(0)" class="reverse-underline white"><span>Clear Favorites</span></a>
484                    </div>
485                </div>
486                <svg class="cb24-wave-bottom" width="1601" height="128" viewBox="0 0 1601 128" preserveAspectRatio="none" fill="none" xmlns="http://www.w3.org/2000/svg">
487                    <path d="M0 0H1602V75.4694C1602 75.4694 1336.67 178.927 834.542 95.4613C332.415 11.9951 0 75.4694 0 75.4694V0Z" fill="#3256A6" />
488                </svg>
489
490            </div>
491            <div class="frame">
492                <ul class="favorites-list " data-userid="" data-siteid="1" data-includebuttons="false" data-includelinks="true" data-includethumbnails="false" data-includeexcerpts="false" data-thumbnailsize="thumbnail" data-nofavoritestext="<h2> You haven't favorited anything yet!</h2> <span>Favorited Listings will appear here once you do.</span>" data-posttypes="post,page,attachment,blog-post,coupons,neighborhoods,people,press-release,partners"><ul data-postid="0" data-nofavorites class="no-favorites"><h2> You haven't favorited anything yet!</h2> <span>Favorited Listings will appear here once you do.</span></ul></ul>
493            </div>
494        </div>
495
496        <main id="main">
497
498            
499<section  class="p10-block p10-banner-block cb02-hero-banner" role="group">
500    <div class="cb02-gradient-top">
501
502    </div>
503    <div class="cb02-gradient-bottom">
504
505    </div>
506    <div class="video-wrap">
507                    <video class="videojs" style="position:absolute;top:0;left:0;overflow:hidden;z-index:-998" playsinline="playsinline" muted loop autoplay>
508                <source src="https://www.discoverphl.com/wp-content/uploads/2025/09/website_2026_hero_video_v3-1080p.mp4" type="video/mp4">
509            </video>
510                
511    </div>
512
513    <div class="frame cb02-wrap">
514        <div class="cb02-content">
515
516            <h1>Philadelphia Celebrates America’s 250th Birthday With So Much to Do</h1>                        <div class="cta-links">
517
518                            </div>
519        </div>
520    </div>
521    <div class="frame wave-inner-content-wrap ">
522
523        <div class="wave-inner-content">
524            
525            <a class="cb02-play-video inactive" href="" data-fancybox><svg xmlns="http://www.w3.org/2000/svg" width="61" height="61" viewBox="0 0 61 61" fill="none">
526                    <circle cx="30.5" cy="30.5" r="30.5" fill="#3256A6" />
527                    <path d="M39.3112 30.5001L26.0945 38.1307L26.0945 22.8694L39.3112 30.5001Z" fill="white" />
528                </svg>Play Video</a>
529
530
531                    </div>
532    </div>
533    <div class=" wave-wrap">
534                    <a class="pause-banner" href="javascript:void(0)" aria-label="pause banner video" style="z-index:999999999999">
535
536                <svg id="pause-btn" xmlns="http://www.w3.org/2000/svg" width="19" height="23" viewBox="0 0 19 23" fill="none">
537                    <rect width="7" height="23" fill="#FAF6F2" />
538                    <rect x="12" width="7" height="23" fill="#FAF6F2" />
539                </svg>
540            </a>
541                <svg class="cb02-mob-wave" width="375" height="162" viewBox="0 0 375 162" preserveAspectRatio="none" fill="none" xmlns="http://www.w3.org/2000/svg">
542<rect y="43" width="375" height="119" fill="#fff"/>
543<path d="M0 39.4453V44H375V2.31108C375 2.31108 308.906 -9.47216 199.688 20.1746C90.4688 49.8214 0 39.4453 0 39.4453Z" fill="#fff"/>
544</svg>
545        <svg class="cb02-bottom-wave" width="1596" height="266" viewBox="0 0 1596 266" preserveAspectRatio="none" fill="none" xmlns="http://www.w3.org/2000/svg">
546<path d="M-4 181.986V203H1596V10.6625C1596 10.6625 1314 -43.7011 848 93.0783C382 229.858 -4 181.986 -4 181.986Z" fill="white"/>
547<rect x="-5" y="195" width="1601" height="71" fill="white"/>
548</svg>
549    </div>
550</section>
551<section  class="p10-block cb23-wysiwyg" role="group">
552    <div class="frame toc-wysiwyg-wrap has-toc">
553        <div class="toc-wrapper"><div class="toc js-sticky-widget"><span class="small-label toc-label">Table of Contents</span><a href="#what-is-the-semiquincentennial">What is the semiquincentennial?</a><a href="#celebrating-250-years-philly-style">Events</a><a href="#the-eyes-of-the-sports-world-on-philly-in-2026">Sports</a><a href="#new-philadelphia-museums-art-and-exhibitions">New Museums and Exhibitions</a></div></div>        <div class="wysiwyg has-toc">
554                            <div class="wysiwyg-info">
555                    
556                        <div class="date">
557                            <span class="small-label">Date</span>
558                            <span>June 18, 2026</span>
559                        </div>
560                                                                <div class="share">
561                            <span class="small-label">Share</span>
562                            <div class="icons">
563
564                                <a aria-label="facebook share link" href="https://www.facebook.com/sharer/sharer.php?u=https://www.discoverphl.com/blog-post/philadelphia-2026/"><svg width="7" height="16" viewBox="0 0 7 16" fill="none" xmlns="http://www.w3.org/2000/svg">
565<path d="M1.75 5.33333H0V8H1.75V16H4.66667V8H6.79117L7 5.33333H4.66667V4.222C4.66667 3.58533 4.77867 3.33333 5.31708 3.33333H7V0H4.77867C2.681 0 1.75 1.05533 1.75 3.07667V5.33333Z" fill="#3256A6"/>
566</svg>
567</a>
568                                <a aria-label="twitter share link" href="https://twitter.com/intent/tweet?text=https://www.discoverphl.com/blog-post/philadelphia-2026/"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
569<rect width="18" height="18" fill="url(#pattern0)"/>
570<defs>
571<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
572<use xlink:href="#image0_8631_30434" transform="scale(0.00520833)"/>
573</pattern>
574<image id="image0_8631_30434" width="192" height="192" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAABGdBTUEAALGPC/xhBQAACktpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAAEiJnVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4BUaaISkgChhBgSQOyIqMCIoiKCFRkUccDREZCxIoqFQbH3AXkIKOPgKDZU3g/eGn2z5r03b/avvfY5Z53vnH0+AEZgsESahaoBZEoV8ogAHzw2Lh4ndwMKVCCBA4BAmC0LifSPAgDg+/Hw7IgAH/gCBODNbUAAAG7YBIbhOPx/UBfK5AoAJAwApovE2UIApBAAMnIVMgUAMgoA7KR0mQIAJQAAWx4bFw+AagEAO2WSTwMAdtIk9wIAtihTKgJAowBAJsoUiQDQDgBYl6MUiwCwYAAoypGIcwGwmwBgkqHMlABg7wCAnSkWZAMQGABgohALUwEI9gDAkEdF8AAIMwEojJSveNJXXCHOUwAA8LJki+WSlFQFbiG0xB1cXbl4oDg3Q6xQ2IQJhOkCuQjnZWXKBNLFAJMzAwCARnZEgA/O9+M5O7g6O9s42jp8taj/GvyLiI2L/5c/r8IBAQCE0/VF+7O8rBoA7hgAtvGLlrQdoGUNgNb9L5rJHgDVQoDmq1/Nw+H78fBUhULmZmeXm5trKxELbYWpX/X5nwl/AV/1s+X78fDf14P7ipMFygwFHhHggwuzMrKUcjxbJhCKcZs/HvHfLvzzd0yLECeL5WKpUIxHS8S5EmkKzsuSiiQKSZYUl0j/k4l/s+wPmLxrAGDVfgb2QltQu8oG7JcuILDogCXsAgDkd9+CqdEQBgAxBoOTdw8AMPmb/x1oGQCg2ZIUHACAFxGFC5XynMkYAQCACDRQBTZogz4YgwXYgCO4gDt4gR/MhlCIgjhYAEJIhUyQQy4shVVQBCWwEbZCFeyGWqiHRjgCLXACzsIFuALX4BY8gF4YgOcwCm9gHEEQMsJEWIg2YoCYItaII8JFZiF+SDASgcQhiUgKIkWUyFJkNVKClCNVyF6kHvkeOY6cRS4hPcg9pA8ZRn5DPqAYykDZqB5qhtqhXNQbDUKj0PloCroIzUcL0Q1oJVqDHkKb0bPoFfQW2os+R8cwwOgYBzPEbDAuxsNCsXgsGZNjy7FirAKrwRqxNqwTu4H1YiPYewKJwCLgBBuCOyGQMJcgJCwiLCeUEqoIBwjNhA7CDUIfYZTwmcgk6hKtiW5EPjGWmELMJRYRK4h1xGPE88RbxAHiGxKJxCGZk1xIgaQ4UhppCamUtJPURDpD6iH1k8bIZLI22ZrsQQ4lC8gKchF5O/kQ+TT5OnmA/I5CpxhQHCn+lHiKlFJAqaAcpJyiXKcMUsapalRTqhs1lCqiLqaWUWupbdSr1AHqOE2dZk7zoEXR0miraJW0Rtp52kPaKzqdbkR3pYfTJfSV9Er6YfpFeh/9PUODYcXgMRIYSsYGxn7GGcY9xismk2nG9GLGMxXMDcx65jnmY+Y7FZaKrQpfRaSyQqVapVnlusoLVaqqqaq36gLVfNUK1aOqV1VH1KhqZmo8NYHacrVqteNqd9TG1FnqDuqh6pnqpeoH1S+pD2mQNcw0/DREGoUa+zTOafSzMJYxi8cSslazalnnWQNsEtuczWensUvY37G72aOaGpozNKM18zSrNU9q9nIwjhmHz8nglHGOcG5zPkzRm+I9RTxl/ZTGKdenvNWaquWlJdYq1mrSuqX1QRvX9tNO196k3aL9SIegY6UTrpOrs0vnvM7IVPZU96nCqcVTj0y9r4vqWulG6C7R3afbpTump68XoCfT2653Tm9En6PvpZ+mv0X/lP6wActgloHEYIvBaYNnuCbujWfglXgHPmqoaxhoqDTca9htOG5kbjTXqMCoyeiRMc2Ya5xsvMW43XjUxMAkxGSpSYPJfVOqKdc01XSbaafpWzNzsxiztWYtZkPmWuZ883zzBvOHFkwLT4tFFjUWNy1JllzLdMudltesUCsnq1Sraqur1qi1s7XEeqd1zzTiNNdp0mk10+7YMGy8bXJsGmz6bDm2wbYFti22L+xM7OLtNtl12n22d7LPsK+1f+Cg4TDbocChzeE3RytHoWO1483pzOn+01dMb53+cob1DPGMXTPuOrGcQpzWOrU7fXJ2cZY7NzoPu5i4JLrscLnDZXPDuKXci65EVx/XFa4nXN+7Obsp3I64/epu457uftB9aKb5TPHM2pn9HkYeAo+9Hr2z8FmJs/bM6vU09BR41ng+8TL2EnnVeQ16W3qneR/yfuFj7yP3OebzlufGW8Y744v5BvgW+3b7afjN9avye+xv5J/i3+A/GuAUsCTgTCAxMChwU+Advh5fyK/nj852mb1sdkcQIygyqCroSbBVsDy4LQQNmR2yOeThHNM50jktoRDKD90c+ijMPGxR2I/hpPCw8OrwpxEOEUsjOiNZkQsjD0a+ifKJKot6MNdirnJue7RqdEJ0ffTbGN+Y8pjeWLvYZbFX4nTiJHGt8eT46Pi6+LF5fvO2zhtIcEooSrg933x+3vxLC3QWZCw4uVB1oWDh0URiYkziwcSPglBBjWAsiZ+0I2lUyBNuEz4XeYm2iIbFHuJy8WCyR3J58lCKR8rmlOFUz9SK1BEJT1IleZkWmLY77W16aPr+9ImMmIymTEpmYuZxqYY0XdqRpZ+Vl9Ujs5YVyXoXuS3aumhUHiSvy0ay52e3KtgKmaJLaaFco+zLmZVTnfMuNzr3aJ56njSva7HV4vWLB/P9879dQlgiXNK+1HDpqqV9y7yX7V2OLE9a3r7CeEXhioGVASsPrKKtSl/1U4F9QXnB69Uxq9sK9QpXFvavCVjTUKRSJC+6s9Z97e51hHWSdd3rp6/fvv5zsaj4col9SUXJx1Jh6eVvHL6p/GZiQ/KG7jLnsl0bSRulG29v8tx0oFy9PL+8f3PI5uYt+JbiLa+3Ltx6qWJGxe5ttG3Kbb2VwZWt2022b9z+sSq16la1T3XTDt0d63e83SnaeX2X167G3Xq7S3Z/2CPZc3dvwN7mGrOain2kfTn7ntZG13Z+y/22vk6nrqTu037p/t4DEQc66l3q6w/qHixrQBuUDcOHEg5d+873u9ZGm8a9TZymksNwWHn42feJ398+EnSk/Sj3aOMPpj/sOMY6VtyMNC9uHm1JbeltjWvtOT77eHube9uxH21/3H/C8ET1Sc2TZadopwpPTZzOPz12RnZm5GzK2f72he0PzsWeu9kR3tF9Puj8xQv+F851eneevuhx8cQlt0vHL3Mvt1xxvtLc5dR17Cenn451O3c3X3W52nrN9Vpbz8yeU9c9r5+94Xvjwk3+zSu35tzquT339t07CXd674ruDt3LuPfyfs798QcrHxIfFj9Se1TxWPdxzc+WPzf1Ovee7PPt63oS+eRBv7D/+T+y//FxoPAp82nFoMFg/ZDj0Ilh/+Frz+Y9G3guez4+UvSL+i87Xli8+OFXr1+7RmNHB17KX078VvpK+9X+1zNet4+FjT1+k/lm/G3xO+13B95z33d+iPkwOJ77kfyx8pPlp7bPQZ8fTmROTPwTA5jz/IzFdaUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAEhNJREFUeJzt3Xt0lOWdwPHvTBJyIfcLYZJMbgREAwSCgFC5iPWy7W71NMelxa6KdavbVt1uL9uzR9euPd1Tzx53ba3bY7VYhepRids91W6VSxAFpYKES8QDuZA7ksmVJOQ6z/4xM5KmAgnzvPPOO+/v80/rm+R5f2Tye37zPvP83tehlEIIu3KaHYAQZpIEELYmCSBsTRJA2JokgLA1SQBha5IAwtYkAYStSQIIW5MEELYmCSBsTRJA2JokgLA1SQBha5IAwtYkAYStSQIIW5MEELYmCSBsTRJA2JokgLA1SQBha5IAwtaidQ/ocDgAyFv8tY0AWSU3/hbA4dR+KkP1tB74AKB+738uNzuWcJSzcIMLlDM1b8VJgLgkV7yOcXtbDx5QKHWh37vu+1hJBRC25tCdUYEKEFC08v7tAGnulZ/XeiKj+X8vHbVvfQ+g+dDzj5saT5hwlVbMAJxJ2QtPASRmzsvWMe6A58QZQPV9cjQfoL2mcuSzvk8qgBAaGV4BXKUV0QApOeUdAAlpRalaT2iw0aGecYDO+qq5AG3HXm0wNyLzuEornAnpxdUAKa4lC3WMOdTXOohSdLfsLwJor6k8c7HvlwoghEaGL82011SOATijZtwCEJvk2g0QFR3nuMiPhY2YuNQogJkZc3f6DxWbGI5pCld863eAQ9fMPzrUOw6KnraD6+DSM79RpAIIWzP8GmCygmX3bgbIKFq7SeuJQ8RTv+tJgKYDzz5gdiyh4C7f9AjgyJxz/SMADkdwc6Z3bFiBwlO/awNAS/XWV6fz83INIIRGIa8AAXPXPdQMkDTrqjytARhsfHRQAXjqdq4CaD3y0vvmRmSM3LLbv+pwOByZxddvBXBGxwZ1zaaUF1B01lf9BKDp4OaHLm8cqQBCaGNaBchZuGEeQEbRuuMAMXEplkrGga66LoC+9uosgPaaSq+5EemRs+grSwBnRuGa/XB+FSw4iq7GvdsATu3/79uCGkkqgBD6mLZFs+3oyycAomLiHwLIKrnh331fscTHA8xMn
5745MOMHy2fZv/0JdNDCdoOQs3ZAPO1Nyr94KumR/62quPAyrYmd8oUgGErZl2DTDZnNXfPwqQ4lqyQGtABlPeUQDOnHyrAqD18G9fMzWgaTq/u3NBA0Bi5hWzdYw70FnrAaX6Th8J7O4c0jGuXAMIoVHYtGkNdtWvBohLcp0GiE2cHWtuRFPjcMYAkOJavBXAOzY0C6C9prLfxLCmxFVa4UxIK/4T6Jv5h/tPDwPq7Jlj5aBv5jeKVABha2FTAdprKnsAomLi7wbr9RLHJefGA8Sn5G/3H1ppYjiXVLjiHyrB4UjJWVKmY7zRoV4voHpaPlgH0Hb0lWYd4xpNKoCwtbBZBZqsaOX9OwDS3Cuv1zJgqJzvJf4OQPOh558wM5zJ3OWbHgacmXPW/wjA4Qhuud87PgIoPHW7vg7QUr1lc5AhXpSsAgmhUdhWgAm9xB6AhLSiFC0Dh8joua4xgM5TewoB2o6+0mpmPLllt98KODOL128DiIqJD+6FUgrl2935GEDTwV//MOggp3RaqQBCaBO2SywTeom/BBDn7yV2WqWXOD49GiAhrXi3/9BcM+LIWbhhMQ6HIz1/lZ6ZHwBFV/O+30PoZn6jSAUQtha21wCTFSy79zcAGUVr7zTkBAbz1O96AqDpwLPfCcX5XKUVmYAzNW95PUB8inumjnH7Th8+AajaPY/N1zHedMk1gBAaWaYCBFi1l3hspN8L4KnbuRSg7ejL1Uacx7965kyaVdoIkJg1X8sen8Huhh5A9bZ9GNjdacpeJ6kAQmgUtqtAFzLQefJ6gLjkXEv1EkfPSHQCJGUv2AHg8o4Fdo1q6yX27e4s/AD0zfzD/Z8MA/SdPrwYrLHLdTos8ccjhFEsVwEioJc4A2C4r+1F/6Gv6Bi3YPl9LwCOlJyli3WMF7hm6Wn50xcB2o6+0qhj3HAjFUDYmuVWgSabs/r7xwBSXEtKQ3riIHnHfb3EHbVv3grQevjF/72ccdzldz0EDkfmnPWPgo7dnaP47935DYCWQy88E9SAmskqkBAaWe4aYLLBrvp1AHHJua0AsTNnzTA1oClyRgV6iZe8COAdG86Gqa+y5JZtvAUcjvSC1VpmflCgoKvx3acg/GZ+o0gFELZm+QrQXlPpAYiKid8EkFVyk7+XWMuNzQwXl5ybABCfkvd//kOrL/b953d3fk7r7s7upve3AzQdeObbwY9nHVIBhK1ZfhVosqKVD+wESHNfs97UQKbL/zqcqX3zAYCWQy88OfHLrtKKdHy7O0+Bzt2dR2oBVbvnp/N0jGc0WQUSQiPLXwNMNtTXehPAYHeDtXqJ/ZUzNffqxwG8Y8PbAJR3rAPf7s5joG/mH+w+1QuKgc6TS3WMZ1VSAYStRVwF+LSXODr2FoC4JFeV77+t0Us8IyEzBiAhrbAKQHnHBgASs+a7dIw/MugZRSn6Th9eDtBeU9mnY1yrkgogbC3iVoEmK1h27/MAGUVr7zA7FjMFdnd21lfdCNB65KWd5kZ0eWQVSAiNIr4CBMy77uFmgMSsKy3VSxws5R3Dt7uz6p8Amj/8zX+ZHFJQpAIIoVHErQJdSL/nxJ/1EkfHJkd48n+6u/NpsP7Mb5QI/yMQ4uJscw0Q4C6/618Askpu+InvSHjHe7m6m/e/DdDw3s/WmRuJXnINIIRGtqsAAXNW/6AGIMW1+CqzY9Hp7JmPmgHV33G8CPTedygcSAUQQiPbrAJNNthVtxYgLjnHUr3EF3Kup7FPKUV/x/EFEHkzv1GkAghbs20FmNBLfB9A1tybNoOOuyuE1uhQ7zgoeturl4Hs7pwuqQDC1mxbAQJaqrc+BxATn/53AGnua64zN6LpiY5NjEKBM2rGtf5DJ0wNyGKkAghbs+3nAJO5SiviAFJzl50BiE/NTzI3oukJdHp1Ne1zA7QdffkTs2MygnwOIC7MopOPmWx/DRDQXlM5BOCMjv0bgNjEWZbsJY5PzQ90ei0wMRzLkAogbE2uAS7Aur3Evtezo27nowDNBzc/Ymo4msk1gBAaSQW4BKv2Eo8Nn/U9l7h+VxlA29GXj5kbkR5SAYTQSFaBLsGqvcTRsUlOgMTMK7b7D2m5s1ykscSLKYRR5BpgiqzeS9zZ8PZzAI0fPH232bEEQ64BhNBIKsA0lfh7iZMt1kvsHRsGoKP2rcC9Qbdf9AfClFQAITSSVaBpGhn0/I///1qqAjijYwFInr1oG4B3fCQLoL2mcsTEsEwnCTBNSqpmRJEEmKLcso1fBEjPX/VDs2MJRnxqQTLAUF/b6/5DN5oYjukkAaZOZv4IJKtAl5CzcMM8gPT8VccAZszMijE3Ij2UGgeg4+Sbd8P53uhwp/vvVSrApcnMH8GkAlyAq7QiFSA1d1kTWK9HeKqG+z8ZAehqfDcXzt8vKVxJBQgdmfltQBJgEldphW8XZdb8gxC5M39AbGL2DICEtOJAL3GZieGEnCTAX5KZ30YkASaJT8l/ByBpVmmhyaGEVErO4kUA7vJNjwA0f/jcv5kbUWjIbCdsTVaB/AqW3ftrgIyitZbeLx+swN2mO+urrgRoO/bqSbNjmkhWgYyjOXMDL5Q1JwS7sH0CuJfc+V2A9IJrN+kYTynfg1m6Tr3zHEBKTvmdcL5HN9zFxKVEASRmzd/ln23d5kZkLNsngP73bJNLtN6SLfSy7TVAbtnGLwBkFq9/HSAqJkFL4F2N77wGcGr/LysA3OV3PQSQVXLDj33fYY3fj4+is+HtXwE0fvCre82OBuQaQCcr/SUKg9iuAuQsuG0uQHrBtTWgb3dn3+nDHwPU7nnsys/6esnqH3wEkOxa/JlfD1fjY0MKpfDU7VgD0HrkpXfNjEcqQLAcTmMy9NKvjFwMhCHbJEBgd2eKa/EB0DfzD3TWegAGuurKL/p9XXXXAcQl5zb7z2+J5xJH+Z+PkDx70RtKKVylkdVLbJsEwLBPvadXk5UUgrAS8Qnw6e7OzCv8uzsLtOzuHO7/ZBjg7JmapXD+CTMX0l5TeQYgKib+6wBZJTdtAXA4rfFcYl8vsWL4bPvv/Ie+YGY8ukR8AmDczG/yzwsdIn4VqHjVP+4FSM1bvkrHeGPDfV6Azoa3PwfQeuSl9y9nnKKVD1YBpLlXrNMRV6go7zig6KjdfgdAS/WWLSE9v6wCmUv3CyDMFbEJULDsG8+CvpnfO+5b9Ohu2vf3cPkzf8BQX8tfAZzrcXUAxKfmJwYZYkgErllScsqfAcX46OAbAO01lV2mBnaZIjYB9D8017CZX0qKiSIuAfKW3HE/QHrBKj37+v1vebpOvfsfAC3VWzbrGNbqzyWOTcyOBUhIK9yBL4mXmhvR5Ym4BHBonvlDtW4vZcAcEbMKlFu28WaAzOL1fwB9uzu7m/a9AdDw/i/+Wsd4F1Kw/L4tABmFa75m5Hn0U6Cgo27HvwI0f/jcjw09mzwf4IKcRNa/x2os+bu3fAUwbnfnkRMAtXt+eoWO8aZq3vofnQZIzJyXHcrzBmt0qGccoLO+6gqAtmOv1hlxHvkcYDKjdnea9q7c8h80WKoSWDYBXKUViQDJsxftB30z/2B3Qw/AQGetKasa/R0f+3aNJrlqwDrPJY6JS/X3El+525/EeeZGNDWWTQAsNtNMl7U/cQ6z/TAXYblrgAm7O2sBkrIXFOkYN7C7s7tpX+B+OA06xr1cVu8l9tTvfgqg6cAz39Y6sqwCyWqPRVjiNbJcBShe9eAegNS8Fat1jDc20u/b3VlfFXh+7s6L/0RoWbaXePScAoWnbue1AK1HXtqnY1xZBbIfK18MQJhXAsskQP7V9/wcIDVvuZaZ3zs+CkBX47vfhPCb+QMs20scE+8ASMpe+DooXKUVsyD8eoktkwAYdu9Oa5BeYmOEfQLkLbnjWwAZhav9qwnB5oF/d2fj3l8CtBx64ekgBzSU1XuJE9IKU0AxdLZtm//Ql0wNaJKwTwB0v4eUiVRMELarQLmLvnodQEbxdTsAomckakmE7ub3dgA0vPfkDTrGC7WilQ/uBkhzr1hrcijToryjKAWeuu1/C9BSvfXVyxrHRp8DyHp/ZAqr1zTs3gIFdnemua/5A+ib+c+eqWkCGOpru0nHeGYZ6mu5GazYSxyDA0jJWfq8r5f43HaA9prKHjPjCrsEMG53Z8S9+7f6v8cJeM0OImwSYMLuzvdB33r3YPepXoD+jo8XAbTXVJr+Sw/Gp73EUTNuAYhNnLUTrNdLHJ9a8Ed8SbzCzHjCJgEI2zu4hTeL/+tMT1rTV4Em7O48CZCUvaBYRxwjg55RgK7GvYsA2o6+/LGOccNNwfL7tgJkFK653exYpkUpFApP7fbvATQfev7xqf2YfVaBhB2YfC9N0yuA7nXt8ZEBBeBpqLoZoPXwi2/pGDfcWbqXWCk6G3bPhUv3Ychu0Euw754ZS7eQgUmrQqYlQP7V9zwBkOZermXm9921GLqb9n0X7DPzB1i9l3hmxtzAHea0XANOlZkVQPMLZPUJUGDCqlDIrwHyltzxTYCsOdc/Bb5PCIPjiz/cnmdrFnf5pocBsko+/6jviOkrjdOg8NRXPQnQdODZBz7zOyJgFciBtV4VEVoh/dsIWQXILdu4FiCjaN0u0Lm7c/8egIb3fmap3ZFGK1nzz8cBkmeXzTc7lukYHx30reLV7VwFf/kcBuuuAillVLWRN/+fxdo3FoIQrQoZngA5C26bA5DqXvFH0Lm786MWgKG+lvU6xos0A11168CKvcS+u3onzrrq94Ca0EtsSDKEogLIzG8ii38uYvj1gGEJ4CqtSABInl22HyB25iwtM9C53uYBgP6O4+Vg/d2dRjnfS5xwD0BWyY0vgHV6iWemz0n3P5c40Ev8ZSPOY2QFsMQHMSLsOTCw2mtPgAm7O6sBEtKL03SMO3quawygt+3D5QDtNZUeHeNGusBzfGP
574i0+8BSHOvWGNuRNPhIM294lalIHeoN1ABXtN5BsMqgFKBdyZ6ktf6ixqmU3/2Pxbhe9mNi1n75wBCWIm8Txe2JgkgbE0SQNiaJICwNUkAYWuSAMLWJAGErUkCCFuTBBC2JgkgbE0SQNiaJICwNUkAYWuSAMLWJAGErUkCCFuTBBC2JgkgbE0SQNiaJICwNUkAYWuSAMLWJAGErf0/IVEfrF+BKdMAAAAASUVORK5CYII="/>
575</defs>
576</svg>
577</a>
578                                <a aria-label="linkedin share link" href="https://www.linkedin.com/sharing/share-offsite/?url=https://www.discoverphl.com/blog-post/philadelphia-2026/"><svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
579<path d="M15.2441 0H1.60972C0.956592 0 0.428467 0.515625 0.428467 1.15313V14.8438C0.428467 15.4813 0.956592 16 1.60972 16H15.2441C15.8972 16 16.4285 15.4813 16.4285 14.8469V1.15313C16.4285 0.515625 15.8972 0 15.2441 0ZM5.17534 13.6344H2.80034V5.99687H5.17534V13.6344ZM3.98784 4.95625C3.22534 4.95625 2.60972 4.34062 2.60972 3.58125C2.60972 2.82188 3.22534 2.20625 3.98784 2.20625C4.74722 2.20625 5.36284 2.82188 5.36284 3.58125C5.36284 4.3375 4.74722 4.95625 3.98784 4.95625ZM14.0628 13.6344H11.691V9.92188C11.691 9.0375 11.6753 7.89687 10.4566 7.89687C9.22222 7.89687 9.03472 8.8625 9.03472 9.85938V13.6344H6.66597V5.99687H8.94097V7.04063H8.97222C9.28784 6.44063 10.0628 5.80625 11.216 5.80625C13.6191 5.80625 14.0628 7.3875 14.0628 9.44375V13.6344Z" fill="#3256A6"/>
580</svg>
581</a>
582                            </div>
583                        </div>
584                                    </div>
585                                        <div class="wysiwyg-header image">
586                    <div class="text">                    <h2>Philadelphia Celebrates America’s 250th Birthday With So Much to Do</h2>                                        </div>
587                     <div class="image"><img loading="lazy" src="https://www.discoverphl.com/wp-content/uploads/2024/06/July4th22-G.Widman_1sm-1920x1080-1.jpg" alt="A huge fireworks display over the Philadelphia Museum of art. The Parkway is full of people and lights." /> </div>
588                </div>
589                                    <p class="wysiwyg-summary">As America’s birthplace, <strong>Philadelphia</strong> is the centerpiece of the United States’ 250th birthday celebration.</p>
590<p>Few cities celebrate July 4th like Philadelphia, but in 2026, every day is Independence Day as the city celebrates <strong>America’s Semiquincentennial</strong> – the 250th Anniversary of the signing of the Declaration of Independence. As America’s birthplace, Philadelphia will be the centerpiece of this monumental birthday celebration. But the action doesn’t stop there. In 2026, Philadelphia takes center stage for some of the world’s greatest events.</p>
591<h2>The Ultimate Guide to America 250 in Philadelphia</h2>
592<h3><strong>1. Festivals &amp; Firsts</strong></h3>
593<ul>
594<li><strong>Wawa Welcome America (June 19 – July 4):</strong> The nation’s largest free festival features 16 days of concerts, fireworks, and community events. Don&#8217;t miss <strong>Wawa Hoagie Day</strong> and the massive <strong>July 4th Party on the Parkway</strong>.</li>
595<li><strong>52 Weeks of Firsts:</strong> Every Saturday in 2026, a different neighborhood hosts a <strong>&#8220;Firstival,&#8221;</strong> celebrating Philadelphia&#8217;s legacy of innovation.</li>
596</ul>
597<h3><strong>2. Historic District Highlights</strong></h3>
598<ul>
599<li><strong>The Red, White, &amp; Blue To-Do (July 2):</strong> A day of &#8220;pomp and parade&#8221; in the <strong>Old City</strong> historic district featuring an All-American Block Party, concerts, and extended hours at iconic sites.</li>
600<li><strong>The Liberty Medal Ceremony (July 3):</strong> Watch as <strong>Pope Leo XIV</strong> receives this prestigious honor at the <strong>National Constitution Center</strong>, overlooking <strong>Independence Hall</strong>.</li>
601<li><strong>Examining the Declaration, Revolution</strong>: New exhibitions at the <strong>Museum of the American Revolution</strong>, Constitution Center, and <strong>Weitzman National Museum of American Jewish History </strong>focus on America’s 250<sup>th</sup></li>
602</ul>
603<h3><strong>3. Signature 2026 Sports Events</strong></h3>
604<ul>
605<li><strong>MLB All-Star Game (July 14):</strong> The Midsummer Classic returns to <strong>Citizens Bank Park</strong>, accompanied by the <strong>Capital One All-Star Village</strong> at the Convention Center and a week of baseball events.</li>
606<li><strong>FIFA World Cup 26™:</strong> Philadelphia hosts six matches of the world’s biggest sporting event, with the <strong>FIFA Fan Festival™</strong> at <strong>Lemon Hill</strong> running for 39 consecutive days.</li>
607</ul>
608<h3><strong>Pro-Traveler Tips for 2026:</strong></h3>
609<ul>
610<li><strong>Transportation:</strong> Skip the traffic and use <strong>SEPTA </strong> The <strong>Blue Line (Market-Frankford)</strong> is your best bet for getting between the <strong>Historic District</strong> and <strong>Center City</strong>.</li>
611<li><strong>Booking:</strong> Because 2026 is a milestone year, timed tickets for <strong>Independence Hall</strong> and the <strong>Museum of the American Revolution</strong> should be booked weeks, if not months, in advance.</li>
612<li><strong>Official App:</strong> Download the <a href="https://apps.apple.com/in/app/2026-access-philly/id6757433765" target="_blank" rel="noopener"><strong>2026 Access Philly App</strong></a> for real-time updates.</li>
613<li><strong>Visitors Guide: </strong>Check out the <strong><a href="https://www.discoverphl.com/discover/official-visitors-guide/250-guide/" rel="noopener">Philadelphia 250 Commemorative Guide</a>!</strong></li>
614</ul>
615<h2><span id="what-is-the-semiquincentennial" class="wysiwyg-anchor" data-title="What is the semiquincentennial?">What is the  Semiquincentennial?<strong></span></strong></h2>
616<p>The Semiquincentennial is the 250th anniversary of America’s Founders declaring the country’s independence right here in Philadelphia. In 1776, Benjamin Franklin, Thomas Jefferson, and delegates from the 13 Colonies signed the Declaration of Independence at <
616a href="https://www.nps.gov/inde/planyourvisit/independencehall.htm" target="_blank" rel="noopener"><strong>Independence Hall</strong></a><strong>.</strong> The document proclaimed their separation from British colonial rule. The signing is referred to as the birth of the United States and is celebrated in America each year on the Fourth of July.</p>
617<p><img fetchpriority="high" decoding="async" class="alignnone size-large wp-image-59252" src="https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-1024x682.jpg" alt="Independence Hall sits behind a garden of tulips." width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
618<h2><span id="celebrating-250-years-philly-style" class="wysiwyg-anchor" data-title="Events">Celebrating 250 Years Philly Style!</span></h2>
619<p>These events highlight Philadelphia’s role in the founding of our nation, and our love for the arts and partying!</p>
620<h3>52 weeks of Philly firsts</h3>
621<p>Philadelphia is celebrating the entire year by spotlighting its many historic “firsts” in 2026 through <a href="https://www.visitphilly.com/things-to-do/events/52-weeks-of-firsts-in-philadelphia/" target="_blank" rel="noopener"><strong>52 Weeks of Firsts</strong></a> — a citywide series of weekly events, storytelling, and experiences. Every week features Saturday “<strong>Firstivals</strong>” featuring live entertainment, music, family fun, giveaways, art, and more in neighborhoods around the city. Some historic firsts include the Slinky, the inaugural Mother’s Day celebration, the nation’s first Thanksgiving Day Parade, America’s first zoo, lending library, and the American flag (thanks Betsy Ross).</p>
622<h3>16 Days of Free Fun with WaWa Welcome America</h3>
623<p>Philadelphia will amplify and expand its already electrifying series of summer celebrations for the Semiquincentennial. The annual <a href="https://july4thphilly.com/"><strong>Wawa Welcome America</strong></a> festival returns with 16 days of electrifying programming of concerts, block parties, and free hoagies (of course) from <a href="https://www.discoverphl.com/blog-post/juneteenth-celebrations-in-philadelphia/"><strong>Juneteenth</strong></a> through the <a href="https://www.discoverphl.com/blog-post/celebrate-july-fourth-in-philadelphia/"><strong>Fourth of July</strong></a>.  Some highlights this summer include:</p>
624<ul>
625<li><strong>The </strong><a href="https://july4thphilly.com/event/kidchella-music-festival/" target="_blank" rel="noopener"><strong>Kidchella Music Festival</strong></a></li>
626<li><strong>Concilio’s Annual Hispanic Fiesta</strong></li>
627<li><a href="https://july4thphilly.com/event/celebration-of-black-music-month-and-fireworks/" target="_blank" rel="noopener"><strong>Celebration of Black Music Month + Fireworks,</strong></a> featuring Philly’s own Eve</li>
628<li><a href="https://july4thphilly.com/event/wawa-hoagie-day/" target="_blank" rel="noopener"><strong>Wawa Hoagie Day,</strong></a></li>
629<li><strong>July 4<sup>th</sup> Party on the Parkway</strong>, concluding with a massive free concert and fireworks display along the Benjamin Franklin Parkway.</li>
630</ul>
631<div id="attachment_2953" style="width: 1010px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-2953" decoding="async" class="size-full wp-image-2953" src="https://www.discoverphl.com/wp-content/uploads/2023/10/Parkway32-photo-courtesy-of-Wawa-Welcome-America-1.jpg" alt="A person holds up an American flag in a crowd at the Wawa Welcome American Parkway concert." width="1000" height="600" srcset="https://www.discoverphl.com/wp-content/uploads/2023/10/Parkway32-photo-courtesy-of-Wawa-Welcome-America-1.jpg 1000w, https://www.discoverphl.com/wp-content/uploads/2023/10/Parkway32-photo-courtesy-of-Wawa-Welcome-America-1-300x180.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2023/10/Parkway32-photo-courtesy-of-Wawa-Welcome-America-1-768x461.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2023/10/Parkway32-photo-courtesy-of-Wawa-Welcome-America-1-860x516.jpg 860w" sizes="(max-width: 1000px) 100v
631w, 1000px" /><p id="caption-attachment-2953" class="wp-caption-text">People enjoy the Party of the Parkway in Philadelphia during the Wawa Welcome America Festival. Photo courtesy of Wawa Welcome America Photo/ Joseph Kaczmarek</p></div>
632<h3>Philly Fair 250</h3>
633<p>Wawa Welcome America festivities this year include <a href="https://july4thphilly.com/event/philly-fair-250-day-1/" target="_blank" rel="noopener"><strong>Philly Fair 250</strong></a>. The multi-day festival in the Centennial District features jazz performances, a trapeze, hot air balloon rides, and “food trucks representing flavors from the original 13 colonies.” Local institutions are partnering really ramp up the free family fun with the <a href="https://www.libertymuseum.org/" target="_blank" rel="noopener">National Liberty Museum</a> displaying a life-sized replica of the Liberty Bell.</p>
634<div id="attachment_59253" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-59253" decoding="async" class="size-large wp-image-59253" src="https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-1024x682.jpg" alt="A replica of the Liberty Bell at the National Liberty Museum" width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-59253" class="wp-caption-text">National Liberty Museum</p></div>
635<p>As part of Wawa Welcome America, the Philadelphia Historic District will host the <a href="https://www.phlvisitorcenter.com/red-white-blue-to-do-philadelphia-pa" target="_blank" rel="noopener"><strong>Red, White, &amp; Blue To-Do</strong></a> on July 2. Inspired by John Adams’s call for “pomp and parade,” the event invites visitors to America’s most historic square mile for a patriotic parade, the All-American Block Party, plenty of family fun at historic attractions. The Red, White, &amp; Blue To-Do wraps up with a Salute to Service concert as The United States Army Field Band and Soldiers’ Chorus, featuring Queen Latifah, perform on Independence Mall.</p>
636<h3>Liberty Medal Presentation to Pope Leo</h3>
637<p>Pope Leo XIV, the first leader of the Roman Catholic Church born in the United States, will return to Philadelphia – where he attended Villanova University – to accept <a href="https://constitutioncenter.org/about/liberty-medal" target="_blank" rel="noopener">the 2026 <strong>Liberty Medal</strong></a> on July 3. The medal is presented annually by the <strong>National Constitution Center</strong> to persons “of courage and conviction who strive to secure the blessings of liberty for people around the globe.” The ceremony will be held outside the Old City museum on Independence Hall.</p>
638<h3>Bells Across PA</h3>
639<p>America250PA’sart series “<a href="https://america250pa.org/PPE:_Bells_Across_PA" target="_blank" rel="noopener"><strong>Bells Across PA</strong></a>” commemorates the 250th anniversary of the United States throughout Pennsylvania. Selected artists transform fiberglass bell sculptures that are on display in each of <strong>Pennsylvania</strong>’s 67 counties, including Philadelphia and the Countryside.</p>
640<blockquote class="instagram-media" style="background: #FFF; border: 0; border-radius: 3px; box-shadow: 0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width: 540px; min-width: 326px; padding: 0; width: calc(100% - 2px);" data-instgrm-captioned="" data-instgrm-permalink="https://www.instagram.com/reel/DTlNbKLDVEV/?utm_source=ig_embed&amp;utm_campaign=loading" data-instgrm-version="14">
641<div style="padding: 16px;">
642<p>&nbsp;</p>
643<div style="display: flex; flex-direction: row; align-items: center;">
644<div style="background-color: #f4f4f4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;"></div>
645<div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center;">
646<div style="background-color: #f4f4f4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;"></div>
647<div style="background-color: #f4f4f4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;"></div>
648</div>
649</div>
650<div style="padding: 19% 0;"></div>
651<div style="display: block; height: 50px; margin: 0 auto 12px; width: 50px;"></div>
652<div style="padding-top: 8px;">
653<div style="color: #3897f0; font-family: Arial,sans-serif; font-size: 14px; font-style: normal; font-weight: 550; line-height: 18px;">View this post on Instagram</div>
654</div>
655<div style="padding: 12.5% 0;"></div>
656<div style="display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;">
657<div>
658<div style="background-color: #f4f4f4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);"></div>
659<div style="background-color: #f4f4f4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;"></div>
660<div style="background-color: #f4f4f4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);"></div>
661</div>
662<div style="margin-left: 8px;">
663<div style="background-color: #f4f4f4; border-radius: 50%; flex-grow: 0; height: 20px;
663 width: 20px;"></div>
664<div style="width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg);"></div>
665</div>
666<div style="margin-left: auto;">
667<div style="width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);"></div>
668<div style="background-color: #f4f4f4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);"></div>
669<div style="width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);"></div>
670</div>
671</div>
672<div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center; margin-bottom: 24px;">
673<div style="background-color: #f4f4f4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 224px;"></div>
674<div style="background-color: #f4f4f4; border-radius: 4px; flex-grow: 0; height: 14px; width: 144px;"></div>
675</div>
676<p>&nbsp;</p>
677<p style="color: #c9c8cd; font-family: Arial,sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 0; margin-top: 8px; overflow: hidden; padding: 8px 0 7px; text-align: center; text-overflow: ellipsis; white-space: nowrap;"><a style="color: #c9c8cd; font-family: Arial,sans-serif; font-size: 14px; font-style: normal; font-weight: normal; line-height: 17px; text-decoration: none;" href="https://www.instagram.com/reel/DTlNbKLDVEV/?utm_source=ig_embed&amp;utm_campaign=loading" target="_blank" rel="noopener">A post shared by PHLCVB (@discover_phl)</a></p>
678</div>
679</blockquote>
680<p>
680<script async src="//www.instagram.com/embed.js"></script>
680</p>
681<h3><strong>Art Philly&#8217;s What Now</strong></h3>
682<p>Launching in May 2026, <a href="https://www.artphilly.org/what-we-do" target="_blank" rel="noopener"><strong>ArtPhilly</strong></a> presents <strong>What Now</strong>, a citywide, multidisciplinary arts festival. This collaborative festival will showcase Philadelphia artists and neighborhoods, sparking civic dialogue on the nation’s evolution since 1776. Through What Now, commissioned artists will interpret Philadelphia’s legacy, reflecting on the city’s complex history and future.</p>
683<span class="cb23-responsive-iframe"><iframe loading="lazy" title="YouTube video player" src="https://www.youtube.com/embed/mCKIM6p9Ryc?si=a9o1lcQ0-cJuVrkB" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></span>
684<h2><span id="the-eyes-of-the-sports-world-on-philly-in-2026" class="wysiwyg-anchor" data-title="Sports">The Eyes of the Sports World on Philly in 2026</span></h2>
685<p>2026 is already a giant year for sports in Philadelphia.</p>
686<p>It all started with the return of <strong>March Madness</strong> to Xfinity Mobile Arena, as Philly hosted Round of 64 and 32 games in the National Collegiate Athletic Association’s (NCAA) men’s basketball tournament on March 20 and 22. The annual <strong>Penn Relays</strong> followed, bringing track athletes of all ages to the University of Pennsylvania’s Franklin Field in late April.</p>
687<h3>PGA Championship, US Amateur Championship land in countryside</h3>
688<p>Just beyond the city limits, the <a href="https://www.pgachampionship.com/" target="_blank" rel="noopener">2026 <strong>PGA Championship</strong></a> is celebrated  a homecoming at <strong>Aronimink Golf Club</strong> in Newtown Square from May 11–17. One of golf’s four major men’s championships featured 150 of golf’s best trying to claim the title as the historic club hosted the championship for the first time since 1962.  Englishman Aaron Rai won the title.</p>
689<div id="attachment_58392" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-58392" loading="lazy" decoding="async" class="size-large wp-image-58392" src="https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-1024x682.jpg" alt="A golfer raises his arms in triumph on the field." width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-58392" class="wp-caption-text">LOUISVILLE, KY &#8211; MAY 19: Xander Schauffele celebrates winning the 2024 PGA Championship on the 18th hole during the final round of the PGA Championship at Valhalla Golf Club on Sunday, May 19, 2024 in Louisville, Kentucky. (Photo by Maddie Meyer/PGA of America)</p></div>
690<p>Later this summer, <strong>Merion Golf Club</strong> in Ardmore on the Main Line will host golf’s future stars for the <a href="https://championships.usga.org/usamateur.html" target="_blank" rel="noopener"><strong>United States Amateur Championship</strong></a> from August 10–16. The event brings together the nation’s top men’s amateur golfers for one of the sport’s most prestigious competitions. And, just like at the PGA, you can <a href="https://championships.usga.org/usamateur/2026/articles/126th-us-amateur-tickets-available-merion.html" target="_blank" rel="noopener">buy tickets</a> to line the fairways and greens to get up close to the action.</p>
691<h3>Soccer&#8217;s Best Coming to Philly for FIFA World Cup 26™</h3>
692<p>The beautiful game is on display in Philly this summer. The city is one of the North American host cities for the <a href="https://www.discoverphl.com/discover/fifa-world-cup/"><strong>FIFA World Cup 26™</strong></a><strong>,</strong> and will hold six matches at Lincoln Financial Field  (renamed <strong>Philadelphia Stadium</strong> for the duration of the tournament). The schedule includes five group stage matches featuring traditional world football powerhouses,<strong> Brazil</strong> and <strong>France</strong>, alongside Cote D’Ivoire, Ecuador, Haiti, Iraq, Curaçao, Croatia, and Ghana. The action wraps up (appropriately) with a July 4<sup>th</sup> Round of 16 match..</p>
693<div id="attachment_59203" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-59203" loading="lazy" decoding="async" class="size-large wp-image-59203" src="https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-1024x682.jpg" alt="The stands at Philadelphia Stadium are full for the FIFA World Cup" width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-59203" class="wp-caption-text">Ecuador v.s. Ivory Coast at Philadelphia Stadium</p></div>
694<h3>Philadelphia&#8217;s FIFA Fan Festival<strong>™</strong></h3>
695<p>Promising to be “unlike any other visitor experience in the United States in 2026,” <a href="https://phillyfwc26.com/fifa-fan-fest"><strong>Philadelphia’s FIFA Fan Festival</strong></a><strong>™</strong>
695 kicks its way into <strong>Fairmount Park</strong> with nearly six weeks of food, football, festivities, and free fun.  It takes place for the duration of the tournament, from Thursday, June 11, to Sunday, July 19, 2026, at <strong>Lemon Hill</strong> park. Registration for FREE entry to the festival <a href="https://www.eventim.com/artist/philadelphia-fifa-fan-festival/?affiliate=7FI" target="_blank" rel="noopener">is available online</a>.</p>
696<div id="attachment_59254" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-59254" loading="lazy" decoding="async" class="size-large wp-image-59254" src="https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-1024x682.jpg" alt="A France Fan watches the big screen at FIFA Fan Festival with his teamflag draped over him." width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-59254" class="wp-caption-text">FIFA Fan Festival Philadelphia</p></div>
697<p>We have your full guide to getting tickets, getting around during the tournament, <a href="https://www.discoverphl.com/blog-post/philadelphia-between-world-cup-matches/?_gl=1*1rq8hj9*_up*MQ..*_ga*MTcwMzI2ODY5My4xNzc3MDQ4NDQ5*_ga_YG74SVF2M6*czE3NzcwNDg0NDkkbzEkZzAkdDE3NzcwNDg0NDkkajYwJGwwJGgw">places to check out around the city</a>, and just how awesome this football city can be. We also have so you can get a taste of home while in Philly.</p>
698<h3>Baseball&#8217;s best swing into town for Mis-Summer Classic</h3>
699<p>What’s more American than baseball? <strong>Major League Baseball</strong>’s superstars are heading to Philadelphia for the 2026 <a href="https://www.mlb.com/phillies/fans/all-star-game" target="_blank" rel="noopener"><strong>MLB All-Star Game</strong></a> at <strong>Citizens Bank Park</strong>. The 96th Midsummer Classic takes place Tuesday, July 14, at the <strong>Phillies</strong>’ home ballpark. In the days leading up to the game, fans can enjoy the <strong>Capital One All-Star Village</strong> at the <strong>Pennsylvania Convention Center</strong>, the <strong>HBCU Swingman Classic</strong>, <strong>T-Mobile Home Run Derby</strong>, and other baseball-themed events at the ballpark as part of <a href="https://allstargame.com/" target="_blank" rel="noopener"><strong>MLB All-Star Week</strong>, starting July 10</a>. Our <a href="https://www.discoverphl.com/blog-post/mlb-all-star-2026/">guide to the week of baseball</a> will ensure you don’t miss any action.</p>
700<p><strong>Don’t have tickets, but don’t want to miss the action?</strong> Check out <a href="https://www.discoverphl.com/blog-post/top-philadelphia-sports-bars/">our list of some of the <strong>best Philly sports bars</strong></a> for fans to flock to.</p>
701<h3>Cyclists return to take on &#8216;The Wall&#8217;</h3>
702<p>The <a href="https://www.philadelphiacyclingclassic.com/" target="_blank" rel="noopener"><strong>Philadelphia Cycling Classic</strong></a> returns in August for the first time in a decade. The race starts and ends on the Benjamin Franklin Parkway, and will include the infamous hill in Manayunk known as “The Wall” that has humbled many a professional cyclist over the previous iterations of this favorite event simply know as “The Bike Race.”</p>
703<h2><span id="new-philadelphia-museums-art-and-exhibitions" class="wysiwyg-anchor" data-title="New Museums and Exhibitions">New Philadelphia Museums, Art, and Exhibitions</span></h2>
704<p>This might as well be called the year of exhibitions in Philadelphia. In 2026, Philly will debut landmark art, science, and history experiences that celebrate American creativity and the city’s legacy of storytelling.</p>
705<h3>A Nation of Artists</h3>
706<p>Leading the way is <a href="https://www.philamuseum.org/exhibitions/nation-artists" target="_blank" rel="noopener"><strong><em>A Nation of Artists</em></strong></a>, a joint exhibition from the <a href="https://philamuseum.org/" target="_blank" rel="noopener"><strong>Philadelphia Museum of Art</strong></a> and <a href="https://www.pafa.org/" target="_blank" rel="noopener"><strong>PAFA</strong></a> featuring over 1,000 works of art. The exhibition that runs until July 2027ncludes rarely seen pieces from the Middleton Family Collection, highlighting diverse artists – from Mary Cassatt to Thomas Eakins to Horace Pippin to Charles Willson Peale to Mark Rothko – and overlooked voices in American art history.</p>
707<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-59255" src="https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-1024x682.jpg" alt="Museum visitors look at the paintings hung on the walls." width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
708<h3>Focusing on Rocky at the Rocky Steps</h3>
709<p><a href="https://www.philamuseum.org/exhibitions/rising-up-rocky" target="_blank" rel="noopener"><strong><em>Rising Up: Rocky and the Making of Monuments</em></strong></a> puts the focus on the Philadelphia Museum of Art’s connection to “Rocky.” “In a moment of reckoning and reimagining for monuments, why do millions of people from around the world visit the Rocky 
709statue by the steps at the Philadelphia Museum of Art?” the art museum asks. The exhibit looks at millennia of artist’s putting a focus on boxing and celebrity. The values on display include “perseverance, spirit, and grit.”</p>
710<h3>Ministry of Awe</h3>
711<p>Expanding the city’s immersive art offerings, muralist Meg Saligman debuted <a href="https://moaphilly.org/" target="_blank" rel="noopener"><strong><em>Ministry of Awe</em></strong></a> inside a restored Old City bank. The six-story installation will blend visual art, sound, and live performance, inviting visitors to explore “awe” through interactive and evolving environments.</p>
712<h3>Icons of Independence</h3>
713<p>Enjoy the city of murals like you’ve never seen before. From the Liberty Bell, famous figures, the American flag, iconic architecture, and much more, <a href="https://muralarts.org/stories/announcing-mural-arts-spring-2026-tour-season/" target="_blank" rel="noopener"><strong>Mural Arts Philadelphia</strong> is offering</a> a <a href="https://muralarts.org/tours/" target="_blank" rel="noopener">Semiquincentennial tour</a> specifically geared to a “trail of historic symbols.”</p>
714<h3>Celebrating 50 Years of Music</h3>
715<p><a href="https://highmarkmann.org/" target="_blank" rel="noopener"><strong>The Highmark Mann Center for the Performing Arts</strong></a> in Fairmount Park is celebrating 50 years of music and performances with a summer slate of shows. The open-air venue is <a href="https://highmarkmann.org/50th-anniversary/journey-through-time" target="_blank" rel="noopener">looking back on its first 50 years</a> and focused on the future. Among the performances: On June 18, the <strong>Philadelphia Orchestra</strong> will celebrate <a href="https://highmarkmann.org/events/2026-06-18/50-years-of-music-in-the-park" target="_blank" rel="noopener"><em>50 Years of Music in the Park</em></a>, and on July 5, music legend <strong>Paul Simon</strong> will take the stage.</p>
716<h3>Universal Theme Parks come to Philly</h3>
717<p><a href="https://fi.edu/en" target="_blank" rel="noopener"><strong>The Franklin Institute</strong></a> is featuring the world premiere of <a href="https://fi.edu/en/exhibits-and-experiences/universal-theme-parks-exhibition" target="_blank" rel="noopener"><strong><em>Universal Theme Parks: The Exhibition</em></strong></a>. Opened in February, the premier exhibition showcases how Universal parks are created, premiering at the museum before traveling. Entirely designed, built, and toured by The Franklin Institute, the exhibit highlights key milestones of Universal Destinations and Experiences, from the early Studio Tram tour to the new Epic Universe. <a href="https://tickets.fi.edu/webstore/shop/viewitems.aspx?cg=11&amp;c=utp&amp;_gl=1*6zzq65*_gcl_au*MTgxNTMzNjYxMC4xNzYxODQ3OTE5" target="_blank" rel="noopener">Tickets are on sale now</a>.</p>
718<div id="attachment_59153" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-59153" loading="lazy" decoding="async" class="wp-image-59153 size-large" src="https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-1024x682.jpg" alt="Some kids laugh a scream looking at a replica of a dinosaur in the Franklin Institute." width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-59153" class="wp-caption-text">Photo courtesy of ©The Franklin Institute</p></div>
719<h3>
719Kids get a civics lesson</h3>
720<p>The <a href="https://www.pleasetouchmuseum.org/"><strong>Please Touch Museum</strong></a>, which occupies Memorial Hall—an art gallery built for America’s 1876 Centennial Exposition—now features for the Semiquincentennial, <a href="https://www.pleasetouchmuseum.org/discovering-democracy-2/" target="_blank" rel="noopener"><strong>Discovering Democracy</strong></a>. The play-based civics field trip aims to introduce children to the concept of democracy and how it plays a role in their everyday lives. For everyday visits, check out special exhibits featuring the prementioned Slinky, Daniel Tiger, and Paw Patrol.</p>
721<h3>Enter Bear Country</h3>
722<p>The <a href="https://www.philadelphiazoo.org/" target="_blank" rel="noopener"><strong>Philadelphia Zoo</strong></a> — the nation’s first zoo — has announced its largest exhibition project in over a decade with a $20M transformation of <a href="https://www.philadelphiazoo.org/bearcountry/" target="_blank" rel="noopener"><strong><em>Bear Country</em></strong></a>, set for debut in 2026. The expanded exhibit will feature the Zoo360 trail for bears, an off-exhibit space for cub rearing, and enhanced water features and landscaping.</p>
723<h3>The Declaration&#8217;s Journey</h3>
724<p>The <a href="https://www.amrevmuseum.org/" target="_blank" rel="noopener"><strong>Museum of the American Revolution</strong></a>‘s exhibition <a href="https://www.amrevmuseum.org/exhibits/the-declaration-s-journey" target="_blank" rel="noopener"><strong><em>The Declaration’s Journey</em></strong></a> celebrates the Declaration of Independence’s 250-year legacy and global influence on independence movements through rare artifacts and stories. Beyond the exhibit, which runs into January 2027, the museum is running <a href="https://www.amrevmuseum.org/2026-and-beyond" target="_blank" rel="noopener">public programming</a> to examine the idea of independence, revolution, and freedom.</p>
725<div id="attachment_57423" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-57423" loading="lazy" decoding="async" class="size-large wp-image-57423" src="https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1-1024x683.jpg" alt="A woman and a child look over a Museum exhibit case" width="1024" height="683" srcset="https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1-1024x683.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1.jpg 1080w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-57423" class="wp-caption-text">©JPG Photography</p></div>
726<h3>Examining America&#8217;s Founding</h3>
727<p>The 250th birthday is a monumental milestone for the <a href="https://constitutioncenter.org/museum" target="_blank" rel="noopener"><strong>National Constitution Center</strong></a>. The Old City institution’s newest exhibit, <a href="https://constitutioncenter.org/museum/exhibits-programs/americas-founding" target="_blank" rel="noopener"><strong><em>America’s Founding</em></strong></a>, (and its expanded <strong>America’s Founding</strong> gallery), offers a dynamic, interactive exploration of the American Revolution and the creation of the Constitution and Bill of Rights. In addition to awarding the 2026 <strong>Liberty Medal</strong> to <strong>Pope Leo XIV </strong>(see above), the NCC has launched a comprehensive <a href="https://constitutioncenter.org/america-at-250" target="_blank" rel="noopener">digital toolkit</a> that examines the revolutionary ideas of 1776.</p>
728<h3>Untold moments of American Jews during the American Revolution</h3>
729<p>The <a href="https://theweitzman.org/" target="_blank" rel="noopener"><strong>Weitzman National Museum of American Jewish History</strong></a> kicked off its celebrations with a mock cannon salute to mark the opening of its latest exhibition, <a href="https://theweitzman.org/exhibitions/first-salute/" target="_blank" rel="noopener"><em>First Salute,</em></a> in April. This immersive experience tells the story of the tiny Caribbean island of St. Eustatius and its pivotal role in the Revolution. As the museum describes it: “Think Hamilton meets Pirates of the Caribbean.” Visitors can learn how Jewish merchants and Caribbean trade routes helped sustain the Continental Army during the fight for independence.</p>
730<h3>America&#8217;s first bank gets a new look</h3>
731<p>Following a massive restoration project, the <strong>First Bank of the United States</strong> is expected to reopen its doors to the public just ahead of the July 4th festivities. This architectural landmark will serve as a new museum space, focusing on the early American economy and the vision of Alexander Hamilton.</p>
732<p>Start planning a trip for you and your group to Philadelphia in 2026 today! Use our <a href="https://www.discoverphl.com/discover/">plan your trip</a> page to start organizing your Philadelphia adventure now.</p>
733        </div>
734    </div>
735</section>
736<style>
737 .cb05-related-content-columns .cb05-intro {position: relative; z-index: 3;}
738  .cb05-related-content-columns .cb05-intro a {font-size:18px !important; }
739    @media (max-width:767px) {
740    .cb05-related-content-columns .cb05-intro a {
741        font-size: 16px !important;
742    }
743    }
744
745
746</style>
747
748<section  class="p10-block cb05-related-content-columns green-background  has-wave-top has-wave-bottom  " role="group">
749            <svg class="green-wave-top" width="1600" height="129" viewBox="0 0 1600 129" preserveAspectRatio="none" fill="none" xmlns="http://www.w3.org/2000/svg">
750            <path d="M1600 128.052H0V52.5518C0 52.5518 265 -50.9482 766.5 32.5518C1268 116.052 1600 52.5518 1600 52.5518V128.052Z" fill="#054E41" />
751        </svg>
752        <svg class="green-wave-top mobile" width="1600" height="129" viewBox="0 0 1600 129" preserveAspectRatio="xMinYMax" fill="none" xmlns="http://www.w3.org/2000/svg">
753            <path d="M1600 128.052H0V52.5518C0 52.5518 265 -50.9482 766.5 32.5518C1268 116.052 1600 52.5518 1600 52.5518V128.052Z" fill="#054E41" />
754        </svg>
755            <div class="cb05-background-wrap">
756        <div class="cb05-headline-wrap green-background">
757
758                        
759        </div>
760                                   <div class="cb05-headline headline-default  green-background">
761                    <div class="frame">
762                        <h2 class="cb05-title"><span class="underline">Discover More</span></h2>                                            </div>
763                                    </div>
764                    
765
766        <div class="frame">
767            <div class="cb05-content green-background">
768                            <a href="https://www.discoverphl.com/blog-post/fifa-world-cup-2026-in-philadelphia/"  class="cb05-post related-content-card green-background">
769
770                                                <div class="related-content-post-img">
771                        <img src="https://www.discoverphl.com/wp-content/uploads/2024/02/Mexico-vs.-Germany-Game-12-scaled.jpg" alt="" />
772                    </div>
773                                                <div class="related-content-card-info">
774
775                    <span class="post-label-placeholder"></span>                    <h3 class="related-content-post-heading">FIFA World Cup 2026™ in Philadelphia</h3>                    <div class="related-content-description"><p>Philadelphia was selected as one of 11 Host Cities in the United States for FIFA World Cup 2026™ matches....</p><svg xmlns="http://www.w3.org/2000/svg" width="25" height="12" viewBox="0 0 25 12" fill="none"><path d="M25 6L15 0.226497V11.7735L25 6ZM0 7H16V5H0V7Z" fill="white"/></svg></div>
776                </div>
777                            </a>
778                    <a href="https://www.discoverphl.com/blog-post/mlb-all-star-2026/"  class="cb05-post related-content-card green-background">
779
780                                                <div class="related-content-post-img">
781                        <img src="https://www.discoverphl.com/wp-content/uploads/2024/06/2026-MLB-All-Star-Game-Logo-Reveal-Celebration.jpg" alt="" />
782                    </div>
783                                                <div class="related-content-card-info">
784
785                    <span class="post-label-placeholder"></span>                    <h3 class="related-content-post-heading">Philadelphia Hosts 2026 MLB All-Star Game : What to Know</h3>                    <div class="related-content-description"><p>The MLB All-Star Game is coming to Philadelphia in 2026, another can’t miss event during the nation’s semiquincentennial celebra...</p><svg xmlns="http://www.w3.org/2000/svg" width="25" height="12" viewBox="0 0 25 12" fill="none"><path d="M25 6L15 0.226497V11.7735L25 6ZM0 7H16V5H0V7Z" fill="white"/></svg></div>
786                </div>
787                            </a>
788                    <a href="https://www.discoverphl.com/blog-post/celebrate-july-fourth-in-philadelphia/"  class="cb05-post related-content-card green-background">
789
790                                                <div class="related-content-post-img">
791                        <img src="https://www.discoverphl.com/wp-content/uploads/2023/10/Fireworks-photo-credit-Ed-Newton-for-Live-Nation-2-1440x500x72.jpg" alt="" />
792                    </div>
793                                                <div class="related-content-card-info">
794
795                    <span class="post-label-placeholder"></span>                    <h3 class="related-content-post-heading">Celebrate July Fourth in Philadelphia</h3>                    <div class="related-content-description"><p>There is no better place to celebrate America’s birthday than in the city where it all began....</p><svg xmlns="http://www.w3.org/2000/svg" width="25" height="12" viewBox="0 0 25 12" fill="none"><path d="M25 6L15 0.226497V11.7735L25 6ZM0 7H16V5H0V7Z" fill="white"/></svg></div>
796                </div>
797                            </a>
798        
799            </div>
800        </div>
801    </div>
802            <svg class="green-wave-bottom" width="1600" height="129" viewBox="0 0 1600 129" preserveAspectRatio="none" fill="none" xmlns="http://www.w3.org/2000/svg">
803            <path d="M0 0.0517578H1600V75.5518C1600 75.5518 1335 179.052 833.5 95.5518C332 12.0518 0 75.5518 0 75.5518V0.0517578Z" fill="#054E41" />
804        </svg>
805        <svg class="green-wave-bottom mobile" width="1600" height="129" viewBox="0 0 1600 129" preserveAspectRatio="xMidYMin" fill="none" xmlns="http://www.w3.org/2000/svg">
806            <path d="M0 0.0517578H1600V75.5518C1600 75.5518 1335 179.052 833.5 95.5518C332 12.0518 0 75.5518 0 75.5518V0.0517578Z" fill="#054E41" />
807        </svg>
808    
809</section></main>
810
811<footer role="contentinfo">
812    
812<script async src="https://js.adsrvr.org/up_loader.3.0.0.js"></script>
812
813    
813<script>
814        window.ttdConversionEventsLayer = window.ttdConversionEventsLayer || [];
815
816        function ttdConversionEvents() {
817            window.ttdConversionEventsLayer.push(arguments);
818        }
819
820        ttdConversionEvents("init", {
821            advertiserId: "7lhyd1g",
822            pixelIds: ["z17df3x"]
823        });
824
825        ttdConversionEvents("event", {
826            advertiserId: "7lhyd1g",
827            pixelIds: ["z17df3x"]
828        });
829    </script>
829
830
831    <div class="large-frame">
832
833
834        <div class="eb02-footer">
835
836            <div class="footer-left-col">
837                <div class="footer-contact-info">
838                    <img src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/pcvb-logo-full.svg" alt="PCVB Logo" />
839                    <p>1601 Market St, Suite 200
Philadelphia, PA 19103
840</p>                    <a href="tel:215-636-3300">215-636-3300</a>
841                </div>
842            </div>
843            <div class="footer-mid-col">
844                <ul>
845                    <li id="menu-item-6536" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6536"><a href="https://www.discoverphl.com/about/">About</a></li>
846<li id="menu-item-12550" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12550"><a href="https://www.discoverphl.com/contact-our-team/">Contact Our Team</a></li>
847<li id="menu-item-12551" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12551"><a href="https://www.discoverphl.com/about/employment/">Employment</a></li>
848<li id="menu-item-12549" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12549"><a href="https://www.discoverphl.com/about/phlcvb-board/">PHLCVB Board</a></li>
849<li id="menu-item-12547" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12547"><a href="https://www.discoverphl.com/about/phlcvb-foundation/">PHLCVB Foundation</a></li>
850<li id="menu-item-6538" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6538"><a href="https://www.discoverphl.com/press-room/">Press Room</a></li>
851<li id="menu-item-12548" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12548"><a href="https://www.discoverphl.com/about/research/">Research and Resources</a></li>
852                </ul>
853            </div>
854            <div class="footer-right-col">
855                <h2>Sign up for <em>Key to Meetings</em></h2>                <div class="callout-info">
856                    <p>Get exclusive news and updates in our monthly meetings newsletter.</p>                    <a href="https://discoverphl.com/newsletter-sign-up/" target="" class="btn-base light-blue arrow"><span>Sign Up</span><svg xmlns="http://www.w3.org/2000/svg" width="22" height="9" viewBox="0 0 22 9" fill="none"><path d="M22 4.5L14.5 0.169873V8.83013L22 4.5ZM0 5.25H15.25V3.75H0V5.25Z" fill="#FF4D00"/></svg></a>                </div>
857
858                            </div>
859                            <div class="footer-partner-logos">
860                    <p>Strategic Partners</p>
861                    <div class="logos-wrap">
862                                                                                    <a href="https://www.paconvention.com/" class="partner-url" target="_self">
863                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2025/10/PCC-Large-White.png" alt="PCC logo" />
864                                                                    </a>
865                            
866                                                                                    <a href="https://www.visitpa.com/" class="partner-url" target="_self">
867                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2024/05/Full-Logo-One-Color-White.png" alt="Pennsylvania The Great American Getaway" />
868                                                                    </a>
869                            
870                                                                                    <a href="https://www.phila.gov/" class="partner-url" target="_self">
871                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2024/04/Group.png" alt="" />
872                                                                    </a>
873                            
874                                                                                    <a href="https://www.phl.org/" class="partner-url" target="_self">
875                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2025/10/Combined-logo-primary-white-2.png" alt="" />
876                                                                    </a>
877                            
878                                                                                    <a href="https://www.ovpm.org/city/philadelphia-united-states/" class="partner-url" target="_self">
879                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2024/04/World_Heritage-1.png" alt="" />
880                                                                    </a>
881                            
882                                                                                    <a href="https://www.visittheusa.com/" class="partner-url" target="_self">
883                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2025/09/VisitTheUSA_Wordmark_RGB_White-1-1.png" alt="Brand USA logo" />
884                                                                    </a>
885                            
886                                                                                    <a href="https://www.ustravel.org/" class="partner-url" target="_self">
887                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2024/04/US-Travel.png" alt="" />
888                                                                    </a>
889                            
890                                                                                    <a href="https://www.visitphilly.com/" class="partner-url" target="_self">
891                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2024/04/Visit-1.png" alt="" />
892                                                                    </a>
893                            
894                                            </div>
895                </div>
896                    </div>
897        <div class="sub-footer">
898
899            <p class="copyright">&copy; 2026. Philadelphia Convention & Visitors Bureau</p>
900            <ul><li id="menu-item-6539" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-6539"><span class="seperator">|</span><a rel="privacy-policy" href="https://www.discoverphl.com/privacy-policy/">Privacy Policy</a></li>
901<li id="menu-item-54452" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-54452"><span class="seperator">|</span><a href="https://www.discoverphl.com/terms/">Terms</a></li>
902                <li class="menu-item"><span class="seperator">|</span><a href="https://push10.com" rel="noopener" target="_blank"> Web Design by Push10 Branding Agency.</a></li>
903            </ul>
904            <div class="sm-icons-links">
905
906                                        <a href="https://www.facebook.com/discoverPHL" target="_blank" aria-label="fb">
907                            <img src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/facebook.png" alt="facebook account link" />
908                        </a>
909                                        <a href="https://www.instagram.com/discover_PHL/" target="_blank" aria-label="ig">
910                            <img src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/instagram_logo.png" alt="instagram account link" />
911                        </a>
912                                        <a href="https://www.linkedin.com/company/56174" target="_blank" aria-label="li">
913                            <img src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/linkedin.png" alt="linkedin account link" />
914                        </a>
915                
916            </div>
917        </div>
918    </div>
919</footer>
920
921	<div id="pcvbNewsletterPopout" data-targetdepth="30">
922		<button id="pcvbNewsletterPopoutClose" aria-label="close pop-up"></button>
923					<h2>Key to Meetings</h2>
924							<div class="description">Sign up exclusive news and updates in our monthly meetings newsletter.</div>
925				<div class="popout-form-container">
926					
927			
928			<form action="" method="post" name="frm_8" class="pcvbForm" onsubmit="return svcrm.formBuilderScripts.validateForm(this);">
929				<input id="formid" name="formid" type="hidden" value="8">
930				<input id="groupid" name="groupid" type="hidden" value="5">
931				<input id="isSubmitted" name="isSubmitted" value="1"  type="hidden">
932				
933				
934					<h3>Contact Information</h3>
935					
936								<div id="rowcontainer_contact_fname" class="pcvbFormRow">
937									
938											<div id="labelcontainer_contact_fname" class="pcvbFormLabelContainer">
939												<div id="td_contact_fname">
940													<label id="label_contact_fname" for="contact_fname" class="pcvbFormLabel pcvbFormLabelRequired">First Name*:</label>
941													
942												</div>
943											</div>	
944										
945									<div id="fieldcontainer_contact_fname" class="pcvbFormFieldContainer">
946										
947			
948			<input class="pcvbFormField pcvbFormFieldRequired" id="contact_fname" name="contact_fname" type="text" maxlength="50" size="25" value="">
949			
950									</div>									
951								</div>
952							
953								<div id="rowcontainer_contact_lname" class="pcvbFormRow">
954									
955											<div id="labelcontainer_contact_lname" class="pcvbFormLabelContainer">
956												<div id="td_contact_lname">
957													<label id="label_contact_lname" for="contact_lname" class="pcvbFormLabel pcvbFormLabelRequired">Last Name*:</label>
958													
959												</div>
960											</div>	
961										
962									<div id="fieldcontainer_contact_lname" class="pcvbFormFieldContainer">
963										
964			
965			<input class="pcvbFormField pcvbFormFieldRequired" id="contact_lname" name="contact_lname" type="text" maxlength="50" size="25" value="">
966			
967									</div>									
968								</div>
969							
970								<div id="rowcontainer_contact_email" class="pcvbFormRow">
971									
972											<div id="labelcontainer_contact_email" class="pcvbFormLabelContainer">
973												<div id="td_contact_email">
974													<label id="label_contact_email" for="contact_email" class="pcvbFormLabel pcvbFormLabelRequired">Email*:</label>
975													
976												</div>
977											</div>	
978										
979									<div id="fieldcontainer_contact_email" class="pcvbFormFieldContainer">
980										
981			
982			<input class="pcvbFormField pcvbFormFieldRequired" id="contact_email" name="contact_email" type="text" maxlength="200" size="25" value="" onblur="svcrm.formBuilderScripts.checkEmail(this); ">
983			
984									</div>									
985								</div>
986							
987								<div id="rowcontainer_contact_title" class="pcvbFormRow">
988									
989											<div id="labelcontainer_contact_title" class="pcvbFormLabelContainer">
990												<div id="td_contact_title">
991													<label id="label_contact_title" for="contact_title" class="pcvbFormLabel pcvbFormLabelRequired">Title*:</label>
992													
993												</div>
994											</div>	
995										
996									<div id="fieldcontainer_contact_title" class="pcvbFormFieldContainer">
997										
998			
999			<input class="pcvbFormField pcvbFormFieldRequired" id="contact_title" name="contact_title" type="text" maxlength="100" size="25" value="">
1000			
1001									</div>									
1002								</div>
1003							
1004								<div id="rowcontainer_contact_company" class="pcvbFormRow">
1005									
1006											<div id="labelcontainer_contact_company" class="pcvbFormLabelContainer">
1007												<div id="td_contact_company">
1008													<label id="label_contact_company" for="contact_company" class="pcvbFormLabel pcvbFormLabelRequired">Company*:</label>
1009													
1010												</div>
1011											</div>	
1012										
1013									<div id="fieldcontainer_contact_company" class="pcvbFormFieldContainer">
1014										
1015			
1016			<input class="pcvbFormField pcvbFormFieldRequired" id="contact_company" name="contact_company" type="text" maxlength="200" size="25" value="">
1017			
1018									</div>									
1019								</div>
1020							
1021								<div id="rowcontainer_udf_180" class="pcvbFormRow">
1022									
1023											<div id="labelcontainer_udf_180" class="pcvbFormLabelContainer">
1024												<div id="td_udf_180">
1025													<label id="label_udf_180" for="udf_180" class="pcvbFormLabel pcvbFormLabelRequired">Industry*:</label>
1026													
1027												</div>
1028											</div>	
1029										
1030									<div id="fieldcontainer_udf_180" class="pcvbFormFieldContainer">
1031															
1032					<select class="pcvbFormField pcvbFormFieldRequired"  id="udf_180" name="udf_180" >
1033					<option value="">--None--</option> 
1034					<option value="815">Other</option>
1035					
1036					<option value="814">Affinity/Hobby</option>
1037					
1038					<option value="813">Fraternal</option>
1039					
1040					<option value="812">Religious</option>
1041					
1042					<option value="811">Tech</option>
1043					
1044					<option value="810">Finance</option>
1045					
1046					<option value="809">Education</option>
1047					
1048					<option value="808">Healthcare</option>
1049					
1050					</select>
1051				
1052									</div>									
1053								</div>
1054							
1055					<h3>Privacy Policy</h3>
1056					
1057								<div id="rowcontainer_udf_114" class="pcvbFormRow">
1058									
1059													<div id="labelcontainer_udf_114" class="pcvbFormLabelContainer">
1060														<div id="td_udf_114">
1061															<label id="label_udf_114"  class="pcvbFormLabel pcvbFormLabelRequired">I agree to the <a href="https://www.discoverphl.com/about-phlcvb/privacy-policy/" target="_blank" rel="noopener">Privacy Policy</a>*:</label>
1062															
1063														</div>
1064													</div>	
1065												
1066									<div id="fieldcontainer_udf_114" class="pcvbFormFieldContainer">
1067										
1068						<fieldset style='border:0px;'>
1069							<legend style="display:none;">udf_114</legend>
1070					<input  class="pcvbFormField pcvbFormFieldRequired"  id="udf_114_1" name="udf_114" type="radio" value="1"><label  class="pcvbFormLabel pcvbFormLabelRequired"  for="udf_114_1"> Yes </label>
1071					<input  class="pcvbFormField pcvbFormFieldRequired"  id="udf_114_0" name="udf_114" type="radio" value="0"><label class="pcvbFormLabel pcvbFormLabelRequired"  for="udf_114_0"> No </label>
1072						</fieldset>
1073					
1074									</div>									
1075								</div>
1076							
1077
1078				<p class="pcvbFormHint formreq text-center">* Indicates a required field.</p>
1079				<hr size="1" color="cccccc" width="100%">
1080				<div class="pcvbFormCaptchaRow">
1081					<div class="pcvbFormCaptchaContainer">
1082						
1083					</div>
1084				</div>
1085
1086				<hr size="1" color="cccccc" width="100%">
1087				<div class="pcvbFormButtonRow">
1088					<div class="pcvbFormButtonContainer">
1089						<label for="savefrm_button" class="label_hidden">Submit</label>
1090						<input class="pcvbFormButton" id="savefrm_button" name="savefrm" type="Submit" value="Submit">
1091						<label for="resetfrm_button" class="label_hidden">Reset</label>
1092						<input class="pcvbFormButton" id="resetfrm_button" type="Reset" value="Reset">
1093					</div>
1094				</div>
1095			</form>
1096
1097			
1098			
1098<script type="text/javascript">
1099				/*	IP Address Tracking enabled.  IP addresses are being tracked in order to ensure compliance with local privacy laws	*/
1100				var __sv = __sv || {};
1101				
1102					
1103				(function(){
1104					function ___onload_function(){
1105						
1106					};
1107					
1108					
1109					
1110					if(window.addEventListener){
1111						window.addEventListener('load',___onload_function,false);
1112					}else if(window.attachEvent){
1113						window.attachEvent('onload',___onload_function);
1114					}
1115				})();
1116			</script>
1116
1117			
1118			 
1118<script type="text/javascript">
1119			function AoProcessForm(frm){
1120				var changeSaveFrmButtonTypeAndSubmit = function(frm){
1121					try{
1122						if(frm && 'savefrm' in frm && 'type' in frm.savefrm){
1123							frm.savefrm.style.opacity = '0';
1124							frm.savefrm.setAttribute("type","input");
1125						}
1126						frm.submit();
1127					}catch(e){
1128						if(console && 'log' in console){
1129							console.log("Error trying to pass the save button", e);
1130						}
1131					}
1132				};
1133				
1134					var serializeForm = function serialize(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=form.elements.length-1;i>=0;i=i-1){if(form.elements[i].name==="" || form.elements[i].name==="g-recaptcha-response"){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"text":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=form.elements[i].options.length-1;j>=0;j=j-1){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")};
1135					var iframe = document.createElement('iframe');
1136
1137					iframe.id = "A42FD915_E964_6EA1_D022E782190EEDFB";
1138					iframe.style.width = '0';
1139					iframe.style.height = '0';
1140					iframe.style.position='absolute';
1141					iframe.src= 'https://marketing.discoverphl.com/acton/eform/45609/d1c253ff-8d0f-4769-b0a1-c61bc9cc4b23/d-ext-0001';
1142					iframe.src += '?' + serializeForm(frm);
1143					document.body.appendChild(iframe);
1144
1145					
1146					try{
1147						var elm = document.getElementById("A42FD915_E964_6EA1_D022E782190EEDFB");
1148						var hasLoaded = false;
1149						var timesChecked = 0;
1150
1151						var checkForLoadedInterval = window.setInterval(function(){
1152							timesChecked++;
1153							if(timesChecked > 3 || hasLoaded){
1154								window.clearInterval(checkForLoadedInterval);
1155								if(!hasLoaded){
1156									
1157									try{
1158										if(elm.removeEventListener){
1159											elm.removeEventListener("load", weHaveLoadedFunc);
1160										}else if(elm.detachEvent){
1161											elm.detachEvent("onload",weHaveLoadedFunc)
1162										}
1163									}catch(e){}
1164
1165									changeSaveFrmButtonTypeAndSubmit(frm);
1166								}
1167							}
1168						},1000);
1169
1170						var weHaveLoadedFunc = function(){
1171							hasLoaded = true;
1172							
1173							try{window.clearInterval(checkForLoadedInterval);}catch(e){console.log("Error clearing interval",e);}
1174							changeSaveFrmButtonTypeAndSubmit(frm);
1175						}
1176												
1177						if (elm.addEventListener) {
1178							elm.addEventListener("load",weHaveLoadedFunc, false);
1179						} else if (elm.attachEvent) {
1180							elm.attachEvent("onload", weHaveLoadedFunc);
1181						}
1182					}catch(e){
1183						
1184						changeSaveFrmButtonTypeAndSubmit(frm);
1185					}
1186				
1187			}
1188		</script>
1188
1189			
1189<script type="text/javascript">
1190				(function(){
1191	
1192					svcrm = ((typeof svcrm != 'undefined') ? svcrm : {});
1193					svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {});
1194	
1195						svcrm.formBuilderScripts.chkBoxes = function(fld){
1196						var i = 0;
1197						var cnt = 0;					
1198						if(fld.length==undefined && fld.checked == true) return true;
1199						for (i = 0; i < fld.length; i++) {
1200							if (fld[i].checked) {
1201								cnt++;
1202								break;
1203							}
1204						}
1205						if (cnt == 0)
1206							return false;
1207						else
1208							return true;
1209					};
1210	
1211					svcrm.formBuilderScripts.updReq = function(){
1212						var i = 0;
1213						var st = new Array();
1214						var zp = new Array();
1215	
1216						
1217	
1218						return true;
1219					};
1220	
1221					// removes the leading and trailing spaces from a string,
1222					// similar to the java.lang.String.trim() function
1223					// added by lturetsky, taken from http://www.voy.com/1888/58.html
1224					svcrm.formBuilderScripts.trim = function(st){
1225						var len = st.length
1226						var begin = 0, end = len - 1;
1227						while (st.charAt(begin) == " " && begin < len) {
1228							begin++;
1229						}
1230						while (st.charAt(end) == " " && begin < end) {
1231							end--;
1232						}
1233						return st.substring(begin, end+1);
1234					};
1235	
1236	
1237					svcrm.formBuilderScripts.validateForm = function(frm){
1238						var errMsg = '', reqMsg = '', fmtMsg = '';
1239	
1240						
1241							
1242										if (svcrm.formBuilderScripts.trim(document.getElementById('contact_fname').value).length == 0)
1243									
1244										reqMsg += '    First Name\n';
1245								
1246										if (svcrm.formBuilderScripts.trim(document.getElementById('contact_lname').value).length == 0)
1247									
1248										reqMsg += '    Last Name\n';
1249								
1250										if (svcrm.formBuilderScripts.trim(document.getElementById('contact_email').value).length == 0)
1251									
1252										reqMsg += '    Email\n';
1253								
1254									if (!svcrm.formBuilderScripts.checkEmail(document.getElementById('contact_email')))
1255										fmtMsg += '    Please enter a valid email address for: Email\n';
1256								
1257										if (svcrm.formBuilderScripts.trim(document.getElementById('contact_title').value).length == 0)
1258									
1259										reqMsg += '    Title\n';
1260								
1261										if (svcrm.formBuilderScripts.trim(document.getElementById('contact_company').value).length == 0)
1262									
1263										reqMsg += '    Company\n';
1264								
1265									if (document.getElementById('udf_180').selectedIndex == 0)
1266									
1267										reqMsg += '    Industry\n';
1268								
1269									if (!document.getElementById('udf_114_1').checked && !(document.getElementById('udf_114_0').checked))
1270									
1271										reqMsg += '    I agree to the <a href=\"https://www.discoverphl.com/about-phlcvb/privacy-policy/\" target=\"_blank\" rel=\"noopener\">Privacy Policy</a>\n';
1272								
1273	
1274						//only validate the captcha if it is there
1275						var cdElm = document.getElementById('code');
1276						if (cdElm !== null && cdElm.value.length == 0){
1277							reqMsg += '    Image Code\n';
1278						}
1279						
1280						//allow a hook in for custom validations
1281						var customValidations = svcrm.formBuilderScripts.processCustomValidations();
1282						if('reqMsg' in customValidations && customValidations.reqMsg.length){
1283							reqMsg += customValidations.reqMsg;
1284						}
1285						if('fmtMsg' in customValidations && customValidations.fmtMsg.length){
1286							fmtMsg += customValidations.fmtMsg;
1287						}
1288						
1289						return svcrm.formBuilderScripts.processValidationMessages(reqMsg,fmtMsg,frm);
1290					};
1291					
1292					//core will do nothing but gives devs a hook
1293					svcrm.formBuilderScripts.processCustomValidations = function(){
1294						var rtnvar = {reqMsg:'',fmtMsg:''};
1295						return rtnvar;
1296					};
1297					
1298					//might as well split this out so customizations can be made
1299					svcrm.formBuilderScripts.processValidationMessages = function(reqMsg,fmtMsg,frm){
1300						var errMsg = '';
1301						Array.prototype.forEach.call(document.getElementsByName("savefrm"), function(e){e.disabled=true});
1302						if ((reqMsg.length + fmtMsg.length) != 0) {
1303							errMsg = 'This information cannot be sent at this time!\n\n';
1304						if (reqMsg.length > 0)
1305							errMsg += 'The following fields are required!\n' + reqMsg + '\n';
1306	
1307						if (fmtMsg.length > 0)
1308							errMsg += 'The following information is invalid!\n' + fmtMsg + '\n';							
1309	
1310							svcrm.formBuilderScripts.showValidationErrorMsg(errMsg);
1311							Array.prototype.forEach.call(document.getElementsByName("savefrm"), function(e){e.disabled=false});
1312							return false;
1313						}else{
1314							AoProcessForm(frm);
1315							return false;
1316						}
1317					};
1318					
1319					//why not :)
1320					svcrm.formBuilderScripts.showValidationErrorMsg = function(msg){
1321						alert(msg);
1322					};
1323	
1324					svcrm.formBuilderScripts.updateDOB = function(monthFld,dayFld) {
1325						var days = 0;
1326						if (monthFld.selectedIndex == 0) return true;
1327									
1328						switch (monthFld.selectedIndex) {
1329							case 2:
1330								days = 30;
1331								break;
1332							case 4:
1333							case 6:
1334							case 9:
1335							case 11:
1336								days = 31;
1337								break;
1338							default:
1339								days = 32;
1340								break;
1341						}
1342						
1343						if (dayFld.options[dayFld.selectedIndex].value >= days)
1344							dayFld.selectedIndex = days - 1;
1345						
1346						dayFld.length = days;
1347						for (var i = 28; i < days; i++) {
1348							dayFld.options[i].value = String(i);
1349							dayFld.options[i].text = String(i);	
1350						}
1351						return true;
1352					}
1353	
1354				})();
1355			</script>
1355
1356		
1357			
1357<script type="text/javascript">
1358	
1359				
1360					(function(){
1361						svcrm = ((typeof svcrm != 'undefined') ? svcrm : {});
1362						svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {});
1363				
1364	
1365					window.svcrm.formBuilderScripts.states = [{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"AFGHANISTAN","COUNTRYID":239},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ÅLAND ISLANDS","COUNTRYID":272},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ALBANIA","COUNTRYID":1},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ALGERIA","COUNTRYID":2},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"AMERICAN SAMOA","COUNTRYID":3},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ANDORRA","COUNTRYID":4},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ANGOLA","COUNTRYID":250},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ANGUILLA","COUNTRYID":5},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ANTARCTICA","COUNTRYID":256},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ANTIGUA AND BARBUDA","COUNTRYID":6},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ARGENTINA","COUNTRYID":7},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ARMENIA","COUNTRYID":251},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ARUBA","COUNTRYID":8},{"STATES":"&#x1F;**&#x1F;** - ** &#x1F;NSW&#x1F;NSW - New South Wales &#x1F;Qld&#x1F;Qld - Queensland &#x1F;SA&#x1F;SA - South Australia &#x1F;Tas&#x1F;Tas - Tasmania &#x1F;Vic&#x1F;Vic - Victoria &#x1F;WA&#x1F;WA - Western Australia","COUNTRYNAME":"AUSTRALIA","COUNTRYID":9},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"AUSTRIA","COUNTRYID":10},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"AZERBAIJAN","COUNTRYID":252},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BAHAMAS","COUNTRYID":12},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BAHRAIN","COUNTRYID":13},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BANGLADESH","COUNTRYID":14},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BARBADOS","COUNTRYID":15},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BELARUS","COUNTRYID":18},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BELGIUM","COUNTRYID":16},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BELIZE","COUNTRYID":17},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BENIN","COUNTRYID":19},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BERMUDA","COUNTRYID":20},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BHUTAN","COUNTRYID":240},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BOLIVIA, PLURINATIONAL STATE OF","COUNTRYID":21},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BOSNIA AND HERZEGOVINA","COUNTRYID":23},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BOTSWANA","COUNTRYID":24},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BOUVET ISLAND","COUNTRYID":253},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BRAZIL","COUNTRYID":25},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BRITISH INDIAN OCEAN TERRITORY","COUNTRYID":278},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BRUNEI DARUSSALAM","COUNTRYID":27},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BULGARIA","COUNTRYID":28},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BURKINA FASO","COUNTRYID":29},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BURUNDI","COUNTRYID":30},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CAMBODIA","COUNTRYID":31},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CAMEROON","COUNTRYID":32},{"STATES":"&#x1F;**&#x1F;** - ** &#x1F;AB&#x1F;AB - Alberta &#x1F;BC&#x1F;BC - British Columbia &#x1F;MB&#x1F;MB - Manitoba &#x1F;NB&#x1F;NB - New Brunswick &#x1F;NL&#x1F;NL - Newfoundland and Labrador &#x1F;NT&#x1F;NT - Northwest Territory &#x1F;NS&#x1F;NS - Nova Scotia &#x1F;NU&#x1F;NU - Nunavut &#x1F;ON&#x1F;ON - Ontario &#x1F;PE&#x1F;PE - Prince Edward Island &#x1F;QC&#x1F;QC - Quebec &#x1F;SK&#x1F;SK - Saskatchewan &#x1F;YT&#x1F;YT - Yukon","COUNTRYNAME":"CANADA","COUNTRYID":33},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CANARY ISLANDS","COUNTRYID":34},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CAPE VERDE","COUNTRYID":35},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CAYMAN ISLANDS","COUNTRYID":36},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CENTRAL AFRICAN REPUBLIC","COUNTRYID":37},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CHAD","COUNTRYID":38},{"STATES":"&#x1F;**&#x1F;** - ** &#x1F;SAN&#x1F;SAN - Santiago","COUNTRYNAME":"CHILE","COUNTRYID":40},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CHINA","COUNTRYID":41},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CHRISTMAS ISLAND","COUNTRYID":254},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"COCOS (KEELING) ISLANDS","COUNTRYID":241},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"COLOMBIA","COUNTRYID":42},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"COMOROS","COUNTRYID":255},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CONGO","COUNTRYID":43},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CONGO, THE DEMOCRATIC REPUBLIC OF THE","COUNTRYID":274},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"COOK ISLANDS","COUNTRYID":44},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"COSTA RICA","COUNTRYID":45},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CÔTE D'IVOIRE","COUNTRYID":94},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CROATIA","COUNTRYID":46},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CUBA","COUNTRYID":242},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CURACAO","COUNTRYID":47},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CYPRUS","COUNTRYID":48},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CZECH REPUBLIC","COUNTRYID":49},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"DENMARK","COUNTRYID":50},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"DJIBOUTI","COUNTRYID":51},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"DOMINICA","COUNTRYID":52},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"DOMINICAN REPUBLIC","COUNTRYID":53},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ECUADOR","COUNTRYID":54},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"EGYPT","COUNTRYID":55},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"EL SALVADOR","COUNTRYID":56},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"EQUATORIAL GUINEA","COUNTRYID":58},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ERITREA","COUNTRYID":59},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ESTONIA","COUNTRYID":60},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ETHIOPIA","COUNTRYID":61},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FALKLAND ISLANDS (MALVINAS)","COUNTRYID":258},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FAROE ISLANDS","COUNTRYID":62},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FIJI","COUNTRYID":64},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FINLAND","COUNTRYID":65},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FRANCE","COUNTRYID":66},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FRENCH GUIANA","COUNTRYID":67},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FRENCH POLYNESIA","COUNTRYID":197},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FRENCH SOUTHERN TERRITORIES","COUNTRYID":283},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GABON","COUNTRYID":69},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GAMBIA","COUNTRYID":70},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GEORGIA","COUNTRYID":71},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GERMANY","COUNTRYID":72},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GHANA","COUNTRYID":73},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GIBRALTAR","COUNTRYID":74},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GREECE","COUNTRYID":75},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GREENLAND","COUNTRYID":76},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GRENADA","COUNTRYID":77},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUADELOUPE","COUNTRYID":78},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUAM","COUNTRYID":79},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUATEMALA","COUNTRYID":80},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUERNSEY","COUNTRYID":275},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUINEA","COUNTRYID":81},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUINEA-BISSAU","COUNTRYID":82},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUYANA","COUNTRYID":83},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HAITI","COUNTRYID":84},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HEARD ISLAND AND MCDONALD ISLANDS","COUNTRYID":276},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HOLY SEE (VATICAN CITY STATE)","COUNTRYID":236},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HONDURAS","COUNTRYID":86},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HONG KONG","COUNTRYID":87},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HUNGARY","COUNTRYID":88},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ICELAND","COUNTRYID":89},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"INDIA","COUNTRYID":90},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"INDONESIA","COUNTRYID":91},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"IRAN, ISLAMIC REPUBLIC OF","COUNTRYID":235},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"IRAQ","COUNTRYID":238},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"IRELAND","COUNTRYID":234},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ISLE OF MAN","COUNTRYID":277},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ISRAEL","COUNTRYID":92},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ITALY","COUNTRYID":93},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"JAMAICA","COUNTRYID":95},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"JAPAN","COUNTRYID":96},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"JERSEY","COUNTRYID":279},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"JORDAN","COUNTRYID":97},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KAZAKHSTAN","COUNTRYID":98},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KENYA","COUNTRYID":99},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KIRIBATI","COUNTRYID":100},{"STATES":"&#x1F;**&#x1F;
1365** - **","COUNTRYNAME":"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF","COUNTRYID":264},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KOREA, REPUBLIC OF","COUNTRYID":177},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KOSRAE","COUNTRYID":101},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KUWAIT","COUNTRYID":102},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KYRGYZSTAN","COUNTRYID":103},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LAO PEOPLE'S DEMOCRATIC REPUBLIC","COUNTRYID":104},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LATVIA","COUNTRYID":105},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LEBANON","COUNTRYID":106},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LESOTHO","COUNTRYID":107},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LIBERIA","COUNTRYID":108},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LIBYAN ARAB JAMAHIRIYA","COUNTRYID":259},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LIECHTENSTEIN","COUNTRYID":109},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LITHUANIA","COUNTRYID":110},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LUXEMBOURG","COUNTRYID":111},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MACAO","COUNTRYID":112},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF","COUNTRYID":113},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MADAGASCAR","COUNTRYID":114},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MALAWI","COUNTRYID":116},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MALAYSIA","COUNTRYID":117},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MALDIVES","COUNTRYID":118},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MALI","COUNTRYID":119},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MALTA","COUNTRYID":120},{"STATES":"&#x1F;**&#x1F;** - ** &#x1F;MH&#x1F;MH - Marshall Islands","COUNTRYNAME":"MARSHALL ISLANDS","COUNTRYID":121},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MARTINIQUE","COUNTRYID":122},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MAURITANIA","COUNTRYID":123},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MAURITIUS","COUNTRYID":124},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MAYOTTE","COUNTRYID":260},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MEXICO","COUNTRYID":125},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MICRONESIA, FEDERATED STATES OF","COUNTRYID":63},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MOLDOVA, REPUBLIC OF","COUNTRYID":126},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MONACO","COUNTRYID":127},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MONGOLIA","COUNTRYID":261},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MONTENEGRO","COUNTRYID":115},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MONTSERRAT","COUNTRYID":128},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MOROCCO","COUNTRYID":129},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MOZAMBIQUE","COUNTRYID":130},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MYANMAR","COUNTRYID":131},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NAMIBIA","COUNTRYID":132},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NAURU","COUNTRYID":262},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NEPAL","COUNTRYID":133},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NETHERLANDS","COUNTRYID":134},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NETHERLANDS ANTILLES","COUNTRYID":135},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NEW CALEDONIA","COUNTRYID":136},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NEW ZEALAND","COUNTRYID":137},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NICARAGUA","COUNTRYID":138},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NIGER","COUNTRYID":139},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NIGERIA","COUNTRYID":140},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NIUE","COUNTRYID":263},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NORFOLK ISLAND","COUNTRYID":141},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NORTHERN MARIANA ISLANDS","COUNTRYID":143},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NORWAY","COUNTRYID":144},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"OMAN","COUNTRYID":145},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PAKISTAN","COUNTRYID":146},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PALAU","COUNTRYID":147},{"STATES":"&#x1F;**&#x1F;
1365** - **","COUNTRYNAME":"PALESTINIAN TERRITORY, OCCUPIED","COUNTRYID":281},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PANAMA","COUNTRYID":148},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PAPUA NEW GUINEA","COUNTRYID":149},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PARAGUAY","COUNTRYID":150},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PERU","COUNTRYID":151},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PHILIPPINES","COUNTRYID":152},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PITCAIRN","COUNTRYID":265},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"POLAND","COUNTRYID":153},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PONAPE","COUNTRYID":154},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PORTUGAL","COUNTRYID":155},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PUERTO RICO","COUNTRYID":156},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"QATAR","COUNTRYID":157},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"RÉUNION","COUNTRYID":160},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ROMANIA","COUNTRYID":161},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"RUSSIAN FEDERATION","COUNTRYID":163},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"RWANDA","COUNTRYID":164},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SABA","COUNTRYID":165},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT BARTHÉLEMY","COUNTRYID":273},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT HELENA","COUNTRYID":245},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT KITTS AND NEVIS","COUNTRYID":185},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT LUCIA","COUNTRYID":186},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT MARTIN","COUNTRYID":280},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT PIERRE AND MIQUELON","COUNTRYID":269},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT VINCENT AND THE GRENADINES","COUNTRYID":190},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAIPAN","COUNTRYID":166},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAMOA","COUNTRYID":228},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAN MARINO","COUNTRYID":266},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAO TOME AND PRINCIPE","COUNTRYID":267},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAUDI ARABIA","COUNTRYID":167},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SCOTLAND","COUNTRYID":168},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SENEGAL","COUNTRYID":169},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SERBIA","COUNTRYID":284},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SEYCHELLES","COUNTRYID":170},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SIERRA LEONE","COUNTRYID":171},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SINGAPORE","COUNTRYID":172},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SLOVAKIA","COUNTRYID":173},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SLOVENIA","COUNTRYID":174},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SOLOMON ISLANDS","COUNTRYID":175},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SOMALIA","COUNTRYID":244},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SOUTH AFRICA","COUNTRYID":176},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS","COUNTRYID":268},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SPAIN","COUNTRYID":178},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SRI LANKA","COUNTRYID":179},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. BARTHELEMY","COUNTRYID":180},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. CHRISTOPHER","COUNTRYID":181},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. CROIX","COUNTRYID":182},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. EUSTATIUS","COUNTRYID":183},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. JOHN","COUNTRYID":184},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. MAARTEN","COUNTRYID":187},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. MARTIN","COUNTRYID":188},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. THOMAS","COUNTRYID":189},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SUDAN","COUNTRYID":191},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SURINAME","COUNTRYID":192},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SVALBARD AND JAN MAYEN","COUNTRYID":282},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SWAZILAND","COUNTRYID":193},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SWEDEN","COUNTRYID":194},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SWITZERLAND","COUNTRYID":195},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SYRIAN ARAB REPUBLIC","COUNTRYID":196},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TAIWAN, PROVINCE OF CHINA","COUNTRYID":198},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TAJIKISTAN","COUNTRYID":199},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TANZANIA, UNITED REPUBLIC OF","COUNTRYID":200},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"THAILAND","COUNTRYID":201},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TIMOR-LESTE","COUNTRYID":257},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TINIAN","COUNTRYID":202},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TOGO","COUNTRYID":203},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TOKELAU","COUNTRYID":270},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TONGA","COUNTRYID":204},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TORTOLA","COUNTRYID":205},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TRINIDAD AND TOBAGO","COUNTRYID":206},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TRUK","COUNTRYID":207},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TUNISIA","COUNTRYID":208},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TURKEY","COUNTRYID":209},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TURKMENISTAN","COUNTRYID":271},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TURKS AND CAICOS ISLANDS","COUNTRYID":210},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TUVALU","COUNTRYID":211},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UGANDA","COUNTRYID":212},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UKRAINE","COUNTRYID":213},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UNION ISLAND","COUNTRYID":214},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UNITED ARAB EMIRATES","COUNTRYID":215},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UNITED KINGDOM","COUNTRYID":57},{"STATES":"&#x1F;**&#x1F;** - ** &#x1F;AL&#x1F;AL - Alabama &#x1F;AK&#x1F;AK - Alaska &#x1F;AZ&#x1F;AZ - Arizona &#x1F;AR&#x1F;AR - Arkansas &#x1F;CA&#x1F;CA - California &#x1F;CO&#x1F;CO - Colorado &#x1F;CT&#x1F;CT - Connecticut &#x1F;DE&#x1F;DE - Delaware &#x1F;DC&#x1F;DC - District of Columbia &#x1F;FL&#x1F;FL - Florida &#x1F;GA&#x1F;GA - Georgia &#x1F;HI&#x1F;HI - Hawaii &#x1F;ID&#x1F;ID - Idaho &#x1F;IL&#x1F;IL - Illinois &#x1F;IN&#x1F;IN - Indiana &#x1F;IA&#x1F;IA - Iowa &#x1F;KS&#x1F;KS - Kansas &#x1F;KY&#x1F;KY - Kentucky &#x1F;LA&#x1F;LA - Louisiana &#x1F;ME&#x1F;ME - Maine &#x1F;MD&#x1F;MD - Maryland &#x1F;MA&#x1F;MA - Massachusetts &#x1F;MI&#x1F;MI - Michigan &#x1F;MN&#x1F;MN - Minnesota &#x1F;MS&#x1F;MS - Mississippi &#x1F;MO&#x1F;MO - Missouri &#x1F;MT&#x1F;MT - Montana &#x1F;NE&#x1F;NE - Nebraska &#x1F;NV&#x1F;NV - Nevada &#x1F;NH&#x1F;NH - New Hampshire &#x1F;NJ&#x1F;NJ - New Jersey &#x1F;NM&#x1F;NM - New Mexico &#x1F;NY&#x1F;NY - New York &#x1F;NC&#x1F;NC - North Carolina &#x1F;ND&#x1F;ND - North Dakota &#x1F;OH&#x1F;OH - Ohio &#x1F;OK&#x1F;OK - Oklahoma &#x1F;OR&#x1F;OR - Oregon &#x1F;PA&#x1F;PA - Pennsylvania &#x1F;RI&#x1F;RI - Rhode Island &#x1F;SC&#x1F;SC - South Carolina &#x1F;SD&#x1F;SD - South Dakota &#x1F;TN&#x1F;TN - Tennessee &#x1F;TX&#x1F;TX - Texas &#x1F;UT&#x1F;UT - Utah &#x1F;VT&#x1F;VT - Vermont &#x1F;VA&#x1F;VA - Virginia &#x1F;WA&#x1F;WA - Washington &#x1F;WV&#x1F;WV - West Virginia &#x1F;WI&#x1F;WI - Wisconsin &#x1F;WY&#x1F;WY - Wyoming","COUNTRYNAME":"UNITED STATES","COUNTRYID":217},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UNITED STATES MINOR OUTLYING ISLANDS","COUNTRYID":225},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"URUGUAY","COUNTRYID":218},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UZBEKISTAN","COUNTRYID":220},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"VANUATU","COUNTRYID":221},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"VENEZUELA, BOLIVARIAN REPUBLIC OF","COUNTRYID":222},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"VIET NAM","COUNTRYID":223},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"VIRGIN ISLANDS, BRITISH","COUNTRYID":26},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"VIRGIN ISLANDS, U.S.","COUNTRYID":219},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"WALES","COUNTRYID":226},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"WALLIS AND FUTUNA","COUNTRYID":227},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"WESTERN SAHARA","COUNTRYID":246},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"YAP","COUNTRYID":229},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"YEMEN","COUNTRYID":247},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ZAIRE","COUNTRYID":231},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ZAMBIA","COUNTRYID":232},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ZIMBABWE","COUNTRYID":233}];
1366	
1367					svcrm.formBuilderScripts.countryChanged = function(domElm){
1368						
1369	
1370						var oldSelIndexVal = state.value;  //$F('contact_state');
1371						var myStates = new Array();
1372	
1373						 // $('contact_state').options.length = 0;
1374						state.options.length = 0;
1375	
1376						for (var i = 0; i < window.svcrm.formBuilderScripts.states.length; i++) {
1377							if (window.svcrm.formBuilderScripts.states[i].COUNTRYNAME == domElm.options[domElm.selectedIndex].value || window.svcrm.formBuilderScripts.states[i].COUNTRYNAME == '') {
1378								var myObj = new Object();
1379	
1380								var tmp = window.svcrm.formBuilderScripts.states[i].STATES.split('&#x1F;');
1381								for (var x = 0; x < tmp.length; x = x + 2) {
1382									var myObj = new Object();
1383									myObj.statecode = tmp[x - 1];
1384									myObj.statename = tmp[x];
1385									if (tmp[x - 1] == oldSelIndexVal) {
1386										myObj.selected = true;
1387									} else {
1388										myObj.selected = false;
1389									}
1390	
1391									if(!myObj.statecode){
1392										myObj.statecode = '';
1393									}
1394									myStates.push(myObj);
1395								}
1396							}
1397						}
1398	
1399						if (myStates.length > 0) {
1400							for (var i = 0; i < myStates.length; i++) {
1401								 // $('contact_state').options[$('state').options.length] = new Option(myStates[i].statename, myStates[i].statecode, myStates[i].selected, myStates[i].selected);
1402								 state.options[state.options.length] = new Option(myStates[i].statename, myStates[i].statecode, myStates[i].selected, myStates[i].selected);
1403	
1404							}
1405						} else {
1406							// $('contact_state').options.length = 0;
1407							state.options.length = 0;
1408							//$('contact_state').options[$('contact_state').options.length] = new Option("** - **", "");
1409							state.options[state.options.length] = new Option("** - **", "");
1410						}
1411					}
1412	
1413				
1414					})();
1415				
1416			</script>
1416
1417		
1418			
1418<script type="text/javascript">
1419	
1420				
1421					(function(){					
1422						svcrm = ((typeof svcrm != 'undefined') ? svcrm : {});
1423						svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {});
1424				
1425				
1426						window.svcrm.formBuilderScripts._____fileInpElmsRemoved = {}; //being lazy, need a place to store the file inputs that get removed from the form
1427						window.svcrm.formBuilderScripts._____filesUploading = 0; //if this is greater than 0, a file is still uploading.
1428				
1429						//this function is called when a file upload input has a file selected
1430						window.svcrm.formBuilderScripts.submitFileUpload = function(frmname,fldname){
1431							//kill off the old temp input that is used by formbuilder_fileAdd.cfm to know which form element to upload
1432							var oldinp = document.getElementById('thefileweneedtoupload');
1433							if(oldinp){ oldinp.parentNode.removeChild(oldinp); }
1434							
1435							//create the temp input that is used by formbuilder_fileAdd.cfm to know which form element to upload
1436							var inp = document.createElement('input'); inp.type = 'hidden'; inp.name = 'thefileweneedtoupload'; inp.id = 'thefileweneedtoupload'; inp.value = fldname;
1437							document[frmname].appendChild(inp);
1438							
1439							//need to get some things from this input before it is killed so we will it so we can recreate it
1440							var fld = document.getElementById(fldname);
1441							window.svcrm.formBuilderScripts._____fileInpElmsRemoved[fldname] = { id:fld.id, name:fld.name, className:fld.className, tabIndex:fld.tabIndex, onchange:fld.onchange };
1442							
1443							//kill iframe element if one exists
1444							window.svcrm.formBuilderScripts.killFileInputIframeElm(fldname);
1445							
1446							//create iframe to submit to
1447							var iframe = document.createElement('iframe'); iframe.id = 'fileUploaderIframe_'+fldname; iframe.name = 'fileUploaderIframe_'+fldname; iframe.style.display = 'none';
1448							document.body.appendChild(iframe);
1449							
1450							//store the form action before it is changed
1451							var origFormAttributes = {action: document[frmname].action, enctype: document[frmname].enctype};
1452							
1453							//change the form so that it will submit to the webapi and iframe target
1454							document[frmname].action = 'https://PhiladelphiaPA.simpleviewcrm.com/webapi/formbuilder/formbuilder_fileAdd.cfm';
1455							document[frmname].target = 'fileUploaderIframe_'+fldname;
1456							document[frmname].enctype = 'multipart/form-data';
1457							document[frmname].submit();
1458
1459							//add to filesUploading so we don't allow form submissions while files are uploading
1460							window.svcrm.formBuilderScripts._____filesUploading = window.svcrm.formBuilderScripts._____filesUploading + 1;
1461							
1462							//reset the form to submit to where it was originally intended to submit to and remove the target so it doesn't go to the iframe
1463							document[frmname].setAttribute('action',origFormAttributes.action);
1464							document[frmname].setAttribute('enctype',origFormAttributes.enctype);
1465							document[frmname].removeAttribute('target');
1466
1467							// Disable the submit button and add a tool tip to the disabled element so it is clear why you can't submit yet -- useful for large files or slow connections
1468							document.getElementById('savefrm_button').disabled = true;
1469							var tt = document.getElementById('submit_tooltiptext');
1470							if(tt){
1471								//Make the tool tip show up
1472								tt.style.visibility = 'visible';
1473							} else {
1474								// create a new element
1475								var toolTip = document.createElement("span");
1476								var newContent = document.createTextNode("Unable to submit, file upload in progress.");
1477								toolTip.appendChild(newContent);
1478								toolTip.style.backgroundColor = "black";
1479								toolTip.style.color = "white";
1480								toolTip.style.textAlign = "center";
1481								toolTip.style.borderRadius = "6px";
1482								toolTip.style.padding = "4px 2px";
1483								toolTip.setAttribute('id', 'submit_tooltiptext');
1484
1485								// add the newly created element and its content into the DOM
1486								currentDiv = document.getElementById('resetfrm_button');
1487								var br = document.createElement("br"); // but put it on a new line first
1488								currentDiv.parentElement.insertBefore(br, null);
1489								currentDiv.parentElement.insertBefore(toolTip, null);
1490							}
1491						};
1492						
1493						//this function is called by either the formbuilder_fileAdd.cfm window.parent.addFile() call or from the _handlePostMessage() function
1494						//it will take the filename that is returned and set it in the display element and hidden input
1495						//if success==true is not returned we will try to grab the message from errorMsg if passed otherwise will display a generic error message and will try to remove the file input and recreate it
1496						//it is possible that the IIS request filtering will kick 
1496in and prevent us from knowing if it failed but the overall submission will end up getting blocked because the file inputs will still exist
1497						window.svcrm.formBuilderScripts.addFile = function(addFileArgs){
1498							if(typeof addFileArgs.success && addFileArgs.success){
1499								//set the hidden input with the new filename so we can process upon save
1500								document.getElementById(addFileArgs.fldname+'_formbuilder_hidden').value = addFileArgs.newfilename;
1501
1502								//subtract from filesUploading, if we're at 0 all files are finished
1503								window.svcrm.formBuilderScripts._____filesUploading = window.svcrm.formBuilderScripts._____filesUploading - 1;
1504								if (window.svcrm.formBuilderScripts._____filesUploading <= 0) {
1505									//Re-enable submit button
1506									document.getElementById('savefrm_button').disabled = false;
1507									//hide tooltip
1508									var ttip = document.getElementById('submit_tooltiptext');
1509									if (ttip) {
1510										ttip.style.visibility = "hidden";
1511									}
1512								}
1513
1514								//create the delete button for this file
1515								var newBtn = document.createElement('img');
1516								newBtn.src = 'https://PhiladelphiaPA.simpleviewcrm.com/core_crm/webapi/forms/images/delete.png';
1517								newBtn.onclick = function(){window.svcrm.formBuilderScripts.removeFile(addFileArgs.fldname);};
1518								newBtn.alt = 'Remove File?';
1519								newBtn.title = 'Remove File?';
1520								newBtn.style.paddingTop = '5px';
1521								newBtn.style.paddingRight = '5px';
1522								newBtn.style.float = 'left';
1523								
1524								//create the element that will show the file name
1525								var newDiv = document.createElement('div');
1526								newDiv.innerHTML = addFileArgs.newfilename;
1527								newDiv.style.paddingTop = '4px';
1528								newDiv.style.float = 'left';
1529								
1530								//get this file inputs display element and append the delete button and name display elements in it
1531								var dispElm = document.getElementById(addFileArgs.fldname+'_display');
1532								dispElm.appendChild(newBtn);
1533								dispElm.appendChild(newDiv);
1534								
1535								//create an empty div to fix the float for the delete and filename element
1536								var newDiv2 = document.createElement('div');
1537								newDiv2.style.clear = 'both';
1538								dispElm.appendChild(newDiv2);
1539								dispElm.style.display = 'block';	//turn on the display element
1540								
1541								//kill the file input we don't want it anymore unless they remove this file
1542								window.svcrm.formBuilderScripts.killFileInputElm(addFileArgs.fldname);
1543								
1544							}else{
1545								//kill and recreate the element if we can
1546								if(typeof addFileArgs.fldname && addFileArgs.fldname.length){
1547									window.svcrm.formBuilderScripts.killFileInputElm(addFileArgs.fldname);
1548									window.svcrm.formBuilderScripts.recreateFileInputElm(addFileArgs.fldname);
1549								}							
1550								
1551								//if we have a good message display it
1552								alert('There was a problem uploading your file:\n'+((typeof addFileArgs.errorMsg != 'undefined') ? addFileArgs.errorMsg : 'There was a problem uploading your file!' ) );
1553
1554								//subtract from filesUploading, if we're at 0 all files are finished
1555								window.svcrm.formBuilderScripts._____filesUploading = window.svcrm.formBuilderScripts._____filesUploading - 1;
1556
1557                                //Need to make sure that we re-enable the submit button in case it didn't happen above in the IF block
1558                                // otherwise, they can't submit until they fix the issue; we should give them the option to abandon the file upload.
1559								if (window.svcrm.formBuilderScripts._____filesUploading <= 0) {
1560									//Re-enable submit button
1561									document.getElementById('savefrm_button').disabled = false;
1562									//hide tooltip
1563									var ttip = document.getElementById('submit_tooltiptext');
1564									if (ttip) {
1565										ttip.style.visibility = "hidden";
1566									}
1567								}
1568							}
1569							
1570							//kill iframe element if it is still around
1571							window.svcrm.formBuilderScripts.killFileInputIframeElm(addFileArgs.fldname);			
1572						};
1573						
1574						//this function will delete the file input element from the form, it is called when a file input is selected and the form submitted off to the iframe
1575						window.svcrm.formBuilderScripts.killFileInputElm = function(fldId){
1576							var fileInpElmToRemove = document.getElementById(fldId);
1577							fileInpElmToRemove.parentNode.removeChild(fileInpElmToRemove);
1578						};
1579						
1580						//this function will re-create the file input element that was removed when a file was uploaded, this is called when a user clicks the delete button on an image or if we had an erorr upon file upload we wipe the input and recreate so it is empty
1581						window.svcrm.formBuilderScripts.recreateFileInputElm = function(fldId){
1582							var elmstored = window.svcrm.formBuilderScripts._____fileInpElmsRemoved[fldId];
1583							var recreatedElm = document.createElement('input');
1584							recreatedElm.type = 'file';
1585							recreatedElm.id = elmstored.id;
1586							recreatedElm.name = elmstored.name;
1587							recreatedElm.className = elmstored.className;
1588							recreatedElm.tabIndex = elmstored.tabIndex;
1589							recreatedElm.onchange = function(){
1590								document.getElementById(fldId +  '_formbuilder_hidden').value = this.value; 
1591								window.svcrm.formBuilderScripts.submitFileUpload('frm_'+document.getElementById('formid').value, fldId);
1592							};
1593							document.getElementById(fldId+'_container').appendChild(recreatedElm);
1594						}
1595						
1596						//this function will kill off the iframe element if it exists
1597						window.svcrm.formBuilderScripts.killFileInputIframeElm = function(fldname){
1598							var iframeElm = document.getElementById('fileUploaderIframe_'+fldname);
1599							if(iframeElm){iframeElm.parentNode.removeChild(iframeElm);}
1600						};
1601						
1602						//this function will remove the file it will wipe the display and hidden input and recreate the file upload input element
1603						window.svcrm.formBuilderScripts.removeFile = function(fldId){
1604							//try to remove delete this file from temp if exists
1605							try{
1606								//create an iframe and form with a hidden input field that has the name of the file we are trying to wipe
1607								var html = '<html><body onload="document.fileDeleterIframeForm.submit();">';
1608								html += '<form name="fileDeleterIframeForm" action="https://PhiladelphiaPA.simpleviewcrm.com/webapi/formbuilder/formbuilder_fileDelete.cfm" method="post">';
1609								html += '<input type="hidden" name="filenamevalue" id="filenamevalue" value="'+document.getElementById(fldId+'_formbuilder_hidden').value+'" />';
1610								html += '</form>';
1611								html += '<' + '/' + 'body' + '>' + '<' + '/' + 'html' + '>';
1612								
1613								var iframeElm = document.getElementById('fileDeleterIframe_'+fldId);
1614								if(iframeElm){iframeElm.parentNode.removeChild(iframeElm);}
1615								
1616								var iframe = document.createElement('iframe');
1617								iframe.id = 'fileDeleterIframe_'+fldId;
1618								iframe.style.display = 'none';
1619								document.body.appendChild(iframe);
1620								iframe.contentWindow.document.open();
1621								iframe.contentWindow.document.write(html);
1622								iframe.contentWindow.document.close();
1623								
1624							}catch(e){
1625								//nothing for now
1626							}
1627							
1628							document.getElementById(fldId+'_formbuilder_hidden').value = '';
1629							var dispElm = document.getElementById(fldId+'_display');
1630							dispElm.innerHTML = '';
1631							dispElm.style.display = 'none';
1632							
1633							//recreate the element
1634							window.svcrm.formBuilderScripts.recreateFileInputElm(fldId);
1635							
1636						};
1637						
1638						//this function will handle the postMessage's it will make sure that it is coming from the valid crm domain, it will then call the addFile() function passing along the returned json object
1639						var _handlePostMessage = function(evt){
1640							//check for correct postMessage source
1641							if(typeof evt.origin != 'undefined'){
1642								//only run this if we are from the correct domain
1643								var _fixedOrigin = evt.origin + ( (evt.origin.substring(evt.origin.length-1,evt.origin.length) != '/') ? '/' : '');
1644								var crmappurl = 'https://PhiladelphiaPA.simpleviewcrm.com/';
1645								if(_fixedOrigin.toLowerCase().indexOf(crmappurl.toLowerCase()) != -1){			
1646									var _postMsgRtn = {};
1647									try {
1648										_postMsgRtn = JSON.parse(evt.data); //json parse the returned data
1649									} catch (e) {
1650										return false;
1651									}
1652									window.svcrm.formBuilderScripts.addFile(_postMsgRtn);	//we will let the addFile handle any errors the same way as call from within crm form
1653								}
1654							}
1655						};														
1656						if (window.addEventListener) {
1657							window.addEventListener('message', _handlePostMessage, false);
1658						} else if (window.attachEvent) {
1659							window.attachEvent('onmessage', _handlePostMessage);
1660						}
1661	
1662				
1663					})();
1664				
1665			</script>
1665
1666		
1667		
1667<script type="text/javascript">
1668			/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS loadCRMForm +++++++++++++++++++++++++++++++++++++*/
1669				(function(){
1670					var crm_locale = {"SEPARATOR_GROUPING":3,"YAHOO_MDY_MONTH_POSITION":1,"CURRENCY_DECIMALPLACES":2,"DATEFMT_MDONLY":"mm\/dd","NUMBERFORMATTER":"standard","YAHOO_MDY_YEAR_POSITION":3,"ANGULAR_FORMAT_FILE":"en-us","YAHOO_DATE_FIELD_DELIMITER":"\/","YAHOO_START_WEEKDAY":0,"YAHOO_MDY_DAY_POSITION":2,"DOLLARFMT_MASK":"","THOUSANDS_SEPARATOR":",","LOCALE":"en_US","DOLLARFMT":0,"DOLLARFMT_PREFIX":"","NUMBERFMT_MASK":"0,000.00","DATEFMT":"mm\/dd\/yyyy","DECIMAL_SEPARATOR":".","DOLLARFMT_SUFFIX":""};
1671
1672					svcrm = ((typeof svcrm != 'undefined') ? svcrm : {});
1673					svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {});
1674
1675					svcrm.formBuilderScripts.captchaValid = false;
1676					svcrm.formBuilderScripts.validCodeElement = document.getElementById('code');
1677
1678					svcrm.formBuilderScripts.curPopupWindow = null;
1679					svcrm.formBuilderScripts.lastMouseX = null;
1680					svcrm.formBuilderScripts.lastMouseY = null;
1681
1682					svcrm.formBuilderScripts.__onload_function = function(){
1683						svcrm.formBuilderScripts.updReq();
1684
1685						if (svcrm.formBuilderScripts.validCodeElement.addEventListener) {
1686							svcrm.formBuilderScripts.validCodeElement.addEventListener('keyup', svcrm.formBuilderScripts.checkCapMatch, false);
1687						} else if (validCodeElement.attachEvent) {
1688							svcrm.formBuilderScripts.validCodeElement.attachEvent('onkeyup', svcrm.formBuilderScripts.checkCapMatch);
1689						}
1690
1691						var elm = svcrm.formBuilderScripts.validCodeElement;
1692						var found = false;
1693						while(elm.parentNode && !found){
1694							if(elm.parentNode.getElementsByTagName('form') && elm.parentNode.getElementsByTagName('form')[0] && elm.parentNode.getElementsByTagName('form')[0].name.indexOf('frm_') != -1){
1695								elm = elm.parentNode.getElementsByTagName('form')[0];
1696								found = true;
1697							}else{
1698								elm = elm.parentNode;	
1699							}
1700						}
1701
1702						var the_crmform = elm;
1703						the_crmform.id = 'the_crmform';
1704						the_crmform.onsubmit = function(e){
1705							svcrm.formBuilderScripts.checkCapMatch();
1706							if (svcrm.formBuilderScripts.captchaValid !== true){
1707									
1708									alert('This information cannot be sent at this time!\n\nThe 4 character string you entered does not match the image shown.');
1709								
1710								return false;
1711							}else
1712							{
1713								return svcrm.formBuilderScripts.validateForm(the_crmform);
1714							}
1715							return false;
1716						};
1717					};
1718
1719					svcrm.formBuilderScripts.checkCapMatch = function(){
1720						var scriptID = 'captchaCheckJSONP';
1721
1722						//kill the existing one if we have one
1723						if(document.getElementById(scriptID)){
1724							document.getElementById(scriptID).parentNode.removeChild(document.getElementById(scriptID));
1725						}
1726
1727						var validCode = svcrm.formBuilderScripts.validCodeElement.value;
1728						var checkCode = escape( document.getElementById('code_key').value );
1729						if(validCode.length != 4){
1730							svcrm.formBuilderScripts.setCaptchaImg(false); 
1731							return false;
1732						}else{
1733							//jsonP this thing over
1734							var s = document.createElement('script');
1735							s.id = scriptID;
1736							s.type = 'application/javascript';
1737							s.src = 'https://philadelphiapa.simpleviewcrm.com/webapi/formbuilder/checkcaptcha.cfm?validCode='+validCode+'&checkCode='+c
1737heckCode+'&jsonp=svcrm.formBuilderScripts.getCaptchaLookupResults'
1738							document.body.appendChild(s);
1739						}			
1740					};
1741
1742					svcrm.formBuilderScripts.getCaptchaLookupResults = function(rtn){
1743						if (rtn) {
1744							svcrm.formBuilderScripts.setCaptchaImg(true);
1745						}else {
1746							svcrm.formBuilderScripts.setCaptchaImg(false);
1747						}
1748					};
1749
1750					svcrm.formBuilderScripts.setCaptchaImg = function(ok) {
1751						var existingCIMG = document.getElementById('capimage'); 
1752						if (!existingCIMG || existingCIMG.length == 0){
1753							var cimgtag = document.createElement('IMG');
1754							cimgtag.id = 'capimage';
1755							cimgtag.alt= "Verification";
1756
1757							svcrm.formBuilderScripts.validCodeElement.parentNode.appendChild(cimgtag); 
1758							existingCIMG = document.getElementById('capimage'); 
1759						}
1760
1761						if (ok) {
1762							existingCIMG.src = 'https://philadelphiapa.simpleviewcrm.com/core_crm/resources/images/true_ico.gif';
1763							svcrm.formBuilderScripts.captchaValid = true;
1764						}else {
1765							existingCIMG.src = 'https://philadelphiapa.simpleviewcrm.com/core_crm/resources/images/false_ico.gif';
1766							svcrm.formBuilderScripts.captchaValid = false;
1767						}
1768					};
1769
1770
1771					/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS /includes/scripts/formValidations.js +++++++++++++++++++++++++++++++++++++*/
1772						/*Utility Functions, namespaced for nodejs cms sites*/
1773						//Function to format floats
1774						//returns false if invalid
1775						//dec = number of decimal places to show
1776						svcrm.formBuilderScripts.fmtFloat = function(obj, dec){
1777							var lt = "", rt = "", str = ""
1778							var inc = 0, num = 0, tmp = 0
1779							
1780							if (obj.value.length == 0)
1781								obj.value = "0";		
1782
1783							if (!svcrm.formBuilderScripts.checkChars(obj.value, ".,0123456789")) return false;		
1784							
1785							// Check for valid number
1786							svcrm.formBuilderScripts.stripChars(obj, ",");
1787							if (!svcrm.formBuilderScripts.checkNumber(obj.value)) return false;
1788							
1789							//Split number
1790							inc = Math.pow(10, dec);
1791							num = (obj.value * 1.0);
1792							num = Math.round(num * inc) / inc;
1793							str = "" + num;
1794							
1795							tmp = str.indexOf(".");
1796							if (tmp < 0) {
1797								str += ".";
1798								tmp = str.indexOf(".");						
1799							}
1800							
1801							if ((str.length - tmp) <= dec)
1802								for (var i = (str.length - tmp); i <= dec; i++)
1803									str += "0";
1804										
1805							obj.value = str;
1806							return true;	
1807						};
1808
1809						//Function to format integers
1810						//returns false if invalid
1811						svcrm.formBuilderScripts.fmtInt = function(obj){
1812							if (obj.value.length == 0) {
1813								return true;
1814							}
1815							
1816							return (svcrm.formBuilderScripts.checkInteger(obj.value));
1817						};
1818
1819						//Function to formats money fields
1820						//returns false if invalid
1821						svcrm.formBuilderScripts.fmtMoney = function(obj){
1822							var dec = 0, num = "", sign = 0
1823							var dollars = "", cents = ""
1824							var count = 0, tmp = ""
1825							
1826							if (obj.value.length == 0) {
1827								tmp = "0";
1828								cents = ".00";
1829							} else {
1830								if (!svcrm.formBuilderScripts.checkChars(obj.value, "$.,0123456789")) return false;
1831
1832								// Check for valid number		
1833								svcrm.formBuilderScripts.stripChars(obj, ",");				
1834								sign = obj.value.indexOf("$");		
1835								if (sign > 0)
1836									return false;
1837								else {
1838									if (sign == 0)
1839										num = obj.value.substring(1,obj.value.length);
1840									else
1841										num = obj.value;
1842
1843									if (!svcrm.formBuilderScripts.checkNumber(num))
1844										return false;
1845								}
1846
1847								// Check precision, round-up if necessary
1848								if (num.indexOf(".") != -1)
1849									num = "" + (Math.round(num * 100) / 100.0);
1850								
1851								dec = num.indexOf(".");
1852								cents = ((dec > 0) ? num.substring(dec,num.length) : ".00");
1853								if (cents.length == 2) cents += "0";
1854							
1855								// Add commas
1856								dollars = "" + parseInt(num);
1857								for (var i = dollars.length - 1; i >= 0; i--) {
1858									if (count == 3) {
1859									tmp = "," + tmp;
1860										count = 1;
1861									} else  
1862										count ++;
1863							
1864									tmp = dollars.charAt(i) + tmp;
1865								}	
1866							}
1867								
1868							// Format number
1869							num = "$" + tmp + cents;
1870							obj.value = num;	
1871							return true;								
1872						};
1873
1874						//Function to format phone numbers
1875						//returns false if invalid
1876						svcrm.formBuilderScripts.fmtPhone = function(obj){
1877							var phone = "";
1878							var oldphone = "";
1879							
1880							if (obj.value.length == 0) return true;
1881							
1882							//Remove formatting
1883							oldphone = obj.value;
1884							svcrm.formBuilderScripts.stripChars(obj, "- ()");
1885							phone = obj.value;
1886							if (!svcrm.formBuilderScripts.checkChars(phone, "0123456789")) return false;
1887								
1888							if (phone.length == 10)
1889								obj.value = "(" + phone.substring(0,3) + ") " + phone.substring(3,6) +"-" + phone.substring(6,10);
1890							else {
1891								obj.value = oldphone;
1892								return false;
1893							}
1894								
1895							return true;		
1896						};
1897
1898						//Function to format social security numbers
1899						//returns false if invalid
1900						svcrm.formBuilderScripts.fmtSSN = function(obj){
1901							var ssn = ""
1902							
1903							if (obj.value.length == 0) return true;
1904							
1905							//Remove all dashes
1906							svcrm.formBuilderScripts.stripChars(obj, "-");
1907							ssn = obj.value;
1908							if (!svcrm.formBuilderScripts.checkChars(ssn, "0123456789")) return false;
1909								
1910							if (ssn.length == 9)
1911								obj.value = ssn.substring(0,3) + "-" + ssn.substring(3,5) + "-" + ssn.substring(5,9);
1912							else
1913								return false;
1914								
1915							return true;
1916						};
1917
1918						//Function to verify valid URL
1919						svcrm.formBuilderScripts.fmtURL = function(obj){
1920							if (obj.value.length == 0) return true;
1921							
1922							if (obj.value.substring(0,7) != "http://")
1923								obj.value = "http://" + obj.value;
1924								
1925							if (obj.value.length < 10) return false;		
1926							
1927							return true;
1928						};
1929
1930						//Function to format zip codes
1931						//returns false if invalid
1932						svcrm.formBuilderScripts.fmtZip = function(obj){
1933							var numberlist = "0123456789", zip = ""
1934							
1935							if (obj.value.length == 0) return true;
1936							
1937							// Remove dashes
1938							svcrm.formBuilderScripts.stripChars(obj, "-");
1939							zip = obj.value;
1940							if (!svcrm.formBuilderScripts.checkChars(zip, numberlist)) return false;		
1941
1942							if (zip.length == 5)
1943								obj.value = zip;
1944							else if (zip.length == 9)
1945								obj.value = zip.substring(0,5) + "-" + zip.substring(5,9)
1946							else
1947								return false;
1948
1949							//Passed all tests
1950							return true;		
1951						};		
1952
1953						//Returns true if every character is in string list
1954						//otherwise false
1955						svcrm.formBuilderScripts.checkChars = function(val, charlist){
1956							for (var i = 0; i < val.length; i++)
1957								if (charlist.indexOf(val.charAt(i)) < 0)
1958									return false;
1959
1960							//String passed so it is valid							
1961							return true;
1962						};
1963
1964						//Returns true if valid email
1965						//otherwise returns false
1966						svcrm.formBuilderScripts.checkEmail = function(obj){
1967							if (obj.value.length != 0) {
1968								var pattern = /^['&a-zA-Z0-9._%+-]+@(?:[&a-zA-Z0-9-]+\.)+(([a-zA-Z]{2,4})|(aero|coop|info|museum|name|travel))$/;
1969								if (!pattern.test(obj.value)) {
1970									return false;
1971								} else {
1972									return true;
1973								}
1974							}
1975							
1976							// Valid, passed all tests
1977							return true;
1978						};
1979
1980						//Returns true if valid phone
1981						//otherwise returns false
1982						svcrm.formBuilderScripts.checkPhone = function(obj){
1983							if (obj.value.length != 0) {
1984							var pattern = /^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/;
1985								if (!pattern.test(obj.value)) {
1986									return false;
1987								} else {
1988									return true;
1989								}
1990							}
1991							
1992							// Valid, passed all tests
1993							return true;
1994						};
1995
1996						//Returns true if value is a number or is NULL
1997						//otherwise returns false	
1998						svcrm.formBuilderScripts.checkInteger = function(object_value){
1999							if (object_value.length == 0)
2000								return true;
2001									
2002							if (object_value.indexOf(".") < 1)
2003								return svcrm.formBuilderScripts.checkNumber(object_value);
2004							else
2005								return false;
2006						};
2007
2008						//Returns true if value is a number or is NULL
2009						//otherwise returns false	
2010						svcrm.formBuilderScripts.checkNumber = function(object_value){
2011							if (object_value.length == 0)
2012								return true;
2013
2014							//Returns true if value is a number defined as
2015							//   having an optional leading + or -.
2016							//   having at most 1 decimal point.
2017							//   otherwise containing only the characters 0-9.
2018							var start_format = " .+-0123456789";
2019							var number_format = " .0123456789";
2020							var check_char;
2021							var decimal = false;
2022							var trailing_blank = false;
2023							var digits = false;
2024
2025							//The first character can be + - .  blank or a digit.
2026							check_char = start_format.indexOf(object_value.charAt(0))
2027							//Was it a decimal?
2028							if (check_char == 1)
2029								decimal = true;
2030							else if (check_char < 1)
2031								return false;
2032								
2033							//Remaining characters can be only . or a digit, but only one decimal.
2034							for (var i = 1; i < object_value.length; i++) {
2035								check_char = number_format.indexOf(object_value.charAt(i))
2036								if (check_char < 0)
2037									return false;
2038								else if (check_char == 1) {
2039									if (decimal)		// Second decimal.
2040										return false;
2041									else
2042										decimal = true;
2043								} else if (check_char == 0) {
2044									if (decimal || digits)	
2045										trailing_blank = true;
2046								// ignore leading blanks
2047								} else if (trailing_blank)
2048									return false;
2049								else
2050									digits = true;
2051							}	
2052							
2053							//All tests passed
2054							return true
2055						};
2056
2057						//Returns true if value is a posiitve integer or is NULL
2058						//otherwise returns false	
2059						svcrm.formBuilderScripts.checkPosInteger = function(object_value){
2060							if (object_value.indexOf("-") != -1)
2061								return false;
2062							else
2063								return (svcrm.formBuilderScripts.checkInteger(object_value));				
2064						};
2065
2066						//Function to find any char in charlist in the passed string
2067						//Returns true if a character is found
2068						//Otherwise false
2069						svcrm.formBuilderScripts.findChars = function(str, charlist){
2070							for (var i = 0; i < charlist.length; i++) {
2071								if (str.indexOf(charlist.charAt(i)) != -1)
2072									return true;			
2073							}
2074							
2075							return false;
2076						};
2077
2078						//Function to remove all occurances of chars in charlist
2079						svcrm.formBuilderScripts.stripChars = function(obj, charlist){
2080							var i = 0, pos = 0
2081							var val = obj.value
2082							
2083							while (i < val.length) {
2084								pos = charlist.indexOf(val.charAt(i));
2085								if (pos != -1)
2086									val = val.substring(0,i) + val.substring(i + 1, val.length);
2087								else
2088									i++;
2089							}						
2090							
2091							obj.value = val;
2092							return true;
2093						};
2094
2095						svcrm.formBuilderScripts.cntChars = function(val, charlist){
2096							var i = 0, pos = 0, cnt = 0
2097							
2098							for (i = 0; i < val.length; i++) {
2099								pos = charlist.indexOf(val.charAt(i));
2100								if (pos != -1) cnt++;
2101							}						
2102							
2103							return cnt;
2104						};
2105
2106						svcrm.formBuilderScripts.fmtTime = function(fld){
2107							var hr = 0, mn = 0;
2108							var val = fld.value;
2109							
2110							if (val.length == 0) return true;
2111									
2112							var tt = svcrm.formBuilderScripts.strChars(val, '0123456789: ');
2113							
2114							if (tt.length > 0) {
2115								tt = tt.toUpperCase();
2116								if (tt != 'AM' && tt != 'PM') return false;
2117								
2118								val = svcrm.formBuilderScripts.strChars(val, ' ampAMP');
2119							}
2120							
2121							var sepr = val.indexOf(':')
2122							if (sepr == -1) {
2123								hr = val;
2124								mn = 0;
2125							} else {
2126								hr = val.substring(0, sepr);
2127								mn = val.substring(sepr + 1, val.length);		
2128							}
2129							if (isNaN(mn)) mn = 0;	
2130							
2131							if (!svcrm.formBuilderScripts.chkChars(hr, '0123456789')) return false;
2132							if (!svcrm.formBuilderScripts.chkChars(mn, '0123456789')) return false;
2133							if (hr < 0 || hr > 23) return false;
2134							if (mn < 0 || mn > 59) return false;
2135							
2136							if (hr > 12) {
2137								tt = 'PM';
2138								hr = hr - 12;
2139							} else if (hr == 0) {
2140								tt = 'AM';
2141								hr = 12;
2142							}
2143							if (mn.toString().length == 0) mn = 0;
2144							if (tt.length == 0) {
2145								if (hr == 12) 
2146									tt = 'PM';
2147								else if (hr < 7) 
2148									tt = 'PM'; 
2149								else
2150									tt = 'AM';
2151							}
2152							
2153							str = hr;
2154							if (mn.toString().length == 1)
2155								str = str + ':0' + mn;
2156							else
2157								str = str + ':' + mn;
2158							str = str	+ ' ' + tt;
2159							
2160							fld.value = str;
2161							return true;
2162						};
2163
2164						//Function to remove all occurances of chars in charlist
2165						svcrm.formBuilderScripts.strChars = function(val, charlist){
2166							var i = 0, pos = 0
2167							
2168							while (i < val.length) {
2169								pos = charlist.indexOf(val.charAt(i));
2170								if (pos != -1)
2171									val = val.substring(0,i) + val.substring(i + 1, val.length);
2172								else
2173									i++;
2174							}						
2175							
2176							return val;
2177						};
2178
2179						svcrm.formBuilderScripts.chkChars = function (val, charlist){
2180							for (var i = 0; i < val.length; i++)
2181								if (charlist.indexOf(val.charAt(i)) < 0)
2182									return false;
2183
2184							return true;
2185						};
2186					/* +++++++++++++++++++++++++++ END Script copied from OLD CMS /includes/scripts/formValidations.js +++++++++++++++++++++++++++++++++++++*/
2187
2188					/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS /includes/scripts/dateValidate.js +++++++++++++++++++++++++++++++++++++*/
2189						// Author: Bill Simpson
2190						// Company: 220solutions.com
2191						// Email: [email protected]
2192						// Date Created: 02-09-2001
2193						//
2194						// Verifies and converts date strings to a valid format
2195						//
2196						// Valid input dates =
2197						//		mdyy, mmdyy, mmddyy, mmmddyy, mmddyyyy, mmmddyyyy,
2198						//		m/d/yy, m/dd/yy, mm/d/yy, mm/dd/yy, mmm/d/yy, mmm/dd/yy,
2199						//		m/d/yyyy, m/dd/yyyy, mm/d/yyyy, mm/dd/yyyy, mmm/d/yyyy, mmm/dd/yyyy
2200						//	Valid date seperators = '-./:_, '
2201						//
2202						// Notes: Please feel free to use/edit this script.
2203						//		If you do please keep comments and header
2204						//
2205						// Code based on functions from
2206						//   Author: Simon Kneafsey
2207						//   Email: [email protected]
2208						//   WebSite: www.simonkneafsey.co.uk
2209
2210
2211						// Function to convert supplied date string 'fld'
2212						// fld: field containing date string
2213						// sep: seperator to use e.g. '-' or '/'
2214						// returns false if date string is invalid
2215						svcrm.formBuilderScripts.fmtDate = function(fld,sep){
2216							var len = fld.value.length;
2217							var seps = new Array('-','.','/',':','_',',',' ');  // Array of seperators.
2218							var d = '', m = '', y = ''; // date part holders
2219							//var div = ''; // divider holder
2220							//var outdate1 = null; // formatted date to send back to calling field holder
2221							var sepholder = new Array('0','0','0'); // array to hold positions of dividers in dates
2222							var s = String(fld.value);
2223							var outdate = '';
2224
2225							if (len == 0 ) return true;
2226
2227							// Accept 'today' or 'now'
2228							if (fld.value.toUpperCase() == 'NOW' || fld.value.toUpperCase() == 'TODAY' ) {
2229								var newDate = new Date();
2230								var myDay = newDate.getDate();
2231								var myMonth = newDate.getMonth() + 1;
2232									if (navigator.appName == 'Netscape')
2233									var myYear = newDate.getYear() + 2000;
2234									else
2235									var myYear = newDate.getYear();
2236
2237								fld.value = myMonth + "-" + myDay + "-" + myYear;
2238								// update string info
2239								len = fld.value.length;
2240								s = String(fld.value);
2241							}
2242
2243							// Check the date is a valid length
2244							if (len < 4 || len > 11) return false;
2245
2246							// Find positions of divider in the date
2247							var cnt = 0;
2248							for (var i = 0; i < 3; i++) {
2249								for (var j = 0; j < seps.length; j++) {
2250									if (s.indexOf(seps[j],cnt) != -1) {
2251										div = seps[j];
2252										sepholder[i] = s.indexOf(seps[j],cnt);
2253										cnt = sepholder[i] + 1;
2254										break;
2255									}
2256									}
2257								}
2258
2259							// If element 2 is not 0 then more than 2 dividers have been found so date is invali
2259d.
2260							if (sepholder[2] != 0) return false;
2261							
2262							// if no dividers are found strip out date parts
2263							if (sepholder[0] == 0 && sepholder[1] == 0) {
2264								switch (len) {
2265								case 4: // mdyy
2266									m = '0' + s.substring(0,1);
2267									d = '0' + s.substring(1,2);
2268									y = s.substring(2,4);
2269									if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false;
2270									break;
2271								case 5: // mmdyy
2272									m = s.substring(0,2);
2273									d = '0' + s.substring(2,3);
2274									y = s.substring(3,5);
2275									if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false;
2276									break;
2277								case 6: // mmddyy
2278									m = s.substring(0,2);
2279									d = s.substring(2,4);
2280									y = s.substring(4,6);
2281									if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false;
2282									break;
2283								case 7: //mmmddyy
2284									m = s.substring(0,3);
2285									d = s.substring(3,5);
2286									y = s.substring(5,7);
2287									if ((m = svcrm.formBuilderScripts.chkMonth(m)) == false) return false;
2288										if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false;
2289									break;
2290								case 8: //mmddyyyy
2291									m = s.substring(0,2);
2292									d = s.substring(2,4);
2293									y = s.substring(4,8);
2294									break;
2295								case 9: //mmmddyyyy
2296									m = s.substring(0,3);
2297									d = s.substring(3,5);
2298									y = s.substring(5,9);
2299									if ((m = svcrm.formBuilderScripts.chkMonth(m)) == false) return false;
2300									break;
2301								default:
2302									return false;
2303								}
2304								
2305								if ((outdate = svcrm.formBuilderScripts.chkDate(m,d,y,sep)) == false) return false;
2306
2307								// valid date
2308								fld.value = outdate;
2309								return true;
2310							} else if (sepholder[0] != 0 && sepholder[1] != 0) {
2311								// process with dividers
2312								m = s.substring(0, sepholder[0]);
2313								d = s.substring(sepholder[0] + 1, sepholder[1]);
2314								y = s.substring(sepholder[1] + 1, s.length);
2315							} else
2316								// Only one divider
2317								return false;
2318
2319							// Check day and year are numeric
2320							if (isNaN(d) && isNaN(y)) return false;
2321
2322							// Make d day dd
2323							if (d.length == 1) d = '0' + d;
2324							// Make m month mm
2325							if (m.length == 1) m = '0' + m;
2326							// Make yy year yyyy
2327							if (y.length == 2)
2328								if ((y = svcrm.formBuilderScripts.chkYear(y)) == false ) return false;
2329
2330							// Make mmm month mm
2331							if (m.length == 3 || m.length == 4) {
2332								if ((m = svcrm.formBuilderScripts.chkMonth(m)) == false) return false;
2333							}
2334
2335							// Date components are OK
2336							if (d.length != 2 || m.length != 2 || y.length != 4) return false;
2337
2338							// Validate the date
2339							if ((outdate = svcrm.formBuilderScripts.chkDate(m,d,y,sep)) == false) return false;
2340
2341							// Valid date
2342							fld.value = outdate;
2343							return true;
2344						};
2345
2346						// checks for a valid date
2347						// m: month part (2 digit)
2348						// d: day part (2 digit)
2349						// y: year part (4 digit)
2350						// returns:  date string formatted if valid, false if invalid
2351						svcrm.formBuilderScripts.chkDate = function(m, d, y, sep){
2352							var dayArray = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
2353							var dstr = m + d + y;
2354							var filter=/^[0-9]{2}[0-9]{2}[0-9]{4}$/;
2355							
2356							// Check mmddyyyy date supplied
2357							if (!filter.test(dstr)) return false;
2358							
2359							// Check valid month
2360							filter=/01|02|03|04|05|06|07|08|09|10|11|12/;
2361							if (!filter.test(m)) return false;
2362							
2363							// Check year
2364							if (y < 1900 || y > 2078) return false;
2365							
2366							// Check for leap year
2367							var n = Number(y);
2368							if (n % 4 == 0 && (n % 100 != 0 || n % 400 == 0)) dayArray[1] = 29;
2369							
2370							// Check for valid days for month
2371							var mnum = Number(m);
2372							if (d > dayArray[mnum - 1] || d <= 0) return false;
2373							
2374							// Valid date
2375							return m + sep + d + sep + y;
2376						};
2377
2378						// Checks for valid month
2379						// m: month part (3 or 4 digit)
2380						// returns: 2 digit month if valid, false is invalid
2381						svcrm.formBuilderScripts.chkMonth = function(m){
2382							var months = new Array('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC');
2383
2384							m = m.toUpperCase();
2385							if (m.length == 3) {
2386								for (var i = 0; i < 12; i++) {
2387									if (m == months[i]) {
2388										m = i + 1;
2389										if (i < 10)
2390											m = '0' + m;
2391										return m;
2392									}
2393								}
2394							} else if (m.length == 4 && m == 'SEPT') {
2395								m = '09';
2396								return m;
2397							} else
2398								return false;
2399						};
2400
2401						// Check for a valid year
2402						// y: year part (2 digit)
2403						// returns: 4 digit year if valid, false if invalid
2404						svcrm.formBuilderScripts.chkYear = function(y){
2405							if (y < 75) {
2406								y = "20" + y;
2407								return y;
2408							} else if (y >= 75) {
2409								y = "19" + y;
2410								return y;
2411							} else
2412								return false;
2413						};
2414
2415						svcrm.formBuilderScripts.showDate = function(baseURL, fld, frm) {
2416							var urlSeparator = '?';
2417
2418							if("https://philadelphiapa.simpleviewcrm.com/webapi/formbuilder/formbuilder.cfm".indexOf('?') != -1){
2419								urlSeparator = '&';
2420							}
2421
2422							var str = "https://philadelphiapa.simpleviewcrm.com/webapi/formbuilder/formbuilder.cfm" + urlSeparator + "action=popupCal&frm=" + frm + "&fld=" + fld + '&randid=' + new Date().getTime();
2423							if (eval("document." + frm + "." + fld).value.length > 0)
2424								str = str + "&cdate=" + eval("document." + frm + "." + fld).value;
2425							
2426								svcrm.formBuilderScripts.openPopup(str, "calwin", 210, 210, "width=210,height=210,toolbar=no,status=no,directories=no,menubar=no,resizable=no,scrollable=no", true);
2427						};
2428
2429						svcrm.formBuilderScripts.openPopup = function(url, name, pWidth, pHeight, features, snapToLastMousePosition) {
2430							svcrm.formBuilderScripts.openPopupFocus(url, name, pWidth, pHeight, features, snapToLastMousePosition, true);
2431						};
2432
2433						svcrm.formBuilderScripts.closePopup = function(){
2434							if (svcrm.formBuilderScripts.curPopupWindow != null) {
2435								
2436								if (!svcrm.formBuilderScripts.curPopupWindow.closed)
2437									svcrm.formBuilderScripts.curPopupWindow.close();
2438								
2439								svcrm.formBuilderScripts.curPopupWindow = null;
2440							}
2441						};
2442
2443						svcrm.formBuilderScripts.openPopupFocus = function(url, name, pWidth, pHeight, features, snapToLastMousePosition, closeOnLoseFocus) {
2444							svcrm.formBuilderScripts.closePopup();
2445
2446							if (snapToLastMousePosition) {
2447								if (svcrm.formBuilderScripts.lastMouseX - pWidth < 0) {
2448									svcrm.formBuilderScripts.lastMouseX = pWidth;
2449								}
2450								if (svcrm.formBuilderScripts.lastMouseY + pHeight > screen.height) {
2451									svcrm.formBuilderScripts.lastMouseY -= (svcrm.formBuilderScripts.lastMouseY + pHeight + 50) - screen.height;
2452								}
2453								svcrm.formBuilderScripts.lastMouseX -= pWidth;
2454								svcrm.formBuilderScripts.lastMouseY += 10;
2455								features += "screenX=" + svcrm.formBuilderScripts.lastMouseX + ",left=" + svcrm.formBuilderScripts.lastMouseX + "screenY=" + svcrm.formBuilderScripts.lastMouseY + ",top=" + svcrm.formBuilderScripts.lastMouseY;
2456							}
2457
2458							if (closeOnLoseFocus) {
2459								curPopupWindow = window.open(url, name, features, false);
2460								curPopupWindow.focus();
2461							} else {
2462								win = window.open(url, name, features, false);
2463								win.focus();
2464							}
2465						};
2466
2467						svcrm.formBuilderScripts.setLastMousePosition = function(e) {
2468							if (navigator.appName.indexOf("Microsoft") != -1) e = window.event;
2469							svcrm.formBuilderScripts.lastMouseX = e.screenX;
2470							svcrm.formBuilderScripts.lastMouseY = e.screenY;
2471						};
2472					/* +++++++++++++++++++++++++++ END Script copied from OLD CMS /includes/scripts/dateValidate.js +++++++++++++++++++++++++++++++++++++*/
2473
2474					/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS /includes/scripts/ziplookup.js +++++++++++++++++++++++++++++++++++++*/
2475						svcrm.formBuilderScripts.zipLookup = function(fuseroot, zip, fldCity, fldState){	
2476							var scriptID = 'zipLookupJSONP';
2477
2478							//kill the existing one if we have one
2479							if(document.getElementById(scriptID)){
2480								document.getElementById(scriptID).parentNode.removeChild(document.getElementById(scriptID));
2481							}
2482
2483							if (svcrm.formBuilderScripts.trim(zip).length != 5 || !svcrm.formBuilderScripts.checkChars(zip, "0123456789")){
2484								return false;
2485							}else{
2486								//jsonP this thing over
2487								var s = document.createElement('script');
2488								s.id = scriptID;
2489								s.type = 'application/javascript';
2490								s.src = 'https://philadelphiapa.simpleviewcrm.com/webapi/formbuilder/ziplookup.cfm?zip='+zip+'&fldCityId='+fldCity.id+'&fldStateId='+fldState.id+'&jsonp=svcrm.formBuilderScripts.processZipChange'
2491								document.body.appendChild(s);
2492							}
2493						}; 
2494							
2495						svcrm.formBuilderScripts.processZipChange = function(rtn){
2496							var fldCity = document.getElementById(rtn.fldCityId);
2497							var fldState = document.getElementById(rtn.fldStateId);
2498
2499							if (rtn.city.length > 0 && fldCity != '')
2500								fldCity.value = rtn.city;
2501							else if (fldCity != '')
2502								fldCity.value = '';
2503								
2504							if (rtn.state.length > 0 && fldState != '') {
2505								for (var i = 0; i < fldState.options.length; i++) {
2506									if (fldState.options[i].value == rtn.state) {
2507										fldState.selectedIndex = i;
2508										break;
2509									}
2510								}
2511								if (i == fldState.options.length) fldState.selectedIndex = 0;
2512							} else if (fldState != '')
2513								fldState.selectedIndex = 0;
2514						};
2515					/* +++++++++++++++++++++++++++ END Script copied from OLD CMS /includes/scripts/ziplookup.js +++++++++++++++++++++++++++++++++++++*/
2516
2517					/* +++++++++++++++++++++++++++ START Script Calendar +++++++++++++++++++++++++++++++++++++*/
2518						svcrm.formBuilderScripts.fbCalendar = {
2519							today: new Date(),
2520							monthNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
2521							dayList: ['S','M','T','W','T','F','S'],
2522
2523							dayListTds: function(){
2524								var rtn = '';
2525								for(var i = 0; i < this.dayList.length; i++){
2526									rtn += '<td align="center" class="Day" width="22">' + this.dayList[i] + '</td>';
2527								}
2528								return rtn;
2529							},
2530
2531							getPrevMonthDate: function (curDate) {
2532								var y = curDate.getFullYear();
2533								var m = curDate.getMonth();
2534								if (m === 0) { y -= 1; m = 12; }
2535								if (m.toString().length == 1) { m = '0' + m.toString(); }
2536								return m + '/01/' + y;
2537							},
2538
2539							getNextMonthDate: function (curDate) {
2540								var y = curDate.getFullYear();
2541								var m = curDate.getMonth() + 2;
2542								if (m == 13) { y += 1; m = 1; }
2543								if (m.toString().length == 1) { m = '0' + m.toString(); }
2544								return m + '/01/' + y;
2545							},
2546
2547							getPrevYearDate: function(curDate){
2548								var y = curDate.getFullYear()-1;
2549								var m = curDate.getMonth()+1;
2550								if (m.toString().length == 1) { m = '0' + m.toString(); }
2551								return m + '/01/' + y;
2552							},
2553
2554							getNextYearDate: function (curDate) {
2555								var y = curDate.getFullYear() + 1;
2556								var m = curDate.getMonth()+1;
2557								if (m.toString().length == 1) { m = '0' + m.toString(); }
2558								return m + '/01/' + y;
2559							},
2560
2561							getCurMonthName: function (curDate) {
2562								return this.monthNames[curDate.getMonth()];
2563							},
2564
2565							createCal: function (id, sDate, useToday) {
2566								try{
2567									if(sDate){
2568										sDate = new Date(sDate);
2569									}else{
2570										sDate = this.today;
2571									}
2572								} catch (e) {
2573									sDate = this.today;
2574								}
2575
2576								var d = {
2577									inDate: sDate,
2578									today: this.today,
2579									day: sDate.getDate(),
2580									month: sDate.getMonth() + 1,
2581									year: sDate.getFullYear(),
2582									prevMonth: this.getPrevMonthDate(sDate),
2583									nextMonth: this.getNextMonthDate(sDate),
2584
2585									calendar: '    '+
2586									'<div id="fbCalendar" align="center">    ' +
2587										'<div class="fbCalCloseBtn" onclick="svcrm.formBuilderScripts.fbCalendar.showDatePicker(document.getElementById(' + "'datepicker_" + id + "'" + '));">&nbsp;</div> '+
2588										'<table border="0" cellpadding="2" cellspacing="1" width="154">  '+
2589											'<tr>    '+
2590												'<td class="CH"> '+
2591													'<a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getPrevMonthDate(sDate) + '\');"><<</a>&nbsp;&nbsp;' + this.getCurMonthName(sDate) + '&nbsp;&nbsp;<a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getNextMonthDate(sDate) + '\');">>></a> '+
2592												'</td>   '+
2593												'<td align="right" class="CH">   '+
2594													'<a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getPrevYearDate(sDate) + '\');"><<</a>&nbsp;&nbsp;' + sDate.getFullYear() + '&nbsp;&nbsp;<a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getNextYearDate(sDate) + '\');">>></a>'+
2595												'</td>   '+
2596											'</tr>   '+
2597										'</table>    '+
2598										'<table border="0" cellpadding="2" cellspacing="1" width="154">  '+
2599											'<tr bgcolor="#ffffff">' + this.dayListTds() + '</tr>' + this.calDays(id, sDate, useToday) +
2600										'</table>    '+
2601									'</div>'
2602								};
2603
2604								return d.calendar;
2605							},
2606
2607							calDays: function(id, curDate, useToday){
2608								var rtnvar = '';
2609								var numDaysInMonth = new Date(curDate.getFullYear(), curDate.getMonth()+1, 0).getDate();
2610								var startofmonth = new Date();
2611								startofmonth = new Date(curDate.getFullYear(),curDate.getMonth(),1);
2612								var rows = Math.ceil((startofmonth.getDay()+numDaysInMonth)/7);
2613								var cday = 1;
2614								var firstday = startofmonth.getDay()+1;
2615								var lastday = numDaysInMonth;
2616
2617
2618								var loopstart = 0;
2619								var loopend = 0;
2620								var currentDate = new Date();
2621								currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
2622
2623								for(var i = 1; i <= rows; i++){
2624									rtnvar += '<tr bgcolor="#ffffff">';
2625									loopstart = ((i-1)*7)+1;
2626									loopend = loopstart+6;
2627									for(var d = loopstart; d <= loopend; d++){
2628										rtnvar += '<td align="center" bgcolor="#ffffff" class="Day">';
2629										if(d >= firstday && cday <= lastday){
2630											var dt = new Date(curDate.getFullYear(), curDate.getMonth(), cday);
2631											var tmpDt = new Date(curDate.getFullYear(), curDate.getMonth(), curDate.getDate());
2632											var className = (dt.getTime() == tmpDt.getTime() && useToday) ? 'today' : 'Day';
2633											className += dt.getTime() == currentDate.getTime() ? ' currentDay' : '';
2634
2635											var thisdate = this.convertToUserDate(parseInt(dt.getMonth()+1,10) +'/'+parseInt(dt.getDate(),10)+'/'+parseInt(dt.getFullYear(), 10));
2636
2637											rtnvar += '<a class="' + className + '" href="javascript:svcrm.formBuilderScripts.fbCalendar.updateDate(\'' + id + '\',\'' + thisdate + '\');">' + cday + '</a><br>';
2638											cday++;
2639										}else{
2640											rtnvar += '&nbsp;<br />';
2641										}
2642									}
2643									rtnvar += '</tr>';
2644								}
2645
2646								return rtnvar;
2647							},
2648
2649							replaceCal: function (id, sDate) {
2650								var cal = this.createCal(id, sDate, false);
2651								if (document.getElementById(id + '_calendar')) {
2652									document.getElementById(id + '_calendar').innerHTML = cal;
2653								} else {
2654									var newDomElm = document.createElement('div');
2655									newDomElm.style.position = 'absolute';
2656									newDomElm.innerHTML = cal;
2657									newDomElm.id = id + '_calendar';
2658									if (document.getElementById('fieldcontainer_' + id)) {
2659										document.getElementById('fieldcontainer_' + id).appendChild(newDomElm);
2660									}
2661								}
2662
2663								return;
2664							},
2665
2666							updateDate: function(id, curDate){
2667								document.getElementById(id).value = curDate;
2668								//document.getElementById(id).onchange();
2669								if(document.getElementById(id + '_calendar')){
2670									document.getElementById('fieldcontainer_' + id).removeChild(document.getElementById(id + '_calendar'));
2671								}
2672
2673								if(document.getElementById('datepicker_' + id)){
2674									document.getElementById('datepicker_' + id).onclick = function(){
2675										svcrm.formBuilderScripts.fbCalendar.showDatePicker(document.getElementById(id), document.getElementById(id).value);
2676									};
2677								}
2678
2679							},
2680
2681							showDatePicker: function(domElm, curDate){
2682								var cleanID = domElm.id.replace('datepicker_', '');
2683								var sDate = new Date();
2684								if(!document.getElementById(cleanID + '_calendar')){
2685									if(document.getElementById(cleanID)){
2686										try{
2687											if(curDate){
2688												sDate = this.convertToUSDate(curDate);
2689												if(sDate == 'Invalid Date'){
2690													sDate = new Date();
2691												}
2692											}
2693										}catch(e){
2694											sDate = new Date();
2695										}
2696										this.getCalendar(cleanID, sDate);
2697									}
2698								}else{
2699									document.getElementById('fieldcontainer_' + cleanID).removeChild(document.getElementById(cleanID + '_calendar'));
2700								}
2701							},
2702
2703							getCalendar: function(id, curDate){
2704								var newDomElm = document.createElement('div');
2705								newDomElm.style.position = 'absolute';
2706								newDomElm.innerHTML = this.createCal(id, curDate, true);
2707								newDomElm.id = id + '_calendar';
2708								newDomElm.className = 'svcrm_datepicker';
2709								document.getElementById('fieldcontainer_' + id).appendChild(newDomElm);
2710							},
2711
2712							convertToUSDate: function(dte){
2713								var rtnvar = false;
2714								var wrk = dte.split(crm_locale.YAHOO_DATE_FIELD_DELIMITER);
2715								var wrkdate = [];
2716								var mydate = '';
2717								if(wrk.length > 0){
2718									wrkdate[0] = parseInt(wrk[crm_locale.YAHOO_MDY_DAY_POSITION-1],10); //always holds the day
2719									wrkdate[1] = parseInt(wrk[crm_locale.YAHOO_MDY_MONTH_POSITION-1],10); //always holds the month
2720									wrkdate[2] = parseInt(wrk[crm_locale.YAHOO_MDY_YEAR_POSITION-1],10); //always holds the year
2721
2722									if(wrkdate[1] > 0 && wrkdate[1] < 13){ //Validate the months
2723										var monthsWithDaysRegExp = new RegExp("(4|6|9|11)", "gi");
2724										var numdays = 31;
2725										if(wrkdate[1] == 2){//feb
2726											numdays = 28;
2727											//check if leap year
2728											if (wrkdate[2] % 4 === 0 && (wrkdate[2] % 100 !== 0 || wrkdate[2] % 400 === 0)){
2729												numdays = 29;
2730											}
2731										}else if(monthsWithDaysRegExp.test(wrkdate[1])){
2732											numdays = 30;
2733										}
2734
2735										if(wrkdate[0] > 0 && wrkdate[0] <= numdays){ //validate the days in this month
2736											if(wrkdate[2].toString().length == 2){ //if we have a two digit year pad it
2737												wrkdate[2] = chkYear(wrkdate[2]);
2738											}
2739
2740											if(wrkdate[2].toString().length == 4 && !isNaN(wrkdate[2])){ //validate the year, could expand this
2741												/*
2742													we are here we have a valid month 
2743													and we have a valid day for that month 
2744													and we have a valid 4 digit year
2745												*/
2746												//fld.value = wrkdate.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER);
2747												wrk[1] = wrkdate[0]; //put the day back where it should be
2748												wrk[0] = wrkdate[1]; //put the month back where it should be
2749												wrk[2] = wrkdate[2]; //put the year back where it should be
2750												wrkdate = wrk.join("/"); //join on the us delim and return valid
2751												rtnvar = true;
2752											}
2753										}   
2754									}
2755								}
2756
2757								if(!rtnvar){ //if we didn't get a good date from above we use today
2758									wrkdate = new Date();
2759								}
2760								return wrkdate;
2761							},
2762
2763							convertToUserDate: function(dte){
2764								var rtnvar = false;
2765								var wrk = dte.split("/");
2766								var wrkdate = [];
2767								var mydate = '';
2768								if(wrk.length > 0){
2769									wrkdate[0] = parseInt(wrk[1],10); //always holds the day
2770									wrkdate[1] = parseInt(wrk[0],10); //always holds the month
2771									wrkdate[2] = parseInt(wrk[2],10); //always holds the year
2772
2773									if(wrkdate[1] > 0 && wrkdate[1] < 13){ //Validate the months
2774										var monthsWithDaysRegExp = new RegExp("(4|6|9|11)", "gi");
2775										var numdays = 31;
2776										if(wrkdate[1] == 2){//feb
2777											numdays = 28;
2778											//check if leap year
2779											if (wrkdate[2] % 4 === 0 && (wrkdate[2] % 100 !== 0 || wrkdate[2] % 400 === 0)){
2780												numdays = 29;
2781											}
2782										}else if(monthsWithDaysRegExp.test(wrkdate[1])){
2783											numdays = 30;
2784										}
2785
2786										if(wrkdate[0] > 0 && wrkdate[0] <= numdays){ //validate the days in this month
2787											if(wrkdate[2].toString().length == 2){ //if we have a two digit year pad it
2788												wrkdate[2] = chkYear(wrkdate[2]);
2789											}
2790
2791											if(wrkdate[2].toString().length == 4 && !isNaN(wrkdate[2])){ //validate the year, could expand this
2792												/*
2793													we are here we have a valid month 
2794													and we have a valid day for that month 
2795													and we have a valid 4 digit year
2796												*/
2797												//fld.value = wrkdate.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER);
2798												wrk[crm_locale.YAHOO_MDY_DAY_POSITION-1] = wrkdate[0]; //put the day back where it should be
2799												wrk[crm_locale.YAHOO_MDY_MONTH_POSITION-1] = wrkdate[1]; //put the month back where it should be
2800												wrk[crm_locale.YAHOO_MDY_YEAR_POSITION-1] = wrkdate[2]; //put the year back where it should be
2801												wrkdate = wrk.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER); //join on the correct delim and return valid
2802												rtnvar = true;
2803											}
2804										}   
2805									}
2806								}
2807
2808								if(!rtnvar){ //I dont really know what to do here i guess just use today and convert to their date
2809									var t = new Date();
2810									t = t.getMonth()+1 + '/' + t.getDay() + '/' + t.getFullYear();
2811									wrkdate = this.convertToUserDate(t);
2812								}
2813								return wrkdate;
2814							},
2815
2816							convertToUserMDOnlyDate: function(dte){
2817								var dateFormat_MDOnly = crm_locale.DATEFMT_MDONLY.split(crm_locale.YAHOO_DATE_FIELD_DELIMITER);
2818								var _day = dte.getDate().toString();
2819								var _month = (dte.getMonth() + 1).toString();
2820								var _dayFormat = '';
2821								var _monthFormat = '';
2822								var _dayPostion = '';
2823								var _monthPostion = '';
2824
2825								if(dateFormat_MDOnly[0].indexOf('d') != -1){
2826									_dayFormat = dateFormat_MDOnly[0];
2827									_monthFormat = dateFormat_MDOnly[1];
2828									_dayPostion = 0;
2829									_monthPostion = 1;
2830								}else{
2831									_dayFormat = dateFormat_MDOnly[1];
2832									_monthFormat = dateFormat_MDOnly[0];
2833									_dayPostion = 1;
2834									_monthPostion = 0;
2835								}
2836
2837								if(_dayFormat == 'dd' && _day.length != 2){
2838									_day = '0' + _day;
2839								}
2840								if(_monthFormat == 'mm' && _month.length != 2){
2841									_month = '0' + _month;
2842								}
2843
2844								var dsp = [];
2845								dsp[_dayPostion] = _day;
2846								dsp[_monthPostion] = _month;
2847								dsp = dsp.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER);
2848								return dsp;
2849							}
2850							
2851						};
2852					/* +++++++++++++++++++++++++++ END Script Calendar +++++++++++++++++++++++++++++++++++++*/
2853
2854					if (window.addEventListener) {
2855						window.addEventListener('load', svcrm.formBuilderScripts.__onload_function, false);
2856					} else if (window.attachEvent) {
2857						window.attachEvent('onload', svcrm.formBuilderScripts.__onload_function);
2858					}
2859				})();
2860			/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS loadCRMForm +++++++++++++++++++++++++++++++++++++*/			
2861		</script>
2861
2862	
2863		<style type="text/css">
2864			/*** Styling for Forms ***/
2865			form.simpleForm {}
2866			form.simpleForm fieldset {}
2867			form.simpleForm legend {}
2868			form.simpleForm label {}
2869			form.simpleForm label.label_hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;}
2870			form.simpleForm .formreq { color: #B30000;}
2871			form.simpleForm input[type="radio"], form.simpleForm input[type="checkbox"] {}
2872			form.simpleForm input[type="text"] {}
2873			form.simpleForm input.date { cursor: pointer;}
2874			form.simpleForm select {}
2875			form.simpleForm table { background: none; border: none; margin: 0;}
2876			form.simpleForm table tr td  { padding: 0;}
2877			form.simpleForm .captcha {}
2878			
2879			#capimage { height: 17px; width:17px;}
2880
2881			form.simpleForm .svcrm_datepicker {
2882				z-index: 3;
2883			}
2884			#fbCalendar{
2885				background-color: white;
2886				border:1px solid #336699; 
2887				border-radius:2px; 
2888				box-shadow: #336699 1px 1px;
2889			}
2890			#fbCalendar TD { font-size: 12px; font-family: Arial }	
2891			#fbCalendar .Day { font-size: 12px; color: #000000; border:1px solid transparent;}
2892			#fbCalendar .CH { font-size: 12px; color: #336699; font-weight: bold; bgcolor: #cccccc; }
2893			#fbCalendar A.today:link, #fbCalendar A.today:visited{text-decoration:none; color:#000000; font-weight: bold;}
2894			#fbCalendar A.today:hover{text-decoration:none; color:#CC3300; font-weight: bold;}	
2895			#fbCalendar A.Day:link, #fbCalendar A.Day:visited{text-decoration:none; color:#990000; font-weight: normal;}
2896			#fbCalendar A.Day:hover{text-decoration:none; color:#CC3300; font-weight: normal; border:1px solid #000000;}
2897			#fbCalendar A.CH:link, #fbCalendar A.CH:visited{text-decoration:none; color:#336699;}
2898			#fbCalendar A.CH:hover{text-decoration:none; color:#0033FF;}
2899			#fbCalendar A.close:link, #fbCalendar A.close:visited{font-size: 10px; text-decoration:none; color:#666666;}
2900			#fbCalendar A.close:hover{font-size: 10px; text-decoration:underline; color:#666666;}
2901			#fbCalendar A:link, #fbCalendar A:visited{text-decoration:none; color:#000099;}
2902			#fbCalendar A:hover{text-decoration:none; color:#0000FF;}
2903			#fbCalendar .currentDay{border:1px solid #336699; padding: 2px;}
2904			#fbCalendar div.fbCalCloseBtn{
2905				background:transparent url(http://PhiladelphiaPA.simpleviewcrm.com/core_crm/Resources/images/calx.gif) no-repeat;
2906				width:17px;
2907				height:13px;
2908				float:right;
2909				border:2px solid #ffffff;
2910			}
2911			#fbCalendar div.fbCalCloseBtn:hover{
2912				cursor: pointer;
2913				border:2px solid #336699;
2914			}
2915
2916			/*** Mobile ***/
2917			@media only screen and (max-width: 40em) {} 
2918			/*** Tablet ***/
2919			@media only screen and (min-width: 40.063em) and (max-width: 64em) {}
2920
2921			/*** Desktop  ***/
2922			@media only screen and (min-width: 64.063em) {
2923				form.simpleForm label { max-width: 430px; text-align: right;}
2924			} 
2925		</style>
2926			</div>
2927	</div>
2928
2929</div><!-- close #site -->
2930
2931
2932<script type="speculationrules">
2933{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/pcvb/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
2934</script>
vendor: 1 bytes, line 2934
2934
2935<script id="ajax-map-js-extra">
2936var myAjax = {"ajaxurl":"https://www.discoverphl.com/wp-admin/admin-ajax.php"};
2937//# sourceURL=ajax-map-js-extra
2938</script>
vendor: 1 bytes, line 2938
2938
2939<script id="ajax-map-js" src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/js/map/ajax-map.js?ver=7.2"></script>
vendor: 1 bytes, line 2939
2939
2940<script id="push10-ajax-handler-js-extra">
2941var myAjax = {"ajaxurl":"https://www.discoverphl.com/wp-admin/admin-ajax.php"};
2942//# sourceURL=push10-ajax-handler-js-extra
2943</script>
vendor: 1 bytes, line 2943
2943
2944<script id="push10-ajax-handler-js" src="https://www.discoverphl.com/wp-content/themes/pcvb/Push10AjaxHandler/js/ajax/push10-ajax.js?ver=1"></script>
vendor: 1 bytes, line 2944
2944
2945<script id="map-js" src="https://api.mapbox.com/mapbox-gl-js/v2.9.2/mapbox-gl.js?ver=1"></script>
vendor: 1 bytes, line 2945
2945
2946<script id="map_geo-js" src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v4.7.0/mapbox-gl-geocoder.min.js?ver=1"></script>
vendor: 1 bytes, line 2946
2946
2947<script id="simple_pagination-js" src="https://cdnjs.cloudflare.com/ajax/libs/simplePagination.js/1.6/jquery.simplePagination.js?ver=1"></script>
vendor: 1 bytes, line 2947
2947
2948<script id="custom-js" src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/dist/javascript.min.js?ver=1790721207"></script>
vendor: 1 bytes, line 2948
2948
2949<script id="pcvb-newsletter-pop-out-script-js" src="https://www.discoverphl.com/wp-content/themes/pcvb/newsletter-pop-out/pcvb-newsletter-popout.js?ver=1790721207"></script>
vendor: 1 bytes, line 2949
2949
2950<script id="gt_widget_script_60558940-js-before">
2951window.gtranslateSettings = /* document.write */ window.gtranslateSettings || {};window.gtranslateSettings['60558940'] = {"default_language":"en","languages":["zh-CN","nl","en","fr","de","it","pt","ru","es"],"url_structure":"none","detect_browser_language":1,"wrapper_selector":"#gt-wrapper-60558940","horizontal_position":"inline","flags_location":"\/wp-content\/plugins\/gtranslate\/flags\/"};
2952//# sourceURL=gt_widget_script_60558940-js-before
2953</script>
2953<script src="https://www.discoverphl.com/wp-content/plugins/gtranslate/js/ln.js?ver=5.0.1" data-no-optimize="1" data-no-minify="1" data-gt-orig-url="/blog-post/philadelphia-2026/" data-gt-orig-domain="www.discoverphl.com" data-gt-widget-id="60558940" defer></script>
2953<script id="gt_widget_script_53978902-js-before">
2954window.gtranslateSettings = /* document.write */ window.gtranslateSettings || {};window.gtranslateSettings['53978902'] = {"default_language":"en","languages":["zh-CN","nl","en","fr","de","it","pt","ru","es"],"url_structure":"none","detect_browser_language":1,"wrapper_selector":"#gt-wrapper-53978902","horizontal_position":"inline","flags_location":"\/wp-content\/plugins\/gtranslate\/flags\/"};
2955//# sourceURL=gt_widget_script_53978902-js-before
2956</script>
2956<script src="https://www.discoverphl.com/wp-content/plugins/gtranslate/js/ln.js?ver=5.0.1" data-no-optimize="1" data-no-minify="1" data-gt-orig-url="/blog-post/philadelphia-2026/" data-gt-orig-domain="www.discoverphl.com" data-gt-widget-id="53978902" defer></script>
2956<script id="cb05_related_content_columns-js" src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/js/blocks/cb05_related_content_columns.js?ver=1790721207"></script>
vendor: 1 bytes, line 2956
2956
2957<script id="wp-emoji-settings" type="application/json">
2958{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.discoverphl.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}}
2959</script>
vendor: 1 bytes, line 2959
2959
2960<script type="module">
2961/*! This file is auto-generated */
2962var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
2963//# sourceURL=https://www.discoverphl.com/wp-includes/js/wp-emoji-loader.min.js
2964</script>
2964
2965
2966<script>
2967    /*<![CDATA[*/
2968    (function(w, a, b, d, s) {
2969        w[a] = w[a] || {};
2970        w[a][b] = w[a][b] || {
2971            q: [],
2972            track: function(r, e, t) {
2973                this.q.push({
2974                    r: r,
2975                    e: e,
2976                    t: t || +new Date
2977                });
2978            }
2979        };
2980        var e = d.createElement(s);
2981        var f = d.getElementsByTagName(s)[0];
2982        e.async = 1;
2983        e.src = '//marketing.discoverphl.com/cdnr/forpci85/acton/bn/tracker/45609';
2984        f.parentNode.insertBefore(e, f);
2985    })(window, 'ActOn', 'Beacon', document, 'script');
2986    ActOn.Beacon.track(); /*]]>*/
2987</script>
vendor: 1 bytes, line 2987
2987
2988<script type="text/javascript">
2989    ! function() {
2990        if (!document.querySelector("[src*='7512D3C0-5EF5-ABB9-7FDD-7C76C78FA269']")) {
2991            var e = document.createElement("script");
2992            e.type = "text/javascript", e.async = !0, e.src = "//www.rtb123.com/tags/7512D3C0-5EF5-ABB9-7FDD-7C76C78FA269/btp.js";
2993            var t = document.getElementsByTagName("head")[0];
2994            t ? t.appendChild(e, t) : (t = document.getElementsByTagName("script")[0]).parentNode.insertBefore(e, t)
2995        }
2996    }();
2997</script>
2997
2998
2999
3000<script>
3001    document.addEventListener('DOMContentLoaded', function() {
3002        var popup = document.getElementById('popup');
3003        var closePopupBtn = document.getElementById('closePopupBtn');
3004        var popupButton = document.getElementById('popupButton');
3005
3006        function showPopup() {
3007            if (popup) {
3008
3009                popup.style.display = 'flex';
3010            }
3011        }
3012
3013        function hidePopup() {
3014            if (popup) {
3015
3016                popup.style.display = 'none';
3017            }
3018            localStorage.setItem('popupDisplayed', new Date().toISOString());
3019        }
3020
3021        function shouldShowPopup() {
3022            var lastDisplayed = localStorage.getItem('popupDisplayed');
3023            if (!lastDisplayed) return true;
3024
3025            var lastDisplayedDate = new Date(lastDisplayed);
3026            var now = new Date();
3027
3028            return lastDisplayedDate.toDateString() !== now.toDateString();
3029        }
3030
3031        if (shouldShowPopup()) {
3032            showPopup();
3033        }
3034
3035        closePopupBtn.onclick = hidePopup;
3036        popupButton.onclick = hidePopup;
3037
3038        window.onclick = function(event) {
3039            if (event.target == popup) {
3040                hidePopup();
3041            }
3042        }
3043    });
3044
3045    function clickready() {
3046        jQuery("#cb27-keyword-clear").on('click', function() {
3047            jQuery('#cb27-keyword-submit')[0].click();
3048        })
3049    }
3050
3051    setTimeout(clickready, 3000);
3052</script>
3052
3053
3054<script>
3055    document.addEventListener("DOMContentLoaded", function() {
3056        if (document.body.classList.contains('page-id-12466')) {
3057            // Detect iOS Safari only
3058
3059
3060            // Only run on iOS devices
3061            const isIOS = /iphone|ipad|ipod/i.test(navigator.userAgent) && !!navigator.maxTouchPoints;
3062            if (!isIOS) return;
3063
3064            const tables = document.querySelectorAll(".page-id-12466.interior-page .wysiwyg .tablepress");
3065
3066            tables.forEach(function(table) {
3067
3068                // Create track + thumb
3069                const track = document.createElement("div");
3070                track.classList.add("ios-scroll-track");
3071
3072                const thumb = document.createElement("div");
3073                thumb.classList.add("ios-scroll-thumb");
3074
3075                track.appendChild(thumb);
3076                table.parentNode.insertBefore(track, table.nextSibling);
3077
3078                // Calculate and update thumb width + position
3079                function updateThumb() {
3080                    const ratio = table.clientWidth / table.scrollWidth;
3081                    if (ratio >= 1) {
3082                        track.style.display = "none"; // Hide if no scroll needed
3083                        return;
3084                    }
3085                    track.style.display = "block";
3086                    const thumbWidth = Math.max(ratio * track.offsetWidth, 30);
3087                    const maxScroll = table.scrollWidth - table.clientWidth;
3088                    const scrollRatio = maxScroll > 0 ? table.scrollLeft / maxScroll : 0;
3089                    const maxThumbLeft = track.offsetWidth - thumbWidth;
3090
3091                    thumb.style.width = thumbWidth + "px";
3092                    thumb.style.left = (scrollRatio * maxThumbLeft) + "px";
3093                }
3094
3095                // Small delay so layout is fully rendered before first calculation
3096                setTimeout(updateThumb, 100);
3097                window.addEventListener("resize", updateThumb);
3098
3099                // Sync table scroll → thumb
3100                table.addEventListener("scroll", updateThumb);
3101
3102                // Click on track → jump table scroll
3103                track.addEventListener("click", function(e) {
3104                    if (e.target === thumb) return; // ignore clicks on thumb itself
3105                    const rect = track.getBoundingClientRect();
3106                    const clickX = e.clientX - rect.left;
3107                    const ratio = clickX / track.offsetWidth;
3108                    table.scrollLeft = ratio * (table.scrollWidth - table.clientWidth);
3109                });
3110
3111                // Drag thumb to scroll table
3112                let isDragging = false;
3113                let startX = 0;
3114                let startScrollLeft = 0;
3115
3116                thumb.addEventListener("touchstart", function(e) {
3117                    isDragging = true;
3118                    startX = e.touches[0].clientX;
3119                    startScrollLeft = table.scrollLeft;
3120                    e.preventDefault(); // Prevent page scroll while dragging thumb
3121                }, {
3122                    passive: false
3123                });
3124
3125                document.addEventListener("touchmove", function(e) {
3126                    if (!isDragging) return;
3127                    const dx = e.touches[0].clientX - startX;
3128                    const trackScrollableWidth = track.offsetWidth - thumb.offsetWidth;
3129                    if (trackScrollableWidth <= 0) return;
3130                    const scrollRatio = (table.scrollWidth - table.clientWidth) / trackScrollableWidth;
3131                    table.scrollLeft = startScrollLeft + (dx * scrollRatio);
3132                    updateThumb();
3133                }, {
3134                    passive: true
3135                });
3136
3137                document.addEventListener("touchend", function() {
3138                    isDragging = false;
3139                });
3140
3141            });
3142
3143
3144        }
3145    });
3146</script>
3146
3147
3148<script id='satisfiScript' src='https://chat.satis.fi/popup/embedder?popupId=18789'></script>
3148
3149<img src="//advertiser-conversion.clicktripz.com/api/advertisers/v2/conversions?advertiserID=682&format=image" />
3150<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-ffbc3c15bbce2bcb1ca","applicationID":"1318524340","transactionName":"bgNbbUtRWUVVBRIMDldJeFpNWVhYGxUPCwZVAw==","queueTime":0,"applicationTime":2576,"atts":"QkRYGwNLSks=","errorBeacon":"bam.nr-data.net","agent":""}</script>
3150</body>
3151
3152<script type="text/javascript" src="https://snapsea.fra1.cdn.digitaloceanspaces.com/assets/12162022-gallery.js" async></script>
3152
3153
3154</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.