CINXE.COM
RunKit
<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, user-scalable=no"/><meta name="keywords" content="REPL runkit tonic playground javascript node npm module prototype prototyping API server"/><meta name="author" content="runkit.com"/><meta name="description" content="RunKit notebooks are interactive javascript playgrounds connected to a complete node environment right in your browser. Every npm module pre-installed."/><link type="application/opensearchdescription+xml" rel="search" href="https://static.runkitcdn.com/search.xml"/><link href="https://fonts.googleapis.com/css?family=Fira+Sans:400,400i,700,700i|Ubuntu+Mono:400" rel="stylesheet"/><link rel="stylesheet" type="text/css" href="https://static.runkitcdn.com/assets/vendor/bootstrap/bootstrap-sha512-tDXPcamuZsWWd6OsKFyH6nAqh_MjZ_5Yk88T5o+aMfygqNFPan1pLyPFAndRzmOWHKT+jSDzWpJv8krj6x1LMA==.min.css" integrity="sha512-tDXPcamuZsWWd6OsKFyH6nAqh/MjZ/5Yk88T5o+aMfygqNFPan1pLyPFAndRzmOWHKT+jSDzWpJv8krj6x1LMA==" crossorigin="anonymous"/><link rel="stylesheet" type="text/css" href="https://static.runkitcdn.com/assets/vendor/font-awesome/css/font-awesome-sha512-SfTiTlX6kk+qitfevl_7LibUOeJWlt9rbyDn92a1DqWOw9vWG2MFoays0sgObmWazO5BQPiFucnnEAjpAB+_Sw==.min.css" integrity="sha512-SfTiTlX6kk+qitfevl/7LibUOeJWlt9rbyDn92a1DqWOw9vWG2MFoays0sgObmWazO5BQPiFucnnEAjpAB+/Sw==" crossorigin="anonymous"/><link rel="stylesheet" type="text/css" href="https://static.runkitcdn.com/assets/styles/base-sha512-JJhyit1rR09PVXP+QrvQFLhZEfqp6+NWtO1rnlzKWmb1pD_Kdq2OZ0dfE69CmGq2HgNzjHNwZ7dLDdc1oIC1hQ==.css" integrity="sha512-JJhyit1rR09PVXP+QrvQFLhZEfqp6+NWtO1rnlzKWmb1pD/Kdq2OZ0dfE69CmGq2HgNzjHNwZ7dLDdc1oIC1hQ==" crossorigin="anonymous"/><link rel="stylesheet" type="text/css" href="https://static.runkitcdn.com/assets/styles/error-pages-sha512-wc0YZ4YI9QYzM021UgryZhTff2THiN3aLCk40mEGBgaRokLMSOulNQ_WYo54nVHyafnx9xc92BQK4mdFgdv1Rg==.css" integrity="sha512-wc0YZ4YI9QYzM021UgryZhTff2THiN3aLCk40mEGBgaRokLMSOulNQ/WYo54nVHyafnx9xc92BQK4mdFgdv1Rg==" crossorigin="anonymous"/><link rel="stylesheet" type="text/css" href="https://static.runkitcdn.com/assets/styles/npm-sha512-dGXN6LvbwmcY1a71btRiirj5lcyRk+6BaKMEt65vRSWBuzC6KkUnxbWqu3iUzr2d9ebkkryKiN1scefAFOcCSQ==.css" integrity="sha512-dGXN6LvbwmcY1a71btRiirj5lcyRk+6BaKMEt65vRSWBuzC6KkUnxbWqu3iUzr2d9ebkkryKiN1scefAFOcCSQ==" crossorigin="anonymous"/><link rel="stylesheet" type="text/css" href="https://static.runkitcdn.com/assets/styles/codemirror-sha512-7vaQ4LLdaXd2IuMd4MUQ6LRFIGbEwJI1aq6KYqL3RjbdQyUkRFhwZKmqmkBXurTFdGlx687lTN8FSJfX6Df8Gw==.css" integrity="sha512-7vaQ4LLdaXd2IuMd4MUQ6LRFIGbEwJI1aq6KYqL3RjbdQyUkRFhwZKmqmkBXurTFdGlx687lTN8FSJfX6Df8Gw==" crossorigin="anonymous"/><link href="https://themes.runkitcdn.com/runkit-light.css?v=ce0f1cbf00545d68f7a212bb4a3cb3a4aac49d35" rel="stylesheet" type="text/css"/><title>RunKit</title></head><body><style data-aphrodite></style><div id = "react-container"><div data-reactroot=""><script src="https://embed.runkit.com"></script><div><div><div><div><div class="package-wrapper show-banner" style="background:#d9dee2"><div class="playground" style="background:#FFF"><header><a style="float:right;margin:10px 50px" href="https://runkit.com/register" class="register-button">Sign Up for Free</a><h1 style="font-weight:bold;font-size:32px;margin:0;margin-top:10px"><span><a style="text-decoration:none;color:#333;font-family:"Fira Sans", "Source Sans Pro", sans-serif" href="https://runkit.com">RunKit</a></span><span style="color:#aaa"> + </span><a href="https://npmjs.org/" style="color:#888" title="powered by npm"><img src="https://static.runkitcdn.com/assets/images/npm-logo.svg" width="70" style="margin-left:2px"/></a></h1><h4 class="subheading" style="margin:10px 0;max-width:420px;line-height:1.3em">Try any Node.js package <span class="collapse-mobile">right</span> in your browser</h4></header><div class="share-link collapse-mobile"><div style="opacity:0;word-break:break-all">Share this code: <a target="_blank" style="color:#888;font-style:italic"></a></div></div><div class="playground-content"><p>This is a <code>playground</code> to test code. It runs a full <code>Node.js</code> environment<span class="collapse-mobile"> and already has all of <code>npm</code>鈥檚 1,000,000+ packages pre-installed<span>, including <code>ah-airbrake-plugin</code></span></span><span class="expand-mobile"> with all <code>npm</code> packages installed</span>. <b>Try it out</b>:</p><div><div></div></div><div class="blank-doc-help"><ul><li>all documents on RunKit are <span style="font-weight:bold">public</span></li><li><code>require()</code> any package directly from npm</li><li>use <a href="https://runkit.com/runkit/es6-arrow-functions" target="_blank">arrow functions</a>, <a href="https://runkit.com/runkit/es6-classes" target="_blank">classes</a>, <a href="https://runkit.com/runkit/es6-template-strings">template strings</a>, and most of <a href="https://runkit.com/runkit/es6-and-es7-support" target="_blank">ES6</a></li><li><code>await</code> any promise instead of using callbacks <a href="https://runkit.com/docs/await" target="_blank">(example)</a></li><li><a href="https://runkit.com/docs/embed">create your own</a> embedded <strong>node.js</strong> snippets</li></ul></div><p style="color:#bbb;text-align:center;font-style:italic;font-size:12px">This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.</p></div></div><div class="npm-search" style="z-index:0;outline:none;padding:2em;background:#d9dee2;overflow-y:scroll" tabindex="-1"><div><input type="text" style="height:28px;border:none;padding-left:2em;line-height:normal;background:url(https://static.runkitcdn.com/assets/images/search.svg) no-repeat 0.5em center/1em #fff" value="" placeholder="search npm"/></div><div style="background:rgba(255,255,255,0.5);margin:2em 0;padding:2em;box-shadow:0 1pt 1pt rgba(0,0,0,0.1);border-radius:0.5em"><div><div style="font-weight:bold;font-size:20px;margin-bottom:10px">Whoops, should we have <span style="font-family:"Source Code Pro", monospace;color:rgb(62,138,229)">ah-airbrake-plugin</span>?</div>If you鈥檝e only just recently published this module, it may take a few minutes to appear here. However, if you think we are actually missing this package, please confirm below and we鈥檒l do our best to fix it as soon as possible!<div style="text-align:center"><button style="display:inline-block;outline:none;text-align:center;text-decoration:none;font-size:14px;padding:.5em 2em .55em;text-shadow:0 1px 1px rgba(0,0,0,.3);border-radius:2em;margin:30px 0 10px 0;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);-moz-box-shadow:0 1px 2px rgba(0,0,0,.2);-box-shadow:0 1px 2px rgba(0,0,0,.2);color:rgba(255,255,255,1.0);border:solid 0px #0076a3;background:rgba(217,100,17,1.0)"><span>Report '<!-- -->ah-airbrake-plugin<!-- -->' as missing</span></button></div></div></div></div><div id="register-banner"><button style="background:inherit;border:none;margin-right:1em;color:#FFF;opacity:0.5">脳</button><div>RunKit is a free, in-browser JavaScript dev environment<span class="collapse-mobile"> for prototyping <b>Node.js</b> code<span class="collapse-single-col">, with every <b>npm</b> package installed</span>. Sign up to share your code</span>.</div><a class="register-button" style="background-color:#FFF;color:#2ECC71" href="https://runkit.com/register">Sign Up for Free</a></div></div></div></div><div></div></div></div></div></div><script type = "javascript/uri-encoded-json" id = "asset-checksums">%7B%22%2Fassets%2Fdocs.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-KzFBzfCEH2QbrSsyyetBQ9qxDTG78yrNjn7QzwiemB8k0apUvZi0xzblvV3ZNNrOEV6zfwyldkaFkr3WNrqhWQ%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fdocs-sha512-KzFBzfCEH2QbrSsyyetBQ9qxDTG78yrNjn7QzwiemB8k0apUvZi0xzblvV3ZNNrOEV6zfwyldkaFkr3WNrqhWQ%3D%3D.bundle.js%22%7D%2C%22%2Fassets-runkit-packages-static-executables%2Fupdate-from-url.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-F0P%2FugFZRRhhiow%2BGu5TSY7zBkXhfyeCCb1vmXAg4N2GoFypqRBBPdhqrSRMxcd3v5Gd0JlTdmrGdkS4%2B%2BfwGw%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets-runkit-packages-static-executables%2Fupdate-from-url-sha512-F0P_ugFZRRhhiow%2BGu5TSY7zBkXhfyeCCb1vmXAg4N2GoFypqRBBPdhqrSRMxcd3v5Gd0JlTdmrGdkS4%2B%2BfwGw%3D%3D.bundle.js%22%7D%2C%22%2Funpublished-assets%2Frunkit-embed.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-dFft1HTjn85tkKJ8XaUtICOLKZvi%2F0cVCH%2FOlHDkR%2BbdgqYdpU84wNJfbq650K1JM%2BmFKD5JRi%2FT2emrCeG8yw%3D%3D%22%2C%22newURL%22%3A%22..%2Funpublished-assets%2Frunkit-embed.bundle.js%22%7D%2C%22%2Fassets%2Froutes.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-TZhdND1K7qXpiZjsfhdQODNjV3rjSBBqHmGpj707%2Fz8Kbb9ORcFbzBKXdVmrj4TCLnTF6Hd77hcGz8Pe9PxTUA%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Froutes-sha512-TZhdND1K7qXpiZjsfhdQODNjV3rjSBBqHmGpj707_z8Kbb9ORcFbzBKXdVmrj4TCLnTF6Hd77hcGz8Pe9PxTUA%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Foembed-loader.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-V4rcOoNrrbAI8nOG0mWTwOqijyZ%2FXBTkYLU7fp1yJ41LlbnQ3iHhVHqdVKOmbsbmu6sA3zAMvQNlu%2FhI5kW5Wg%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Foembed-loader-sha512-V4rcOoNrrbAI8nOG0mWTwOqijyZ_XBTkYLU7fp1yJ41LlbnQ3iHhVHqdVKOmbsbmu6sA3zAMvQNlu_hI5kW5Wg%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Fsandboxed-map-viewer.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-jLp2LWkaBFGlnr8EU2iDdrO7WNiePNl9H5PHEKWukwB9fl0ebvsIEItl6t7d8VLlfSvSBvz4LYPL6cKotAlN%2BA%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fsandboxed-map-viewer-sha512-jLp2LWkaBFGlnr8EU2iDdrO7WNiePNl9H5PHEKWukwB9fl0ebvsIEItl6t7d8VLlfSvSBvz4LYPL6cKotAlN%2BA%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Fiframe-script.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-vn22mcTyPC%2F%2FB9lWuPMXNRmTuYdZnx%2BFPXFJb%2Bayl9emKnPH2FIriGCwrfvr1ODXeeAUADNp%2BkM%2B12AJdSUeDQ%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fiframe-script-sha512-vn22mcTyPC__B9lWuPMXNRmTuYdZnx%2BFPXFJb%2Bayl9emKnPH2FIriGCwrfvr1ODXeeAUADNp%2BkM%2B12AJdSUeDQ%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Fadmin.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-eyGC9jqLZxUwxe4UhAqVP%2FAg%2BkxS92PqPmJUWy3LLogiCcQeuuk689x0l4kxxp%2BUofDevuXwOJ5ou7DDP%2B60Ow%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fadmin-sha512-eyGC9jqLZxUwxe4UhAqVP_Ag%2BkxS92PqPmJUWy3LLogiCcQeuuk689x0l4kxxp%2BUofDevuXwOJ5ou7DDP%2B60Ow%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Fwindow-manager.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-9GmSPvShM9HaTVdDNwLmSEwRMmxhJnCiJ2vagGG3HyCuKnKH0KF1dE4CDMBCh5dg2p04ypiSdXEkTGfSlU3RkQ%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fwindow-manager-sha512-9GmSPvShM9HaTVdDNwLmSEwRMmxhJnCiJ2vagGG3HyCuKnKH0KF1dE4CDMBCh5dg2p04ypiSdXEkTGfSlU3RkQ%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Fmain.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-QHtgc1wfDaYFw9%2FtNDGdbVginyqgmR4J%2BHfIj%2FquoMx0yPHabZFpjOTaADqKUMMgaBELVB%2FdArMzzt%2FJRbyQHg%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fmain-sha512-QHtgc1wfDaYFw9_tNDGdbVginyqgmR4J%2BHfIj_quoMx0yPHabZFpjOTaADqKUMMgaBELVB_dArMzzt_JRbyQHg%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Fvalues.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-%2B%2ByhZmSKELXN8bsCj5hAOcLApcUGlQDXPFpwDI4vmxsWfuPxupmg%2FOqlN7hcdVNXREJ1m%2Fy3yxsJVo%2B3VSHFkA%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fvalues-sha512-%2B%2ByhZmSKELXN8bsCj5hAOcLApcUGlQDXPFpwDI4vmxsWfuPxupmg_OqlN7hcdVNXREJ1m_y3yxsJVo%2B3VSHFkA%3D%3D.bundle.js%22%7D%2C%22%2Fassets-runkit-packages-static-executables%2Fdownload.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-YAtnCXkLQwpds5XBGMqEjXmQumJPd4JIIxv1Bfdqe0yb3hiDnpNM%2FN7pHZDKCnuR6s6iqsJGIjd9fwd0kkBG7A%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets-runkit-packages-static-executables%2Fdownload-sha512-YAtnCXkLQwpds5XBGMqEjXmQumJPd4JIIxv1Bfdqe0yb3hiDnpNM_N7pHZDKCnuR6s6iqsJGIjd9fwd0kkBG7A%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Ftheme-preview.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-STVFiL2BvJQJmyj9oSAdl%2FuHK13jHV5fgN7Ib35vjlGsEmoYq10nUlKJ3xwNqGys9OyAt4F61Ym41of05keDXg%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Ftheme-preview.bundle.js%22%7D%2C%22%2Fassets-runkit-packages-static-executables%2Fupdate-parent.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-IW8D09RhHoOi4m85d15vQKOab6FetQJ4Vn0nAtmQxQnIENcBFYhoHxoNc3Go1OPT8a91%2Fd7LcoDQq1iaV0CsKA%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets-runkit-packages-static-executables%2Fupdate-parent-sha512-IW8D09RhHoOi4m85d15vQKOab6FetQJ4Vn0nAtmQxQnIENcBFYhoHxoNc3Go1OPT8a91_d7LcoDQq1iaV0CsKA%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Fvalue-viewer-page.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-DDaHDUc%2FFE2h%2BqX1dgVMlrqXU%2F4sjmglbhjtBG3CaTFXfTzUY12%2BUthqEMHIz%2BVvaEVU8S6I27SIMjjOHDqfMw%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fvalue-viewer-page-sha512-DDaHDUc_FE2h%2BqX1dgVMlrqXU_4sjmglbhjtBG3CaTFXfTzUY12%2BUthqEMHIz%2BVvaEVU8S6I27SIMjjOHDqfMw%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Fchart.bundle.js%22%3A%7B%22integrity%22%3A%22sha512-5cqPi6eNKaqzhXKesFfCwYJzNceburSTyTtd9kjWX%2FgOBJSBN4Q63T4r4KPD05W%2BxKOt3q%2B%2FoWTGTeK1u5dJmQ%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fchart-sha512-5cqPi6eNKaqzhXKesFfCwYJzNceburSTyTtd9kjWX_gOBJSBN4Q63T4r4KPD05W%2BxKOt3q%2B_oWTGTeK1u5dJmQ%3D%3D.bundle.js%22%7D%2C%22%2Fassets%2Fstyles%2Fbase2.css%22%3A%7B%22integrity%22%3A%22sha512-AGG6bMg2p381NKpKf%2F3mnfnsLIJEsL0CGZQR%2FxzGG0ZBTnSMUkXlhOpIezyhdeUFw%2BlZDWuah2ALSeR0JciF5g%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fstyles%2Fbase2-sha512-AGG6bMg2p381NKpKf_3mnfnsLIJEsL0CGZQR_xzGG0ZBTnSMUkXlhOpIezyhdeUFw%2BlZDWuah2ALSeR0JciF5g%3D%3D.css%22%7D%2C%22%2Fassets%2Fvendor%2Fbootstrap%2Fbootstrap.min.css%22%3A%7B%22integrity%22%3A%22sha512-tDXPcamuZsWWd6OsKFyH6nAqh%2FMjZ%2F5Yk88T5o%2BaMfygqNFPan1pLyPFAndRzmOWHKT%2BjSDzWpJv8krj6x1LMA%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fvendor%2Fbootstrap%2Fbootstrap-sha512-tDXPcamuZsWWd6OsKFyH6nAqh_MjZ_5Yk88T5o%2BaMfygqNFPan1pLyPFAndRzmOWHKT%2BjSDzWpJv8krj6x1LMA%3D%3D.min.css%22%7D%2C%22%2Fassets%2Fstyles%2Fadmin.css%22%3A%7B%22integrity%22%3A%22sha512-CJ8qDCejiskTZ8CulKXAAS03kxJweNrz8fb0AyitaDtnG%2BKwLK0KoJGc44y8uT%2Bqiqr20mwXoA8dElsMBREI3g%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fstyles%2Fadmin-sha512-CJ8qDCejiskTZ8CulKXAAS03kxJweNrz8fb0AyitaDtnG%2BKwLK0KoJGc44y8uT%2Bqiqr20mwXoA8dElsMBREI3g%3D%3D.css%22%7D%2C%22%2Fassets-runkit-packages-static%2Funrecognized.css%22%3A%7B%22integrity%22%3A%22sha512-RF4DD4YWXV3Ftqqpxp9MseZNtqsCyXEF4s%2Fs2eNMmIDhqMRbM%2BWQsuQonPNhnU4UjZN15k5iPxOto9RNVMkxWw%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets-runkit-packages-static%2Funrecognized-sha512-RF4DD4YWXV3Ftqqpxp9MseZNtqsCyXEF4s_s2eNMmIDhqMRbM%2BWQsuQonPNhnU4UjZN15k5iPxOto9RNVMkxWw%3D%3D.css%22%7D%2C%22%2Fassets%2Fvendor%2Fc3%2Fc3.min.css%22%3A%7B%22integrity%22%3A%22sha512-%2BdWF4n9qbXA0%2FhbRB1rJYjnAKSkBndxkUTT%2FhrinqiGgnW7f7ZwIqI8BSj8iQrRfCtTlsTN91xt%2FJcU0YZbqQA%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fvendor%2Fc3%2Fc3-sha512-%2BdWF4n9qbXA0_hbRB1rJYjnAKSkBndxkUTT_hrinqiGgnW7f7ZwIqI8BSj8iQrRfCtTlsTN91xt_JcU0YZbqQA%3D%3D.min.css%22%7D%2C%22%2Fassets-runkit-packages-static%2Foverview.css%22%3A%7B%22integrity%22%3A%22sha512-5HBevnJp8L5wna5KF9XtjLz7dkXpILp8jFx8hEo2MgCSKg%2FJZOoiYzGCygjCu4UFb6DfjtH2qMT1l1PKrlrHnQ%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets-runkit-packages-static%2Foverview-sha512-5HBevnJp8L5wna5KF9XtjLz7dkXpILp8jFx8hEo2MgCSKg_JZOoiYzGCygjCu4UFb6DfjtH2qMT1l1PKrlrHnQ%3D%3D.css%22%7D%2C%22%2Fassets%2Fstyles%2Fcodemirror.css%22%3A%7B%22integrity%22%3A%22sha512-7vaQ4LLdaXd2IuMd4MUQ6LRFIGbEwJI1aq6KYqL3RjbdQyUkRFhwZKmqmkBXurTFdGlx687lTN8FSJfX6Df8Gw%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fstyles%2Fcodemirror-sha512-7vaQ4LLdaXd2IuMd4MUQ6LRFIGbEwJI1aq6KYqL3RjbdQyUkRFhwZKmqmkBXurTFdGlx687lTN8FSJfX6Df8Gw%3D%3D.css%22%7D%2C%22%2Fassets%2Fstyles%2Fstatic.css%22%3A%7B%22integrity%22%3A%22sha512-qOEI%2Bil%2F46N%2F1TZNKAZS8IfXZ%2BvPIEcU%2B9VTUwWBbWx1PlgZIwxmA3YB%2FhDYaM4GIRIWAvwftdZxbpqdMBppLg%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fstyles%2Fstatic-sha512-qOEI%2Bil_46N_1TZNKAZS8IfXZ%2BvPIEcU%2B9VTUwWBbWx1PlgZIwxmA3YB_hDYaM4GIRIWAvwftdZxbpqdMBppLg%3D%3D.css%22%7D%2C%22%2Fassets%2Fvendor%2Ffont-awesome%2Fcss%2Ffont-awesome.min.css%22%3A%7B%22integrity%22%3A%22sha512-SfTiTlX6kk%2Bqitfevl%2F7LibUOeJWlt9rbyDn92a1DqWOw9vWG2MFoays0sgObmWazO5BQPiFucnnEAjpAB%2B%2FSw%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fvendor%2Ffont-awesome%2Fcss%2Ffont-awesome-sha512-SfTiTlX6kk%2Bqitfevl_7LibUOeJWlt9rbyDn92a1DqWOw9vWG2MFoays0sgObmWazO5BQPiFucnnEAjpAB%2B_Sw%3D%3D.min.css%22%7D%2C%22%2Fassets%2Fstyles%2Fnpm.css%22%3A%7B%22integrity%22%3A%22sha512-dGXN6LvbwmcY1a71btRiirj5lcyRk%2B6BaKMEt65vRSWBuzC6KkUnxbWqu3iUzr2d9ebkkryKiN1scefAFOcCSQ%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fstyles%2Fnpm-sha512-dGXN6LvbwmcY1a71btRiirj5lcyRk%2B6BaKMEt65vRSWBuzC6KkUnxbWqu3iUzr2d9ebkkryKiN1scefAFOcCSQ%3D%3D.css%22%7D%2C%22%2Fassets-runkit-packages-static%2Ftext.css%22%3A%7B%22integrity%22%3A%22sha512-hMXVzQAm7WMNCxFLorSUo1dfndC%2FejjrhL2K9jnPmmgj%2BuuhgPbFv7FjyklBmCF4WipTv9GxC90scnXU3LZT2A%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets-runkit-packages-static%2Ftext-sha512-hMXVzQAm7WMNCxFLorSUo1dfndC_ejjrhL2K9jnPmmgj%2BuuhgPbFv7FjyklBmCF4WipTv9GxC90scnXU3LZT2A%3D%3D.css%22%7D%2C%22%2Fassets%2Fstyles%2Fwindow-buttons.css%22%3A%7B%22integrity%22%3A%22sha512-L0RXJ4mRmlnfIxu%2FqwR7G83Ne4rQ6PEuCFnjGdOFbONwe2E%2Bi9FHsWgJ0kDhJ5uHf98Q79ipYYYucSUoAxbUgA%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fstyles%2Fwindow-buttons-sha512-L0RXJ4mRmlnfIxu_qwR7G83Ne4rQ6PEuCFnjGdOFbONwe2E%2Bi9FHsWgJ0kDhJ5uHf98Q79ipYYYucSUoAxbUgA%3D%3D.css%22%7D%2C%22%2Fassets%2Fvendor%2Fphoton%2Ficons.min.css%22%3A%7B%22integrity%22%3A%22sha512-4pURzInKvIGq8AfiVX2AFrOL3Amo9X%2FwfnhZFdNLab9NClylJ1Txa39ilHDhlP%2BDI8N%2F%2FqKKC9q3jKEGP1xxBQ%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fvendor%2Fphoton%2Ficons-sha512-4pURzInKvIGq8AfiVX2AFrOL3Amo9X_wfnhZFdNLab9NClylJ1Txa39ilHDhlP%2BDI8N__qKKC9q3jKEGP1xxBQ%3D%3D.min.css%22%7D%2C%22%2Fassets%2Fstyles%2Freadme.css%22%3A%7B%22integrity%22%3A%22sha512-WhtYK%2Bo5241rgIy%2FqYspTo70CNGhazB89qL%2BIxVYKb6u1qbXSgfjS3%2BPpUr9LqmbZdtJRC%2FyvWZdHFe4jQ4pwg%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fstyles%2Freadme-sha512-WhtYK%2Bo5241rgIy_qYspTo70CNGhazB89qL%2BIxVYKb6u1qbXSgfjS3%2BPpUr9LqmbZdtJRC_yvWZdHFe4jQ4pwg%3D%3D.css%22%7D%2C%22%2Fassets-runkit-packages-static%2Fbootstrap-reboot.css%22%3A%7B%22integrity%22%3A%22sha512-JtCUSOdqjetJggepwCCR9FT8g07iSENmKyOFQ%2Fcc5WsATPU6f57wEODAHzoqWy%2B%2FQIALSVDSmf%2F2XcYF83gWFg%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets-runkit-packages-static%2Fbootstrap-reboot-sha512-JtCUSOdqjetJggepwCCR9FT8g07iSENmKyOFQ_cc5WsATPU6f57wEODAHzoqWy%2B_QIALSVDSmf_2XcYF83gWFg%3D%3D.css%22%7D%2C%22%2Fassets%2Fstyles%2Ferror-pages.css%22%3A%7B%22integrity%22%3A%22sha512-wc0YZ4YI9QYzM021UgryZhTff2THiN3aLCk40mEGBgaRokLMSOulNQ%2FWYo54nVHyafnx9xc92BQK4mdFgdv1Rg%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fstyles%2Ferror-pages-sha512-wc0YZ4YI9QYzM021UgryZhTff2THiN3aLCk40mEGBgaRokLMSOulNQ_WYo54nVHyafnx9xc92BQK4mdFgdv1Rg%3D%3D.css%22%7D%2C%22%2Fassets%2Fstyles%2Fbase.css%22%3A%7B%22integrity%22%3A%22sha512-JJhyit1rR09PVXP%2BQrvQFLhZEfqp6%2BNWtO1rnlzKWmb1pD%2FKdq2OZ0dfE69CmGq2HgNzjHNwZ7dLDdc1oIC1hQ%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fstyles%2Fbase-sha512-JJhyit1rR09PVXP%2BQrvQFLhZEfqp6%2BNWtO1rnlzKWmb1pD_Kdq2OZ0dfE69CmGq2HgNzjHNwZ7dLDdc1oIC1hQ%3D%3D.css%22%7D%2C%22%2Fassets-runkit-packages-static%2Fimage.css%22%3A%7B%22integrity%22%3A%22sha512-EV%2FRYpveYeVN5fq2AdLzNs8HSBBtJ9LblWhwj8Eymy2mSZSXGStEGBFSdL9j4a57Q8Mnsj11s32NSu7W1XctTA%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets-runkit-packages-static%2Fimage-sha512-EV_RYpveYeVN5fq2AdLzNs8HSBBtJ9LblWhwj8Eymy2mSZSXGStEGBFSdL9j4a57Q8Mnsj11s32NSu7W1XctTA%3D%3D.css%22%7D%2C%22%2Fassets%2Fvendor%2Fphotonkit%2Fphoton.min.css%22%3A%7B%22integrity%22%3A%22sha512-8qj8n6SsrAaV3baPN5S%2BKDMN7JYIx8BC%2Bej%2BBUMBfbk%2BQkXB7GF3rMhCyhqYjDm8%2B89yV0J5aVDI5%2FPRwVI5jw%3D%3D%22%2C%22newURL%22%3A%22..%2Fassets%2Fvendor%2Fphotonkit%2Fphoton-sha512-8qj8n6SsrAaV3baPN5S%2BKDMN7JYIx8BC%2Bej%2BBUMBfbk%2BQkXB7GF3rMhCyhqYjDm8%2B89yV0J5aVDI5_PRwVI5jw%3D%3D.min.css%22%7D%7D</script><script type = "javascript/uri-encoded-json" id = "serialized-client-env">%7B%22CSRF%22%3A%228f48c932-2d1e-4824-9bdd-0d458741b1a9%22%2C%22VERSION%22%3A%22ce0f1cbf00545d68f7a212bb4a3cb3a4aac49d35%22%2C%22SENTRY_PUBLIC_DSN%22%3A%22https%3A%2F%2Ffc5fbd4eddce4289afde53ed4fc1dabe%40sentry.io%2F47331%22%2C%22RENDERED_HTML_HOST%22%3A%22runkit-rendered-html.com%22%2C%22OUTPUT_BUFFER_HOST%22%3A%22runkit-output-buffer.com%22%2C%22IMAGE_PROXY_HOST%22%3A%22runkit-image-proxy.com%22%2C%22NOTEBOOK_DOWNLOAD_HOST%22%3A%22runkit-notebook-download.com%22%2C%22DOCS_HOST%22%3A%22docs.runkitcdn.com%22%2C%22BADGE_HOST%22%3A%22badge.runkitcdn.com%22%2C%22THEMES_HOST%22%3A%22themes.runkitcdn.com%22%2C%22APP_HOST%22%3A%22runkit.com%22%2C%22EMBED_HOST%22%3A%22embed.runkit.com%22%2C%22NPM_HOST%22%3A%22npm.runkit.com%22%2C%22STATIC_HOST%22%3A%22static.runkitcdn.com%22%2C%22RUNKIT_PACKAGES_HOST%22%3A%22runkit-packages.com%22%2C%22RUNKIT_PACKAGES_DOWNLOAD_HOST%22%3A%22runkit-packages-download.com%22%2C%22RUNKIT_PACKAGES_STATIC_HOST%22%3A%22runkit-packages-static.com%22%2C%22RUNKIT_PACKAGES_STATIC_EXECUTABLES_HOST%22%3A%22runkit-packages-static-executables.com%22%2C%22API_HOST%22%3A%22runkit.sh%22%2C%22LEGACY_API_HOST%22%3A%22runkit.io%22%2C%22WELCOME_DOC_URL%22%3A%22%2Frunkit%2Fwelcome%2F7.0.0%2Fclone%3Fresults%3Dfalse%22%2C%22GA_TRACKING_RUNKIT_EMBEDS%22%3A%22UA-65519033-3%22%2C%22GOOGLE_ANALYTICS_ID%22%3A%22UA-65519033-1%22%2C%22MAPBOX_PUBLIC_KEY%22%3A%22pk.eyJ1IjoidG9sbWFza3kiLCJhIjoiY2o0Yms3MmRyMDFhZDJxcHMwaWN0ZzFjZCJ9.ChGWCB7PLE-FaWVeksrjdQ%22%7D</script><script type = "javascript/uri-encoded-json" id = "react-properties">%7B%22index%22%3A16%2C%22objects%22%3A%5B%22value%22%2Ctrue%2Cfalse%2C%22state%22%2C%22%2Fuser%22%2C%22%2Fnpm%2Finfo%2Fah-airbrake-plugin%22%2C%22%2Ftime%22%2C%22href%22%2C%5B0%2C34%2C35%2C36%2C1%5D%2C%22%24href%22%2C%22once%22%2C%22loaded%22%2C%22__noInspect%22%2C1732496049417%2C%22current-results%22%2C%22values%22%2C%5B1%2C18%2C17%2C20%2C19%5D%2C%5B1%2C22%2C21%2C3%2C23%2C25%2C24%2C26%2C2%2C27%2C-2%5D%2C%22props%22%2C%5B1%2C4%2C28%2C5%2C29%2C6%2C30%5D%2C%22resourceCache%22%2C%22https%3A%2F%2Fnpm.runkit.com%2Fah-airbrake-plugin%22%2C%22URL%22%2C%5B0%2C31%2C32%5D%2C%228f48c932-2d1e-4824-9bdd-0d458741b1a9%22%2C%22csrf%22%2C%22admin%22%2C%22isStaff%22%2C%5B1%2C7%2C4%2C0%2C-1%5D%2C%5B1%2C7%2C5%2C0%2C8%5D%2C%5B1%2C7%2C6%2C0%2C13%5D%2C%22user%22%2C%5B0%2C14%2C33%5D%2C%5B0%2C15%2C37%2C3%2C38%5D%2C%22packageName%22%2C%22ah-airbrake-plugin%22%2C%22unavailable%22%2C%5B0%2C39%2C40%5D%2C%5B0%2C41%2C42%5D%2C%22only%22%2C%5B0%2C9%2C4%2C10%2C2%2C11%2C43%5D%2C%22router%22%2C%5B0%2C44%2C45%5D%2C%5B0%2C12%2C1%2C0%2C-1%5D%2C%22selected%22%2C%5B0%2C46%2C47%5D%2C%22page%22%2C%5B0%2C14%2C48%5D%2C%5B0%2C15%2C49%2C3%2C50%5D%2C%5B0%2C51%2C52%2C53%2C54%5D%2C%5B0%2C55%2C8%2C56%2C2%2C57%2C58%2C59%2C60%2C61%2C62%5D%2C%22%2BaMetadata%22%2C%5B0%2C9%2C5%2C10%2C2%2C11%2C63%5D%2C%22%2Btimestamp%22%2C%5B0%2C9%2C6%2C10%2C1%2C11%2C64%5D%2C%22initial-metadata%22%2C%22hide-banner%22%2C%22playground%22%2C%5B0%2C65%2C-2%5D%2C%22search%22%2C%5B0%2C66%2C67%5D%2C%22missing-module%22%2C%5B0%2C68%2C2%5D%2C%5B0%2C12%2C1%2C0%2C8%5D%2C%5B0%2C12%2C1%2C0%2C13%5D%2C%22notebook-url%22%2C%22module-search%22%2C%5B0%2C69%2C70%2C71%2C72%2C73%2C1%5D%2C%22reported%22%2C%22query%22%2C%22%22%2C%22selection%22%2C0%2C%22showSearchResults%22%5D%2C%22typeMap%22%3A%7B%220%22%3A7%2C%221%22%3A0%7D%7D</script><script type = "javascript/json" id = "rendered-class-names">[]</script><div data-ignore-width="true" style="clear:both;height:0;margin:0;padding:0"></div><script></script><script type="text/javascript" src="https://static.runkitcdn.com/assets/routes-sha512-TZhdND1K7qXpiZjsfhdQODNjV3rjSBBqHmGpj707_z8Kbb9ORcFbzBKXdVmrj4TCLnTF6Hd77hcGz8Pe9PxTUA==.bundle.js" integrity="sha512-TZhdND1K7qXpiZjsfhdQODNjV3rjSBBqHmGpj707/z8Kbb9ORcFbzBKXdVmrj4TCLnTF6Hd77hcGz8Pe9PxTUA==" crossorigin="anonymous"></script></body></html>