(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{"2ggT":function(e,t,a){"use strict";a.r(t),a.d(t,"pageQuery",(function(){return s}));var l=a("q1tI"),n=a.n(l),r=a("NSxh"),c=a("Rb52"),i=a("dmsj"),s=(a("+5i3"),"3901760982");t.default=function(e){var t=e.data.markdownRemark,a=t.frontmatter,l=a.title,s=a.description,o=t.html,m=e.pageContext.langKey;return n.a.createElement("div",{className:"eclipse-jkube"},n.a.createElement(i.a,{title:l,description:s,lang:m}),n.a.createElement(c.a,{lang:m}),n.a.createElement("div",{className:"eclipse-jkube__main"},n.a.createElement("div",{className:"eclipse-jkube__content",dangerouslySetInnerHTML:{__html:o}})),n.a.createElement(r.a,{lang:m}))}},NSxh:function(e,t,a){"use strict";var l=a("q1tI"),n=a.n(l),r=a("Wbzz"),c=a("kiXb"),i=a("5748"),s=a.n(i),o=function(e){var t=e.href,a=e.title;return n.a.createElement("a",{href:t,target:"_blank",rel:"nofollow noopener noreferrer"},a)};t.a=function(e){var t=e.lang,a=Object(c.resolveI18nPath)(t);return n.a.createElement("div",{className:"eclipse-jkube-footer"},n.a.createElement("div",{className:"eclipse-jkube-footer__logo-jkube"},n.a.createElement(r.a,{to:a("/")},n.a.createElement("img",{className:"eclipse-jkube-footer__logo-jkube-image",src:s.a,alt:"JKube"})),n.a.createElement("span",{className:"eclipse-jkube-footer__logo-jkube-tagline"},"Cloud-Native Java Applications without a hassle")),n.a.createElement("div",{className:"eclipse-jkube-footer__links"},n.a.createElement("ul",{className:"eclipse-jkube-footer__links-list"},n.a.createElement("li",null,n.a.createElement(r.a,{to:a("/docs#getting-started")},"Get Started")),n.a.createElement("li",null,n.a.createElement(r.a,{to:a("/docs")},"Docs")),n.a.createElement("li",null,n.a.createElement(r.a,{to:a("/quickstarts")},"Quickstarts")),n.a.createElement("li",null,n.a.createElement(r.a,{to:a("/docs#katacoda-courses")},"Katacoda Courses")),n.a.createElement("li",null,n.a.createElement(r.a,{to:a("/demos")},"Demos"))),n.a.createElement("ul",{className:"eclipse-jkube-footer__links-list"},n.a.createElement("li",null,n.a.createElement(r.a,{to:a("/community")},"Community")),n.a.createElement("li",null,n.a.createElement(r.a,{to:a("/community#planning-and-meetings")},"Get Involved")),n.a.createElement("li",null,n.a.createElement(r.a,{to:a("/contributing")},"Contributing"))),n.a.createElement("ul",{className:"eclipse-jkube-footer__links-list"},n.a.createElement("li",null,n.a.createElement(o,{href:"https://www.eclipse.org",title:"Eclipse Foundation"})),n.a.createElement("li",null,n.a.createElement(o,{href:"https://www.eclipse.org/legal/privacy.php",title:"Privacy Policy"})),n.a.createElement("li",null,n.a.createElement(o,{href:"https://www.eclipse.org/legal/termsofuse.php",title:"Terms of Use"})),n.a.createElement("li",null,n.a.createElement(o,{href:"https://www.eclipse.org/legal/copyright.php",title:"Copyright Agent"})),n.a.createElement("li",null,n.a.createElement(o,{href:"https://www.eclipse.org/legal",title:"Legal Resources"})))),n.a.createElement("div",{className:"eclipse-jkube-footer__copyright"},"Copyright © Eclipse Foundation 2020"))}}}]);
//# sourceMappingURL=component---src-templates-main-jsx-456568a5c9ae2c9095ee.js.map