investors.planet.com Open in urlscan Pro
2606:4700:7::a29f:820b  Public Scan

URL: https://investors.planet.com/))/
Submission: On July 08 via api from BE — Scanned from DE

Form analysis 3 forms found in the DOM

POST /PageNotFound.aspx

<form action="/PageNotFound.aspx" method="post" id="Form1">
  <div class="aspNetHidden">
    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="">
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="">
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="">
  </div>
  <script type="text/javascript">
    //<![CDATA[
    var theForm = document.forms['Form1'];
    if (!theForm) {
      theForm = document.Form1;
    }

    function __doPostBack(eventTarget, eventArgument) {
      if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
      }
    }
    //]]>
  </script>
  <script src="/WebResource.axd?d=pynGkmcFUV13He1Qd6_TZDSH1oVlXKNmZSXd3zYZ2Gq6ERm6jivSb4ijerOGYkuGRtePZg2&amp;t=638458917597698506" type="text/javascript"></script>
  <script type="text/javascript">
    //<![CDATA[
    function GetViewType() {
      return '2';
    }

    function GetRevisionNumber() {
      return '1';
    }

    function GetLanguageId() {
      return '1';
    }

    function GetVersionNumber() {
      return '5.129.1.3';
    }

    function GetPoweredBy() {
      return 'q4inc';
    }

    function GetViewDate() {
      {
        return '';
      }
    }

    function GetSignature() {
      {
        return '';
      }
    }
    //]]>
  </script>
  <script src="/WebResource.axd?d=x2nkrMJGXkMELz33nwnakMh5buNcZ-t3T4nCU0ZQt96Kk4JDhdv7pdb3Agzis1zDln1EUlimtVH-8O9nKu6Z_e6vBso1&amp;t=638458917597698506" type="text/javascript"></script>
  <script type="text/javascript">
    //<![CDATA[
    function WebForm_OnSubmit() {
      if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
      return true;
    }
    //]]>
  </script>
  <div class="layout layout--one-column">
    <nav id="nav--mobile-menu" class="nav--mobile right" style="transition: transform 0.5s ease-in-out 0s; display: none;" aria-label="mobile navigation">
      <div class="nav--mobile--inner_toggle_container"><button class="nav--mobile--toggle right" aria-label="Click to open mobile menu" aria-expanded="false" aria-controls="nav--mobile-menu">
          <span class="q4-icon_menu" aria-hidden="true"></span>
        </button></div>
      <div class="nav--mobile--search_container"><label id="navMobileSearchText" class="module-search_text sr-only" for="navMobileSearchInput">Search query</label><input id="navMobileSearchInput" class="nav--mobile--search_container--input"
          name="SearchTerm" form="navMobileSearchForm" type="text" maxlength="256" title="Search query" placeholder="Investor Search"><button id="navMobileSearchBtn" class="nav--mobile--search_container--btn" aria-label="search"
          form="navMobileSearchForm" type="submit"><span class="button_text q4-icon_search" aria-hidden="true"></span></button></div>
      <ul role="menu" class="nav--mobile--panel--topMenu level0">
        <li class="nav--mobile--panel--topMenu--menuItem   selected" role="none">
          <a class="link" target="_self" href="https://investors.planet.com/overview/default.aspx" role="menuitem" tabindex="-1" aria-current="page"><span class="text">Overview</span></a></li>
        <li class="nav--mobile--panel--topMenu--menuItem   " role="none"><a class="link" target="_self" href="https://investors.planet.com/news/default.aspx" role="menuitem" tabindex="-1"><span class="text">News</span></a></li>
        <li class="nav--mobile--panel--topMenu--menuItem has-innerMenu  " role="none"><button id="button--menu-2-mobile" class="button" type="button" aria-controls="menu-2-mobile" aria-role="menuitem" aria-expanded="false" tabindex="-1"><span
              class="text">Events &amp; Presentations</span><span class="icon q4-icon_chevron-right" aria-hidden="true"></span></button>
          <ul id="menu-2-mobile" class="level1 nav--mobile--panel--innerMenu right" role="menu" aria-labelledby="button--menu-2-mobile" tabindex="-1" style="transition: transform 0.5s ease-in-out 0s; opacity: 0; display: none;">
            <li class="nav--mobile--panel--innerMenu--menuItem panel-control" role="none"><button id="button--menu-2-mobile--close" class="button" type="button" aria-label="Click to go back to previous navigation level" aria-controls="menu-2-mobile"
                aria-role="menuitem" aria-haspopup="true" aria-expanded="false" tabindex="-1"><span class="icon q4-icon_chevron-left" aria-hidden="true"></span><span class="text">Back</span></button></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none">
              <a class="link" target="_self" href="https://investors.planet.com/events-and-presentations/events/default.aspx" role="menuitem" tabindex="-1"><span class="text">Events</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none">
              <a class="link" target="_self" href="https://investors.planet.com/events-and-presentations/presentations/default.aspx" role="menuitem" tabindex="-1"><span class="text">Presentations</span></a></li>
          </ul>
        </li>
        <li class="nav--mobile--panel--topMenu--menuItem   " role="none"><a class="link" target="_self" href="https://investors.planet.com/Videos/default.aspx" role="menuitem" tabindex="-1"><span class="text">Videos</span></a></li>
        <li class="nav--mobile--panel--topMenu--menuItem has-innerMenu  " role="none"><button id="button--menu-4-mobile" class="button" type="button" aria-controls="menu-4-mobile" aria-role="menuitem" aria-expanded="false" tabindex="-1"><span
              class="text">Stock Info</span><span class="icon q4-icon_chevron-right" aria-hidden="true"></span></button>
          <ul id="menu-4-mobile" class="level1 nav--mobile--panel--innerMenu right" role="menu" aria-labelledby="button--menu-4-mobile" tabindex="-1" style="transition: transform 0.5s ease-in-out 0s; opacity: 0; display: none;">
            <li class="nav--mobile--panel--innerMenu--menuItem panel-control" role="none"><button id="button--menu-4-mobile--close" class="button" type="button" aria-label="Click to go back to previous navigation level" aria-controls="menu-4-mobile"
                aria-role="menuitem" aria-haspopup="true" aria-expanded="false" tabindex="-1"><span class="icon q4-icon_chevron-left" aria-hidden="true"></span><span class="text">Back</span></button></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none"><a class="link" target="_self" href="/stock-info/default.aspx#stock-quote" role="menuitem" tabindex="-1"><span class="text">Stock Quote</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none"><a class="link" target="_self" href="/stock-info/default.aspx#stock-chart" role="menuitem" tabindex="-1"><span class="text">Stock Chart</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none"><a class="link" target="_self" href="/stock-info/default.aspx#stock-historical" role="menuitem" tabindex="-1"><span class="text">Historical Stock Quote</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none"><a class="link" target="_self" href="/stock-info/default.aspx#calculator" role="menuitem" tabindex="-1"><span class="text">Investment Calculator</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none">
              <a class="link" target="_self" href="https://investors.planet.com/stock-info/analyst-coverage/default.aspx" role="menuitem" tabindex="-1"><span class="text">Analyst Coverage</span></a></li>
          </ul>
        </li>
        <li class="nav--mobile--panel--topMenu--menuItem has-innerMenu  " role="none"><button id="button--menu-5-mobile" class="button" type="button" aria-controls="menu-5-mobile" aria-role="menuitem" aria-expanded="false" tabindex="-1"><span
              class="text">Financials</span><span class="icon q4-icon_chevron-right" aria-hidden="true"></span></button>
          <ul id="menu-5-mobile" class="level1 nav--mobile--panel--innerMenu right" role="menu" aria-labelledby="button--menu-5-mobile" tabindex="-1" style="transition: transform 0.5s ease-in-out 0s; opacity: 0; display: none;">
            <li class="nav--mobile--panel--innerMenu--menuItem panel-control" role="none"><button id="button--menu-5-mobile--close" class="button" type="button" aria-label="Click to go back to previous navigation level" aria-controls="menu-5-mobile"
                aria-role="menuitem" aria-haspopup="true" aria-expanded="false" tabindex="-1"><span class="icon q4-icon_chevron-left" aria-hidden="true"></span><span class="text">Back</span></button></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none">
              <a class="link" target="_self" href="https://investors.planet.com/financials/quarterly-results/default.aspx" role="menuitem" tabindex="-1"><span class="text">Quarterly Results</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none">
              <a class="link" target="_self" href="https://investors.planet.com/financials/sec-filings/default.aspx" role="menuitem" tabindex="-1"><span class="text">SEC Filings</span></a></li>
          </ul>
        </li>
        <li class="nav--mobile--panel--topMenu--menuItem has-innerMenu  " role="none"><button id="button--menu-6-mobile" class="button" type="button" aria-controls="menu-6-mobile" aria-role="menuitem" aria-expanded="false" tabindex="-1"><span
              class="text">Governance</span><span class="icon q4-icon_chevron-right" aria-hidden="true"></span></button>
          <ul id="menu-6-mobile" class="level1 nav--mobile--panel--innerMenu right" role="menu" aria-labelledby="button--menu-6-mobile" tabindex="-1" style="transition: transform 0.5s ease-in-out 0s; opacity: 0; display: none;">
            <li class="nav--mobile--panel--innerMenu--menuItem panel-control" role="none"><button id="button--menu-6-mobile--close" class="button" type="button" aria-label="Click to go back to previous navigation level" aria-controls="menu-6-mobile"
                aria-role="menuitem" aria-haspopup="true" aria-expanded="false" tabindex="-1"><span class="icon q4-icon_chevron-left" aria-hidden="true"></span><span class="text">Back</span></button></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none">
              <a class="link" target="_self" href="https://investors.planet.com/governance/governance-documents/default.aspx" role="menuitem" tabindex="-1"><span class="text">Governance Documents</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none"><a class="link" target="_blank" href="https://www.planet.com/company/#team" role="menuitem" tabindex="-1"><span class="text">Executive Management</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none"><a class="link" target="_blank" href="https://www.planet.com/company/" role="menuitem" tabindex="-1"><span class="text">Board of Directors</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none">
              <a class="link" target="_self" href="https://investors.planet.com/governance/committee-composition/default.aspx" role="menuitem" tabindex="-1"><span class="text">Committee Composition</span></a></li>
          </ul>
        </li>
        <li class="nav--mobile--panel--topMenu--menuItem has-innerMenu  " role="none"><button id="button--menu-7-mobile" class="button" type="button" aria-controls="menu-7-mobile" aria-role="menuitem" aria-expanded="false" tabindex="-1"><span
              class="text">Resources</span><span class="icon q4-icon_chevron-right" aria-hidden="true"></span></button>
          <ul id="menu-7-mobile" class="level1 nav--mobile--panel--innerMenu right" role="menu" aria-labelledby="button--menu-7-mobile" tabindex="-1" style="transition: transform 0.5s ease-in-out 0s; opacity: 0; display: none;">
            <li class="nav--mobile--panel--innerMenu--menuItem panel-control" role="none"><button id="button--menu-7-mobile--close" class="button" type="button" aria-label="Click to go back to previous navigation level" aria-controls="menu-7-mobile"
                aria-role="menuitem" aria-haspopup="true" aria-expanded="false" tabindex="-1"><span class="icon q4-icon_chevron-left" aria-hidden="true"></span><span class="text">Back</span></button></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none">
              <a class="link" target="_self" href="https://investors.planet.com/resources/investor-faqs/default.aspx" role="menuitem" tabindex="-1"><span class="text">Investor FAQs</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none">
              <a class="link" target="_self" href="https://investors.planet.com/resources/investor-email-alerts/default.aspx" role="menuitem" tabindex="-1"><span class="text">Investor Email Alerts</span></a></li>
            <li class="nav--mobile--panel--innerMenu--menuItem   " role="none">
              <a class="link" target="_self" href="https://investors.planet.com/resources/investor-contacts/default.aspx" role="menuitem" tabindex="-1"><span class="text">Investor Contacts</span></a></li>
          </ul>
        </li>
      </ul>
    </nav>
    <div class="layout_inner">
      <div class="layout_header" role="banner">
        <div class="pane pane--header grid--no-gutter">
          <div class="pane_inner"><span class="HeaderPaneDiv"><span class="HeaderPaneDiv1">
                <nav class="nav-data hidden">
                  <ul class="level1">
                    <li class="selected has-children home"><a href="https://investors.planet.com/overview/default.aspx" aria-current="page">Overview</a>
                      <ul class="level2">
                        <li><a href="https://investors.planet.com/news/default.aspx">News</a></li>
                        <li class="has-children"><a href="https://investors.planet.com/events-and-presentations/default.aspx">Events &amp; Presentations</a>
                          <ul class="level3">
                            <li><a href="https://investors.planet.com/events-and-presentations/events/default.aspx">Events</a></li>
                            <li><a href="https://investors.planet.com/events-and-presentations/presentations/default.aspx">Presentations</a></li>
                          </ul>
                        </li>
                        <li><a href="https://investors.planet.com/Videos/default.aspx">Videos</a></li>
                        <li class="has-children"><a href="https://investors.planet.com/stock-info/default.aspx">Stock Info</a>
                          <ul class="level3">
                            <li><a href="/stock-info/default.aspx#stock-quote">Stock Quote</a></li>
                            <li><a href="/stock-info/default.aspx#stock-chart">Stock Chart</a></li>
                            <li><a href="/stock-info/default.aspx#stock-historical">Historical Stock Quote</a></li>
                            <li><a href="/stock-info/default.aspx#calculator">Investment Calculator</a></li>
                            <li><a href="https://investors.planet.com/stock-info/analyst-coverage/default.aspx">Analyst Coverage</a></li>
                          </ul>
                        </li>
                        <li class="has-children"><a href="https://investors.planet.com/financials/quarterly-results/default.aspx">Financials</a>
                          <ul class="level3">
                            <li><a href="https://investors.planet.com/financials/quarterly-results/default.aspx">Quarterly Results</a></li>
                            <li><a href="https://investors.planet.com/financials/sec-filings/default.aspx">SEC Filings</a></li>
                          </ul>
                        </li>
                        <li class="has-children"><a href="https://investors.planet.com/governance/governance-documents/default.aspx">Governance</a>
                          <ul class="level3">
                            <li><a href="https://investors.planet.com/governance/governance-documents/default.aspx">Governance Documents</a></li>
                            <li><a href="https://www.planet.com/company/#team" target="_blank">Executive Management</a></li>
                            <li><a href="https://www.planet.com/company/" target="_blank">Board of Directors</a></li>
                            <li><a href="https://investors.planet.com/governance/committee-composition/default.aspx">Committee Composition</a></li>
                          </ul>
                        </li>
                        <li class="has-children"><a href="https://investors.planet.com/resources/investor-faqs/default.aspx">Resources</a>
                          <ul class="level3">
                            <li><a href="https://investors.planet.com/resources/investor-faqs/default.aspx">Investor FAQs</a></li>
                            <li><a href="https://investors.planet.com/resources/investor-email-alerts/default.aspx">Investor Email Alerts</a></li>
                            <li><a href="https://investors.planet.com/resources/investor-contacts/default.aspx">Investor Contacts</a></li>
                          </ul>
                        </li>
                      </ul>
                    </li>
                  </ul>
                </nav>
              </span><span class="HeaderPaneDiv2">
                <div id="_ctrl0_ctl09_divModuleContainer" class="module module-embed module-skip">
                  <div class="module_container module_container--outer">
                    <div class="module_container module_container--inner">
                      <a class="module-skip_link" href="#maincontent">Skip to main content</a>
                    </div>
                  </div>
                </div>
              </span><span class="HeaderPaneDiv3">
                <div id="_ctrl0_ctl12_divModuleContainer" class="module module-embed module-logo grid_col grid_col--1-of-6 grid_col--lc-1-of-2 grid_col--md-1-of-2 grid_col--sm-1-of-2">
                  <div class="module_container module_container--outer">
                    <div class="module_container module_container--inner">
                      <a href="https://www.planet.com/"><img src="//s29.q4cdn.com/903184914/files/design/svg/planet-logo.svg" alt="Planet labs Logo"></a>
                    </div>
                  </div>
                </div>
              </span><span class="HeaderPaneDiv4">
                <div id="_ctrl0_ctl15_divModuleContainer" class="module module-embed nav--desktop--container grid_col grid_col--5-of-6">
                  <div class="module_container module_container--outer">
                    <div class="module_container module_container--inner">
                      <nav class="nav--desktop hoz">
                        <ul class="nav--desktop--list--topMenu level0" role="menu">
                          <li class="nav--desktop--list--topMenu--menuItem   selected" role="none"><a class="link" target="_self" href="https://investors.planet.com/overview/default.aspx" aria-current="page"><span class="text">Overview</span></a>
                          </li>
                          <li class="nav--desktop--list--topMenu--menuItem   " role="none"><a class="link" target="_self" href="https://investors.planet.com/news/default.aspx"><span class="text">News</span></a></li>
                          <li class="nav--desktop--list--topMenu--menuItem has-innerMenu  " role="none"><button id="button--menu-2-desktop" class="button" type="button" aria-controls="menu-2-desktop" aria-haspopup="true" aria-expanded="false"><span
                                class="text">Events &amp; Presentations</span><span class="icon q4-icon_chevron-down" aria-hidden="true"></span></button>
                            <ul id="menu-2-desktop" class="level1 nav--desktop--list--innerMenu" role="menu" aria-labelledby="button--menu-2-desktop" tabindex="-1" style="opacity: 0; display: none;">
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none">
                                <a class="link" target="_self" href="https://investors.planet.com/events-and-presentations/events/default.aspx" role="menuitem"><span class="text">Events</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none">
                                <a class="link" target="_self" href="https://investors.planet.com/events-and-presentations/presentations/default.aspx" role="menuitem"><span class="text">Presentations</span></a></li>
                            </ul>
                          </li>
                          <li class="nav--desktop--list--topMenu--menuItem   " role="none"><a class="link" target="_self" href="https://investors.planet.com/Videos/default.aspx"><span class="text">Videos</span></a></li>
                          <li class="nav--desktop--list--topMenu--menuItem has-innerMenu  " role="none"><button id="button--menu-4-desktop" class="button" type="button" aria-controls="menu-4-desktop" aria-haspopup="true" aria-expanded="false"><span
                                class="text">Stock Info</span><span class="icon q4-icon_chevron-down" aria-hidden="true"></span></button>
                            <ul id="menu-4-desktop" class="level1 nav--desktop--list--innerMenu" role="menu" aria-labelledby="button--menu-4-desktop" tabindex="-1" style="opacity: 0; display: none;">
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none"><a class="link" target="_self" href="/stock-info/default.aspx#stock-quote" role="menuitem"><span class="text">Stock Quote</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none"><a class="link" target="_self" href="/stock-info/default.aspx#stock-chart" role="menuitem"><span class="text">Stock Chart</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none"><a class="link" target="_self" href="/stock-info/default.aspx#stock-historical" role="menuitem"><span class="text">Historical Stock Quote</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none"><a class="link" target="_self" href="/stock-info/default.aspx#calculator" role="menuitem"><span class="text">Investment Calculator</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none">
                                <a class="link" target="_self" href="https://investors.planet.com/stock-info/analyst-coverage/default.aspx" role="menuitem"><span class="text">Analyst Coverage</span></a></li>
                            </ul>
                          </li>
                          <li class="nav--desktop--list--topMenu--menuItem has-innerMenu  " role="none"><button id="button--menu-5-desktop" class="button" type="button" aria-controls="menu-5-desktop" aria-haspopup="true" aria-expanded="false"><span
                                class="text">Financials</span><span class="icon q4-icon_chevron-down" aria-hidden="true"></span></button>
                            <ul id="menu-5-desktop" class="level1 nav--desktop--list--innerMenu" role="menu" aria-labelledby="button--menu-5-desktop" tabindex="-1" style="opacity: 0; display: none;">
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none">
                                <a class="link" target="_self" href="https://investors.planet.com/financials/quarterly-results/default.aspx" role="menuitem"><span class="text">Quarterly Results</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none">
                                <a class="link" target="_self" href="https://investors.planet.com/financials/sec-filings/default.aspx" role="menuitem"><span class="text">SEC Filings</span></a></li>
                            </ul>
                          </li>
                          <li class="nav--desktop--list--topMenu--menuItem has-innerMenu  " role="none"><button id="button--menu-6-desktop" class="button" type="button" aria-controls="menu-6-desktop" aria-haspopup="true" aria-expanded="false"><span
                                class="text">Governance</span><span class="icon q4-icon_chevron-down" aria-hidden="true"></span></button>
                            <ul id="menu-6-desktop" class="level1 nav--desktop--list--innerMenu" role="menu" aria-labelledby="button--menu-6-desktop" tabindex="-1" style="opacity: 0; display: none;">
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none">
                                <a class="link" target="_self" href="https://investors.planet.com/governance/governance-documents/default.aspx" role="menuitem"><span class="text">Governance Documents</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none"><a class="link" target="_blank" href="https://www.planet.com/company/#team" role="menuitem"><span class="text">Executive Management</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none"><a class="link" target="_blank" href="https://www.planet.com/company/" role="menuitem"><span class="text">Board of Directors</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none">
                                <a class="link" target="_self" href="https://investors.planet.com/governance/committee-composition/default.aspx" role="menuitem"><span class="text">Committee Composition</span></a></li>
                            </ul>
                          </li>
                          <li class="nav--desktop--list--topMenu--menuItem has-innerMenu  " role="none"><button id="button--menu-7-desktop" class="button" type="button" aria-controls="menu-7-desktop" aria-haspopup="true" aria-expanded="false"><span
                                class="text">Resources</span><span class="icon q4-icon_chevron-down" aria-hidden="true"></span></button>
                            <ul id="menu-7-desktop" class="level1 nav--desktop--list--innerMenu" role="menu" aria-labelledby="button--menu-7-desktop" tabindex="-1" style="opacity: 0; display: none;">
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none">
                                <a class="link" target="_self" href="https://investors.planet.com/resources/investor-faqs/default.aspx" role="menuitem"><span class="text">Investor FAQs</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none">
                                <a class="link" target="_self" href="https://investors.planet.com/resources/investor-email-alerts/default.aspx" role="menuitem"><span class="text">Investor Email Alerts</span></a></li>
                              <li class="nav--desktop--list--innerMenu--menuItem   " role="none">
                                <a class="link" target="_self" href="https://investors.planet.com/resources/investor-contacts/default.aspx" role="menuitem"><span class="text">Investor Contacts</span></a></li>
                            </ul>
                          </li>
                        </ul>
                        <div id="navDesktopSearch" class="nav--desktop--search_container" aria-describedby="search-tip"><label id="navDesktopSearchText" class="nav--desktop--search_container--text module-search_text sr-only"
                            for="navDesktopSearchInput">Search query</label><button id="navDesktopSearchBtn" class="nav--desktop--search_container--btn" form="navDesktopSearchForm" type="button" aria-label="Click to open search" aria-expanded="false"
                            aria-haspopup="true" aria-controls="navDesktopSearchInput"><span class="button_text q4-icon_search" aria-hidden="true"></span></button><input id="navDesktopSearchInput" class="nav--desktop--search_container--input closed"
                            name="SearchTerm" form="navDesktopSearchForm" type="text" maxlength="256" title="Search query" placeholder="Investor Search" style="display: none;"></div><span id="search-tip" class="tooltip" role="tooltip"
                          aria-hidden="true" aria-label="Search">Search</span>
                      </nav>
                      <button class="nav--mobile--toggle right" aria-label="Click to open mobile menu" aria-expanded="false" aria-controls="nav--mobile-menu">
                        <span class="q4-icon_menu" aria-hidden="true"></span>
                      </button>
                      <script>
                        $('.nav-data').nav({
                          styleMobile: 'panel',
                        });
                      </script>
                    </div>
                  </div>
                </div>
              </span><span class="HeaderPaneDiv3">
                <div id="_ctrl0_ctl52_divModuleContainer" class="module module-embed">
                  <div class="module_container module_container--outer">
                    <div class="module_container module_container--inner">
                      <script>
                        /**
                         * Reuseable functions used on Q4 Websites
                         * @class q4.app
                         */
                        //  IE11 forEach Polyfill
                        if (window.NodeList && !NodeList.prototype.forEach) {
                          NodeList.prototype.forEach = Array.prototype.forEach;
                        }
                        /** @lends q4.app */
                        var q4Defaults = {
                          options: {
                            /**
                             * Scroll speed for `scrollTo`
                             */
                            scrollSpeed: 1000,
                            /**
                             * Offset used with the `scrollTo` method to account for fixed headers
                             */
                            headerOffset: function() {
                              return 0;
                            },
                            /**
                             * Any mailing list with this class will have their validation overwritten
                             */
                            mailingListSignupCls: '.module-subscribe--fancy',
                            /**
                             * Error message to display (i.e. mailing list signup / unsubscribe)
                             */
                            errorMessage: 'The following errors must be corrected',
                            /**
                             * Text to display if an item is required for validation
                             */
                            requiredText: 'is required',
                            /**
                             * Text to display if an entry is invalid and failed validation
                             */
                            invalidText: 'is invalid',
                            /**
                             * Text to display if captcha is required. `requiredText` and `invalidText` will often proceed this text (i.e Code is required)
                             */
                            captchaValidationText: 'Code',
                            /**
                             * Text used if a code is required.
                             */
                            provideCodeText: 'Please provide the code',
                            /**
                             * Custom template for email validation
                             */
                            errorTpl: ('<p class="module_message module_message--error">{{errorMessage}}</p>' + '<div>' + '   {{#errors}}' + '       <p class="module_message module_message--validation_error">&#8226; {{name}} {{message}}</p>' +
                              '   {{/errors}}' + '</div>'),
                            mailingListConfig: {
                              /**
                               * Template to overwrite mailing list signup confirmation html.
                               */
                              tpl: ('<div id="SubscriberConfirmation" class="module module-subscribe module-subscribe--fancy dark grid_col grid_col--3-of-6 grid_col--md-1-of-2">' + '   <div class="module_container--outer">' +
                                  '       <h2 class="module_title">Email Alerts</h2>' + '       <div class="module_container--inner">' + '           <p class="module_message module_message--success"></p>' + '       </div>' + '   </div>' + '</div>'
                                  ),
                              fancyOpts: {},
                              hideOnConfirmation: '.module-subscribe-privacy',
                              location: '.pane--footer',
                              submitText: 'Submit' //this will change the text of the submit button on the on the mailing List
                            },
                            /**
                             * Contrast function options
                             */
                            contrast: {
                              toggle: '.module-contrast_button',
                              toggleClass: 'js--active',
                              bodyClass: 'js--contrast'
                            },
                            /**
                             * Enable superfish plugin
                             */
                            superfish: true
                          },
                          /**
                           * A test used to detect whether not the device satisfies a certain OS
                           * @example if (app.isMobile.any()) { // If on a mobile device, execute code }
                           */
                          isMobile: {
                            Android: function() {
                              return navigator.userAgent.match(/Android/i);
                            },
                            BlackBerry: function() {
                              return navigator.userAgent.match(/BlackBerry/i);
                            },
                            iOS: function() {
                              return navigator.userAgent.match(/iPhone|iPad|iPod/i);
                            },
                            Opera: function() {
                              return navigator.userAgent.match(/Opera Mini/i);
                            },
                            Windows: function() {
                              return navigator.userAgent.match(/IEMobile/i) || navigator.userAgent.match(/WPDesktop/i);
                            },
                            any: function() {
                              return (this.Android() || this.BlackBerry() || this.iOS() || this.Opera() || this.Windows());
                            }
                          },
                          // Default init function
                          init: function() {},
                          /**
                           * Function than can be used to trim text or create expandable text upon click on another element.
                           * @param {$selector} [selector]  the element which needs to be trimmed.
                           * @param {maxChar} [number] number of characters to be trimmed
                           * @param {moreText} [string] text for element that can be clicked to reveal the rest of the trimmed text. Defaults to 'show more'
                           * @param {lessText} [string] text for element that can be clicked to hide the rest of the trimmed text. Defaults to 'show less'
                           * @param {ellipsesText} [string] text used for ellipsis. Defaults to '...'
                           * @example app.trim($('.selector'), 200);
                           */
                          trim: function($selector, maxChar, moreText, lessText, ellipsesText) {
                            maxChar = maxChar ? maxChar : 0;
                            moreText = moreText ? '<span class="trimmed_more" tabindex="0">' + moreText + '</span>' : '<span class="trimmed_more" tabindex="0">show more</span>';
                            lessText = lessText ? '<span class="trimmed_less js--hidden" tabindex="0">' + lessText + '</span>' : '<span class="trimmed_less js--hidden" tabindex="0">show less</span>';
                            ellipsesText = ellipsesText ? '<span class="trimmed_ellipse">' + ellipsesText + '</span>' : '<span class="trimmed_ellipse">...</span>';
                            $selector.each(function() {
                              var $this = $(this),
                                trimmedLength = $this.text().length,
                                trimmedText = $this.text().substr(0, maxChar),
                                trimmedEnd = $this.text().substr(maxChar - trimmedLength, trimmedLength);
                              if (maxChar && trimmedLength > maxChar) {
                                $this.html('<span class="trimmed"><span class="trimmed_short">' + trimmedText + '</span><span class="trimmed_end js--hidden">' + trimmedEnd + '</span>' + ellipsesText + moreText + lessText + '</span>');
                              }
                            });
                            $selector.on('click keypress', '.trimmed_more, .trimmed_less', function(e) {
                              if (e.keyCode == 13 || e.type == 'click') {
                                $(this).toggleClass('js--trimmed');
                                $(this).toggleClass('js--hidden').siblings('.trimmed_more, .trimmed_ellipse, .trimmed_less, .trimmed_end').toggleClass('js--hidden');
                              }
                            });
                          },
                          // Removes DOM elements on load
                          cleanUp: function() {
                            $('#lnkPostback').remove();
                            $('#litPageDiv > a:first').remove();
                          },
                          // Easier preview navigation
                          resetDate: function(selectors) {
                            if (GetViewType() === "0") {
                              $(selectors.join()).each(function() {
                                $(this).attr('href', $(this).attr('href') + '&ResetDate=1');
                              });
                            }
                          },
                          // A better Preview Toolbar
                          previewToolbar: function() {
                            if (GetViewType() === "0") {
                              $('.PreviewToolBar').prepend('<div class="PreviewTrigger">' + '<i class="q4-icon_clock-line"></i>' + '</div>').on('click', '.PreviewTrigger', function() {
                                $(this).toggleClass('js--active').parent().toggleClass('js--open');
                              });
                            }
                          },
                          /**
                           * Function for contrast class toggle on body element. Also stores cookie
                           * @example app.contrast.init();
                           */
                          contrast: {
                            getCookie: function() {
                              return document.cookie.replace(/(?:(?:^|.*;\s*)contrast\s*\=\s*([^;]*).*$)|^.*$/, "$1");
                            },
                            setCookie: function(boolean) {
                              document.cookie = 'contrast=' + boolean + '; path=/';
                            },
                            init: function() {
                              var inst = this;
                              if (!inst.getCookie().length) {
                                inst.setCookie('false');
                              } else if (inst.getCookie() == 'true') {
                                $(q4Defaults.options.contrast.toggle).addClass(q4Defaults.options.contrast.toggleClass);
                                $('body').addClass(q4Defaults.options.contrast.bodyClass);
                              }
                              $(q4Defaults.options.contrast.toggle).on('click keypress', function(e) {
                                if ($(this).is('a, button')) e.preventDefault();
                                if (e.keyCode == 13 || e.type == 'click') {
                                  if (inst.getCookie() == 'false') {
                                    inst.setCookie('true');
                                  } else {
                                    inst.setCookie('false');
                                  }
                                  $(this).toggleClass(q4Defaults.options.contrast.toggleClass);
                                  $('body').toggleClass(q4Defaults.options.contrast.bodyClass);
                                }
                              });
                            }
                          },
                          /**
                           * Used to scroll to a module within page.
                           * @example app.sections();
                           */
                          sections: function() {
                            var hash = decodeURIComponent(window.location.hash.length ? window.location.hash.substring(1) : ''),
                              isMobileOpen = function() {
                                return $('.layout').hasClass('js--mobile');
                              };
                            if ($('.module-' + hash).length) {
                              setTimeout(function() {
                                q4App.scrollTo($('.module-' + hash));
                                window.location.hash = hash;
                              }, 1000);
                            }
                            $('nav').on('click', 'a[href*="#"]', function(e) {
                              var $parent = $(this).closest('ul').parent('li'),
                                hash = $(this).attr('href').split('#')[1];
                              if ($parent.hasClass('selected')) {
                                if (isMobileOpen()) {
                                  $('.layout').removeClass('js--mobile');
                                }
                                e.preventDefault();
                                window.location.hash = hash;
                                q4App.scrollTo($('.module-' + hash));
                              }
                            });
                          },
                          /**
                           * Used to create tabs navigation.
                           * @param {$container} [selector]  the wrapping element of tabs navigation links/select
                           * @param {triggerContainer} [selector]  the element that wraps all of the tabs
                           * @param {trigger} [selector]  the element that will be clicked to show tabs
                           * @param {content} [selector]  the tab element that will show/hide when cliking on trigger element
                           * @param {select} [string]  the class of select that will be used as tab navigation. Can be null if not needed.
                           * @param {useHash} [boolean]  whether or not the tabs should be updated from URL hash. Defaults to true
                           * @param {useKBTabs} [boolean]  whether or not the tabs should be keyboard accessible. Defaults to true
                           * @example app.tabs($('.tabs'), '.tabs_nav', '.tabs_link', '.tab', '.tabs_select', true, true);
                           */
                          tabs: function($container, triggerContainer, trigger, content, select, useHash, useKBTabs) {
                            // display specific tab using hash from url
                            var hash = window.location.hash.split('#')[1],
                              hashTargetExists = $(content + '.' + hash).length > 0,
                              changeHash = useHash != undefined ? useHash : true,
                              first,
                              $hiddenContent = function() {
                                return $(content).addClass('js--hidden').attr('aria-hidden', 'true');
                              };
                            // accessibility 
                            $(triggerContainer).attr('role', 'tablist');
                            $(trigger).attr('role', 'tab').attr('aria-selected', 'false');
                            if (hash && hashTargetExists) {
                              $hiddenContent().filter('.' + hash).removeClass('js--hidden').attr('aria-hidden', 'false');
                              if (trigger) $(trigger).attr('tabindex', '0').filter('[data-tab=".' + hash + '"]').addClass('js--selected').attr('aria-selected', 'true');
                              if (select) $(select + ' option[value=".' + hash + '"]').attr('selected', true);
                            } else {
                              $hiddenContent();
                            }
                            // if trigger is used/defined
                            if (trigger) {
                              first = $(trigger).first().data('tab');
                              if (!hash || !hashTargetExists) {
                                $(trigger).attr('tabindex', '0').first().addClass('js--selected').attr('aria-selected', 'true');
                                $(first).removeClass('js--hidden').attr('aria-hidden', 'false');
                                // change hash on load
                                if (changeHash) window.location.hash = first.split('.')[1];
                              }
                              $container.on('click keypress', trigger, function(e) {
                                if (changeHash) window.location.hash = $(this).data('tab').split('.')[1];
                                if ($(trigger).is('a, button')) e.preventDefault();
                                $(this).addClass('js--selected').attr('aria-selected', 'true').closest($container).find('.js--selected').not(this).removeClass('js--selected').attr('aria-selected', 'false');
                                $hiddenContent().filter($(this).data('tab')).removeClass('js--hidden').attr('aria-hidden', 'false');
                                // update select
                                if (select) {
                                  $(select).val($(this).data('tab'));
                                }
                              });
                            }
                            // if select is used/defined
                            if (select) {
                              first = $(select + ' option:first-child').val();
                              if (!hash || !hashTargetExists) {
                                $(select + ' option:first-child').attr('selected', true);
                                $(first).removeClass('js--hidden').attr('aria-hidden', 'false');
                                // change hash on load
                                if (changeHash) window.location.hash = first.split('.')[1];
                              }
                              $container.on('change', select, function() {
                                var tab = $(this).val();
                                if (changeHash) window.location.hash = $(this).val().split('.')[1];
                                $hiddenContent().filter(tab).removeClass('js--hidden').attr('aria-hidden', 'false');
                                if (trigger) $(trigger).removeClass('js--selected').filter('[data-tab="' + tab + '"]').addClass('js--selected');
                              });
                            }
                            if (useKBTabs || useKBTabs === undefined) {
                              var tabs = document.querySelectorAll('[role="tab"]');
                              var tabList = document.querySelector('[role="tablist"]');
                              // Add a click event handler to each tab
                              tabs.forEach(function(tab) {
                                var tabContentID = tab.getAttribute("data-tab").replace(".", ""),
                                  tabContentIDs = "";
                                $("." + tabContentID).each(function(i) {
                                  $(this).attr("id", tabContentID + "-" + i);
                                  tabContentIDs += (tabContentID + "-" + i + " ");
                                });
                                tab.setAttribute("aria-controls", tabContentIDs);
                                tab.setAttribute("tabindex", -1);
                                tab.addEventListener("click", changeTabs);
                              });
                              $('[role="tab"][aria-selected="true"]').attr("tabindex", 0);
                              // Enable arrow navigation between tabs in the tab list
                              var tabFocus = 0;
                              tabList.addEventListener("keydown", function(e) {
                                // Move right
                                if (e.keyCode === 39 || e.keyCode === 37) {
                                  tabs[tabFocus].setAttribute("tabindex", -1);
                                  if (e.keyCode === 39) {
                                    tabFocus++;
                                    // If we're at the end, go to the start
                                    if (tabFocus >= tabs.length) {
                                      tabFocus = 0;
                                    }
                                    // Move left
                                  } else if (e.keyCode === 37) {
                                    tabFocus--;
                                    // If we're at the start, move to the end
                                    if (tabFocus < 0) {
                                      tabFocus = tabs.length - 1;
                                    }
                                  }
                                  tabs[tabFocus].setAttribute("tabindex", 0);
                                  tabs[tabFocus].focus();
                                }
                              });
                            }

                            function changeTabs(e) {
                              var target = e.target;
                              var parent = target.closest('[role="tablist"]');
                              var grandparent = parent.parentNode;
                              // Remove all current selected tabs
                              parent.querySelectorAll('[aria-selected="true"]').forEach(function(t) {
                                t.setAttribute("aria-selected", false);
                              });
                              // Set this tab as selected
                              target.setAttribute("aria-selected", true);
                              // Hide all tab panels
                              grandparent.querySelectorAll('[role="tabpanel"]').forEach(function(p) {
                                p.setAttribute("hidden", true);
                              });
                              // Show the selected panels
                              var tabContentIDArr = target.getAttribute("aria-controls").split(" ");
                              $.each(tabContentIDArr, function(index, value) {
                                if (value && value != "") $('#' + value).removeAttr("hidden");
                              });
                            }
                          },
                          /**
                           * Used to reveal an element by clicking on a trigger element.
                           * Use this function to create anything from "Read More" buttons to revealing hidden elements with a trigger.
                           * @param {container} [selector]  the wrapping element
                           * @param {trigger} [selector]  the element that will be clicked to reveal
                           * @param {panel} [selector]  the element to be revealed
                           * @param {once} [boolean]  (optional) whether or not the event will be triggered only once
                           * @param {includeFocus} [boolean]  (optional) whether to include focus for trigger event
                           * @param {containerClass} [string]  the class added to container. Defaults to empty string
                           * @param {triggerClass} [string]  the class added to trigger. Defaults to js--active
                           * @param {paneClass} [string]  the class added to panel. Defaults to js--revealed
                           * @example app.reveal('.read-more', '.read-more_button', '.read-more_panel', true);
                           */
                          reveal: function(container, trigger, panel, once, includeFocus, containerClass, triggerClass, panelClass) {
                            containerClass = containerClass ? containerClass : '';
                            triggerClass = triggerClass ? triggerClass : 'js--active';
                            panelClass = panelClass ? panelClass : 'js--revealed';
                            $(container).find(trigger).attr('tabindex', '0').attr('aria-expanded', 'false');
                            $(container).find(panel).attr('aria-hidden', 'true');
                            var events = "click keypress";
                            var checkEventCondition = function(e) {
                              return (e.keyCode == 13 || e.type == "click");
                            };
                            if (includeFocus) {
                              if (once) {
                                events = "keypress focus";
                                checkEventCondition = function(e) {
                                  return (e.keyCode == 13 || (e.type == "focusin" && ($(this).attr('aria-expanded') !== "true")));
                                };
                              } else {
                                events = "mousedown keypress focus";
                                checkEventCondition = function(e) {
                                  return (e.keyCode == 13 || e.type == "mousedown" || (e.type == "focusin" && ($(this).attr('aria-expanded') !== "true")));
                                };
                              }
                            }
                            if (once) {
                              $(container).one(events, trigger, function(e) {
                                if (checkEventCondition(e)) {
                                  if ($(container).find(trigger).is('a, button')) e.preventDefault();
                                  $(container).toggleClass(containerClass);
                                  $(this).toggleClass(triggerClass).attr('aria-expanded', function(i, attr) {
                                    return attr == 'true' ? 'false' : 'true';
                                  }).closest(container).find(panel).toggleClass(panelClass);
                                  $(container).find(panel).attr('aria-hidden', function(i, attr) {
                                    return attr == 'true' ? 'false' : 'true';
                                  });
                                }
                              });
                            } else {
                              $(container).on(events, trigger, function(e) {
                                if (checkEventCondition(e)) {
                                  if ($(container).find(trigger).is('a, button')) e.preventDefault();
                                  $(container).toggleClass(containerClass);
                                  $(this).toggleClass(triggerClass).attr('aria-expanded', function(i, attr) {
                                    return attr == 'true' ? 'false' : 'true';
                                  }).closest(container).find(panel).toggleClass(panelClass);
                                  $(container).find(panel).attr('aria-hidden', function(i, attr) {
                                    return attr == 'true' ? 'false' : 'true';
                                  });
                                }
                              });
                            }
                          },
                          /**
                           * Used to remove the duplicate classes on a Quick Link Module's <ul> element
                           * @param {$el} [element]  the quick links module to clean up
                           * @example app.cleanQuickLinks($('.module-links'));
                           */
                          cleanQuickLinks: function($el) {
                            $el.find('ul').attr('class', 'module-links_list');
                          },
                          /**
                           * Scroll to an element on the page
                           * @param {$el}  [element] A selector containing the element to scroll to
                           * @example app.scrollTo( $('div[id*="SubscriberConfirmation"]') )
                           */
                          scrollTo: function($el, duration) {
                            var inst = this,
                              d = duration !== undefined && !isNaN(duration) ? duration : inst.options.scrollSpeed;
                            if ($el.length) {
                              if (history) {
                                history.scrollRestoration = 'manual';
                              }
                              $('html, body').animate({
                                scrollTop: $el.eq(0).offset().top - inst.options.headerOffset()
                              }, d, function() {
                                if ($(window).scrollTop() != $el.eq(0).offset().top - inst.options.headerOffset()) {
                                  $('html, body').animate({
                                    scrollTop: $el.eq(0).offset().top - inst.options.headerOffset()
                                  }, d);
                                }
                              });
                            }
                          },
                          /**
                           * Validate if a string is a vaild email address
                           * @param {emailAddress} [string]  An email address that will be tested against the regular expression
                           * @example app.isValidEmailAddress ( 'support@q4inc.com' );
                           * @return boolean
                           */
                          isValidEmailAddress: function(emailAddress) {
                            var pattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,3}))$/;
                            return pattern.test(emailAddress);
                          },
                          /**
                           * Attaches a click handler to the modules submit button which will not allow
                           * the form to submit without a true email address
                           * @param {$el} [element]  an element containing the submit button
                           * @example app.validateUnsubscribe($('.MailingListUnsubscribeContainer'));
                           */
                          validateUnsubscribe: function($el) {
                            var inst = this,
                              $submit = $el.find('input[type="submit"]');
                            $submit[0].outerHTML = $submit[0].outerHTML.replace(/^<input/, '<button') + '<span class="button_text">' + $submit[0].value + '</span></button>';
                            $el.find('[type="submit"]').on('click', function(e) {
                              var emailAddress = $el.find('input[id*="Email"]').val();
                              if (!inst.isValidEmailAddress(emailAddress)) {
                                $el.find('.module_confirmation-container').html(Mustache.render(inst.options.errorTpl, {
                                  errors: [{
                                    message: emailAddress.length ? inst.options.invalidText : inst.options.requiredText,
                                    name: $el.find('label.module-unsubscribe_email').text()
                                  }],
                                  errorMessage: inst.options.errorMessage
                                })).show();
                                inst.scrollTo($el.find('.module_error-container'), 0);
                                $el.addClass('js--invalid');
                                e.preventDefault();
                              }
                            });
                            if ($el.find('.module_confirmation-container').text().trim().length) {
                              $('.module-subscribe,' + inst.options.mailingListConfig.hideOnConfirmation).not(inst.options.mailingListConfig.location + ' .module-subscribe').addClass('js--hidden');
                              $el.find('.module_introduction, .module-unsubscribe_table, .module_actions').addClass('js--hidden');
                              inst.scrollTo($el);
                            }
                          },
                          /**
                           * Attaches a check to a search module's submit button which will not allow
                           * the module to submit without text inside the search input
                           * @param {selector} [selector]  the class being used by the search module
                           * @example app.validateSubmit('.module-search');
                           */
                          validateSubmit: function(selector) {
                            var $search = $(selector);
                            // also convert input submit to buttons
                            $search.each(function() {
                              $submit = $(this).find('input:submit');
                              $submit[0].outerHTML = $submit[0].outerHTML.replace(/^<input/, '<button') + '<span class="button_text">' + $submit[0].value + '</span></button>';
                            });
                            $search.on('click', '[type="submit"]', function(e) {
                              if (!$(this).closest(selector).find('input:text').val().length) {
                                e.preventDefault();
                                return false;
                              }
                            });
                          },
                          /**
                           * Allows the user to submit our forms using the enter key
                           * @param {selector} [selector]  the class being used by the formbuilder module
                           * @example app.submitOnEnter('.module-form')
                           */
                          submitOnEnter: function(selector) {
                            $(selector).find('input[type="text"], input[type="email"]').removeAttr('onkeypress').on('keydown', function(e) {
                              if (e.keyCode == 13) {
                                e.preventDefault();
                                $(this).closest(selector).find('[type="submit"]').trigger('click');
                                return false;
                              }
                            });
                          },
                          /**
                           * Creates a select from a list of links.
                           * @param {$selector} [element]  the element that contains the links
                           * @param {labelText} [string]  (optional) text that will appear inside the label of the select. Defaults to "Select year:"
                           * @param {selectId} [string] (optional) the id for the select. Defaults to "YearNav"
                           * @param {selectedClass} [string] (optional) the selected class of the link. Defaults to "selected"
                           * @param {hideLabel} [boolean] (optional) if true, the label will have "sr-only" class. Defaults to false
                           * @example app.makeSelect($('.module-news module_nav'));
                           */
                          makeSelect: function($selector, labelText, selectId, selectedClass, hideLabel) {
                            var $navOptions = $('<div />', {
                                class: 'module_options'
                              }).insertAfter($selector),
                              $options = '';
                            if (!selectedClass) {
                              selectedClass = 'selected';
                            }
                            $selector.addClass('js--hidden');
                            $('<label />', {
                              class: hideLabel ? 'module_options-label sr-only' : 'module_options-label',
                              html: labelText ? labelText : 'Select year:',
                              for: selectId ? selectId : 'YearNav'
                            }).appendTo($navOptions);
                            $('<select />', {
                              class: 'dropdown module_options-select',
                              id: selectId ? selectId : 'YearNav',
                              name: selectId ? selectId : 'YearNav'
                            }).appendTo($navOptions).on('change', function() {
                              location.href = $(this).val();
                            });
                            $selector.find('a').each(function() {
                              var $this = $(this),
                                selected = $this.hasClass(selectedClass) ? 'selected="selected"' : '';
                              $options += '<option ' + selected + ' value="' + $this.attr('href') + '">' + $this.text() + '</option>';
                            });
                            $navOptions.find('select').append($options);
                          },
                          /**
                           * Disables first click for android devices and show dropdown instead of loading page.
                           * @param {selector} [selector]  the class being used by the navigation module
                           * @example app.androidTap('.nav--main');
                           */
                          androidTap: function(selector) {
                            if (q4App.isMobile.Android()) {
                              $(selector).on('touch touchstart', 'li.has-children > a, li.has-children.no-link > span', function(e) {
                                var $this = $(this),
                                  $parent = $this.parent();
                                if (!$parent.hasClass('sfHover')) {
                                  e.preventDefault();
                                  $parent.siblings().removeClass('sfHover');
                                  $parent.addClass('sfHover');
                                }
                              });
                            }
                          },
                          _onMobileMenuExpand: function($nav, toggler1, lastTabbable) {
                            var isTouchMove = false;
                            $nav.on('touchmove', 'li.has-children:not(.home) > a, li.has-children.no-link:not(.home) > span', function(e) {
                              isTouchMove = true;
                              var $this = $(this),
                                $parent = $this.parent();
                              if (!$parent.hasClass('js--expanded') && !isTouchMove) {
                                e.preventDefault();
                                $parent.siblings().removeClass('js--expanded');
                                $parent.addClass('js--expanded');
                              }
                            });
                            $nav.on('touchend', 'li.has-children:not(.home) > a, li.has-children.no-link:not(.home) > span', function(e) {
                              var $this = $(this),
                                $parent = $this.parent();
                              if (!$parent.hasClass('js--expanded') && !isTouchMove) {
                                e.preventDefault();
                                $parent.siblings().removeClass('js--expanded');
                                $parent.addClass('js--expanded');
                              }
                              isTouchMove = false;
                            });
                            $nav.find($('li.home')).children('a').attr('tabindex', '0');
                            $nav.find($('li:not(.home)')).children('a, button').attr('tabindex', '-1');
                            if (lastTabbable) {
                              $(lastTabbable).on("keydown", function(e) {
                                if (e.which === 9 && !e.shiftKey) {
                                  $('a.tempanchor').attr('tabindex', '0').focus();
                                }
                              });
                            } else {
                              $nav.find($("li")).on("keydown", function(e) {
                                if (e.which === 9 && !e.shiftKey) {
                                  $('a.tempanchor').attr('tabindex', '0').focus();
                                }
                              });
                            }
                            $(toggler1).on("keydown", function(e) {
                              if (e.which === 9 && e.shiftKey) {
                                e.preventDefault();
                              }
                            });
                          },
                          /**
                           * Accessible Navigation powered by Superfish
                           * @param {$nav} [element]  the nav element (or ul element) you would like to apply superfish to
                           * @param {options} [object]  options to be passed into superfish
                           * @param {initAndroid} [boolean] (optional) if true, the androidTap function is initialized. Defaults to true
                           * @example app.superfish($('.nav--secondary .level2'), {cssArrows:false}, 1024)
                           */
                          superfish: function($nav, options, initAndroid) {
                            $nav.find('.no-link > span').attr('tabindex', '0');
                            var initAndroidTap = initAndroid != undefined ? initAndroid : true;
                            if (!this.isMobile.any() && this.options.superfish) {
                              $nav.superfish(options);
                            }
                            if (initAndroidTap) this.androidTap($nav);
                          },
                          /**
                           * Standard mobile menu functionality
                           * @param {$layout} [element]  the default layout element
                           * @param {pane} [selector]  the class of the pane element containing the mobile navigation
                           * @param {toggleClass} [selector]  the class assigned to the element used to toggle the mobile navigation
                           * @example app.mobileMenuToggle($('.layout'), '.pane--navigation', '.layout_toggle i')
                           */
                          mobileMenuToggle: function($layout, pane, toggle, searchInput) {
                            var inst = this;
                            $(toggle).attr({
                              'aria-expanded': 'false',
                              'aria-haspopup': 'true',
                              'aria-label': 'Toggle for mobile menu',
                              'aria-controls': 'accessibleRespNav'
                            });
                            $(pane + ' ul').first().attr('id', 'accessibleRespNav');
                            $(pane + ' ul').attr('role', 'menu');
                            $(pane + ' ul li a').attr('role', 'menuitem');
                            $(pane).addClass('js--hidden');
                            $layout.on('click', toggle, function(e) {
                              if ($(this).is('a, button')) e.preventDefault();
                              $(toggle).attr('aria-expanded', function(i, attr) {
                                return attr == 'true' ? 'false' : 'true';
                              });
                              $layout.toggleClass('js--mobile');
                              $(pane).toggleClass('js--hidden');
                              var $nav = $('.js--mobile ' + pane + ' .nav'),
                                respNavCont = $nav.parents('span'),
                                respSearch = null,
                                respSearchCont = null,
                                navBeforeSearch = true,
                                toggler1 = null,
                                toggler2 = null,
                                paneChildren = $(pane + ' > div').children(),
                                menuLast = true;
                              // some themes utilize 2 toggles. let's differentiate.
                              $.each($(toggle), function(i, tog) {
                                $(tog).addClass('toganchor-' + (i));
                              });
                              if ($(toggle).length > 1) {
                                toggler1 = '.toganchor-1';
                                toggler2 = '.toganchor-0';
                              } else {
                                toggler1 = '.toganchor-0';
                              }
                              // focus on first element in popout
                              $(pane + ' button, ' + pane + ' a, ' + pane + ' input').not(toggle).first().focus();
                              $.each(paneChildren, function(i) {
                                if ($(this).find('#accessibleRespNav').length !== 0) {
                                  if (paneChildren.length > (i + 1)) {
                                    menuLast = false;
                                  }
                                }
                              });
                              var lastTabbable = menuLast ? false : $(pane + ' button, ' + pane + ' a, ' + pane + ' input').get(-1);
                              inst._onMobileMenuExpand($nav, toggler1, lastTabbable);
                              //exit on esc key
                              $(pane).on("keydown", function(e) {
                                if (e.which === 27) {
                                  if (toggler2) {
                                    $(toggler1).click();
                                    $(toggler2).focus();
                                  } else {
                                    $(toggler1).click().focus();
                                  }
                                }
                              });
                              // fix to get around bug with extra tab being invoked after focus
                              if (!$("a.tempanchor").length) {
                                $(toggler1).before("<a tabindex='-1' class='sr-only tempanchor'></a>");
                              } else {
                                $("a.tempanchor").remove();
                              }
                            });
                          },
                          /**
                           * Gives a navigation element accessibility assistance in the form of the .focused class.
                           * @param {$nav} [element]  the navigation element used for this function
                           * @param {topLevel} [selector]  the class assigned to the highest visible level of the navigation
                           * @example app.accessibleNav($('.nav'), '.level1')
                           */
                          accessibleNav: function($nav, topLevel) {
                            $nav.find('.no-link > span').attr('tabindex', '0');
                            $nav.on('focus', 'a, .no-link > span', function(e) {
                              var $link = $(this);
                              $link.closest('ul').find('li').removeClass('js--focused');
                              $link.closest('li').addClass('js--focused');
                              if ($link.closest('li').is(':last-child') && $link.closest('ul').is(topLevel)) {
                                $link.blur(function() {
                                  $link.closest(topLevel).find('li').removeClass('js--focused');
                                });
                              }
                            });
                          },
                          /**
                           * Adds text at the beginning of the slider for screen reader and Adds pause / play button.
                           * @param {s} [object] the slick instance of the slider. This can be obtained using .slick('getSlick')
                           * @param {insertFunction} [string] the jQuery function used to add the autoplayCtrl to slick
                           * @param {insertSelector} [string] the selector for the insertFunction
                           * @example app.accessibleSlick(s), app.accessibleSlick(s, 'before', '.slick-dots')
                           */
                          accessibleSlick: function(s, insertFunction, insertSelector) {
                            // slick dots will not be in s.$slider if appendDots is set.
                            $container = s.options.appendDots;
                            // Add screen-reader text at the beginning of the slider.
                            $container.before('<span class="sr-only">Slider/Carousel Start</span>');
                            // Pause / Play control
                            var autoplayStatusId = 'autoplay-status-' + ($('[id*="autoplay-status"]').length + 1),
                              ctrlTpl = ('<span class="slick_autoplay-ctrl">' + '<button type="button" aria-label="" aria-controls="' + autoplayStatusId + '"></button>' + '<span id="' + autoplayStatusId +
                                '" class="sr-only" aria-live="polite"></span>' + '</span>'),
                              setCtrlBtn = function() {
                                var $button = s.$autoplayCtrl.find('button'),
                                  $status = s.$autoplayCtrl.find('#' + autoplayStatusId),
                                  pauseCls = "slick_autoplay-ctrl--pause",
                                  playCls = "slick_autoplay-ctrl--play";
                                $button.removeClass(pauseCls + " " + playCls);
                                if (s.paused) {
                                  $button.addClass(playCls);
                                  $status.text('Carousel Paused');
                                  $button.attr('aria-label', 'Play Carousel Toggle ');
                                } else {
                                  $button.addClass(pauseCls);
                                  $status.text('Carousel Playing');
                                  $button.attr('aria-label', 'Pause Carousel Toggle ');
                                }
                              },
                              autoplayToggle = function() {
                                if (s.paused) {
                                  s.slickPlay();
                                } else {
                                  s.slickPause();
                                }
                                setCtrlBtn();
                                s.autoplaying = !s.paused;
                              },
                              pauseAutoplay = function() {
                                if (!s.paused) {
                                  s.slickPause();
                                  setCtrlBtn();
                                }
                              },
                              playAutoplay = function() {
                                if (s.paused) {
                                  s.slickPlay();
                                  setCtrlBtn();
                                }
                              };
                            s.autoplaying = s.options.autoplay;
                            if (insertFunction && $(insertSelector).length) {
                              $.fn.insertAutoplay = $()[insertFunction];
                            }
                            if ($.fn.insertAutoplay) {
                              $container.find(insertSelector).insertAutoplay(ctrlTpl);
                            } else {
                              $container.append(ctrlTpl);
                            }
                            s.$autoplayCtrl = $container.find('.slick_autoplay-ctrl');
                            setCtrlBtn();
                            s.$autoplayCtrl.find('button').on('click touchstart', function(e) {
                              autoplayToggle();
                            });
                            // pauseOnHover
                            if (s.options.pauseOnHover) {
                              s.$list.on('mouseenter.slick', function(e) {
                                pauseAutoplay();
                              });
                              s.$list.on('mouseleave.slick', function(e) {
                                if (!s.focussed && s.autoplaying) playAutoplay();
                              });
                            }
                            // pauseOnDotsHover
                            if (s.options.pauseOnDotsHover) {
                              s.$dots.on('mouseenter.slick', function(e) {
                                pauseAutoplay();
                              });
                              s.$dots.on('mouseleave.slick', function(e) {
                                if (s.autoplaying) playAutoplay();
                              });
                            }
                            // pauseOnFocus
                            if (s.options.pauseOnFocus) {
                              s.$slider.off('focus.slick blur.slick').on('focus.slick blur.slick', '*', function(e) {
                                if ($(this).is(':focus') && !s.paused && $(this)[0].className.indexOf('slick_autoplay') == -1) {
                                  pauseAutoplay();
                                } else if (e.type == "focusout" && $(this)[0].className.indexOf('slick_autoplay') > -1 && s.autoplaying && s.paused) {
                                  playAutoplay();
                                }
                              });
                            }
                          },
                          /**
                           * Provides a visually hidden div with aria-live attribute used to make announcements.
                           *  @param {ariaLiveVal} [string] the value for the aria-live attribute.
                           *  @param {id} [string] the value for the hidden div's id attribute.
                           *  @param {insertionSelector} [string] the selector for where the hidden div should be appended to. 
                           *  @param {triggerFn} [function] a callback function that has access to the hidden div in order to update the announcement when events occur.
                           *  @example app.a11yAnnouncement('polite', 'fancy-box_announcement', '.media-center--videos', function($elem){});
                           */
                          a11yAnnouncement: function(ariaLiveVal, id, insertionSelector, triggerFn) {
                            var hiddenDiv = '<div id="' + id + '" class="sr-only" aria-live="' + ariaLiveVal + '" ></div>';
                            $(insertionSelector).append(hiddenDiv);
                            triggerFn($('#' + id));
                          },
                          /**
                           * Gives element accessibility properties suitable for accordions, slide toggles, and tab navigation.
                           * @param {$tab} [element]  the element used to toggle the appropriate $tabpanel
                           * @param {$tabpanel} [element]  the element intended to display in respect to the currently selected $tab
                           * @example app.accessibilize($tab, $tabpanel)
                           */
                          accessibilize: function($tab, $tabpanel, idx) {
                            $tab.each(function(index) {
                              $(this).attr('tabindex', '0').attr({
                                'id': 'tab' + idx + (index + 1),
                                'role': 'button',
                                'aria-expanded': 'false',
                                'aria-controls': 'panel' + idx + (index + 1),
                              });
                            });
                            $('#tab' + idx + "1").addClass('tab-firsttab');
                            $('#tab' + idx + ($tab.length)).addClass('tab-lasttab');
                            $tabpanel.each(function(index) {
                              $(this).addClass('js--hidden').attr({
                                'id': 'panel' + idx + (index + 1),
                                'role': 'region',
                                'aria-hidden': 'true',
                                'aria-describedby': 'tab' + idx + (index + 1)
                              });
                            });
                          },
                          /**
                           * Creates a fully accessible expanding and collapsing accordion with the ability to switch between toggle and accordion functionality. Accessiblity example cand be seen here https://www.w3.org/TR/wai-aria-practices/examples/accordion/accordion.html
                           * @param {$container} [element]  the wrapping element for the toggle list
                           * @param {item} [selector]  the class assigned to each designated toggling element
                           * @param {toggle} [selector]  the class assigned to the element that will toggle the containing item
                           * @param {panel} [selector]  the class assigned to the section that will be revealed if its containing item is toggled
                           * @param {accordion} [boolean]  (optional) if true, the toggling section will take on accordion functionality
                           * @param {allButton} [boolean]  (optional) if true, the toggling section will be accompanied by a "Hide All / Show All" button
                           * @param {openFirst} [boolean]  (optional) if true, the first item will be set to active with its panel revealed
                           * @param {includeClasses} [boolean]  (optional) if true, classes will be added to the container (accordion), items (accordion_item), toggle (accordion_toggle) and panel (accordion_panel).
                           * @example app.toggle($('.accordion'), '.accordion_item', '.accordion_toggle', '.accordion_panel', false, true);
                           */
                          toggle: function($container, item, toggle, panel, accordion, allButton, openFirst, includeClasses) {
                            var $this = this,
                              $item = $container.find(item),
                              keyCode = {
                                'ENTER': 13,
                                'SPACE': 32,
                                'DOWN': 40,
                                'UP': 38,
                                'HOME': 36,
                                'END': 35
                              };
                            $container.each(function(idx) {
                              $this.accessibilize($(this).find(toggle), $(this).find(panel), (idx + 1));
                              if (accordion) {
                                $(this).find(toggle).attr('aria-disabled', 'false');
                              }
                            });
                            $item.on('click keypress keydown', toggle, function(e) {
                              if (e.which == keyCode.ENTER || e.type == 'click' || (e.type == 'keydown' && e.which == keyCode.SPACE)) {
                                e.preventDefault();
                                if (accordion) {
                                  $this._accordionTrigger($(this), $(this).closest($container), item, toggle, panel);
                                } else {
                                  $this._toggleTrigger($(this), $(this).closest($container), item, panel);
                                }
                                if (allButton) {
                                  if (!$(this).closest($container).find(item + '.js--active').length) {
                                    $(this).closest($container).find('.toggle-all').removeClass('js--active');
                                  }
                                  if ($(this).closest($container).find(item + '.js--active').length === $(this).closest($container).find(item).length) {
                                    $(this).closest($container).find('.toggle-all').addClass('js--active');
                                  }
                                }
                              } else if (e.which == keyCode.UP) {
                                e.preventDefault();
                                if ($(e.target).hasClass('tab-firsttab')) {
                                  $(this).closest($item).siblings(item).children('.tab-lasttab').focus();
                                } else {
                                  $(this).closest($item).prev(item).children(toggle).focus();
                                }
                              } else if (e.which == keyCode.DOWN) {
                                e.preventDefault();
                                if ($(e.target).hasClass('tab-lasttab')) {
                                  $(this).closest($item).siblings(item).children('.tab-firsttab').focus();
                                } else {
                                  $(this).closest($item).next(item).children(toggle).focus();
                                }
                              } else if (e.which == keyCode.HOME) {
                                e.preventDefault();
                                $(this).closest($item).siblings(item).children('.tab-firsttab').focus();
                              } else if (e.which == keyCode.END) {
                                e.preventDefault();
                                $(this).closest($item).siblings(item).children('.tab-lasttab').focus();
                              }
                            });
                            if (allButton) {
                              $this._toggleAll($container, item, toggle, panel);
                            }
                            if (openFirst) {
                              $container.each(function() {
                                $(this).find($item).first().find(toggle).attr('aria-expanded', 'true');
                                $(this).find($item).first().addClass('js--active').find(panel).removeClass('js--hidden').attr('aria-hidden', 'false');
                                $(this).find($item).not(':first').find(panel).hide().attr('aria-hidden', 'true');
                                if (accordion) {
                                  $(this).find($item).first().find(toggle).attr('aria-disabled', 'true');
                                }
                              });
                            }
                            $container.attr('data-accordion', 'container').find(item).attr('data-accordion', 'item').end().find(toggle).attr('data-accordion', 'toggle').end().find(panel).attr('data-accordion', 'panel');
                            if (includeClasses) {
                              $container.addClass('accordion').find(item).addClass('accordion_item').end().find(toggle).addClass('accordion_toggle').end().find(panel).addClass('accordion_panel');
                            }
                          },
                          _toggleAll: function($container, item, toggle, panel) {
                            $container.prepend('<div class="toggle-all"><button aria-label="Expand or collapse all items" type="button" class="button"></button><span class="sr-only" role="status" aria-live="polite"></span></div>').on('click',
                              '.toggle-all button',
                              function(e) {
                                e.preventDefault();
                                $(this).parent().toggleClass('js--active');
                                if ($(this).parent().is('.js--active')) {
                                  $(this).attr('aria-pressed', 'true');
                                  $(this).siblings('[role="status"]').text('Button pressed. All items expanded');
                                  $(this).closest($container).find(toggle).attr('aria-expanded', 'true');
                                  $(this).closest($container).find(item).addClass('js--active');
                                  $(this).closest($container).find(panel).slideDown(400, function() {
                                    $(this).removeClass('js--hidden').attr('aria-hidden', 'false');
                                  });
                                } else {
                                  $(this).attr('aria-pressed', 'false');
                                  $(this).siblings('[role="status"]').text('Button not pressed. All items collapsed');
                                  $(this).closest($container).find(toggle).attr('aria-expanded', 'false');
                                  $(this).closest($container).find(item).removeClass('js--active');
                                  $(this).closest($container).find(panel).slideUp(400, function() {
                                    $(this).addClass('js--hidden').attr('aria-hidden', 'true');
                                  });
                                }
                              });
                            $container.on('click keypress keydown', item, function(e) {
                              if (e.which == 13 || e.which == 1) {
                                if ($(this).siblings('.toggle-all').hasClass('js--active')) {
                                  $(this).siblings('.toggle-all').children('button').attr('aria-pressed', 'true');
                                } else {
                                  $(this).siblings('.toggle-all').children('button').attr('aria-pressed', 'false');
                                }
                              }
                            });
                          },
                          _accordionTrigger: function($this, $container, item, toggle, panel) {
                            if (!$this.closest(item).hasClass('js--active')) {
                              $this.closest($container).find(item).removeClass('js--active');
                              $container.find(toggle).attr({
                                'aria-expanded': 'false',
                                'aria-disabled': 'false'
                              }).end().find(panel).slideUp(400, function() {
                                $(this).addClass('js--hidden').attr({
                                  'aria-hidden': 'true'
                                });
                              });
                              $this.attr({
                                'aria-expanded': 'true',
                                'aria-disabled': 'true'
                              }).closest(item).addClass('js--active').find(panel).slideDown(400, function() {
                                $(this).removeClass('js--hidden').attr({
                                  'aria-hidden': 'false'
                                });
                              });
                            }
                          },
                          _toggleTrigger: function($this, $container, item, panel) {
                            var $allToggle = $this.closest($container).find('.toggle-all');
                            $this.attr('aria-expanded', function(i, attr) {
                              return attr == 'true' ? 'false' : 'true';
                            }).closest(item).toggleClass('js--active').find(panel).slideToggle(400, function() {
                              $(this).toggleClass('js--hidden').attr('aria-hidden', function(i, attr) {
                                return attr == 'true' ? 'false' : 'true';
                              });
                            });
                            if ($this.closest($container).find(item).not('.js--active').length) {
                              $allToggle.removeClass('js--active');
                            } else {
                              $allToggle.addClass('js--active');
                            }
                          },
                          /**
                           * Used to hide the "Remind Me" functionality for events modules if a reminder has already been created.
                           * Works for both list and details pages.
                           * @param {$el} [element]  element(s) containing the "Remind Me" form
                           * @example app.remindMeOnce($('.module-event .module_item')); or app.remindMeOnce($('.module-event-details'));
                           */
                          remindMeOnce: function($el) {
                            $el.each(function() {
                              if ($(this).find('.module_reminder-success').text().length) {
                                $(this).find('.module_reminder').addClass('js--reminded');
                              }
                            });
                          },
                          /**
                           * Our standard "Add to Calendar" functionality. Opens up a fancybox.
                           * @param {selector} [element]  Selector for the module containing "Add to Calendar" links
                           * @example app.addToCalendar('.module-event'); or app.addToCalendar('.module-event-latest, .module-event-upcoming');
                           */
                          addToCalendar: function(selector) {
                            $(selector).on('click keypress', '.module_add-to-calendar-reveal', function(e) {
                              var $this = $(this);
                              if (e.keyCode == 13 || e.type == 'click') {
                                $.fancybox.open({
                                  src: $(this).next(),
                                  type: 'inline',
                                  opts: {
                                    closeBtn: false,
                                    fullScreen: false,
                                    slideClass: 'fancybox-slide--no-padding',
                                    afterClose: function(instance, current) {
                                      $this.trigger('focus'); // focus back to the element that initiated the popup
                                    }
                                  }
                                });
                              }
                            });
                          },
                          /**
                           * Used to hide the "Add to Calendar" functionality for past events. Works for both list and details pages.
                           * @param {$events} [element]  element(s) containing the unwanted "Add to Calendar" link
                           * @example app.hidePastCal($('.module-event .module_item')); or app.hidePastCal($('.module-event-details'));
                           */
                          hidePastCal: function($events) {
                            var today = new Date();
                            $events.each(function() {
                              var $this = $(this),
                                $date = $this.find('.module_date-text');
                              if ($date.text().indexOf("from") >= 0) {
                                var isolateDate = $date.text().split('from ').pop().split('to ');
                                if (today > new Date(isolateDate[1])) {
                                  $this.find('.module_add-to-calendar').addClass('js--hidden');
                                }
                              } else if (today > new Date($date.text())) {
                                $this.find('.module_add-to-calendar').addClass('js--hidden');
                              }
                            });
                          },
                          /**
                           * Opens the Mailing List Signup - Captcha inside a fancybox
                           * @param {$el} [element] The mailing list module
                           * @example app.fancySignup( '.module-subscribe' );
                           */
                          fancySignup: function() {
                            var inst = this,
                              validationLock = true,
                              signup = inst.options.mailingListSignupCls,
                              $signup = $(signup),
                              confirm = 'div[id*="SubscriberConfirmation"]',
                              $confirm = $('div[id*="SubscriberConfirmation"]'), // jshint ignore:line
                              footerSuccess = inst.options.mailingListConfig.location + ' ' + confirm + ' .module_message--success',
                              $footerSuccess = $(footerSuccess);
                            // Subscriber Confirmation fix
                            if ($confirm.is(':visible')) {
                              if ($confirm.filter(':visible').closest(inst.options.mailingListConfig.location).length) {
                                var successText = $confirm.filter(':visible').closest(inst.options.mailingListConfig.location).find('.module_message--success').text();
                                $confirm.filter(':visible').parent().html(inst.options.mailingListConfig.tpl).find('.module_message--success').html(successText);
                              }
                              inst.scrollTo($('div[id*="SubscriberConfirmation"]').filter(':visible'), 0);
                              if (!$footerSuccess.length) {
                                $('.module-unsubscribe,' + inst.options.mailingListConfig.hideOnConfirmation).addClass('js--hidden');
                              }
                            }
                            if (!$signup.length) {
                              return;
                            }
                            $signup.each(function() {
                              var $this = $(this);
                              // If a confirmation or error message is visible on page load, scroll to the module
                              if ($this.find('input.module_input').length && $this.find('input.module_input').val().length) {
                                inst.scrollTo($this, 0);
                              }
                              // Create a second submit button to be displayed inside fancybox. Replace input type submit with button
                              var $submit = $this.find('input[type="submit"]');
                              $submit.addClass('js--hidden');
                              $submit[0].outerHTML = $submit[0].outerHTML.replace(/^<input/, '<button') + '<span class="button_text">' + $submit[0].value + '</span></button>';
                              $this.find('.module_actions').append('<button type="submit" class="button module-subscribe_submit-button module-subscribe_submit-button--fancy"><span class="button_text">' + inst.options.mailingListConfig
                                .submitText + '</span></button>');
                              $this.on('click', '.module-subscribe_submit-button--fancy', function(e) {
                                e.preventDefault();
                                validationLock = false;
                                var $parent = $(this).closest(signup),
                                  errors = inst._mailingListValidation($parent);
                                if (!errors.length) {
                                  $(this).closest(signup).find('.module_actions [type="submit"]').not(this).trigger('click');
                                  return false;
                                } else {
                                  inst.scrollTo($this.find('.module_error-container'), 0);
                                }
                                return false;
                              });
                              // Run validation on change
                              $this.find('input, select').on('change', function() {
                                if (!validationLock) {
                                  inst._mailingListValidation($this);
                                }
                              });
                              // Validate submit on enter
                              $this.find('input[type="text"], input[type="email"]').on('keydown', function(e) {
                                if (e.keyCode == 13) {
                                  e.preventDefault();
                                  $(this).closest(signup).find('.module_actions [type="submit"]').trigger('click');
                                  return false;
                                }
                              });
                            });
                          },
                          /**
                           * Validates all required fields.
                           * Used by default with fancySignup before displaying captcha.
                           * Returns an array of errors
                           * @param {$el} [element] The mailing list module
                           */
                          _mailingListValidation: function($el) {
                            var inst = this,
                              errors = [];
                            $el.find('.js--invalid').removeClass('js--invalid');
                            $el.find('.module_required').each(function() {
                              var $item = $(this).closest('.module-subscribe_table-input'),
                                message = inst.options.requiredText,
                                field = $item.find('label:first').text(),
                                validation = true;
                              // Does the input exist?
                              if ($item.find('input').length) {
                                if ($item.hasClass('module-subscribe_email')) {
                                  // Does the email address contain text?
                                  if (!$item.find('input').val().length) {
                                    validation = false;
                                  }
                                  // Is the email address valid?
                                  else if (!inst.isValidEmailAddress($item.find('input').val())) {
                                    validation = false;
                                    message = inst.options.invalidText;
                                  }
                                }
                                // Does the input contain text?
                                else if (!$item.find('input').val().length) {
                                  validation = false;
                                }
                              } else if ($item.find('select').length) {
                                if (!$item.find('select option:selected').index()) {
                                  validation = false;
                                }
                              } else {
                                if (!$item.closest('table').find('input[type="checkbox"]:checked').length) {
                                  $item = $item.next();
                                  validation = false;
                                }
                              }
                              if (!validation) {
                                $item.addClass('js--invalid');
                                errors.push({
                                  name: field,
                                  message: message
                                });
                              }
                            });
                            if (errors.length) {
                              $el.find('.module_error-container').html(Mustache.render(inst.options.errorTpl, {
                                errors: errors,
                                errorMessage: inst.options.errorMessage
                              })).show();
                            } else {
                              $el.find('.module_error-container').html('');
                            }
                            return errors;
                          },
                          /**
                           * Used to automatically set the copyright year to the current year.
                           * @param {$el} [element]  an element that will have its html replaced by the year
                           * @example app.copyright($('.copyright_year'));
                           */
                          copyright: function($el) {
                            $el.html(new Date().getFullYear());
                          },
                          /**
                           * Small plugin used for document tracking w/ Google Analytics
                           * @example app.docTracking();
                           */
                          docTracking: function() {
                            if (!!window.ga) {
                              var fileTypes,
                                domainRegex,
                                cdnRegex,
                                httpRegex,
                                baseHref,
                                baseTag,
                                currentPageMatches,
                                currentDomain;
                              // Fix for IE8
                              window.hasOwnProperty = window.hasOwnProperty || Object.prototype.hasOwnProperty; // jshint ignore:line
                              baseHref = '';
                              fileTypes = /\.(zip|exe|dmg|pdf|doc.*|xls.*|ppt.*|mp3|mp4|txt|rar|html|wma|mov|avi|wmv|flv|wav)(\?.*)?$/i;
                              domainRegex = /^https?:\/\/([^\/:?#]+)(?:[\/:?#]|$)/i;
                              httpRegex = /^https?\:\/\//i;
                              cdnRegex = /.*\.cloudfront\.net$/i;
                              currentPageMatches = window.location.href.match(domainRegex);
                              currentDomain = currentPageMatches.length > 0 ? currentPageMatches[1] : false;
                              baseTag = $('base');
                              if (baseTag.length > 0 && baseTag.attr('href') !== undefined) {
                                baseHref = baseTag.attr('href');
                              }
                              $('body').on('click', 'a', function(event) {
                                var el,
                                  elEv,
                                  href,
                                  domainMatches,
                                  linkDomain,
                                  isSiteDomain,
                                  extensionMatch;
                                el = $(this);
                                href = el.attr('href') || '';
                                // Don't do anything with javascript links
                                if (href.match(/^javascript:/i)) {
                                  return;
                                }
                                // Extract domain from link
                                domainMatches = href.match(domainRegex);
                                // Set link domain to the current if nothing matched (e.g. relative URL, tel/mailto)
                                linkDomain = null !== domainMatches ? domainMatches[1] : currentDomain;
                                // Does the domain match, or is this a CDN
                                isSiteDomain = linkDomain === currentDomain || cdnRegex.test(linkDomain) || linkDomain.toLowerCase().indexOf('q4cdn') > -1;
                                // Event defaults
                                elEv = {
                                  value: 0,
                                  non_i: false,
                                  action: 'click',
                                  loc: href
                                };
                                if (href.match(/^mailto\:/i)) {
                                  // Email links
                                  elEv.category = 'email';
                                  elEv.label = href.replace(/^mailto\:/i, '');
                                } else if (href.match() && !isSiteDomain) {
                                  // External downloads always have http[s]
                                  elEv.category = 'external';
                                  elEv.label = href.replace(httpRegex, '');
                                  elEv.non_i = true;
                                } else if (null !== (extensionMatch = href.match(fileTypes))) {
                                  // Matches a filetype we care about (extensionMatch[1] is the type)
                                  elEv.category = 'download';
                                  elEv.action = 'download';
                                  elEv.label = href.replace(/ /g, '-').replace(httpRegex, '');
                                  // Only add the base ref if its not a CDN link, or if the link is relative
                                  elEv.loc = (cdnRegex.test(linkDomain) ? '' : baseHref) + href;
                                } else if (href.match(/^tel\:/i)) {
                                  // iOS tel:// links
                                  elEv.category = 'telephone';
                                  elEv.action = 'click';
                                  elEv.label = href.replace(/^tel\:/i, '');
                                } else {
                                  return;
                                }
                                window.ga('send', 'event', elEv.category, elEv.action, elEv.label.toLowerCase(), elEv.value, {
                                  'nonInteraction': elEv.non_i
                                });
                                window.ga('Client.send', 'event', elEv.category, elEv.action, elEv.label.toLowerCase(), elEv.value, {
                                  'nonInteraction': elEv.non_i
                                });
                              });
                            }
                          },
                          accessibleNavKeyboard: function(navMainSelector, mainNavLevel, navSecondarySelector) {
                            var navMenuMain, navMenuSecondary, menubarMain, menubarSecondary, navItemsMain, navItemsSecondary, navItemsAll;
                            navMenuMain = document.querySelectorAll(navMainSelector)[0].getElementsByClassName('level' + mainNavLevel)[0];
                            navMenuSecondary = document.querySelectorAll(navSecondarySelector)[0].getElementsByClassName('level' + mainNavLevel)[0];
                            navItemsMain = $(navMainSelector + ' .level' + mainNavLevel + ' > li').toArray();
                            navItemsSecondary = $(navSecondarySelector + ' .level' + mainNavLevel + ' > li').toArray();
                            navItemsAll = navItemsMain.concat(navItemsSecondary);
                            // $(navMainSelector).each(function(idx, val){
                            //     navGuide = "<div id='nav_guide" + (idx + 1) + "' class='nav_guide'> 1. Use Left/Right arrow keys to allow users to navigate within the navigation links. 2. Use Down arrow key to expand the submenu and up/down arrow keys to navigate within the submenu. 3. Use Enter/Space key to select the menu/submenu items. 4. Use Esc key to leave the submenu. 5. Use Home to select the first item in the menu and End to select the last item in the menu. 6. Use character keys to select the next item having a name that starts with the typed character. </div>";
                            //     $(this).before(navGuide);
                            // });
                            if (mainNavLevel == '2') {
                              $(navMainSelector + ' .level' + mainNavLevel).prepend('<li class="home"></li>');
                              $(navMainSelector + ' .level' + mainNavLevel + ' .home').append($(navMainSelector + ' .level1 > li > a:first-child')[0]);
                              $(navMainSelector + ' .level1').attr('role', 'none');
                              $(navSecondarySelector + ' .level' + mainNavLevel).prepend('<li class="home"></li>');
                              $(navSecondarySelector + ' .level' + mainNavLevel + ' .home').append($(navSecondarySelector + ' .level1 > li > a:first-child')[0]);
                              $(navSecondarySelector + ' .level1').attr('role', 'none');
                            } else if (mainNavLevel == '1') {
                              $(navMainSelector + ' .level' + mainNavLevel + ' li').first().addClass('home');
                              $(navSecondarySelector + ' .level' + mainNavLevel + ' li').first().addClass('home');
                            }
                            $(navMainSelector + ' .level' + mainNavLevel).off("focusin.superfish", "li").off("focusout.superfish", "li").attr('role', 'menu');
                            $(navMainSelector + ' .level' + mainNavLevel).find('ul').attr('role', 'menu');
                            $(navMainSelector + ' li').attr('role', 'none');
                            $(navMainSelector + ' a').each(function() {
                              $(this).attr('tabindex', '-1').attr('role', 'menuitem');
                            });
                            $(navMainSelector + ' li.no-link span').each(function() {
                              $(this).attr('tabindex', '-1');
                            });
                            $(navMainSelector + ' a:first').attr('tabindex', '0');
                            $(navSecondarySelector + ' a').each(function() {
                              $(this).attr('tabindex', '-1').attr('role', 'menuitem');
                            });
                            $(navSecondarySelector + ' span').each(function() {
                              $(this).attr('tabindex', '-1');
                            });
                            $(navItemsAll).each(function() {
                              // due to product bug we also have to check for UL inside
                              if ($(this).hasClass('has-children') && $(this).find('> ul').length) {
                                var menuLink = $(this).children().first('a'),
                                  linkText = menuLink.text();
                                menuLink.attr('role', 'none').wrap('<button role="menuitem" aria-label="' + linkText + '" class="submenu-trigger" aria-haspopup="true" aria-expanded="false" tabindex="-1" ></button>');
                              } else if ($(this).hasClass('has-children') && !$(this).find('> ul').length) {
                                // removing the bugged class if there's no UL
                                $(this).removeClass('has-children');
                              }
                            });
                            $(navSecondarySelector + ' .level' + mainNavLevel).off("focusin.superfish", "li").off("focusout.superfish", "li").attr('role', 'menu');
                            $(navSecondarySelector + ' li.has-children:not(.home)').on('mouseover', function() {
                              $(this).children('button').attr('aria-expanded', 'true');
                            });
                            $(navSecondarySelector + ' li.has-children:not(.home)').on('mouseout', function() {
                              $(this).children('button').attr('aria-expanded', 'false');
                            });
                            var MenubarItem = function(domNode, menuObj, menuStyle) {
                              this.menu = menuObj;
                              this.domNode = domNode;
                              this.menuStyle = menuStyle;
                              this.popupMenu = false;
                              this.hasFocus = false;
                              this.hasHover = false;
                              this.isMenubarItem = true;
                              this.keyCode = Object.freeze({
                                'TAB': 9,
                                'RETURN': 13,
                                'ESC': 27,
                                'SPACE': 32,
                                'PAGEUP': 33,
                                'PAGEDOWN': 34,
                                'END': 35,
                                'HOME': 36,
                                'LEFT': 37,
                                'UP': 38,
                                'RIGHT': 39,
                                'DOWN': 40
                              });
                            };
                            MenubarItem.prototype.init = function() {
                              this.domNode.tabIndex = -1;
                              this.domNode.addEventListener('keydown', this.handleKeydown.bind(this));
                              this.domNode.addEventListener('focus', this.handleFocus.bind(this));
                              this.domNode.addEventListener('blur', this.handleBlur.bind(this));
                              this.domNode.addEventListener('mouseover', this.handleMouseover.bind(this));
                              this.domNode.addEventListener('mouseout', this.handleMouseout.bind(this));
                              // Initialize pop up menus
                              var nextElement = this.domNode.nextElementSibling;
                              if (nextElement && nextElement.tagName === 'UL') {
                                this.popupMenu = new PopupMenu(nextElement, this, this.menuStyle);
                                this.popupMenu.init();
                              }
                            };
                            MenubarItem.prototype.handleKeydown = function(event) {
                              var tgt = event.currentTarget,
                                char = event.key,
                                flag = false,
                                clickEvent,
                                menuStyle = this.menuStyle;

                              function isPrintableCharacter(str) {
                                return str.length === 1 && str.match(/\S/);
                              }
                              switch (event.keyCode) {
                                case this.keyCode.SPACE:
                                  event.preventDefault();
                                  if (tgt.tagName === 'A') {
                                    tgt = tgt;
                                  } else if (tgt.tagName === 'BUTTON') {
                                    tgt = this.domNode.childNodes[0];
                                  }
                                  // Create simulated mouse event to mimic the behavior of ATs
                                  // and let the event handler handleClick do the housekeeping.
                                  try {
                                    clickEvent = new MouseEvent('click', {
                                      'view': window,
                                      'bubbles': true,
                                      'cancelable': true
                                    });
                                  } catch (err) {
                                    if (document.createEvent) {
                                      // DOM Level 3 for IE 9+
                                      clickEvent = document.createEvent('MouseEvents');
                                      clickEvent.initEvent('click', true, true);
                                    }
                                  }
                                  tgt.dispatchEvent(clickEvent);
                                  break;
                                case this.keyCode.RETURN:
                                  if (this.popupMenu) {
                                    this.popupMenu.open();
                                    this.popupMenu.setFocusToFirstItem();
                                    flag = true;
                                  }
                                  break;
                                case this.keyCode.DOWN:
                                  if (menuStyle == 'horizontal') {
                                    if (this.popupMenu) {
                                      this.popupMenu.open();
                                      this.popupMenu.setFocusToFirstItem();
                                      flag = true;
                                    } else {
                                      event.preventDefault();
                                    }
                                  } else if (menuStyle == 'vertical') {
                                    this.menu.setFocusToNextItem(this);
                                    flag = true;
                                  }
                                  break;
                                case this.keyCode.UP:
                                  if (menuStyle == 'horizontal') {
                                    event.preventDefault();
                                  } else if (menuStyle == 'vertical') {
                                    this.menu.setFocusToPreviousItem(this);
                                    flag = true;
                                  }
                                  break;
                                case this.keyCode.LEFT:
                                  this.menu.setFocusToPreviousItem(this);
                                  flag = true;
                                  break;
                                case this.keyCode.RIGHT:
                                  this.menu.setFocusToNextItem(this);
                                  flag = true;
                                  break;
                                case this.keyCode.HOME:
                                case this.keyCode.PAGEUP:
                                  this.menu.setFocusToFirstItem();
                                  flag = true;
                                  break;
                                case this.keyCode.END:
                                case this.keyCode.PAGEDOWN:
                                  this.menu.setFocusToLastItem();
                                  flag = true;
                                  break;
                                case this.keyCode.TAB:
                                  if (this.popupMenu) {
                                    this.popupMenu.close(true);
                                  }
                                  break;
                                case this.keyCode.ESC:
                                  if (this.popupMenu) {
                                    this.popupMenu.close(true);
                                  }
                                  break;
                                default:
                                  if (isPrintableCharacter(char)) {
                                    this.menu.setFocusByFirstCharacter(this, char);
                                    flag = true;
                                  }
                                  break;
                              }
                              if (flag) {
                                event.stopPropagation();
                                event.preventDefault();
                              }
                            };
                            MenubarItem.prototype.setExpanded = function(value) {
                              if (value) {
                                this.domNode.setAttribute('aria-expanded', 'true');
                              } else {
                                this.domNode.setAttribute('aria-expanded', 'false');
                              }
                            };
                            MenubarItem.prototype.handleFocus = function(event) {
                              this.menu.hasFocus = true;
                            };
                            MenubarItem.prototype.handleBlur = function(event) {
                              this.menu.hasFocus = false;
                            };
                            MenubarItem.prototype.handleMouseover = function(event) {
                              this.hasHover = true;
                              if ($(this).children("ul").length) {
                                this.popupMenu.open();
                              }
                            };
                            MenubarItem.prototype.handleMouseout = function(event) {
                              this.hasHover = false;
                              if ($(this).children("ul").length) {
                                setTimeout(this.popupMenu.close.bind(this.popupMenu, false), 300);
                              }
                            };
                            /*
                             *   This content is licensed according to the W3C Software License at
                             *   https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
                             */
                            var Menubar = function(domNode, menuStyle) {
                              var elementChildren,
                                msgPrefix = 'Menubar constructor argument menubarNode ';
                              // Check whether menubarNode is a DOM element
                              if (!(domNode instanceof Element)) {
                                throw new TypeError(msgPrefix + 'is not a DOM Element.');
                              }
                              // Check whether menubarNode has descendant elements
                              if (domNode.childElementCount === 0) {
                                throw new Error(msgPrefix + 'has no element children.');
                              }
                              // Check whether menubarNode has A elements
                              e = domNode.firstElementChild;
                              while (e) {
                                var menubarItem = e.firstElementChild;
                                if (e && menubarItem && menubarItem.tagName !== 'A' && menubarItem.tagName !== 'BUTTON') {
                                  throw new Error(msgPrefix + 'has child elements are not A elements.');
                                }
                                e = e.nextElementSibling;
                              }
                              this.isMenubar = true;
                              this.menuStyle = menuStyle;
                              this.domNode = domNode;
                              this.menubarItems = []; // See Menubar init method
                              this.firstChars = []; // See Menubar init method
                              this.firstItem = null; // See Menubar init method
                              this.lastItem = null; // See Menubar init method
                              this.hasFocus = false; // See MenubarItem handleFocus, handleBlur
                              this.hasHover = false; // See Menubar handleMouseover, handleMouseout
                            };
                            /*
                             *   @method Menubar.prototype.init
                             *
                             *   @desc
                             *       Adds ARIA role to the menubar node
                             *       Traverse menubar children for A elements to configure each A element as a ARIA menuitem
                             *       and populate menuitems array. Initialize firstItem and lastItem properties.
                             */
                            Menubar.prototype.init = function() {
                              var menubarItem, childElement, menuElement, textContent, numItems;
                              // Traverse the element children of menubarNode: configure each with
                              // menuitem role behavior and store reference in menuitems array.
                              elem = this.domNode.firstElementChild;
                              while (elem) {
                                menuElement = elem.firstElementChild;
                                if (elem && menuElement && menuElement.tagName === 'A' || elem && menuElement && menuElement.tagName === 'BUTTON') {
                                  menubarItem = new MenubarItem(menuElement, this, this.menuStyle);
                                  menubarItem.init();
                                  this.menubarItems.push(menubarItem);
                                  textContent = menuElement.textContent.trim();
                                  this.firstChars.push(textContent.substring(0, 1).toLowerCase());
                                }
                                elem = elem.nextElementSibling;
                              }
                              // Use populated menuitems array to initialize firstItem and lastItem.
                              numItems = this.menubarItems.length;
                              if (numItems > 0) {
                                this.firstItem = this.menubarItems[0];
                                this.lastItem = this.menubarItems[numItems - 1];
                              }
                              this.firstItem.domNode.tabIndex = 0;
                            };
                            /* FOCUS MANAGEMENT METHODS */
                            Menubar.prototype.setFocusToItem = function(newItem) {
                              var flag = false;
                              for (var i = 0; i < this.menubarItems.length; i++) {
                                var mbi = this.menubarItems[i];
                                if (mbi.domNode.tabIndex == 0) {
                                  flag = mbi.domNode.getAttribute('aria-expanded') === 'true';
                                }
                                mbi.domNode.tabIndex = -1;
                                if (mbi.popupMenu) {
                                  mbi.popupMenu.close();
                                }
                              }
                              newItem.domNode.focus();
                              newItem.domNode.tabIndex = 0;
                              if (flag && newItem.popupMenu) {
                                newItem.popupMenu.open();
                              }
                            };
                            Menubar.prototype.setFocusToFirstItem = function(flag) {
                              this.setFocusToItem(this.firstItem);
                            };
                            Menubar.prototype.setFocusToLastItem = function(flag) {
                              this.setFocusToItem(this.lastItem);
                            };
                            Menubar.prototype.setFocusToPreviousItem = function(currentItem) {
                              var index;
                              if (currentItem === this.firstItem) {
                                newItem = this.lastItem;
                              } else {
                                index = this.menubarItems.indexOf(currentItem);
                                newItem = this.menubarItems[index - 1];
                              }
                              this.setFocusToItem(newItem);
                            };
                            Menubar.prototype.setFocusToNextItem = function(currentItem) {
                              var index;
                              if (currentItem === this.lastItem) {
                                newItem = this.firstItem;
                              } else {
                                index = this.menubarItems.indexOf(currentItem);
                                newItem = this.menubarItems[index + 1];
                              }
                              this.setFocusToItem(newItem);
                            };
                            Menubar.prototype.setFocusByFirstCharacter = function(currentItem, char) {
                              var start, index = char.toLowerCase();
                              char = char.toLowerCase();
                              var flag = currentItem.domNode.getAttribute('aria-expanded') === 'true';
                              // Get start index for search based on position of currentItem
                              start = this.menubarItems.indexOf(currentItem) + 1;
                              if (start === this.menubarItems.length) {
                                start = 0;
                              }
                              // Check remaining slots in the menu
                              index = this.getIndexFirstChars(start, char);
                              // If not found in remaining slots, check from beginning
                              if (index === -1) {
                                index = this.getIndexFirstChars(0, char);
                              }
                              // If match was found...
                              if (index > -1) {
                                this.setFocusToItem(this.menubarItems[index]);
                              }
                            };
                            Menubar.prototype.getIndexFirstChars = function(startIndex, char) {
                              for (var i = startIndex; i < this.firstChars.length; i++) {
                                if (char === this.firstChars[i]) {
                                  return i;
                                }
                              }
                              return -1;
                            };
                            /*
                             *   This content is licensed according to the W3C Software License at
                             *   https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
                             */
                            var MenuItem = function(domNode, menuObj) {
                              if (typeof popupObj !== 'object') {
                                popupObj = false;
                              }
                              this.domNode = domNode;
                              this.menu = menuObj;
                              this.popupMenu = false;
                              this.isMenubarItem = false;
                              this.keyCode = Object.freeze({
                                'TAB': 9,
                                'RETURN': 13,
                                'ESC': 27,
                                'SPACE': 32,
                                'PAGEUP': 33,
                                'PAGEDOWN': 34,
                                'END': 35,
                                'HOME': 36,
                                'LEFT': 37,
                                'UP': 38,
                                'RIGHT': 39,
                                'DOWN': 40
                              });
                            };
                            MenuItem.prototype.init = function() {
                              this.domNode.tabIndex = -1;
                              this.domNode.addEventListener('keydown', this.handleKeydown.bind(this));
                              this.domNode.addEventListener('click', this.handleClick.bind(this));
                              this.domNode.addEventListener('focus', this.handleFocus.bind(this));
                              this.domNode.addEventListener('blur', this.handleBlur.bind(this));
                              this.domNode.addEventListener('mouseover', this.handleMouseover.bind(this));
                              this.domNode.addEventListener('mouseout', this.handleMouseout.bind(this));
                              // Initialize flyout menu
                              var nextElement = this.domNode.nextElementSibling;
                              if (nextElement && nextElement.tagName === 'UL') {
                                this.popupMenu = new PopupMenu(nextElement, this);
                                this.popupMenu.init();
                              }
                            };
                            MenuItem.prototype.isExpanded = function() {
                              return this.domNode.getAttribute('aria-expanded') === 'true';
                            };
                            /* EVENT HANDLERS */
                            MenuItem.prototype.handleKeydown = function(event) {
                              var tgt = event.currentTarget,
                                char = event.key,
                                flag = false,
                                clickEvent;

                              function isPrintableCharacter(str) {
                                return str.length === 1 && str.match(/\S/);
                              }
                              switch (event.keyCode) {
                                case this.keyCode.SPACE:
                                  event.preventDefault();
                                  if (tgt.tagName === 'A') {
                                    tgt = tgt;
                                  } else if (tgt.tagName === 'BUTTON') {
                                    tgt = this.domNode.childNodes[0];
                                  }
                                  // Create simulated mouse event to mimic the behavior of ATs
                                  // and let the event handler handleClick do the housekeeping.
                                  try {
                                    clickEvent = new MouseEvent('click', {
                                      'view': window,
                                      'bubbles': true,
                                      'cancelable': true
                                    });
                                  } catch (err) {
                                    if (document.createEvent) {
                                      // DOM Level 3 for IE 9+
                                      clickEvent = document.createEvent('MouseEvents');
                                      clickEvent.initEvent('click', true, true);
                                    }
                                  }
                                  tgt.dispatchEvent(clickEvent);
                                  flag = true;
                                  break;
                                case this.keyCode.RETURN:
                                  if (this.popupMenu) {
                                    this.popupMenu.open();
                                    this.popupMenu.setFocusToFirstItem();
                                    flag = true;
                                  }
                                  break;
                                case this.keyCode.UP:
                                  this.menu.setFocusToPreviousItem(this);
                                  flag = true;
                                  break;
                                case this.keyCode.DOWN:
                                  this.menu.setFocusToNextItem(this);
                                  flag = true;
                                  break;
                                case this.keyCode.LEFT:
                                  break;
                                case this.keyCode.RIGHT:
                                  break;
                                case this.keyCode.HOME:
                                case this.keyCode.PAGEUP:
                                  this.menu.setFocusToFirstItem();
                                  flag = true;
                                  break;
                                case this.keyCode.END:
                                case this.keyCode.PAGEDOWN:
                                  this.menu.setFocusToLastItem();
                                  flag = true;
                                  break;
                                case this.keyCode.ESC:
                                  this.menu.setFocusToController();
                                  this.menu.close(true);
                                  flag = true;
                                  break;
                                case this.keyCode.TAB:
                                  this.menu.setFocusToController();
                                  break;
                                default:
                                  if (isPrintableCharacter(char)) {
                                    this.menu.setFocusByFirstCharacter(this, char);
                                    flag = true;
                                  }
                                  break;
                              }
                              if (flag) {
                                event.stopPropagation();
                                event.preventDefault();
                              }
                            };
                            MenuItem.prototype.setExpanded = function(value) {
                              if (value) {
                                this.domNode.setAttribute('aria-expanded', 'true');
                              } else {
                                this.domNode.setAttribute('aria-expanded', 'false');
                              }
                            };
                            MenuItem.prototype.handleClick = function(event) {
                              this.menu.setFocusToController();
                              this.menu.close(true);
                            };
                            MenuItem.prototype.handleFocus = function(event) {
                              this.menu.hasFocus = true;
                            };
                            MenuItem.prototype.handleBlur = function(event) {
                              this.menu.hasFocus = false;
                              setTimeout(this.menu.close.bind(this.menu, false), 300);
                            };
                            MenuItem.prototype.handleMouseover = function(event) {
                              this.menu.hasHover = true;
                              this.menu.open();
                              if (this.popupMenu) {
                                this.popupMenu.hasHover = true;
                                this.popupMenu.open();
                              }
                            };
                            MenuItem.prototype.handleMouseout = function(event) {
                              if (this.popupMenu) {
                                this.popupMenu.hasHover = false;
                                this.popupMenu.close(true);
                              }
                              this.menu.hasHover = false;
                              setTimeout(this.menu.close.bind(this.menu, false), 300);
                            };
                            /*
                             *   This content is licensed according to the W3C Software License at
                             *   https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
                             */
                            var PopupMenu = function(domNode, controllerObj, menuStyle) {
                              var elementChildren,
                                msgPrefix = 'PopupMenu constructor argument domNode ';
                              // Check whether domNode is a DOM element
                              if (!(domNode instanceof Element)) {
                                throw new TypeError(msgPrefix + 'is not a DOM Element.');
                              }
                              // Check whether domNode has child elements
                              if (domNode.childElementCount === 0) {
                                throw new Error(msgPrefix + 'has no element children.');
                              }
                              // Check whether domNode descendant elements have A elements
                              var childElement = domNode.firstElementChild;
                              while (childElement) {
                                var menuitem = childElement.firstElementChild;
                                if (menuitem && menuitem === 'A') {
                                  throw new Error(msgPrefix + 'has descendant elements that are not A elements.');
                                }
                                childElement = childElement.nextElementSibling;
                              }
                              this.isMenubar = false;
                              this.domNode = domNode;
                              this.menuStyle = menuStyle;
                              this.controller = controllerObj;
                              this.menuitems = []; // See PopupMenu init method
                              this.firstChars = []; // See PopupMenu init method
                              this.firstItem = null; // See PopupMenu init method
                              this.lastItem = null; // See PopupMenu init method
                              this.hasFocus = false; // See MenuItem handleFocus, handleBlur
                              this.hasHover = false; // See PopupMenu handleMouseover, handleMouseout
                            };
                            /*
                             *   @method PopupMenu.prototype.init
                             *
                             *   @desc
                             *       Add domNode event listeners for mouseover and mouseout. Traverse
                             *       domNode children to configure each menuitem and populate menuitems
                             *       array. Initialize firstItem and lastItem properties.
                             */
                            PopupMenu.prototype.init = function() {
                              var childElement, menuElement, menuItem, textContent, numItems, label;
                              // Configure the domNode itself
                              this.domNode.addEventListener('mouseover', this.handleMouseover.bind(this));
                              this.domNode.addEventListener('mouseout', this.handleMouseout.bind(this));
                              // Traverse the element children of domNode: configure each with
                              // menuitem role behavior and store reference in menuitems array.
                              childElement = this.domNode.firstElementChild;
                              while (childElement) {
                                menuElement = childElement.firstElementChild;
                                if (menuElement && menuElement.tagName === 'A') {
                                  menuItem = new MenuItem(menuElement, this);
                                  menuItem.init();
                                  this.menuitems.push(menuItem);
                                  textContent = menuElement.textContent.trim();
                                  this.firstChars.push(textContent.substring(0, 1).toLowerCase());
                                }
                                childElement = childElement.nextElementSibling;
                              }
                              // Use populated menuitems array to initialize firstItem and lastItem.
                              numItems = this.menuitems.length;
                              if (numItems > 0) {
                                this.firstItem = this.menuitems[0];
                                this.lastItem = this.menuitems[numItems - 1];
                              }
                            };
                            /* EVENT HANDLERS */
                            PopupMenu.prototype.handleMouseover = function(event) {
                              this.hasHover = true;
                            };
                            PopupMenu.prototype.handleMouseout = function(event) {
                              this.hasHover = false;
                              setTimeout(this.close.bind(this, false), 1);
                            };
                            /* FOCUS MANAGEMENT METHODS */
                            PopupMenu.prototype.setFocusToController = function(command, flag) {
                              if (typeof command !== 'string') {
                                command = '';
                              }

                              function setFocusToMenubarItem(controller, close) {
                                while (controller) {
                                  if (controller.isMenubarItem) {
                                    controller.domNode.focus();
                                    return controller;
                                  } else {
                                    if (close) {
                                      controller.menu.close(true);
                                    }
                                    controller.hasFocus = false;
                                  }
                                  controller = controller.menu.controller;
                                }
                                return false;
                              }
                              if (command === '') {
                                if (this.controller && this.controller.domNode) {
                                  this.controller.domNode.focus();
                                  $(this.controller.domNode).children('a').first().focus();
                                }
                                return;
                              }
                              if (!this.controller.isMenubarItem) {
                                this.controller.domNode.focus();
                                this.close();
                                if (command === 'next') {
                                  var menubarItem = setFocusToMenubarItem(this.controller, false);
                                  if (menubarItem) {
                                    menubarItem.menu.setFocusToNextItem(menubarItem, flag);
                                  }
                                }
                              } else {
                                if (command === 'previous') {
                                  this.controller.menu.setFocusToPreviousItem(this.controller, flag);
                                } else if (command === 'next') {
                                  this.controller.menu.setFocusToNextItem(this.controller, flag);
                                }
                              }
                            };
                            PopupMenu.prototype.setFocusToFirstItem = function() {
                              this.firstItem.domNode.focus();
                            };
                            PopupMenu.prototype.setFocusToLastItem = function() {
                              this.lastItem.domNode.focus();
                            };
                            PopupMenu.prototype.setFocusToPreviousItem = function(currentItem) {
                              var index;
                              if (currentItem === this.firstItem) {
                                this.lastItem.domNode.focus();
                              } else {
                                index = this.menuitems.indexOf(currentItem);
                                this.menuitems[index - 1].domNode.focus();
                              }
                            };
                            PopupMenu.prototype.setFocusToNextItem = function(currentItem) {
                              var index;
                              if (currentItem === this.lastItem) {
                                this.firstItem.domNode.focus();
                              } else {
                                index = this.menuitems.indexOf(currentItem);
                                this.menuitems[index + 1].domNode.focus();
                              }
                            };
                            PopupMenu.prototype.setFocusByFirstCharacter = function(currentItem, char) {
                              var start, index = char.toLowerCase();
                              char = char.toLowerCase();
                              // Get start index for search based on position of currentItem
                              start = this.menuitems.indexOf(currentItem) + 1;
                              if (start === this.menuitems.length) {
                                start = 0;
                              }
                              // Check remaining slots in the menu
                              index = this.getIndexFirstChars(start, char);
                              // If not found in remaining slots, check from beginning
                              if (index === -1) {
                                index = this.getIndexFirstChars(0, char);
                              }
                              // If match was found...
                              if (index > -1) {
                                this.menuitems[index].domNode.focus();
                              }
                            };
                            PopupMenu.prototype.getIndexFirstChars = function(startIndex, char) {
                              for (var i = startIndex; i < this.firstChars.length; i++) {
                                if (char === this.firstChars[i]) {
                                  return i;
                                }
                              }
                              return -1;
                            };
                            /* MENU DISPLAY METHODS */
                            PopupMenu.prototype.open = function() {
                              // Set CSS properties
                              this.domNode.style.display = 'inline-block';
                              this.domNode.setAttribute('aria-hidden', 'false');
                              this.controller.setExpanded(true);
                            };
                            PopupMenu.prototype.close = function(force) {
                              var controllerHasHover = this.controller.hasHover;
                              var hasFocus = this.hasFocus;
                              for (var i = 0; i < this.menuitems.length; i++) {
                                var mi = this.menuitems[i];
                                if (mi.popupMenu) {
                                  hasFocus = hasFocus | mi.popupMenu.hasFocus;
                                }
                              }
                              if (!this.controller.isMenubarItem) {
                                controllerHasHover = false;
                              }
                              if (force || (!hasFocus && !this.hasHover && !controllerHasHover)) {
                                this.domNode.style.display = 'none';
                                this.domNode.setAttribute('aria-hidden', 'true');
                                this.controller.domNode.setAttribute('aria-expanded', 'false');
                              }
                            };
                            menubarMain = new Menubar(navMenuMain, 'horizontal');
                            menubarSecondary = new Menubar(navMenuSecondary, 'vertical');
                            menubarMain.init();
                            menubarSecondary.init();
                          }
                        };
                      </script>
                    </div>
                  </div>
                </div>
              </span></span></div>
        </div>
        <div class="pane pane--navigation js--hidden">
          <div class="pane_inner"></div>
        </div>
        <div class="pane pane--banner">
          <div class="pane_inner"><span class="HeaderPane2Div5">
              <div id="_ctrl0_ctl18_divModuleContainer" class="module module-page-title">
                <div class="module_container module_container--outer">
                  <div class="module_container module_container--inner">
                    <h1 class="module_title">Page Not Found</h1>
                  </div>
                </div>
              </div>
            </span></div>
        </div>
      </div>
      <div class="layout_content" id="maincontent" role="main">
        <div class="pane pane--breadcrumb" style="min-height: 0px;">
          <div class="pane_inner"><span class="BreadcrumbPaneDiv6">
              <nav class="nav nav--secondary" aria-label="secondary navigation">
                <ul class="level1">
                  <li class="selected has-children home"><a href="https://investors.planet.com/overview/default.aspx" aria-current="page">Overview</a>
                    <ul class="level2 sf-js-enabled" style="touch-action: pan-y;">
                      <li><a href="https://investors.planet.com/news/default.aspx">News</a></li>
                      <li class="has-children"><a href="https://investors.planet.com/events-and-presentations/default.aspx" class="sf-with-ul">Events &amp; Presentations</a>
                        <ul class="level3" style="display: none;">
                          <li><a href="https://investors.planet.com/events-and-presentations/events/default.aspx">Events</a></li>
                          <li><a href="https://investors.planet.com/events-and-presentations/presentations/default.aspx">Presentations</a></li>
                        </ul>
                      </li>
                      <li><a href="https://investors.planet.com/Videos/default.aspx">Videos</a></li>
                      <li class="has-children"><a href="https://investors.planet.com/stock-info/default.aspx" class="sf-with-ul">Stock Info</a>
                        <ul class="level3" style="display: none;">
                          <li><a href="/stock-info/default.aspx#stock-quote">Stock Quote</a></li>
                          <li><a href="/stock-info/default.aspx#stock-chart">Stock Chart</a></li>
                          <li><a href="/stock-info/default.aspx#stock-historical">Historical Stock Quote</a></li>
                          <li><a href="/stock-info/default.aspx#calculator">Investment Calculator</a></li>
                          <li><a href="https://investors.planet.com/stock-info/analyst-coverage/default.aspx">Analyst Coverage</a></li>
                        </ul>
                      </li>
                      <li class="has-children"><a href="https://investors.planet.com/financials/quarterly-results/default.aspx" class="sf-with-ul">Financials</a>
                        <ul class="level3" style="display: none;">
                          <li><a href="https://investors.planet.com/financials/quarterly-results/default.aspx">Quarterly Results</a></li>
                          <li><a href="https://investors.planet.com/financials/sec-filings/default.aspx">SEC Filings</a></li>
                        </ul>
                      </li>
                      <li class="has-children"><a href="https://investors.planet.com/governance/governance-documents/default.aspx" class="sf-with-ul">Governance</a>
                        <ul class="level3" style="display: none;">
                          <li><a href="https://investors.planet.com/governance/governance-documents/default.aspx">Governance Documents</a></li>
                          <li><a href="https://www.planet.com/company/#team" target="_blank">Executive Management</a></li>
                          <li><a href="https://www.planet.com/company/" target="_blank">Board of Directors</a></li>
                          <li><a href="https://investors.planet.com/governance/committee-composition/default.aspx">Committee Composition</a></li>
                        </ul>
                      </li>
                      <li class="has-children"><a href="https://investors.planet.com/resources/investor-faqs/default.aspx" class="sf-with-ul">Resources</a>
                        <ul class="level3" style="display: none;">
                          <li><a href="https://investors.planet.com/resources/investor-faqs/default.aspx">Investor FAQs</a></li>
                          <li><a href="https://investors.planet.com/resources/investor-email-alerts/default.aspx">Investor Email Alerts</a></li>
                          <li><a href="https://investors.planet.com/resources/investor-contacts/default.aspx">Investor Contacts</a></li>
                        </ul>
                      </li>
                    </ul>
                  </li>
                </ul>
              </nav>
            </span></div>
        </div>
        <div class="pane pane--left">
          <div class="pane_inner"><span class="LeftPaneDiv"></span></div>
        </div>
        <div class="pane pane--content">
          <div class="pane_inner"><span class="ContentPaneDiv"><span class="ContentPaneDiv1">
                <div id="_ctrl0_ctl46_divModuleContainer" class="module module-html module-sitemap">
                  <div class="module_container module_container--outer">
                    <h2 id="_ctrl0_ctl46_lblTitle" class="module_title"><span id="_ctrl0_ctl46_lblModuleTitle" class="ModuleTitle">Site Map</span></h2>
                    <div class="module_container module_container--inner">
                      <p>We're sorry, but there is no page on the site that matches your entry. It is possible you typed the address incorrectly, or the page may no longer exist. You may wish to try another entry or choose from the links below, which
                        we hope will help you find what you are looking for.</p>
                      <p>If you believe that this page should exist, please send an email to <a href="mailto:support@q4inc.com">support@q4inc.com</a> explaining the page you were trying to access.</p>
                      <p>Thanks for your patience, understanding, and help.</p>
                    </div>
                  </div>
                </div>
              </span><span class="ContentPaneDiv2">
                <nav class="nav nav--sitemap">
                  <ul class="level1">
                    <li class="selected has-children home"><a href="https://investors.planet.com/overview/default.aspx" aria-current="page">Overview</a>
                      <ul class="level2">
                        <li><a href="https://investors.planet.com/news/default.aspx">News</a></li>
                        <li class="has-children"><a href="https://investors.planet.com/events-and-presentations/default.aspx">Events &amp; Presentations</a>
                          <ul class="level3">
                            <li><a href="https://investors.planet.com/events-and-presentations/events/default.aspx">Events</a></li>
                            <li><a href="https://investors.planet.com/events-and-presentations/presentations/default.aspx">Presentations</a></li>
                          </ul>
                        </li>
                        <li><a href="https://investors.planet.com/Videos/default.aspx">Videos</a></li>
                        <li class="has-children"><a href="https://investors.planet.com/stock-info/default.aspx">Stock Info</a>
                          <ul class="level3">
                            <li><a href="/stock-info/default.aspx#stock-quote">Stock Quote</a></li>
                            <li><a href="/stock-info/default.aspx#stock-chart">Stock Chart</a></li>
                            <li><a href="/stock-info/default.aspx#stock-historical">Historical Stock Quote</a></li>
                            <li><a href="/stock-info/default.aspx#calculator">Investment Calculator</a></li>
                            <li><a href="https://investors.planet.com/stock-info/analyst-coverage/default.aspx">Analyst Coverage</a></li>
                          </ul>
                        </li>
                        <li class="has-children"><a href="https://investors.planet.com/financials/quarterly-results/default.aspx">Financials</a>
                          <ul class="level3">
                            <li><a href="https://investors.planet.com/financials/quarterly-results/default.aspx">Quarterly Results</a></li>
                            <li><a href="https://investors.planet.com/financials/sec-filings/default.aspx">SEC Filings</a></li>
                          </ul>
                        </li>
                        <li class="has-children"><a href="https://investors.planet.com/governance/governance-documents/default.aspx">Governance</a>
                          <ul class="level3">
                            <li><a href="https://investors.planet.com/governance/governance-documents/default.aspx">Governance Documents</a></li>
                            <li><a href="https://www.planet.com/company/#team" target="_blank">Executive Management</a></li>
                            <li><a href="https://www.planet.com/company/" target="_blank">Board of Directors</a></li>
                            <li><a href="https://investors.planet.com/governance/committee-composition/default.aspx">Committee Composition</a></li>
                          </ul>
                        </li>
                        <li class="has-children"><a href="https://investors.planet.com/resources/investor-faqs/default.aspx">Resources</a>
                          <ul class="level3">
                            <li><a href="https://investors.planet.com/resources/investor-faqs/default.aspx">Investor FAQs</a></li>
                            <li><a href="https://investors.planet.com/resources/investor-email-alerts/default.aspx">Investor Email Alerts</a></li>
                            <li><a href="https://investors.planet.com/resources/investor-contacts/default.aspx">Investor Contacts</a></li>
                          </ul>
                        </li>
                      </ul>
                    </li>
                  </ul>
                </nav>
              </span></span></div>
        </div>
        <div class="pane pane--right">
          <div class="pane_inner"><span class="RightPaneDiv"></span></div>
        </div>
      </div>
      <div class="layout_footer" role="contentinfo">
        <div class="pane pane--footer grid">
          <div class="pane_inner"><span class="FooterPaneDiv"><span class="FooterPaneDiv7">
                <div id="_ctrl0_ctl24_divModuleContainer" class="module module-html module-contact dark grid_col grid_col--1-of-4 grid_col--lc-1-of-2 grid_col--md-1-of-1">
                  <div class="module_container module_container--outer">
                    <div class="module_container module_container--inner">
                      <h3 class="module_title">Contact IR</h3>
                      <p class="q4icons">
                        <!--<a href="tel:000-0000-0000" aria-label="contact us by phone"><span class="q4icons_icon" aria-hidden="true"></span><span>000-0000-0000</span></a><br>-->
                        <a href="mailto:IR@PLANET.COM" aria-label="contact us by email"><span class="q4icons_icon" aria-hidden="true"></span><span>IR@PLANET.COM</span></a>
                      </p>
                    </div>
                  </div>
                </div>
              </span><span class="FooterPaneDiv8">
                <div id="_ctrl0_ctl27_RightBlock" class="hidden"></div>
                <div id="_ctrl0_ctl27_divModuleContainer" class="module module-links dark list--reset grid_col grid_col--1-of-4 grid_col--lc-1-of-2 grid_col--md-1-of-1">
                  <div class="module_container module_container--outer">
                    <h3 id="_ctrl0_ctl27_lblTitle" class="module_title"><span id="_ctrl0_ctl27_lblModuleTitle" class="ModuleTitle">Quick Links</span></h3>
                    <div class="module_container module_container--inner">
                      <ul id="_ctrl0_ctl27_qlList" class="module-links_list">
                        <li id="_ctrl0_ctl27_QuickLinkList_ctl00_liQuickLink" class="QuickLinkRow">
                          <a href="https://investors.planet.com/financials/sec-filings/default.aspx" id="_ctrl0_ctl27_QuickLinkList_ctl00_link" class="module-links_list-item-link" target="_self">SEC Filings</a>
                        </li>
                        <li id="_ctrl0_ctl27_QuickLinkList_ctl01_liQuickLink" class="QuickLinkRowAlt">
                          <a href="https://investors.planet.com/resources/investor-faqs/default.aspx" id="_ctrl0_ctl27_QuickLinkList_ctl01_link" class="module-links_list-item-link" target="_self">Investor FAQs</a>
                        </li>
                      </ul>
                    </div>
                  </div>
                </div>
              </span><span class="FooterPaneDiv9">
                <div id="_ctrl0_ctl30_divModuleContainer" class="module module-subscribe module-subscribe--fancy module-subscribe--footer dark grid_col grid_col--2-of-4 grid_col--lc-1-of-1">
                  <div class="module_container module_container--outer">
                    <h3 class="module_title"><span id="_ctrl0_ctl30_lblModuleTitle" class="ModuleTitle">Investor Email Alerts</span><span id="_ctrl0_ctl30_lblHelpPage"></span></h3>
                    <div class="module_container module_container--inner">
                      <div class="module_introduction"><span id="_ctrl0_ctl30_lblIntroText" class="IntroText">
                          <p>To opt-in for investor email alerts, please enter your email address in the field below and select at least one alert option. After submitting your request, you will receive an activation email to the requested email
                            address. You must click the activation link in order to complete your subscription. You can sign up for additional alert options at any time.</p>
                          <p>At Planet Labs Inc., we promise to treat your data with respect and will not share your information with any third party. You can unsubscribe to any of the investor alerts you are subscribed to by visiting the
                            ‘unsubscribe’ section below. If you experience any issues with this process, please contact us for further assistance.</p>
                          <p><strong>By providing your email address below, you are providing consent to Planet Labs Inc. to send you the requested Investor Email Alert updates.</strong></p>
                          <p class="module_required-text">* Required</p>
                        </span></div>
                      <div id="_ctrl0_ctl30_validationsummary" class="module_error-container" role="alert" aria-live="assertive" style="display:none;">
                      </div>
                      <div class="module-subscribe_table-wrap">
                        <table class="module-subscribe_table module-subscribe_form" role="presentation">
                          <tbody>
                            <tr id="_ctrl0_ctl30_rowEmailAddress" class="module-subscribe_table-input module-subscribe_email">
                              <td id="_ctrl0_ctl30_ctl02">
                                <label for="_ctrl0_ctl30_txtEmail" id="_ctrl0_ctl30_lblEmailAddressText">Email Address</label>
                                <span id="_ctrl0_ctl30_lblRequiredEmailAddress" class="module_required">*</span>
                                <input name="_ctrl0$ctl30$txtEmail" type="email" maxlength="128" id="_ctrl0_ctl30_txtEmail" class="module_input" placeholder="Enter your Email Address">
                                <span id="_ctrl0_ctl30_regexEmailValidator1" style="display:none;"></span>
                                <span id="_ctrl0_ctl30_reqvalEmailValidator1" style="display:none;"></span>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                        <fieldset>
                          <legend class="sr-only">Investor Alert Options</legend>
                          <table id="_ctrl0_ctl30_tableMailingLists" class="module-subscribe_table module-subscribe_mailing-list" role="presentation">
                            <tbody>
                              <tr id="_ctrl0_ctl30_rowMailingListLabel" class="module-subscribe_table-input module-subscribe_list-header">
                                <td id="_ctrl0_ctl30_ctl17">
                                  <label for="_ctrl0_ctl30_chkLists" id="_ctrl0_ctl30_lblMailingListsText">Investor Alert Options</label>
                                  <span id="_ctrl0_ctl30_lblRequiredMailingLists" class="module_required">*</span>
                                </td>
                              </tr>
                              <tr id="_ctrl0_ctl30_rowMailingLists" class="module-subscribe_table-input module-subscribe_list">
                                <td id="_ctrl0_ctl30_ctl18" role="group">
                                  <table id="_ctrl0_ctl30_chkLists">
                                    <tbody>
                                      <tr>
                                        <td><input id="_ctrl0_ctl30_chkLists_0" type="checkbox" name="_ctrl0$ctl30$chkLists$0" value="37"><label for="_ctrl0_ctl30_chkLists_0">News</label></td>
                                      </tr>
                                      <tr>
                                        <td><input id="_ctrl0_ctl30_chkLists_1" type="checkbox" name="_ctrl0$ctl30$chkLists$1" value="39"><label for="_ctrl0_ctl30_chkLists_1">Quarterly Reports</label></td>
                                      </tr>
                                      <tr>
                                        <td><input id="_ctrl0_ctl30_chkLists_2" type="checkbox" name="_ctrl0$ctl30$chkLists$2" value="41"><label for="_ctrl0_ctl30_chkLists_2">SEC Filings</label></td>
                                      </tr>
                                      <tr>
                                        <td><input id="_ctrl0_ctl30_chkLists_3" type="checkbox" name="_ctrl0$ctl30$chkLists$3" value="42"><label for="_ctrl0_ctl30_chkLists_3">End of Day Stock Quote</label></td>
                                      </tr>
                                      <tr>
                                        <td><input id="_ctrl0_ctl30_chkLists_4" type="checkbox" name="_ctrl0$ctl30$chkLists$4" value="46"><label for="_ctrl0_ctl30_chkLists_4">Events &amp; Presentations</label></td>
                                      </tr>
                                    </tbody>
                                  </table>
                                  <span id="_ctrl0_ctl30_cusvalMailingListsValidator" style="display:none;"></span>
                                </td>
                              </tr>
                            </tbody>
                          </table>
                        </fieldset>
                        <div id="_ctrl0_ctl30_recaptcha_divModuleContainer" class="RecaptchaContainer">
                          <input type="hidden" name="_ctrl0$ctl30$recaptcha$hdnCaptchaToken" id="_ctrl0_ctl30_recaptcha_hdnCaptchaToken">
                          <script type="text/javascript">
                            function onLoad__ctrl0_ctl30_recaptcha() {
                              grecaptcha.render('_ctrl0_ctl30_btnSubmit', {
                                'sitekey': '6LcKf8wZAAAAADYEeFvKUvdj80FVct5G98mSJ29W',
                                'callback': 'onSubmit__ctrl0_ctl30_recaptcha',
                                'size': 'invisible'
                              });
                            }

                            function onSubmit__ctrl0_ctl30_recaptcha(token) {
                              var captchaTokenField = document.getElementById('_ctrl0_ctl30_recaptcha_hdnCaptchaToken');
                              captchaTokenField.value = token;
                              __doPostBack('_ctrl0$ctl30$btnSubmit', "");
                            }
                          </script>
                          <script src="https://www.google.com/recaptcha/api.js?onload=onLoad__ctrl0_ctl30_recaptcha&amp;render=explicit" async="" defer=""></script>
                          <style>
                            .grecaptcha-badge {
                              display: none !important;
                            }
                          </style>
                        </div>
                        <span id="_ctrl0_ctl30_cusvalRecaptcha" style="display:none;"></span>
                        <div class="module_actions">
                          <div>
                            <div class="grecaptcha-badge" data-style="bottomright"
                              style="width: 256px; height: 60px; position: fixed; visibility: hidden; display: block; transition: right 0.3s ease 0s; bottom: 14px; right: -186px; box-shadow: gray 0px 0px 5px; border-radius: 2px; overflow: hidden;">
                              <div class="grecaptcha-logo"><iframe title="reCAPTCHA" width="256" height="60" role="presentation" name="a-fcs49ua8dbgk" frameborder="0" scrolling="no"
                                  sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox allow-storage-access-by-user-activation"
                                  src="https://www.google.com/recaptcha/api2/anchor?ar=1&amp;k=6LcKf8wZAAAAADYEeFvKUvdj80FVct5G98mSJ29W&amp;co=aHR0cHM6Ly9pbnZlc3RvcnMucGxhbmV0LmNvbTo0NDM.&amp;hl=de&amp;v=rKbTvxTxwcw5VqzrtN-ICwWt&amp;size=invisible&amp;cb=cohjtxohypi0"></iframe>
                              </div>
                              <div class="grecaptcha-error"></div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response"
                                style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea>
                            </div><iframe style="display: none;"></iframe>
                          </div><button type="submit" name="_ctrl0$ctl30$btnSubmit" value="Submit"
                            onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;_ctrl0$ctl30$btnSubmit&quot;, &quot;&quot;, true, &quot;a542df71-b5eb-4e78-8b35-cfa2c41a3bdd&quot;, &quot;&quot;, false, false))"
                            id="_ctrl0_ctl30_btnSubmit" class="button module-subscribe_submit-button js--hidden emailAlertSubscribeBtn" data-email-alert-subscribe-btn="true" style=""><span class="button_text">Submit</span></button>
                          <button type="submit" class="button module-subscribe_submit-button module-subscribe_submit-button--fancy"><span class="button_text">Sign Up</span></button>
                        </div>
                        <div class="module-subscribe_unsubscribe">
                          <a href="/resources/investor-email-alerts/default.aspx" class="module-subscribe_unsubscribe-link uppercase">Unsubscribe</a>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
                <div id="_ctrl0_ctl30_divEditSubscriberConfirmation" class="module module-subscribe module_confirmation-container" style="DISPLAY:none;">
                  <div class="module_container module_container--outer">
                    <h2 class="module_title">Email Alert Sign Up Confirmation</h2>
                    <div class="module_container module_container--inner">
                    </div>
                  </div>
                </div><span id="_ctrl0_ctl30_ctl19" style="display:none;"></span>
                <style>
                  .q4l-loading-spinner {
                    border: 16px solid #f3f3f3;
                    border-radius: 50%;
                    border-top: 16px solid #3498db;
                    width: 120px;
                    height: 120px;
                    -webkit-animation: spin 2s linear infinite;
                    /* Safari */
                    animation: spin 2s linear infinite;
                  }

                  /* Safari */
                  @-webkit-keyframes spin {
                    0% {
                      -webkit-transform: rotate(0deg);
                    }

                    100% {
                      -webkit-transform: rotate(360deg);
                    }
                  }

                  @keyframes spin {
                    0% {
                      transform: rotate(0deg);
                    }

                    100% {
                      transform: rotate(360deg);
                    }
                  }
                </style>
                <div class="q4l-loading-spinner" id="_ctrl0_ctl31-spinner" style="display: none;"></div>
                <script>
                  function showMessage(message, targetElementId = "_ctrl0_ctl30_divEditSubscriberConfirmation") {
                    $("#" + targetElementId).text(message);
                    $("#" + targetElementId).show();
                  }

                  function getCookie(name) {
                    var nameEQ = name + "=";
                    var ca = document.cookie.split(";");
                    for (var i = 0; i < ca.length; i++) {
                      var c = ca[i];
                      while (c.charAt(0) == " ") c = c.substring(1, c.length);
                      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
                    }
                    return null;
                  }
                  // see STD-647
                  (async function() {
                    const q4lTriggerClientID = window.localStorage.getItem("q4l_trigger_clientID");
                    // we check q4lTriggerClientID so that when there are multiple mailing lists,
                    // only the one that the user submitted will have its view changed so there is
                    // a cleaner UX
                    const didTriggerFlow = q4lTriggerClientID === "_ctrl0_ctl30";
                    let idToken = window.location.hash.includes("id_token") ? window.location.hash.replace("#id_token=", "") : null;
                    idToken = idToken ?? getCookie(Q4Login.StorageKeys.SessionToken);
                    if (window.location.hash.includes("error")) {
                      const errorCode = window.location.hash.replace("#error=", "");
                      if (errorCode === "401.1" && didTriggerFlow) {
                        const message = "Your email is not verified. Please click the verification link we sent to your inbox.";
                        $("#_ctrl0_ctl30_divModuleContainer").hide();
                        showMessage(message);
                      }
                    } else if (window.location.hash.includes("message")) {
                      const message = decodeURIComponent(window.location.hash.replace("#message=", ""));
                      if (didTriggerFlow) {
                        showMessage(message, "_ctrl0_ctl30_validationsummary");
                      }
                    } else if (idToken) {
                      // default message
                      let message = "Unable to subscribe using your Q4 Account, please try again.";
                      const mailingListSelections = localStorage.getItem("q4l_mailing_selections");
                      if (!!mailingListSelections && didTriggerFlow) {
                        try {
                          // hide mailing list selections, then show spinner
                          $("#_ctrl0_ctl30_divModuleContainer").hide();
                          $("#_ctrl0_ctl31-spinner").show();
                          // build and make request
                          const requestOptions = {
                            method: "PUT",
                            headers: {
                              "Content-Type": "application/json",
                              "Authorization": "Bearer " + idToken
                            },
                            body: mailingListSelections
                          };
                          const publicApi = "https://planetlabs2021ipo.studio.q4api.com/api/MailingList";
                          const response = await fetch(publicApi, requestOptions).catch(error => console.log(error));
                          const subscribeResult = await response.json();
                          if (subscribeResult) {
                            message = subscribeResult.data;
                          }
                        } catch (ex) {
                          console.log(ex);
                        }
                        localStorage.removeItem("q4l_mailing_selections");
                        localStorage.removeItem("q4l_email");
                        // set the output message then show it
                        showMessage(message);
                      } else if (window.location.hash.includes("id_token") && !mailingListSelections && didTriggerFlow) {
                        // if there is no mailing list selections at this point, then
                        // something is up.
                        showMessage(message);
                      }
                    }
                    // clean up
                    $("#_ctrl0_ctl31-spinner").hide();
                  })();
                </script>
              </span></span></div>
        </div>
        <div class="pane pane--footer2 grid">
          <div class="pane_inner clearfix"><span class="FooterPane2Div10">
              <div id="_ctrl0_ctl34_divModuleContainer" class="module module-embed module-logo module-logo--footer grid_col grid_col--md-1-of-1 grid_col--d-first">
                <div class="module_container module_container--outer">
                  <div class="module_container module_container--inner">
                    <a href="https://www.planet.com/"><img src="//s29.q4cdn.com/903184914/files/design/svg/planet-logo.svg" alt="Planet Labs Logo"></a>
                  </div>
                </div>
              </div>
            </span><span class="FooterPane2Div11">
              <div id="_ctrl0_ctl37_divModuleContainer" class="module module-html copyright grid_col--1-of-1 grid_col--md-1-of-1 grid_col--centered text-center">
                <div class="module_container module_container--outer">
                  <div class="module_container module_container--inner" style="display: inherit;"> © <span class="copyright_year">2024</span> <span class="space-copyright"> Planet Labs Inc. - All rights reserved. </span>
                    <a class="space-copyright" target="_blank" href="https://www.q4inc.com/Powered-by-Q4/">  Powered By Q4 Inc. 5.56.0.1 </a>
                    <ul class="policy-list">
                      <li><span class="symbol-st"> | </span> <a target="_blank" href="https://www.planet.com/privacy/">Privacy Policy</a> <span class="symbol-st">|</span></li>
                      <li><a target="_blank" href="https://www.planet.com/privacy/#california">California Privacy Notice</a> <span class="symbol-st"> | </span> </li>
                      <li id="pl_cdns" style="display: none;"><a onclick="OneTrust.ToggleInfoDisplay()">California&nbsp;Do&nbsp;Not&nbsp;Sell</a> <span class="symbol-st"> | </span> </li>
                      <li><a style="cursor: pointer;" class="chakra-link chakra-link css-1tux4w9" onclick="OneTrust.ToggleInfoDisplay()">Your&nbsp;Privacy&nbsp;Choices <svg class="css-6mkpc2" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 30 14" style="height: 1em; display: inline; " xml:space="preserve"><style type="text/css">
      .st0{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
      .st1{fill-rule:evenodd;clip-rule:evenodd;fill:#0066FF;}
      .st2{fill:#FFFFFF;}
      .st3{fill:#0066FF;}
  </style><g><g id="final---dec.11-2020_1_"><g id="_x30_208-our-toggle_2_" transform="translate(-1275.000000, -200.000000)"><g id="Final-Copy-2_2_" transform="translate(1275.000000, 200.000000)"><path class="st0" d="M7.4,12.8h6.8l3.1-11.6H7.4C4.2,1.2,1.6,3.8,1.6,7S4.2,12.8,7.4,12.8z"></path></g></g></g><g id="final---dec.11-2020"><g id="_x30_208-our-toggle" transform="translate(-1275.000000, -200.000000)"><g id="Final-Copy-2" transform="translate(1275.000000, 200.000000)"><path class="st1" d="M22.6,0H7.4c-3.9,0-7,3.1-7,7s3.1,7,7,7h15.2c3.9,0,7-3.1,7-7S26.4,0,22.6,0z M1.6,7c0-3.2,2.6-5.8,5.8-5.8
                      h9.9l-3.1,11.6H7.4C4.2,12.8,1.6,10.2,1.6,7z"></path><path id="x" class="st2" d="M24.6,4c0.2,0.2,0.2,0.6,0,0.8l0,0L22.5,7l2.2,2.2c0.2,0.2,0.2,0.6,0,0.8c-0.2,0.2-0.6,0.2-0.8,0
                      l0,0l-2.2-2.2L19.5,10c-0.2,0.2-0.6,0.2-0.8,0c-0.2-0.2-0.2-0.6,0-0.8l0,0L20.8,7l-2.2-2.2c-0.2-0.2-0.2-0.6,0-0.8
                      c0.2-0.2,0.6-0.2,0.8,0l0,0l2.2,2.2L23.8,4C24,3.8,24.4,3.8,24.6,4z"></path><path id="y" class="st3" d="M12.7,4.1c0.2,0.2,0.3,0.6,0.1,0.8l0,0L8.6,9.8C8.5,9.9,8.4,10,8.3,10c-0.2,0.1-0.5,0.1-0.7-0.1l0,0
                      L5.4,7.7c-0.2-0.2-0.2-0.6,0-0.8c0.2-0.2,0.6-0.2,0.8,0l0,0L8,8.6l3.8-4.5C12,3.9,12.4,3.9,12.7,4.1z"></path></g></g></g></g></svg></a> <span class="symbol-st"> | </span> </li>
                      <li><a target="_blank" href="https://www.planet.com/cookie-notice">Cookie Notice</a> <span class="symbol-st"> | </span> </li>
                      <li><a target="_blank" href="https://www.planet.com/terms-of-use/">Terms of Use</a></li>
                    </ul>
                    <ul class="social-list module-social-desktop" style="padding-left: 0px;">
                      <li class="social-li">
                        <a class="social--icons" href="https://twitter.com/planet" target="_blank">
         <svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" class="svg-inline--fa fa-twitter fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" height="16px" width="16px" viewBox="0 0 512 512">
            <path fill="white" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path>
         </svg>
      </a>
                      </li>
                      <li class="social-li">
                        <a class="social--icons" href="https://www.linkedin.com/company/planet-labs/" target="_blank">

     <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="16px" width="16px" viewBox="0 0 72 72" version="1.1">
    <!-- Generator: Sketch 49.2 (51160) - http://www.bohemiancoding.com/sketch -->
    <title>Linkedin</title>
    <desc>Created with Sketch.</desc>
    <defs></defs>
    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="Social-Icons---Rounded-Black" transform="translate(-376.000000, -267.000000)">
            <g id="Linkedin" transform="translate(376.000000, 267.000000)">
                <path d="M8,72 L64,72 C68.418278,72 72,68.418278 72,64 L72,8 C72,3.581722 68.418278,-8.11624501e-16 64,0 L8,0 C3.581722,8.11624501e-16 -5.41083001e-16,3.581722 0,8 L0,64 C5.41083001e-16,68.418278 3.581722,72 8,72 Z" id="Rounded" fill="white"></path>
                <path d="M62,62 L51.315625,62 L51.315625,43.8021149 C51.315625,38.8127542 49.4197917,36.0245323 45.4707031,36.0245323 C41.1746094,36.0245323 38.9300781,38.9261103 38.9300781,43.8021149 L38.9300781,62 L28.6333333,62 L28.6333333,27.3333333 L38.9300781,27.3333333 L38.9300781,32.0029283 C38.9300781,32.0029283 42.0260417,26.2742151 49.3825521,26.2742151 C56.7356771,26.2742151 62,30.7644705 62,40.051212 L62,62 Z M16.349349,22.7940133 C12.8420573,22.7940133 10,19.9296567 10,16.3970067 C10,12.8643566 12.8420573,10 16.349349,10 C19.8566406,10 22.6970052,12.8643566 22.6970052,16.3970067 C22.6970052,19.9296567 19.8566406,22.7940133 16.349349,22.7940133 Z M11.0325521,62 L21.769401,62 L21.769401,27.3333333 L11.0325521,27.3333333 L11.0325521,62 Z" fill="black"></path>
            </g>
        </g>
    </g>
</svg>

         
      </a>
                      </li>
                      <li class="social-li">
                        <a class="social--icons" href="https://www.facebook.com/PlanetLabs/" target="_blank">
         <svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="facebook-f" class="svg-inline--fa fa-facebook-f fa-w-10" role="img" xmlns="http://www.w3.org/2000/svg" height="16px" width="16px" viewBox="0 0 320 512">
            <path fill="white" d="M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"></path>
         </svg>
      </a>
                      </li>
                      <li class="social-li">
                        <a class="social--icons" href="https://www.instagram.com/planetlabs/" target="_blank">

        <svg class="css-1suorzb" height="16px" width="16px" viewBox="0 0 16.7 16.7"><path fill="#fff" fill-rule="evenodd" d="M2.14 0h12.41a2.15 2.15 0 012.15 2.14v12.41a2.15 2.15 0 01-2.14 2.14H2.14A2.15 2.15 0 010 14.55V2.14A2.15 2.15 0 012.14 0zm10 1.86a.75.75 0 00-.75.75v1.8a.75.75 0 00.75.75H14a.75.75 0 00.75-.75v-1.8a.75.75 0 00-.75-.75h-1.84zm2.65 5.21h-1.45a4.89 4.89 0 01.21 1.43 5.11 5.11 0 01-5.19 5 5.11 5.11 0 01-5.19-5 4.88 4.88 0 01.21-1.43H1.86v7.05a.67.67 0 00.66.66h11.63a.67.67 0 00.66-.66V7.06zm-6.45-2A3.3 3.3 0 005 8.31a3.3 3.3 0 003.35 3.25 3.3 3.3 0 003.35-3.25 3.3 3.3 0 00-3.34-3.25z"></path></svg>

      </a>
                      </li>
                      <li class="social-li">
                        <a class="social--icons" href="https://medium.com/planet-stories" target="_blank">

        <svg class="css-1suorzb" height="16px" width="16px" viewBox="0 0 50 50"></svg><style>.medium{fill:#fff}</style><path d="M49.8 9.2L34.6.2c-.2 0-.2 0-.4-.2H34c-.5 0-1.1.4-1.5.9l-8.8 16.5 11 20.8 15.1-29c.2.2.2.2 0 0zM19 13.9v18.9l14.4 8.3zM35.4 42.4l11.7 6.9c1.5.9 2.7.2 2.7-1.5v-33L35.4 42.4zM16.6 9.4L1.8.9C1.6.6 1.3.6 1.1.6.4.6 0 1.3 0 2.1v37.3c0 1.1.5 2.1 1.5 2.6l13 7.7c.4.2.7.2.9.2.7 0 1.5-.6 1.5-1.9l-.3-38.6z" class="medium"></path>
      </a>
                      </li>
                      <li class="social-li">
                        <a class="social--icons" href="https://www.youtube.com/channel/UCiyS6coRsDQ17b3Kj9bl8jw" target="_blank">

   <svg class="css-1suorzb" height="16px" width="16px" viewBox="0 0 1792 1280"><path fill="#fff" d="M1280 640c0-24.7-10-42.7-30-54L738 266c-20.7-13.3-42.3-14-65-2-22 12-33 30.7-33 56v640c0 25.3 11 44 33 56 10.7 5.3 21 8 31 8 13.3 0 24.7-3.3 34-10l512-320c20-11.3 30-29.3 30-54zm512 0c0 64-.3 114-1 150s-3.5 81.5-8.5 136.5-12.5 104.2-22.5 147.5c-10.7 48.7-33.7 89.7-69 123s-76.7 52.7-124 58c-148 16.7-371.7 25-671 25s-523-8.3-671-25c-47.3-5.3-88.8-24.7-124.5-58s-58.8-74.3-69.5-123c-9.3-43.3-16.5-92.5-21.5-147.5S1.7 826 1 790s-1-86-1-150 .3-114 1-150 3.5-81.5 8.5-136.5S22 249.3 32 206c10.7-48.7 33.7-89.7 69-123s76.7-52.7 124-58C373 8.3 596.7 0 896 0s523 8.3 671 25c47.3 5.3 88.8 24.7 124.5 58s58.8 74.3 69.5 123c9.3 43.3 16.5 92.5 21.5 147.5s7.8 100.5 8.5 136.5 1 86 1 150z"></path></svg>

      </a>
                      </li>
                    </ul>
                    <style>
                      .policy-list {
                        list-style: none;
                        padding-left: 5px;
                        margin-top: 0px;
                      }

                      .policy-list li {
                        display: inline-block;
                      }

                      .policy-list li a {
                        text-decoration: underline;
                      }

                      .symbol-st {
                        padding: 0px 5px;
                      }

                      ul.social-list {
                        list-style: none;
                        padding-left: 151px;
                        margin-top: 0px;
                        margin-bottom: 0px;
                      }

                      li.social-li {
                        display: inline-block;
                        margin-right: 25px;
                      }

                      .copyright .module_container--inner {
                        display: flex;
                        margin-right: 0px;
                        padding-left: 151px;
                        font-size: 13px;
                      }

                      .space-copyright {
                        padding-left: 4px;
                      }

                      .copyright a {
                        color: white;
                      }

                      @media only screen and (max-width: 767px) {
                        .copyright .module_container--inner {
                          display: inherit;
                          padding-left: 0px;
                        }

                        ul.social-list {
                          padding-left: 0px;
                        }
                      }
                    </style>
                  </div>
                </div>
              </div>
            </span></div>
        </div>
        <div class="pane pane--credits">
          <div class="pane_inner"><span class="Q4FooterDiv12">
              <div id="_ctrl0_ctl40_divModuleContainer" class="module module-embed hidden">
                <div class="module_container module_container--outer">
                  <div class="module_container module_container--inner">
                    <script>
                      var q4App = $.extend(true, q4Defaults, {
                        options: {
                          headerOffset: function() {
                            if ($(window).width() > 1024) {
                              return $('.pane--header').outerHeight() + $('.pane--navigation').outerHeight();
                            } else {
                              return $('.pane--header').outerHeight();
                            }
                          },
                          mailingListConfig: {
                            tpl: ('<div id="SubscriberConfirmation" class="module module-subscribe module-subscribe--fancy dark grid_col grid_col--2-of-4 grid_col--lc-1-of-1 grid_col--md-1-of-1">' + '   <div class="module_container--outer">' +
                              '       <h3 class="module_title">Investor Email Alerts</h3>' + '       <div class="module_container--inner">' + '           <p class="module_message module_message--success"></p>' + '       </div>' + '   </div>' +
                              '</div>'),
                            submitText: 'Sign Up'
                          }
                        },
                        scollingTable: function(selector) {
                          $(selector).not(selector + ' table').wrap('<div class="table-wrapper" />');
                        },
                        meetingFancy: function($selector, trigger) {
                          var meetingCookie = sessionStorage.getItem('requestMeeting');
                          if (meetingCookie != 'closed') {
                            $selector.removeClass('js--hidden');
                          }
                          $selector.on('click', '.button--cookie', function() {
                            $selector.addClass('js--hidden');
                            sessionStorage.setItem("requestMeeting", 'closed');
                          });
                          $selector.on('click', trigger, function(e) {
                            e.preventDefault();
                            $.fancybox.open({
                              type: 'iframe',
                              src: '/request-meeting-iframe/default.aspx',
                              opts: {
                                margin: [10, 0],
                                slideClass: 'fancybox-slide--form',
                                parentEl: 'form'
                              }
                            });
                          });
                          window.addEventListener('message', function(event) {
                            if (event.data == 'close-fancybox') {
                              $.fancybox.close();
                            }
                          }, false);
                        },
                        stickyNavBar: function() {
                          var inst = this,
                            $window = $(window),
                            $layout = $('.layout'),
                            $header = $('.pane--header'),
                            $nav = $('.nav--secondary'),
                            $navContainer = $('.pane--breadcrumb'),
                            navContainerPos = function() {
                              return $navContainer.position().top;
                            };
                          $window.on('scroll', function() {
                            if ($window.scrollTop() > 0) {
                              $layout.addClass('js--header-small');
                            } else {
                              $layout.removeClass('js--header-small');
                            }
                            if ($window.width() > 1024) {
                              $navContainer.css('min-height', $nav.outerHeight());
                              if ($window.scrollTop() + $header.outerHeight() >= navContainerPos()) {
                                $layout.addClass('js--sticky');
                                $nav.css('top', $header.outerHeight());
                              } else {
                                $layout.removeClass('js--sticky');
                                $nav.removeAttr('style');
                              }
                            } else {
                              $layout.removeClass('js--sticky');
                              $nav.removeAttr('style');
                              $navContainer.removeAttr('style');
                            }
                          });
                          $window.on('resize', function() {
                            if ($window.width() > 1024) {
                              $layout.removeClass('js--sticky');
                              $navContainer.removeAttr('style').css('min-height', $nav.outerHeight());
                              $nav.removeAttr('style');
                            } else {
                              $layout.removeClass('js--sticky');
                              $nav.removeAttr('style');
                              $navContainer.removeAttr('style');
                            }
                            $window.trigger('scroll');
                          }).resize();
                        },
                        navAccessibility: function() {
                          $('nav .selected > a').attr('aria-current', 'page');
                          $('.nav--main').attr('aria-label', 'primary navigation');
                          $('.nav--secondary').attr('aria-label', 'secondary navigation');
                          $('.nav--mobile').attr('aria-label', 'mobile navigation');
                        },
                        iconFix: function() {
                          $('.q4icons .module_link').each(function() {
                            if (!$(this).children('.q4icons_icon').length) {
                              $(this).prepend('<span class="q4icons_icon" aria-hidden="true"></span>');
                            }
                          });
                        },
                        focusTooltip: function(focusElement, tooltipId, tooltipText) {
                          var tooltipElement = '<span id="' + tooltipId + '" class="tooltip" role="tooltip" aria-hidden="true" aria-label="' + tooltipText + '">' + tooltipText + '</span>';
                          $(focusElement).attr('aria-describedby', tooltipId).after(tooltipElement);
                          $(focusElement).focusin(function() {
                            var $this = $(this),
                              leftPosition = 0,
                              dataPosition = 'right';
                            if ($(window).width() > $this[0].offsetLeft + $this[0].offsetWidth + 200) {
                              leftPosition = $this[0].offsetLeft + $this[0].offsetWidth;
                            } else {
                              dataPosition = 'left';
                              leftPosition = $this[0].offsetLeft;
                            }
                            $('#' + tooltipId).attr({
                              'aria-hidden': 'false',
                              'data-position': dataPosition
                            }).css({
                              top: $this.position().top + $this.outerHeight() / 2,
                              left: leftPosition
                            });
                          });
                          $(focusElement).focusout(function() {
                            $('#' + tooltipId).attr('aria-hidden', 'true').removeAttr('style');
                          });
                        },
                        init: function() {
                          var app = this;
                          app.cleanUp();
                          app.submitOnEnter('.module-unsubscribe');
                          app.submitOnEnter('.module-search');
                          app.validateSubmit('.module-search');
                          app.superfish($('.nav--main .level2, .nav--secondary .level2, .nav--mobile .level2'), {
                            cssArrows: false
                          });
                          app.mobileMenuToggle($('.layout'), '.pane--navigation', '.layout_toggle-button', '.module-search_input');
                          app.cleanQuickLinks($('.module-links'));
                          app.copyright($('.copyright_year'));
                          app.docTracking();
                          app.fancySignup();
                          app.resetDate(['.nav a[href*="s4.q4web.com"]:not([href$=".pdf"])']);
                          app.previewToolbar();
                          app.reveal('.pane--header', '.module-search_toggle', '.module-search input[type="text"]', false);
                          app.stickyNavBar();
                          app.meetingFancy($('.module-cta'), '.button--meeting');
                          app.sections();
                          app.navAccessibility();
                          app.iconFix();
                          // app.accessibleNavKeyboard( '.nav--main', '2', '.nav--mobile' );
                          app.focusTooltip('.module-search > .module_container--outer > .module-search_toggle ', 'search-tip', 'search');
                        }
                      });
                      q4App.init();
                      //changing the footer module for Email Alerts from <h2> to <h3>
                      $('.module-subscribe--footer .module_title').replaceWith(function() {
                        return $("<h3>", {
                          class: this.className,
                          html: $(this).html()
                        });
                      });
                    </script>
                  </div>
                </div>
              </div>
            </span><span class="Q4FooterDiv13">
              <div id="_ctrl0_ctl43_divModuleContainer" class="module module-embed">
                <div class="module_container module_container--outer">
                  <div class="module_container module_container--inner">
                    <script>
                      // this needs to be place into a global module to enable hot reloading of css
                      $(document).ready(function() {
                        var isHot = false;
                        var theme = 'wallstreet';
                        var evtSource = new EventSource('http://localhost:5050/css-stream?theme=' + theme);
                        var $body = $('body');
                        var $cssGlobal = $('<style id="hot-global-css"></style>');
                        var $cssClient = $('<style id="hot-client-css"></style>');
                        $body.prepend($cssClient);
                        $body.prepend($cssGlobal);
                        evtSource.addEventListener('cssUpdated', function(ev) {
                          var sheets = JSON.parse(ev.data);
                          if (!isHot) {
                            $('#htmlGlobalLinkCss').remove();
                            $('#htmlClientLinkCss').remove();
                          }
                          $cssGlobal.html(sheets.global);
                          $cssClient.html(sheets.client);
                          isHot = true;
                        });
                      });
                    </script>
                  </div>
                </div>
              </div>
            </span></div>
        </div>
      </div>
    </div>
  </div>
  <input type="hidden" name="__antiCSRF" id="__antiCSRF" value="">
  <script type="text/javascript">
    //<![CDATA[
    var Page_ValidationSummaries = new Array(document.getElementById("_ctrl0_ctl30_validationsummary"));
    var Page_Validators = new Array(document.getElementById("_ctrl0_ctl30_regexEmailValidator1"), document.getElementById("_ctrl0_ctl30_reqvalEmailValidator1"), document.getElementById("_ctrl0_ctl30_cusvalMailingListsValidator"), document
      .getElementById("_ctrl0_ctl30_cusvalRecaptcha"), document.getElementById("_ctrl0_ctl30_ctl19"));
    //]]>
  </script>
  <script type="text/javascript">
    //<![CDATA[
    var _ctrl0_ctl30_validationsummary = document.all ? document.all["_ctrl0_ctl30_validationsummary"] : document.getElementById("_ctrl0_ctl30_validationsummary");
    _ctrl0_ctl30_validationsummary.headertext = "<p class=\'module_message module_message--error\'>The following errors must be corrected:</p>";
    _ctrl0_ctl30_validationsummary.displaymode = "List";
    _ctrl0_ctl30_validationsummary.validationGroup = "a542df71-b5eb-4e78-8b35-cfa2c41a3bdd";
    var _ctrl0_ctl30_regexEmailValidator1 = document.all ? document.all["_ctrl0_ctl30_regexEmailValidator1"] : document.getElementById("_ctrl0_ctl30_regexEmailValidator1");
    _ctrl0_ctl30_regexEmailValidator1.controltovalidate = "_ctrl0_ctl30_txtEmail";
    _ctrl0_ctl30_regexEmailValidator1.errormessage = "Email address is not valid.";
    _ctrl0_ctl30_regexEmailValidator1.display = "None";
    _ctrl0_ctl30_regexEmailValidator1.enabled = "False";
    _ctrl0_ctl30_regexEmailValidator1.evaluationfunction = "RegularExpressionValidatorEvaluateIsValid";
    _ctrl0_ctl30_regexEmailValidator1.validationexpression = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
    var _ctrl0_ctl30_reqvalEmailValidator1 = document.all ? document.all["_ctrl0_ctl30_reqvalEmailValidator1"] : document.getElementById("_ctrl0_ctl30_reqvalEmailValidator1");
    _ctrl0_ctl30_reqvalEmailValidator1.controltovalidate = "_ctrl0_ctl30_txtEmail";
    _ctrl0_ctl30_reqvalEmailValidator1.errormessage = "Email address is required.";
    _ctrl0_ctl30_reqvalEmailValidator1.display = "None";
    _ctrl0_ctl30_reqvalEmailValidator1.validationGroup = "a542df71-b5eb-4e78-8b35-cfa2c41a3bdd";
    _ctrl0_ctl30_reqvalEmailValidator1.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
    _ctrl0_ctl30_reqvalEmailValidator1.initialvalue = "";
    var _ctrl0_ctl30_cusvalMailingListsValidator = document.all ? document.all["_ctrl0_ctl30_cusvalMailingListsValidator"] : document.getElementById("_ctrl0_ctl30_cusvalMailingListsValidator");
    _ctrl0_ctl30_cusvalMailingListsValidator.errormessage = "Mailing list selection is required.";
    _ctrl0_ctl30_cusvalMailingListsValidator.display = "None";
    _ctrl0_ctl30_cusvalMailingListsValidator.validationGroup = "a542df71-b5eb-4e78-8b35-cfa2c41a3bdd";
    _ctrl0_ctl30_cusvalMailingListsValidator.evaluationfunction = "CustomValidatorEvaluateIsValid";
    var _ctrl0_ctl30_cusvalRecaptcha = document.all ? document.all["_ctrl0_ctl30_cusvalRecaptcha"] : document.getElementById("_ctrl0_ctl30_cusvalRecaptcha");
    _ctrl0_ctl30_cusvalRecaptcha.errormessage = "The captcha test has failed. Please try again.";
    _ctrl0_ctl30_cusvalRecaptcha.display = "None";
    _ctrl0_ctl30_cusvalRecaptcha.validationGroup = "a542df71-b5eb-4e78-8b35-cfa2c41a3bdd";
    _ctrl0_ctl30_cusvalRecaptcha.evaluationfunction = "CustomValidatorEvaluateIsValid";
    var _ctrl0_ctl30_ctl19 = document.all ? document.all["_ctrl0_ctl30_ctl19"] : document.getElementById("_ctrl0_ctl30_ctl19");
    _ctrl0_ctl30_ctl19.controltovalidate = "_ctrl0_ctl30_txtEmail";
    _ctrl0_ctl30_ctl19.errormessage = "Email Address is invalid.";
    _ctrl0_ctl30_ctl19.display = "None";
    _ctrl0_ctl30_ctl19.validationGroup = "a542df71-b5eb-4e78-8b35-cfa2c41a3bdd";
    //]]>
  </script>
  <div class="aspNetHidden">
    <input type="hidden" name="__SCROLLPOSITIONX" id="__SCROLLPOSITIONX" value="0">
    <input type="hidden" name="__SCROLLPOSITIONY" id="__SCROLLPOSITIONY" value="0">
  </div>
  <script type="text/javascript">
    //<![CDATA[
    var Page_ValidationActive = false;
    if (typeof(ValidatorOnLoad) == "function") {
      ValidatorOnLoad();
    }

    function ValidatorOnSubmit() {
      if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
      } else {
        return true;
      }
    }
    theForm.oldSubmit = theForm.submit;
    theForm.submit = WebForm_SaveScrollPositionSubmit;
    theForm.oldOnSubmit = theForm.onsubmit;
    theForm.onsubmit = WebForm_SaveScrollPositionOnSubmit;
    //]]>
  </script>
</form>

POST /search-results

<form id="navDesktopSearchForm" action="/search-results" method="post"></form>

POST /search-results

<form id="navMobileSearchForm" action="/search-results" method="post"></form>

Text Content

Search query
 * Overview
 * News
 * Events & Presentations
   * Back
   * Events
   * Presentations
 * Videos
 * Stock Info
   * Back
   * Stock Quote
   * Stock Chart
   * Historical Stock Quote
   * Investment Calculator
   * Analyst Coverage
 * Financials
   * Back
   * Quarterly Results
   * SEC Filings
 * Governance
   * Back
   * Governance Documents
   * Executive Management
   * Board of Directors
   * Committee Composition
 * Resources
   * Back
   * Investor FAQs
   * Investor Email Alerts
   * Investor Contacts

 * Overview
   * News
   * Events & Presentations
     * Events
     * Presentations
   * Videos
   * Stock Info
     * Stock Quote
     * Stock Chart
     * Historical Stock Quote
     * Investment Calculator
     * Analyst Coverage
   * Financials
     * Quarterly Results
     * SEC Filings
   * Governance
     * Governance Documents
     * Executive Management
     * Board of Directors
     * Committee Composition
   * Resources
     * Investor FAQs
     * Investor Email Alerts
     * Investor Contacts

Skip to main content

 * Overview
 * News
 * Events & Presentations
   * Events
   * Presentations
 * Videos
 * Stock Info
   * Stock Quote
   * Stock Chart
   * Historical Stock Quote
   * Investment Calculator
   * Analyst Coverage
 * Financials
   * Quarterly Results
   * SEC Filings
 * Governance
   * Governance Documents
   * Executive Management
   * Board of Directors
   * Committee Composition
 * Resources
   * Investor FAQs
   * Investor Email Alerts
   * Investor Contacts

Search query
Search




PAGE NOT FOUND

 * Overview
   * News
   * Events & Presentations
     * Events
     * Presentations
   * Videos
   * Stock Info
     * Stock Quote
     * Stock Chart
     * Historical Stock Quote
     * Investment Calculator
     * Analyst Coverage
   * Financials
     * Quarterly Results
     * SEC Filings
   * Governance
     * Governance Documents
     * Executive Management
     * Board of Directors
     * Committee Composition
   * Resources
     * Investor FAQs
     * Investor Email Alerts
     * Investor Contacts




SITE MAP

We're sorry, but there is no page on the site that matches your entry. It is
possible you typed the address incorrectly, or the page may no longer exist. You
may wish to try another entry or choose from the links below, which we hope will
help you find what you are looking for.

If you believe that this page should exist, please send an email to
support@q4inc.com explaining the page you were trying to access.

Thanks for your patience, understanding, and help.

 * Overview
   * News
   * Events & Presentations
     * Events
     * Presentations
   * Videos
   * Stock Info
     * Stock Quote
     * Stock Chart
     * Historical Stock Quote
     * Investment Calculator
     * Analyst Coverage
   * Financials
     * Quarterly Results
     * SEC Filings
   * Governance
     * Governance Documents
     * Executive Management
     * Board of Directors
     * Committee Composition
   * Resources
     * Investor FAQs
     * Investor Email Alerts
     * Investor Contacts




CONTACT IR

IR@PLANET.COM




QUICK LINKS

 * SEC Filings
 * Investor FAQs


INVESTOR EMAIL ALERTS

To opt-in for investor email alerts, please enter your email address in the
field below and select at least one alert option. After submitting your request,
you will receive an activation email to the requested email address. You must
click the activation link in order to complete your subscription. You can sign
up for additional alert options at any time.

At Planet Labs Inc., we promise to treat your data with respect and will not
share your information with any third party. You can unsubscribe to any of the
investor alerts you are subscribed to by visiting the ‘unsubscribe’ section
below. If you experience any issues with this process, please contact us for
further assistance.

By providing your email address below, you are providing consent to Planet Labs
Inc. to send you the requested Investor Email Alert updates.

* Required



Email Address *

Investor Alert Options

Investor Alert Options *

News Quarterly Reports SEC Filings End of Day Stock Quote Events & Presentations



Submit Sign Up
Unsubscribe


EMAIL ALERT SIGN UP CONFIRMATION



© 2024 Planet Labs Inc. - All rights reserved. Powered By Q4 Inc. 5.56.0.1
 * | Privacy Policy |
 * California Privacy Notice |
 * California Do Not Sell |
 * Your Privacy Choices |
 * Cookie Notice |
 * Terms of Use

 * 
 * Linkedin Created with Sketch.
 * 
 * 
 * 
 * 







GDPR COOKIE CONSENT

By clicking "Accept All Cookies", you agree to the storing of cookies by us or
our partners on your device to enhance user experience, analyze performance and
traffic on our website, and assist in our marketing efforts. You can change your
cookie settings by clicking “More Choices”Privacy Policy

Reject All Accept All Cookies
More Choices



PRIVACY PREFERENCE CENTER

When you visit any website, it may store or retrieve information on your
browser, mostly in the form of cookies. This information might be about you,
your preferences or your device and is mostly used to make the site work as you
expect it to. The information does not usually directly identify you, but it can
give you a more personalized web experience. Because we respect your right to
privacy, you can choose not to allow some types of cookies. Click on the
different category headings to find out more and change our default settings.
However, blocking some types of cookies may impact your experience of the site
and the services we are able to offer.
More information
Allow All


MANAGE CONSENT PREFERENCES

FUNCTIONAL COOKIES

Functional Cookies

These cookies enable the Site and Services to provide enhanced functionality and
personalization, but are not essential to their use. The aim of these cookies is
to provide you with a more personal experience so that you don't have to reset
your preferences each time you use our Site or Services. Without these cookies,
certain functionality may become unavailable, such as the Site storing your
login information. Functional cookies may be set by us or by third party
providers whose services we have added to our pages. If you do not allow these
cookies, then some or all of these services may not function properly.

SOCIAL MEDIA COOKIES

Social Media Cookies

These cookies are set by a range of social media services that we have added to
the site to enable you to share our content with your friends and networks. They
are capable of tracking your browser across other sites and building up a
profile of your interests. This may impact the content and messages you see on
other websites you visit. If you do not allow these cookies you may not be able
to use or see these sharing tools.

TARGETING COOKIES

Targeting Cookies

These cookies may be set through our site by our advertising partners. They may
be used by those companies to build a profile of your interests and show you
relevant adverts on other sites. They do not store directly personal
information, but are based on uniquely identifying your browser and internet
device. If you do not allow these cookies, you will experience less targeted
advertising.

STRICTLY NECESSARY COOKIES

Always Active

These cookies are required for technical reasons and are strictly necessary to
provide you with services available through our Site and Services, such as for
authentication, and to use some of its features, such as access to secure areas.

PERFORMANCE COOKIES

Performance Cookies

These cookies are used to recognize and count visitors and their actions to
understand usage and improve the Site and Services.

Back Button


PERFORMANCE COOKIES



Search Icon
Filter Icon

Clear
checkbox label label
Apply Cancel
Consent Leg.Interest
checkbox label label
checkbox label label
checkbox label label

Reject All Confirm My Choices