(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9793,0],{8177:function(e,t,r){"use strict";r.r(t);var a=r(7294),l=r(6265),o=r(7130);t.default=function(){return a.createElement(l.Z,{title:(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"})},a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."))))))}},283:function(e,t,r){"use strict";r.d(t,{Z:function(){return p}});var a=r(2122),l=r(9756),o=r(7294),n=r(6010),c=r(2511),s=r(2433),i=r(9524),m="footerLogoLink_qW4Z",f="footerCopyright_2yvt",u=r(4087),h=["to","href","label","prependBaseUrlToHref"];function d(e){var t=e.to,r=e.href,n=e.label,s=e.prependBaseUrlToHref,m=(0,l.Z)(e,h),f=(0,i.Z)(t),u=(0,i.Z)(r,{forcePrependBaseUrl:!0});return o.createElement(c.Z,(0,a.Z)({className:"footer__link-item"},r?{href:s?u:r}:{to:f},m),n)}var E=function(e){var t=e.sources,r=e.alt;return o.createElement(u.Z,{className:"footer__logo",alt:r,sources:t})};var p=function(){var e=(0,s.LU)().footer,t=e||{},r=t.copyright,a=t.links,l=void 0===a?[]:a,u=t.logo,h=void 0===u?{}:u,p={light:(0,i.Z)(h.src),dark:(0,i.Z)(h.srcDark||h.src)};return e?o.createElement("footer",{className:(0,n.Z)("footer",{"footer--dark":"dark"===e.style})},o.createElement("div",{className:"container"},l&&l.length>0&&o.createElement("div",{className:"row footer__links"},l.map((function(e,t){return o.createElement("div",{key:t,className:"col footer__col"},null!=e.title?o.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?o.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?o.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):o.createElement("li",{key:e.href||e.to,className:"footer__item"},o.createElement(d,e))}))):null)}))),(h||r)&&o.createElement("div",{className:"footer__bottom text--center"},h&&(h.src||h.srcDark)&&o.createElement("div",{className:"margin-bottom--sm"},h.href?o.createElement(c.Z,{href:h.href,className:m},o.createElement(E,{alt:h.alt,sources:p})):o.createElement(E,{alt:h.alt,sources:p})),r?o.createElement("div",{className:f,dangerouslySetInnerHTML:{__html:r}}):null))):null}}}]);