diff --git a/showtime/client/src/html/admin.html b/showtime/client/src/html/admin.html index a72d59048f7b7ba478c9dd50ff8c2ba48ebc2581..7080a011f5078ceb8edaeba8f20fe884828b155f 100644 --- a/showtime/client/src/html/admin.html +++ b/showtime/client/src/html/admin.html @@ -26,7 +26,7 @@ <div id="createShow"> <input id="desc" type="text" placeholder="description"/> - <input id="place" type="number" placeholder="nombre de place" min="1" max="5" value="3" /> + <input id="place" type="number" placeholder="nombre de place" min="1" max="5" /> <button id="create">Ajouter</button> </div> diff --git a/showtime/client/src/scripts/admin.client.js b/showtime/client/src/scripts/admin.client.js index 3380d72ccde342aef6a185d2ad50e494f5edb793..e59f476ab47f9aa825a0cb5a9accfb717cadeb7c 100644 --- a/showtime/client/src/scripts/admin.client.js +++ b/showtime/client/src/scripts/admin.client.js @@ -9,11 +9,10 @@ const setup = () => { username = document.getElementById('username'); getUser(); document.getElementById('create').addEventListener('click', createShow); - - // document.getElementById('update').addEventListener('click', update); displayList(); document.getElementById('logout').addEventListener('click', logout); } + window.addEventListener('DOMContentLoaded', setup); // fetch GET all shows @@ -73,7 +72,7 @@ const createShow = headers : { "Content-Type": "application/json" }, body : body }; - const response = await fetch('/admin/new/', requestOptions); + const response = await fetch('/admin/items', requestOptions); if (response.ok) { const createdShow = await response.json(); displayMessage(`${createdShow.description} créée`); @@ -103,25 +102,6 @@ const getUser = async () => { } } -// const update = async () => { -// const userData = { name : username.value }; -// const body = JSON.stringify(userData); -// const requestOptions = { -// method :'PUT', -// headers : { "Content-Type": "application/json" }, -// body : body -// }; -// const response = await fetch('/user/me', requestOptions); -// if (response.ok) { -// const updatedUser = await response.json(); -// console.log(`user updated : ${JSON.stringify(updatedUser)}`); -// } -// else { -// const error = await response.json(); -// handleError(error); -// } -// } - const logout = async () => { const requestOptions = { method :'GET', diff --git a/showtime/client/src/scripts/user.client.js b/showtime/client/src/scripts/user.client.js index e5fb9ed06823dc3ee6cc49bc09dd53204c62c00c..c737422ef2cdd0efc044fc12abe24bb496532bcf 100644 --- a/showtime/client/src/scripts/user.client.js +++ b/showtime/client/src/scripts/user.client.js @@ -1,13 +1,8 @@ -let userlogin; -let userpassword; let username; -//const displayShowList = require('./utils'); - const setup = () => { username = document.getElementById('username'); getUser(); - // document.getElementById('update').addEventListener('click', update); displayShowList(); displayTicketsList(); document.getElementById('logout').addEventListener('click', logout); @@ -34,12 +29,17 @@ const displayShowList = async () => { method : 'GET' }; const response = await fetch('/admin/items', requestOptions) - const allShows = await response.json(); - - //(ici : code exploitation de allShows) - const list = document.getElementById('list'); - list.textContent = ''; - allShows.forEach( show => addToList(show, list) ); + if (response.ok) { + const allShows = await response.json(); + //(ici : code exploitation de allShows) + const list = document.getElementById('list'); + list.textContent = ''; + allShows.forEach( show => addToList(show, list) ); + } + else { + const error = await response.json(); + handleError(error); + } } const addToList = (show,list) => { @@ -51,8 +51,6 @@ span.textContent = `${show.places} places` node.textContent = `${show.description} : `; node.appendChild(span); // -//node.addEventListener('mouseover', () => getTask(show._id)); -// const ticketsButton = document.createElement('button'); ticketsButton.className = 'ticket'; ticketsButton.addEventListener('click', addTicketShow); @@ -85,8 +83,14 @@ const displayTicketsList = async () => { method : 'GET' }; const response = await fetch('/tickets', requestOptions) - const allTickets = await response.json(); - allTickets.forEach( ticket => addTicketsToList(ticket) ); + if (response.ok) { + const allTickets = await response.json(); + allTickets.forEach( ticket => addTicketsToList(ticket) ); + } + else { + const error = await response.json(); + handleError(error); + } } const addTicketsToList = (ticket) => { diff --git a/showtime/client/src/style/admin.css b/showtime/client/src/style/admin.css index b281fae1883c4f79dec67666998144425588b6db..f0982d9cf0ac0f6190b35cf3ee950fe216407e7d 100644 --- a/showtime/client/src/style/admin.css +++ b/showtime/client/src/style/admin.css @@ -20,7 +20,7 @@ body { } #place { - width : 50px; + width : 100px; text-align : right; } diff --git a/showtime/client/src/style/style.css b/showtime/client/src/style/style.css index 027b1b0a04626d7d6d8be4e10a0b26fb97c4c729..74327c0c9364970330ccea47924c5e5cd100fff4 100644 --- a/showtime/client/src/style/style.css +++ b/showtime/client/src/style/style.css @@ -17,6 +17,9 @@ input { text-align :center; } +#place { + width: 10px; +} button { padding : 3px; width : 100px; @@ -24,17 +27,20 @@ button { font-weight : bold; } -#list div.shows { - padding : 2px; - margin : 1px 2px; +#shows, #tickets { + margin : 10px; + padding : 4px; + border : solid thin #999; } -div.shows:nth-of-type(even) { - background-color: #EEE; + +#list, #shows { + padding : 2px; + margin : 4px 4px; } .tickets { width : 50px; - color: red; + color: green; } #userdata { diff --git a/showtime/server/app.js b/showtime/server/app.js index 9748de1c2a265385b3fd70a81aff6745806ac489..060b67a7fc204a11c3edf772c64ec6b643079a7a 100644 --- a/showtime/server/app.js +++ b/showtime/server/app.js @@ -8,7 +8,6 @@ var logger = require('morgan'); // routers const indexRouter = require('./routes/index.route'); const accessRouter = require('./routes/access.route'); -const userRouter = require('./routes/user.route'); const adminRouter = require('./routes/admin.route'); @@ -33,7 +32,6 @@ app.use(express.static(path.join(__dirname, 'public'))); app.use('/', indexRouter); app.use('/access', accessRouter); -app.use('/user', userRouter); app.use('/admin', adminRouter); // error handler diff --git a/showtime/server/controllers/access.controller.js b/showtime/server/controllers/access.controller.js index 76db5acf2dec99328cbda3a5f3e558d1f45a401e..4981d661cfa46e0ab3b206551441bc9cf8cd6e02 100644 --- a/showtime/server/controllers/access.controller.js +++ b/showtime/server/controllers/access.controller.js @@ -57,7 +57,7 @@ const login = async (req, res) => { // create and send token const token = jwt.sign({id: user._id}, jwtConfig.SECRET_TOKEN, {expiresIn : '1500s'} ); console.log(`login : ${token}`); - res.cookie('token', token, { maxAge : 60000, httpOnly: true, sameSite : 'strict' }) // secure : true (avec https) + res.cookie('token', token, { maxAge : 150000, httpOnly: true, sameSite : 'strict' }) // secure : true (avec https) res.status(200).json({ message : 'utilisateur connecté', name : user.name, admin : user.admin }); } else { // unknown login diff --git a/showtime/server/controllers/admin.controller.js b/showtime/server/controllers/admin.controller.js index 44edfbef7c77b7cbab7da9f4c17f6445e0d50f4e..378274dfe479a8de64b08173e9cc2ebe6959b33e 100644 --- a/showtime/server/controllers/admin.controller.js +++ b/showtime/server/controllers/admin.controller.js @@ -1,52 +1,42 @@ const Shows = require('../models/shows.model').model; -module.exports.home = (_,res) => res.redirect('/admin.html'); +module.exports.home = (_, res) => res.redirect('/admin.html'); -module.exports.list = async (_,res) => { - const allShows = await Shows.find(); - res.status(200).json(allShows); - } +module.exports.list = async (_, res) => { + const allShows = await Shows.find(); + res.status(200).json(allShows); +} module.exports.me = - async (req, res) => { + async (req, res) => { const user = await User.findById(req.userId); console.log(user); console.log(req.userId); - res.status(200).json({ name : user.name }); + res.status(200).json({ name: user.name }); } - module.exports.update = - async (req,res) => { - const updatedData = { ...req.body }; - console.log(updatedData); - const user = await User.findByIdAndUpdate(req.userId, - updatedData, - { new : true }); - res.status(200).json({ name : user.name , message : 'mise à jour réussie'}); - } - module.exports.create = - async (req,res) => { - const newShowData = { ...req.body }; - try { - const newShow = await Shows.create(newShowData); - res.status(201).json(newShow); - } - catch(error) { - console.log(error.errmsg) - res.status(400).json(error.errmsg); - } +module.exports.create = + async (req, res) => { + const newShowData = { ...req.body }; + try { + const newShow = await Shows.create(newShowData); + res.status(201).json(newShow); + } + catch (error) { + console.log(error.errmsg) + res.status(400).json(error.errmsg); } + } - module.exports.deleteShow = - async (req,res) => { - try { - await Shows.findByIdAndDelete( req.params.showId ); - console.log(`--> show ${req.params.ShowId} deleted`); - res.status(200).json(null); - } - catch(error) { - throw error ; - } +module.exports.deleteShow = + async (req, res) => { + try { + await Shows.findByIdAndDelete(req.params.showId); + console.log(`--> show ${req.params.ShowId} deleted`); + res.status(200).json(null); + } + catch (error) { + throw error; } - \ No newline at end of file + } diff --git a/showtime/server/controllers/index.controller.js b/showtime/server/controllers/index.controller.js index 85a826bfa8f72568517cd94a2dd888754962b05c..76e1315f1a7b7dee8b7f45ef66f92d7a27d38295 100644 --- a/showtime/server/controllers/index.controller.js +++ b/showtime/server/controllers/index.controller.js @@ -3,66 +3,72 @@ const path = require('path'); const { use } = require('../app'); - module.exports.home = (_,res) => res.sendFile(path.join(__dirname, '../public/html/user.html')); - - module.exports.listShow = async (_,res) => { - const allShows = await Shows.find(); - res.status(200).json(allShows); - } +module.exports.home = (_, res) => res.sendFile(path.join(__dirname, '../public/html/user.html')); - module.exports.listTickets = async (req,res) => { - const user = await User.findById(req.userId); - console.log(user); - res.status(200).json(user.reservedTickets); - } +module.exports.listShow = async (_, res) => { + const allShows = await Shows.find(); + res.status(200).json(allShows); +} - module.exports.me = - async (req, res) => { +module.exports.listTickets = async (req, res) => { + const user = await User.findById(req.userId); + console.log(user); + res.status(200).json(user.reservedTickets); +} + +module.exports.me = + async (req, res) => { + try { const user = await User.findById(req.userId); console.log(user); console.log(req.userId); - res.status(200).json({ name : user.name, admin : user.admin}); + res.status(200).json({ name: user.name, admin: user.admin }); + } catch (error) { + throw error; } - - module.exports.deleteTickets = - async (req, res) => { - try { - await User.updateMany( - { "reservedTickets.show": req.params.showId }, - { $pull: { reservedTickets: { show: req.params.showId } } }, - ) - res.status(200).json(req.params.showId); - }catch(error) { - throw error; - } + } + +module.exports.deleteTickets = + async (req, res) => { + try { + await User.updateMany( + { "reservedTickets.show": req.params.showId }, + { $pull: { reservedTickets: { show: req.params.showId } } }, + ) + res.status(200).json(req.params.showId); + } catch (error) { + throw error; } + } - module.exports.update = - async (req,res) => { - try { - const updatedData = { ...req.body }; - const updated = await User.updateOne( - { _id: req.userId, "reservedTickets.show": updatedData.show }, - {$set : { +module.exports.update = + async (req, res) => { + try { + const updatedData = { ...req.body }; + const updated = await User.updateOne( + { _id: req.userId, "reservedTickets.show": updatedData.show }, + { + $set: { "reservedTickets.$.description": updatedData.description, "reservedTickets.$.tickets": updatedData.tickets, }, }); - if (updated.modifiedCount === 0) { - const user = await User.findByIdAndUpdate(req.userId, - { $push: { reservedTickets: updatedData } }, - { new : true }); - } - res.status(200).json({ description : updatedData.description , message : 'mise à jour réussie'}); - } catch(error) { - console.log(error.errmsg) - res.status(400).json(error.errmsg); + if (updated.modifiedCount === 0) { + const user = await User.findByIdAndUpdate(req.userId, + { $push: { reservedTickets: updatedData } }, + { new: true }); } - } - module.exports.about = - (req, res) => res.render('about'); - - module.exports.adminonly = - (req, res) => res.render('adminonly'); - - + res.status(200).json({ description: updatedData.description, message: 'mise à jour réussie' }); + } catch (error) { + console.log(error.errmsg) + res.status(400).json(error.errmsg); + } + } + +module.exports.about = + (req, res) => res.render('about'); + +module.exports.adminonly = + (req, res) => res.render('adminonly'); + + diff --git a/showtime/server/controllers/user.controller.js b/showtime/server/controllers/user.controller.js deleted file mode 100644 index 418b1e7f04475c6da3ba523f32147e8cdcad7db3..0000000000000000000000000000000000000000 --- a/showtime/server/controllers/user.controller.js +++ /dev/null @@ -1,23 +0,0 @@ -const User = require('../models/user.model').model; - -module.exports.home = (_,res) => res.redirect('/user.html'); - -module.exports.me = - async (req, res) => { - const user = await User.findById(req.userId); - console.log(user); - console.log(req.userId); - res.status(200).json({ name : user.name, admin : user.admin}); - } - -module.exports.update = - async (req,res) => { - const updatedData = { ...req.body }; - console.log(updatedData); - const user = await User.findByIdAndUpdate(req.userId, - updatedData, - { new : true }); - console.log(user); - res.status(200).json({ description : user.description , message : 'mise à jour réussie'}); - } - diff --git a/showtime/server/public/html/admin.html b/showtime/server/public/html/admin.html index 39d57ec9420ba82ff8dad8813068031e25cb7ec2..3762c4d74b855c04bfa6ad48cfcacaac6ca3d91f 100644 --- a/showtime/server/public/html/admin.html +++ b/showtime/server/public/html/admin.html @@ -5,7 +5,7 @@ <title>user profile</title> <link rel="stylesheet" type="text/css" href="../style/admin.css"/> -<script defer src="../scripts/admin-bundle.js?c951f040e1da5516deac"></script></head> +<script defer src="../scripts/admin-bundle.js?ab8bb90ca5febe20509b"></script></head> <body> <h1>Application Showtime</h1> @@ -26,7 +26,7 @@ <div id="createShow"> <input id="desc" type="text" placeholder="description"/> - <input id="place" type="number" placeholder="nombre de place" min="1" max="5" value="3" /> + <input id="place" type="number" placeholder="nombre de place" min="1" max="5" /> <button id="create">Ajouter</button> </div> diff --git a/showtime/server/public/html/login.html b/showtime/server/public/html/login.html index da1c65beaf0bcf5cc9d370b1539baf30a61a22f3..55a3d716dc7b0a382148943b73cd0297652260a9 100644 --- a/showtime/server/public/html/login.html +++ b/showtime/server/public/html/login.html @@ -5,7 +5,7 @@ <title>login/register</title> <link rel="stylesheet" type="text/css" href="../style/style.css"/> -<script defer src="../scripts/login-bundle.js?c951f040e1da5516deac"></script></head> +<script defer src="../scripts/login-bundle.js?ab8bb90ca5febe20509b"></script></head> <body> <h1>Application de partage</h1> diff --git a/showtime/server/public/html/register.html b/showtime/server/public/html/register.html index 1824c0136d8371352384855f02c80338ceecfbc6..25cd600ac4ef975d24e9497919e6a40a711a3cf5 100644 --- a/showtime/server/public/html/register.html +++ b/showtime/server/public/html/register.html @@ -5,7 +5,7 @@ <title>login/register</title> <link rel="stylesheet" type="text/css" href="../style/style.css"/> -<script defer src="../scripts/register-bundle.js?c951f040e1da5516deac"></script></head> +<script defer src="../scripts/register-bundle.js?ab8bb90ca5febe20509b"></script></head> <body> <h1>Identification</h1> diff --git a/showtime/server/public/html/user.html b/showtime/server/public/html/user.html index 6313d74793626a81672bb7d029ac8959cf90bd30..ccb0c6ef7a9d64b95c72b2e8571567f73295e9ae 100644 --- a/showtime/server/public/html/user.html +++ b/showtime/server/public/html/user.html @@ -5,7 +5,7 @@ <title>user profile</title> <link rel="stylesheet" type="text/css" href="../style/style.css"/> -<script defer src="../scripts/user-bundle.js?c951f040e1da5516deac"></script></head> +<script defer src="../scripts/user-bundle.js?ab8bb90ca5febe20509b"></script></head> <body> <h1>Application Showtime</h1> diff --git a/showtime/server/public/scripts/admin-bundle.js b/showtime/server/public/scripts/admin-bundle.js index b9d6d3460594069f99877b7e3d1ec10750c0267e..3a9a2d626319fbaa4331af5240dc51a8c2a87af4 100644 --- a/showtime/server/public/scripts/admin-bundle.js +++ b/showtime/server/public/scripts/admin-bundle.js @@ -1,2 +1,2 @@ /*! For license information please see admin-bundle.js.LICENSE.txt */ -(()=>{var __webpack_modules__={"./src/scripts/admin.client.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar userlogin;\nvar userpassword;\nvar username;\nvar displayMessage = function displayMessage(msg) {\n return document.getElementById('content').textContent = msg;\n};\nvar resetDesc = function resetDesc() {\n return document.getElementById('desc').value = '';\n};\nvar setup = function setup() {\n username = document.getElementById('username');\n getUser();\n document.getElementById('create').addEventListener('click', createShow);\n\n // document.getElementById('update').addEventListener('click', update);\n displayList();\n document.getElementById('logout').addEventListener('click', logout);\n};\nwindow.addEventListener('DOMContentLoaded', setup);\n\n// fetch GET all shows\nvar displayList = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee() {\n var requestOptions, response, allShows, list;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n requestOptions = {\n method: 'GET'\n };\n _context.next = 3;\n return fetch('/admin/items', requestOptions);\n case 3:\n response = _context.sent;\n _context.next = 6;\n return response.json();\n case 6:\n allShows = _context.sent;\n //(ici : code exploitation de allShows)\n list = document.getElementById('list');\n list.textContent = '';\n allShows.forEach(function (show) {\n return addToList(show, list);\n });\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function displayList() {\n return _ref.apply(this, arguments);\n };\n}();\nvar addToList = function addToList(show, list) {\n var node = document.createElement('div');\n node.className = 'show';\n node.textContent = \"\".concat(show.description, \" (\").concat(show.places, \")\");\n var deleteButton = document.createElement('button');\n deleteButton.className = 'delete';\n deleteButton.addEventListener('click', function () {\n return deleteShow(show._id);\n });\n deleteButton.textContent = 'annuler';\n node.appendChild(deleteButton);\n //\n list.appendChild(node);\n};\n\n// fetch DELETE to delete one task with given task id\nvar deleteShow = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2(showId) {\n var requestOptions, response;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n requestOptions = {\n method: 'DELETE'\n };\n _context2.next = 3;\n return fetch(\"/admin/\".concat(showId), requestOptions);\n case 3:\n response = _context2.sent;\n if (!response.ok) {\n _context2.next = 11;\n break;\n }\n displayMessage('suppression effectuée');\n displayList();\n _context2.next = 9;\n return fetch(\"/\".concat(showId), requestOptions);\n case 9:\n _context2.next = 12;\n break;\n case 11:\n displayMessage('problème suppression');\n case 12:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function deleteShow(_x) {\n return _ref2.apply(this, arguments);\n };\n}();\n\n// fetch POST to create one task\nvar createShow = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee3() {\n var newShowData, body, requestOptions, response, createdShow, errorMsg;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n newShowData = {\n description: document.getElementById('desc').value,\n places: document.getElementById('place').value\n };\n body = JSON.stringify(newShowData);\n requestOptions = {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: body\n };\n _context3.next = 5;\n return fetch('/admin/new/', requestOptions);\n case 5:\n response = _context3.sent;\n if (!response.ok) {\n _context3.next = 15;\n break;\n }\n _context3.next = 9;\n return response.json();\n case 9:\n createdShow = _context3.sent;\n displayMessage(\"\".concat(createdShow.description, \" cr\\xE9\\xE9e\"));\n resetDesc();\n displayList();\n _context3.next = 19;\n break;\n case 15:\n _context3.next = 17;\n return response.json();\n case 17:\n errorMsg = _context3.sent;\n displayMessage(\"probl\\xE8me cr\\xE9ation \".concat(errorMsg));\n case 19:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function createShow() {\n return _ref3.apply(this, arguments);\n };\n}();\nvar getUser = /*#__PURE__*/function () {\n var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee4() {\n var requestOptions, response, user, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n requestOptions = {\n method: 'GET'\n };\n _context4.next = 3;\n return fetch('/me', requestOptions);\n case 3:\n response = _context4.sent;\n if (!response.ok) {\n _context4.next = 11;\n break;\n }\n _context4.next = 7;\n return response.json();\n case 7:\n user = _context4.sent;\n username.textContent = user.name;\n _context4.next = 15;\n break;\n case 11:\n _context4.next = 13;\n return response.json();\n case 13:\n error = _context4.sent;\n handleError(error);\n case 15:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function getUser() {\n return _ref4.apply(this, arguments);\n };\n}();\n\n// const update = async () => {\n// const userData = { name : username.value };\n// const body = JSON.stringify(userData);\n// const requestOptions = {\n// method :'PUT',\n// headers : { \"Content-Type\": \"application/json\" },\n// body : body\n// };\n// const response = await fetch('/user/me', requestOptions);\n// if (response.ok) {\n// const updatedUser = await response.json();\n// console.log(`user updated : ${JSON.stringify(updatedUser)}`);\n// }\n// else {\n// const error = await response.json();\n// handleError(error);\n// }\n// }\n\nvar logout = /*#__PURE__*/function () {\n var _ref5 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee5() {\n var requestOptions, response;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n requestOptions = {\n method: 'GET'\n };\n _context5.next = 3;\n return fetch(\"/access/logout\", requestOptions);\n case 3:\n response = _context5.sent;\n if (response.ok) {\n window.location.href = '/';\n }\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function logout() {\n return _ref5.apply(this, arguments);\n };\n}();\nvar handleError = function handleError(error) {\n if (error.redirectTo) window.location.href = error.redirectTo;else console.log(\"erreur : \".concat(error.message));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QXlELFNBQUEsQ0FBQS9DLElBQUE7VUFDZCxJQUFJVixRQUFRLENBQUNpQyxFQUFFLEVBQUU7WUFDZnhDLE1BQU0sQ0FBQ2lFLFFBQVEsQ0FBQ0MsSUFBSSxHQUFFLEdBQUc7VUFDM0I7UUFBQztRQUFBO1VBQUEsT0FBQUYsU0FBQSxDQUFBMUMsSUFBQTtNQUFBO0lBQUEsR0FBQXdDLFFBQUE7RUFBQSxDQUNGO0VBQUEsZ0JBUksvRCxNQUFNQSxDQUFBO0lBQUEsT0FBQThELEtBQUEsQ0FBQXRDLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FRWDtBQUVELElBQU1vQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBR0osS0FBSyxFQUFJO0VBQzNCLElBQUlBLEtBQUssQ0FBQ1csVUFBVSxFQUNsQm5FLE1BQU0sQ0FBQ2lFLFFBQVEsQ0FBQ0MsSUFBSSxHQUFFVixLQUFLLENBQUNXLFVBQVUsQ0FBQyxLQUV2Q0MsT0FBTyxDQUFDQyxHQUFHLGFBQUF6QyxNQUFBLENBQWE0QixLQUFLLENBQUNjLE9BQU8sQ0FBRSxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9zcmMvc2NyaXB0cy9hZG1pbi5jbGllbnQuanM/ZWYyMiJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgdXNlcmxvZ2luO1xyXG5sZXQgdXNlcnBhc3N3b3JkO1xyXG5sZXQgdXNlcm5hbWU7XHJcblxyXG5jb25zdCBkaXNwbGF5TWVzc2FnZSA9IG1zZyA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGVudCcpLnRleHRDb250ZW50ID0gbXNnO1xyXG5jb25zdCByZXNldERlc2MgPSAoKSA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzYycpLnZhbHVlID0gJyc7XHJcblxyXG5jb25zdCBzZXR1cCA9ICgpID0+IHtcclxuICB1c2VybmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VybmFtZScpO1xyXG4gIGdldFVzZXIoKTtcclxuICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3JlYXRlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjcmVhdGVTaG93KTtcclxuXHJcbiAgLy8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdXBkYXRlKTtcclxuICBkaXNwbGF5TGlzdCgpO1xyXG4gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dvdXQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGxvZ291dCk7XHJcbn1cclxud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBzZXR1cCk7XHJcblxyXG4vLyBmZXRjaCBHRVQgYWxsIHNob3dzXHJcbmNvbnN0IGRpc3BsYXlMaXN0ID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDogJ0dFVCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hZG1pbi9pdGVtcycsIHJlcXVlc3RPcHRpb25zKVxyXG4gICAgY29uc3QgYWxsU2hvd3MgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcblxyXG4gICAgLy8oaWNpIDogY29kZSAgZXhwbG9pdGF0aW9uIGRlIGFsbFNob3dzKVxyXG4gICAgY29uc3QgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaXN0Jyk7XHJcbiAgICBsaXN0LnRleHRDb250ZW50ID0gJyc7XHJcbiAgICBhbGxTaG93cy5mb3JFYWNoKCBzaG93ID0+IGFkZFRvTGlzdChzaG93LCBsaXN0KSApO1xyXG4gIH1cclxuXHJcbmNvbnN0IGFkZFRvTGlzdCA9IChzaG93LGxpc3QpID0+IHtcclxuICBjb25zdCBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgbm9kZS5jbGFzc05hbWUgPSAnc2hvdyc7XHJcbiAgbm9kZS50ZXh0Q29udGVudCA9IGAke3Nob3cuZGVzY3JpcHRpb259ICgke3Nob3cucGxhY2VzfSlgO1xyXG4gIGNvbnN0IGRlbGV0ZUJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xyXG4gIGRlbGV0ZUJ1dHRvbi5jbGFzc05hbWUgPSAnZGVsZXRlJztcclxuICBkZWxldGVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBkZWxldGVTaG93KHNob3cuX2lkKSk7XHJcbiAgZGVsZXRlQnV0dG9uLnRleHRDb250ZW50ID0gJ2FubnVsZXInO1xyXG4gIG5vZGUuYXBwZW5kQ2hpbGQoZGVsZXRlQnV0dG9uKTtcclxuICAvL1xyXG4gIGxpc3QuYXBwZW5kQ2hpbGQobm9kZSk7XHJcbn1cclxuXHJcbi8vIGZldGNoIERFTEVURSB0byBkZWxldGUgb25lIHRhc2sgd2l0aCBnaXZlbiB0YXNrIGlkXHJcbmNvbnN0IGRlbGV0ZVNob3cgPVxyXG4gIGFzeW5jIHNob3dJZCA9PiB7XHJcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOidERUxFVEUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAvYWRtaW4vJHtzaG93SWR9YCwgcmVxdWVzdE9wdGlvbnMpO1xyXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XHJcbiAgICAgIGRpc3BsYXlNZXNzYWdlKCdzdXBwcmVzc2lvbiBlZmZlY3R1w6llJyk7XHJcbiAgICAgIGRpc3BsYXlMaXN0KCk7XHJcbiAgICAgIGF3YWl0IGZldGNoKGAvJHtzaG93SWR9YCwgcmVxdWVzdE9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGRpc3BsYXlNZXNzYWdlKCdwcm9ibMOobWUgc3VwcHJlc3Npb24nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4vLyBmZXRjaCBQT1NUIHRvIGNyZWF0ZSBvbmUgdGFza1xyXG5jb25zdCBjcmVhdGVTaG93ID1cclxuICBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdTaG93RGF0YSA9IHtcclxuICAgICAgICAgIGRlc2NyaXB0aW9uIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc2MnKS52YWx1ZSxcclxuICAgICAgICAgIHBsYWNlcyA6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwbGFjZScpLnZhbHVlLFxyXG4gICAgICAgIH07XHJcbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkobmV3U2hvd0RhdGEpO1xyXG4gICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDogJ1BPU1QnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMgOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA6IGJvZHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hZG1pbi9uZXcvJywgcmVxdWVzdE9wdGlvbnMpO1xyXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XHJcbiAgICAgIGNvbnN0IGNyZWF0ZWRTaG93ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG4gICAgICBkaXNwbGF5TWVzc2FnZShgJHtjcmVhdGVkU2hvdy5kZXNjcmlwdGlvbn0gY3LDqcOpZWApO1xyXG4gICAgICByZXNldERlc2MoKTtcclxuICAgICAgZGlzcGxheUxpc3QoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBlcnJvck1zZyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICAgICAgZGlzcGxheU1lc3NhZ2UoYHByb2Jsw6htZSBjcsOpYXRpb24gJHtlcnJvck1zZ31gKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBcclxuY29uc3QgZ2V0VXNlciA9IGFzeW5jICgpID0+IHtcclxuICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDonR0VUJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL21lJywgcmVxdWVzdE9wdGlvbnMpO1xyXG4gIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICAgIHVzZXJuYW1lLnRleHRDb250ZW50ID0gdXNlci5uYW1lO1xyXG4gIH1cclxuICBlbHNlIHtcclxuICAgIGNvbnN0IGVycm9yID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG4gICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gY29uc3QgdXBkYXRlID0gIGFzeW5jICgpID0+IHtcclxuLy8gICBjb25zdCB1c2VyRGF0YSA9IHsgbmFtZSA6IHVzZXJuYW1lLnZhbHVlIH07XHJcbi8vICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHVzZXJEYXRhKTtcclxuLy8gICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J1BVVCcsXHJcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzIDogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxyXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA6IGJvZHlcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4vLyAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy91c2VyL21lJywgcmVxdWVzdE9wdGlvbnMpO1xyXG4vLyAgIGlmIChyZXNwb25zZS5vaykge1xyXG4vLyAgICAgY29uc3QgdXBkYXRlZFVzZXIgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbi8vICAgICBjb25zb2xlLmxvZyhgdXNlciB1cGRhdGVkIDogJHtKU09OLnN0cmluZ2lmeSh1cGRhdGVkVXNlcil9YCk7XHJcbi8vICAgfVxyXG4vLyAgIGVsc2Uge1xyXG4vLyAgICAgY29uc3QgZXJyb3IgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbi8vICAgICBoYW5kbGVFcnJvcihlcnJvcik7XHJcbi8vICAgfVxyXG4vLyB9XHJcblxyXG5jb25zdCBsb2dvdXQgPSBhc3luYyAoKSA9PiB7XHJcbiAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOidHRVQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL2FjY2Vzcy9sb2dvdXRgLCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgaWYgKHJlc3BvbnNlLm9rKSB7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZj0gJy8nO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgaGFuZGxlRXJyb3IgPSBlcnJvciA9PiB7XHJcbiAgaWYgKGVycm9yLnJlZGlyZWN0VG8pXHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZj0gZXJyb3IucmVkaXJlY3RUbztcclxuICBlbHNlXHJcbiAgICBjb25zb2xlLmxvZyhgZXJyZXVyIDogJHtlcnJvci5tZXNzYWdlfWApO1xyXG59XHJcblxyXG4iXSwibmFtZXMiOlsidXNlcmxvZ2luIiwidXNlcnBhc3N3b3JkIiwidXNlcm5hbWUiLCJkaXNwbGF5TWVzc2FnZSIsIm1zZyIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0ZXh0Q29udGVudCIsInJlc2V0RGVzYyIsInZhbHVlIiwic2V0dXAiLCJnZXRVc2VyIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNyZWF0ZVNob3ciLCJkaXNwbGF5TGlzdCIsImxvZ291dCIsIndpbmRvdyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInJlcXVlc3RPcHRpb25zIiwicmVzcG9uc2UiLCJhbGxTaG93cyIsImxpc3QiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibWV0aG9kIiwiZmV0Y2giLCJzZW50IiwianNvbiIsImZvckVhY2giLCJzaG93IiwiYWRkVG9MaXN0Iiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIiwibm9kZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJjb25jYXQiLCJkZXNjcmlwdGlvbiIsInBsYWNlcyIsImRlbGV0ZUJ1dHRvbiIsImRlbGV0ZVNob3ciLCJfaWQiLCJhcHBlbmRDaGlsZCIsIl9yZWYyIiwiX2NhbGxlZTIiLCJzaG93SWQiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJvayIsIl94IiwiX3JlZjMiLCJfY2FsbGVlMyIsIm5ld1Nob3dEYXRhIiwiYm9keSIsImNyZWF0ZWRTaG93IiwiZXJyb3JNc2ciLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJKU09OIiwic3RyaW5naWZ5IiwiaGVhZGVycyIsIl9yZWY0IiwiX2NhbGxlZTQiLCJ1c2VyIiwiZXJyb3IiLCJfY2FsbGVlNCQiLCJfY29udGV4dDQiLCJuYW1lIiwiaGFuZGxlRXJyb3IiLCJfcmVmNSIsIl9jYWxsZWU1IiwiX2NhbGxlZTUkIiwiX2NvbnRleHQ1IiwibG9jYXRpb24iLCJocmVmIiwicmVkaXJlY3RUbyIsImNvbnNvbGUiLCJsb2ciLCJtZXNzYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/scripts/admin.client.js\n")},"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]);\nfunction _regeneratorRuntime() {\n "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = "function" == typeof Symbol ? Symbol : {},\n a = i.iterator || "@@iterator",\n c = i.asyncIterator || "@@asyncIterator",\n u = i.toStringTag || "@@toStringTag";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, "");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, "_invoke", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: "normal",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: "throw",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = "suspendedStart",\n l = "suspendedYield",\n f = "executing",\n s = "completed",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n ["next", "throw", "return"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if ("throw" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {\n invoke("next", t, i, a);\n }, function (t) {\n invoke("throw", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke("throw", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, "_invoke", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error("Generator is already running");\n if (o === s) {\n if ("throw" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else "return" === n.method && n.abrupt("return", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if ("normal" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a \'" + n + "\' method")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = "normal", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: "root"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || "" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if ("function" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + " is not iterable");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, "constructor", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {\n var e = "function" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {\n return this;\n }), define(g, "toString", function () {\n return "[object Generator]";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if ("throw" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if ("root" === i.tryLoc) return handle("end");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, "catchLoc"),\n u = n.call(i, "finallyLoc");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error("try statement without catch or finally");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if ("throw" === t.type) throw t.arg;\n return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n "catch": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if ("throw" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error("illegal catch attempt");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, "next" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvclJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzR0FBaUM7QUFDL0M7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsaURBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYTtBQUNiLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixlQUFlO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0Esc0NBQXNDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL2FwcC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcz85MDU1Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4vdHlwZW9mLmpzXCIpW1wiZGVmYXVsdFwiXTtcbmZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gIFwidXNlIHN0cmljdFwiOyAvKiEgcmVnZW5lcmF0b3ItcnVudGltZSAtLSBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4gLS0gbGljZW5zZSAoTUlUKTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9MSUNFTlNFICovXG4gIG1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yUnVudGltZSA9IGZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gICAgcmV0dXJuIGU7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cztcbiAgdmFyIHQsXG4gICAgZSA9IHt9LFxuICAgIHIgPSBPYmplY3QucHJvdG90eXBlLFxuICAgIG4gPSByLmhhc093blByb3BlcnR5LFxuICAgIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgfHwgZnVuY3Rpb24gKHQsIGUsIHIpIHtcbiAgICAgIHRbZV0gPSByLnZhbHVlO1xuICAgIH0sXG4gICAgaSA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sID8gU3ltYm9sIDoge30sXG4gICAgYSA9IGkuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCIsXG4gICAgYyA9IGkuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiLFxuICAgIHUgPSBpLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuICBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgZSwge1xuICAgICAgdmFsdWU6IHIsXG4gICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICB3cml0YWJsZTogITBcbiAgICB9KSwgdFtlXTtcbiAgfVxuICB0cnkge1xuICAgIGRlZmluZSh7fSwgXCJcIik7XG4gIH0gY2F0Y2ggKHQpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgICAgcmV0dXJuIHRbZV0gPSByO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gd3JhcCh0LCBlLCByLCBuKSB7XG4gICAgdmFyIGkgPSBlICYmIGUucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gZSA6IEdlbmVyYXRvcixcbiAgICAgIGEgPSBPYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSxcbiAgICAgIGMgPSBuZXcgQ29udGV4dChuIHx8IFtdKTtcbiAgICByZXR1cm4gbyhhLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IG1ha2VJbnZva2VNZXRob2QodCwgciwgYylcbiAgICB9KSwgYTtcbiAgfVxuICBmdW5jdGlvbiB0cnlDYXRjaCh0LCBlLCByKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwibm9ybWFsXCIsXG4gICAgICAgIGFyZzogdC5jYWxsKGUsIHIpXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKHQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwidGhyb3dcIixcbiAgICAgICAgYXJnOiB0XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBlLndyYXAgPSB3cmFwO1xuICB2YXIgaCA9IFwic3VzcGVuZGVkU3RhcnRcIixcbiAgICBsID0gXCJzdXNwZW5kZWRZaWVsZFwiLFxuICAgIGYgPSBcImV4ZWN1dGluZ1wiLFxuICAgIHMgPSBcImNvbXBsZXRlZFwiLFxuICAgIHkgPSB7fTtcbiAgZnVuY3Rpb24gR2VuZXJhdG9yKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb24oKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpIHt9XG4gIHZhciBwID0ge307XG4gIGRlZmluZShwLCBhLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pO1xuICB2YXIgZCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICB2ID0gZCAmJiBkKGQodmFsdWVzKFtdKSkpO1xuICB2ICYmIHYgIT09IHIgJiYgbi5jYWxsKHYsIGEpICYmIChwID0gdik7XG4gIHZhciBnID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID0gR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUocCk7XG4gIGZ1bmN0aW9uIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyh0KSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRlZmluZSh0LCBlLCBmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKGUsIHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gQXN5bmNJdGVyYXRvcih0LCBlKSB7XG4gICAgZnVuY3Rpb24gaW52b2tlKHIsIG8sIGksIGEpIHtcbiAgICAgIHZhciBjID0gdHJ5Q2F0Y2godFtyXSwgdCwgbyk7XG4gICAgICBpZiAoXCJ0aHJvd1wiICE9PSBjLnR5cGUpIHtcbiAgICAgICAgdmFyIHUgPSBjLmFyZyxcbiAgICAgICAgICBoID0gdS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGggJiYgXCJvYmplY3RcIiA9PSBfdHlwZW9mKGgpICYmIG4uY2FsbChoLCBcIl9fYXdhaXRcIikgPyBlLnJlc29sdmUoaC5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB0LCBpLCBhKTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSkgOiBlLnJlc29sdmUoaCkudGhlbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHUudmFsdWUgPSB0LCBpKHUpO1xuICAgICAgICB9LCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHJldHVybiBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBhKGMuYXJnKTtcbiAgICB9XG4gICAgdmFyIHI7XG4gICAgbyh0aGlzLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlKHQsIG4pIHtcbiAgICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBlKGZ1bmN0aW9uIChlLCByKSB7XG4gICAgICAgICAgICBpbnZva2UodCwgbiwgZSwgcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHIgPSByID8gci50aGVuKGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLCBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZykgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoZSwgciwgbikge1xuICAgIHZhciBvID0gaDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGksIGEpIHtcbiAgICAgIGlmIChvID09PSBmKSB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgaWYgKG8gPT09IHMpIHtcbiAgICAgICAgaWYgKFwidGhyb3dcIiA9PT0gaSkgdGhyb3cgYTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdCxcbiAgICAgICAgICBkb25lOiAhMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZm9yIChuLm1ldGhvZCA9IGksIG4uYXJnID0gYTs7KSB7XG4gICAgICAgIHZhciBjID0gbi5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICB2YXIgdSA9IG1heWJlSW52b2tlRGVsZWdhdGUoYywgbik7XG4gICAgICAgICAgaWYgKHUpIHtcbiAgICAgICAgICAgIGlmICh1ID09PSB5KSBjb250aW51ZTtcbiAgICAgICAgICAgIHJldHVybiB1O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJuZXh0XCIgPT09IG4ubWV0aG9kKSBuLnNlbnQgPSBuLl9zZW50ID0gbi5hcmc7ZWxzZSBpZiAoXCJ0aHJvd1wiID09PSBuLm1ldGhvZCkge1xuICAgICAgICAgIGlmIChvID09PSBoKSB0aHJvdyBvID0gcywgbi5hcmc7XG4gICAgICAgICAgbi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyk7XG4gICAgICAgIH0gZWxzZSBcInJldHVyblwiID09PSBuLm1ldGhvZCAmJiBuLmFicnVwdChcInJldHVyblwiLCBuLmFyZyk7XG4gICAgICAgIG8gPSBmO1xuICAgICAgICB2YXIgcCA9IHRyeUNhdGNoKGUsIHIsIG4pO1xuICAgICAgICBpZiAoXCJub3JtYWxcIiA9PT0gcC50eXBlKSB7XG4gICAgICAgICAgaWYgKG8gPSBuLmRvbmUgPyBzIDogbCwgcC5hcmcgPT09IHkpIGNvbnRpbnVlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcC5hcmcsXG4gICAgICAgICAgICBkb25lOiBuLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIFwidGhyb3dcIiA9PT0gcC50eXBlICYmIChvID0gcywgbi5tZXRob2QgPSBcInRocm93XCIsIG4uYXJnID0gcC5hcmcpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSB7XG4gICAgdmFyIG4gPSByLm1ldGhvZCxcbiAgICAgIG8gPSBlLml0ZXJhdG9yW25dO1xuICAgIGlmIChvID09PSB0KSByZXR1cm4gci5kZWxlZ2F0ZSA9IG51bGwsIFwidGhyb3dcIiA9PT0gbiAmJiBlLml0ZXJhdG9yW1wicmV0dXJuXCJdICYmIChyLm1ldGhvZCA9IFwicmV0dXJuXCIsIHIuYXJnID0gdCwgbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSwgXCJ0aHJvd1wiID09PSByLm1ldGhvZCkgfHwgXCJyZXR1cm5cIiAhPT0gbiAmJiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ1wiICsgbiArIFwiJyBtZXRob2RcIikpLCB5O1xuICAgIHZhciBpID0gdHJ5Q2F0Y2gobywgZS5pdGVyYXRvciwgci5hcmcpO1xuICAgIGlmIChcInRocm93XCIgPT09IGkudHlwZSkgcmV0dXJuIHIubWV0aG9kID0gXCJ0aHJvd1wiLCByLmFyZyA9IGkuYXJnLCByLmRlbGVnYXRlID0gbnVsbCwgeTtcbiAgICB2YXIgYSA9IGkuYXJnO1xuICAgIHJldHVybiBhID8gYS5kb25lID8gKHJbZS5yZXN1bHROYW1lXSA9IGEudmFsdWUsIHIubmV4dCA9IGUubmV4dExvYywgXCJyZXR1cm5cIiAhPT0gci5tZXRob2QgJiYgKHIubWV0aG9kID0gXCJuZXh0XCIsIHIuYXJnID0gdCksIHIuZGVsZWdhdGUgPSBudWxsLCB5KSA6IGEgOiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLCByLmRlbGVnYXRlID0gbnVsbCwgeSk7XG4gIH1cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHtcbiAgICAgIHRyeUxvYzogdFswXVxuICAgIH07XG4gICAgMSBpbiB0ICYmIChlLmNhdGNoTG9jID0gdFsxXSksIDIgaW4gdCAmJiAoZS5maW5hbGx5TG9jID0gdFsyXSwgZS5hZnRlckxvYyA9IHRbM10pLCB0aGlzLnRyeUVudHJpZXMucHVzaChlKTtcbiAgfVxuICBmdW5jdGlvbiByZXNldFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHQuY29tcGxldGlvbiB8fCB7fTtcbiAgICBlLnR5cGUgPSBcIm5vcm1hbFwiLCBkZWxldGUgZS5hcmcsIHQuY29tcGxldGlvbiA9IGU7XG4gIH1cbiAgZnVuY3Rpb24gQ29udGV4dCh0KSB7XG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3tcbiAgICAgIHRyeUxvYzogXCJyb290XCJcbiAgICB9XSwgdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyksIHRoaXMucmVzZXQoITApO1xuICB9XG4gIGZ1bmN0aW9uIHZhbHVlcyhlKSB7XG4gICAgaWYgKGUgfHwgXCJcIiA9PT0gZSkge1xuICAgICAgdmFyIHIgPSBlW2FdO1xuICAgICAgaWYgKHIpIHJldHVybiByLmNhbGwoZSk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLm5leHQpIHJldHVybiBlO1xuICAgICAgaWYgKCFpc05hTihlLmxlbmd0aCkpIHtcbiAgICAgICAgdmFyIG8gPSAtMSxcbiAgICAgICAgICBpID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIGZvciAoOyArK28gPCBlLmxlbmd0aDspIGlmIChuLmNhbGwoZSwgbykpIHJldHVybiBuZXh0LnZhbHVlID0gZVtvXSwgbmV4dC5kb25lID0gITEsIG5leHQ7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC52YWx1ZSA9IHQsIG5leHQuZG9uZSA9ICEwLCBuZXh0O1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBpLm5leHQgPSBpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyBcIiBpcyBub3QgaXRlcmFibGVcIik7XG4gIH1cbiAgcmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBvKGcsIFwiY29uc3RydWN0b3JcIiwge1xuICAgIHZhbHVlOiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICBjb25maWd1cmFibGU6ICEwXG4gIH0pLCBvKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBcImNvbnN0cnVjdG9yXCIsIHtcbiAgICB2YWx1ZTogR2VuZXJhdG9yRnVuY3Rpb24sXG4gICAgY29uZmlndXJhYmxlOiAhMFxuICB9KSwgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBkZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIHUsIFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksIGUuaXNHZW5lcmF0b3JGdW5jdGlvbiA9IGZ1bmN0aW9uICh0KSB7XG4gICAgdmFyIGUgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHQgJiYgdC5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gISFlICYmIChlID09PSBHZW5lcmF0b3JGdW5jdGlvbiB8fCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIgPT09IChlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSkpO1xuICB9LCBlLm1hcmsgPSBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YodCwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpIDogKHQuX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIGRlZmluZSh0LCB1LCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSwgdC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKGcpLCB0O1xuICB9LCBlLmF3cmFwID0gZnVuY3Rpb24gKHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hd2FpdDogdFxuICAgIH07XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksIGRlZmluZShBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSwgYywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZS5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvciwgZS5hc3luYyA9IGZ1bmN0aW9uICh0LCByLCBuLCBvLCBpKSB7XG4gICAgdm9pZCAwID09PSBpICYmIChpID0gUHJvbWlzZSk7XG4gICAgdmFyIGEgPSBuZXcgQXN5bmNJdGVyYXRvcih3cmFwKHQsIHIsIG4sIG8pLCBpKTtcbiAgICByZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpID8gYSA6IGEubmV4dCgpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgIHJldHVybiB0LmRvbmUgPyB0LnZhbHVlIDogYS5uZXh0KCk7XG4gICAgfSk7XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSwgZGVmaW5lKGcsIHUsIFwiR2VuZXJhdG9yXCIpLCBkZWZpbmUoZywgYSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZGVmaW5lKGcsIFwidG9TdHJpbmdcIiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBcIltvYmplY3QgR2VuZXJhdG9yXVwiO1xuICB9KSwgZS5rZXlzID0gZnVuY3Rpb24gKHQpIHtcbiAgICB2YXIgZSA9IE9iamVjdCh0KSxcbiAgICAgIHIgPSBbXTtcbiAgICBmb3IgKHZhciBuIGluIGUpIHIucHVzaChuKTtcbiAgICByZXR1cm4gci5yZXZlcnNlKCksIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICBmb3IgKDsgci5sZW5ndGg7KSB7XG4gICAgICAgIHZhciB0ID0gci5wb3AoKTtcbiAgICAgICAgaWYgKHQgaW4gZSkgcmV0dXJuIG5leHQudmFsdWUgPSB0LCBuZXh0LmRvbmUgPSAhMSwgbmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0LmRvbmUgPSAhMCwgbmV4dDtcbiAgICB9O1xuICB9LCBlLnZhbHVlcyA9IHZhbHVlcywgQ29udGV4dC5wcm90b3R5cGUgPSB7XG4gICAgY29uc3RydWN0b3I6IENvbnRleHQsXG4gICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KGUpIHtcbiAgICAgIGlmICh0aGlzLnByZXYgPSAwLCB0aGlzLm5leHQgPSAwLCB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdCwgdGhpcy5kb25lID0gITEsIHRoaXMuZGVsZWdhdGUgPSBudWxsLCB0aGlzLm1ldGhvZCA9IFwibmV4dFwiLCB0aGlzLmFyZyA9IHQsIHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKHJlc2V0VHJ5RW50cnkpLCAhZSkgZm9yICh2YXIgciBpbiB0aGlzKSBcInRcIiA9PT0gci5jaGFyQXQoMCkgJiYgbi5jYWxsKHRoaXMsIHIpICYmICFpc05hTigrci5zbGljZSgxKSkgJiYgKHRoaXNbcl0gPSB0KTtcbiAgICB9LFxuICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICB0aGlzLmRvbmUgPSAhMDtcbiAgICAgIHZhciB0ID0gdGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247XG4gICAgICBpZiAoXCJ0aHJvd1wiID09PSB0LnR5cGUpIHRocm93IHQuYXJnO1xuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuICAgIGRpc3BhdGNoRXhjZXB0aW9uOiBmdW5jdGlvbiBkaXNwYXRjaEV4Y2VwdGlvbihlKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB0aHJvdyBlO1xuICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKG4sIG8pIHtcbiAgICAgICAgcmV0dXJuIGEudHlwZSA9IFwidGhyb3dcIiwgYS5hcmcgPSBlLCByLm5leHQgPSBuLCBvICYmIChyLm1ldGhvZCA9IFwibmV4dFwiLCByLmFyZyA9IHQpLCAhIW87XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBvID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IG8gPj0gMDsgLS1vKSB7XG4gICAgICAgIHZhciBpID0gdGhpcy50cnlFbnRyaWVzW29dLFxuICAgICAgICAgIGEgPSBpLmNvbXBsZXRpb247XG4gICAgICAgIGlmIChcInJvb3RcIiA9PT0gaS50cnlMb2MpIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIGlmIChpLnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgYyA9IG4uY2FsbChpLCBcImNhdGNoTG9jXCIpLFxuICAgICAgICAgICAgdSA9IG4uY2FsbChpLCBcImZpbmFsbHlMb2NcIik7XG4gICAgICAgICAgaWYgKGMgJiYgdSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYykge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXUpIHRocm93IG5ldyBFcnJvcihcInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5XCIpO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWJydXB0OiBmdW5jdGlvbiBhYnJ1cHQodCwgZSkge1xuICAgICAgZm9yICh2YXIgciA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyByID49IDA7IC0tcikge1xuICAgICAgICB2YXIgbyA9IHRoaXMudHJ5RW50cmllc1tyXTtcbiAgICAgICAgaWYgKG8udHJ5TG9jIDw9IHRoaXMucHJldiAmJiBuLmNhbGwobywgXCJmaW5hbGx5TG9jXCIpICYmIHRoaXMucHJldiA8IG8uZmluYWxseUxvYykge1xuICAgICAgICAgIHZhciBpID0gbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSAmJiAoXCJicmVha1wiID09PSB0IHx8IFwiY29udGludWVcIiA9PT0gdCkgJiYgaS50cnlMb2MgPD0gZSAmJiBlIDw9IGkuZmluYWxseUxvYyAmJiAoaSA9IG51bGwpO1xuICAgICAgdmFyIGEgPSBpID8gaS5jb21wbGV0aW9uIDoge307XG4gICAgICByZXR1cm4gYS50eXBlID0gdCwgYS5hcmcgPSBlLCBpID8gKHRoaXMubWV0aG9kID0gXCJuZXh0XCIsIHRoaXMubmV4dCA9IGkuZmluYWxseUxvYywgeSkgOiB0aGlzLmNvbXBsZXRlKGEpO1xuICAgIH0sXG4gICAgY29tcGxldGU6IGZ1bmN0aW9uIGNvbXBsZXRlKHQsIGUpIHtcbiAgICAgIGlmIChcInRocm93XCIgPT09IHQudHlwZSkgdGhyb3cgdC5hcmc7XG4gICAgICByZXR1cm4gXCJicmVha1wiID09PSB0LnR5cGUgfHwgXCJjb250aW51ZVwiID09PSB0LnR5cGUgPyB0aGlzLm5leHQgPSB0LmFyZyA6IFwicmV0dXJuXCIgPT09IHQudHlwZSA/ICh0aGlzLnJ2YWwgPSB0aGlzLmFyZyA9IHQuYXJnLCB0aGlzLm1ldGhvZCA9IFwicmV0dXJuXCIsIHRoaXMubmV4dCA9IFwiZW5kXCIpIDogXCJub3JtYWxcIiA9PT0gdC50eXBlICYmIGUgJiYgKHRoaXMubmV4dCA9IGUpLCB5O1xuICAgIH0sXG4gICAgZmluaXNoOiBmdW5jdGlvbiBmaW5pc2godCkge1xuICAgICAgZm9yICh2YXIgZSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBlID49IDA7IC0tZSkge1xuICAgICAgICB2YXIgciA9IHRoaXMudHJ5RW50cmllc1tlXTtcbiAgICAgICAgaWYgKHIuZmluYWxseUxvYyA9PT0gdCkgcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLCByLmFmdGVyTG9jKSwgcmVzZXRUcnlFbnRyeShyKSwgeTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiY2F0Y2hcIjogZnVuY3Rpb24gX2NhdGNoKHQpIHtcbiAgICAgIGZvciAodmFyIGUgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgZSA+PSAwOyAtLWUpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLnRyeUVudHJpZXNbZV07XG4gICAgICAgIGlmIChyLnRyeUxvYyA9PT0gdCkge1xuICAgICAgICAgIHZhciBuID0gci5jb21wbGV0aW9uO1xuICAgICAgICAgIGlmIChcInRocm93XCIgPT09IG4udHlwZSkge1xuICAgICAgICAgICAgdmFyIG8gPSBuLmFyZztcbiAgICAgICAgICAgIHJlc2V0VHJ5RW50cnkocik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIik7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbiBkZWxlZ2F0ZVlpZWxkKGUsIHIsIG4pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlbGVnYXRlID0ge1xuICAgICAgICBpdGVyYXRvcjogdmFsdWVzKGUpLFxuICAgICAgICByZXN1bHROYW1lOiByLFxuICAgICAgICBuZXh0TG9jOiBuXG4gICAgICB9LCBcIm5leHRcIiA9PT0gdGhpcy5tZXRob2QgJiYgKHRoaXMuYXJnID0gdCksIHk7XG4gICAgfVxuICB9LCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcmVnZW5lcmF0b3JSdW50aW1lLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\n')},"./node_modules/@babel/runtime/helpers/typeof.js":module=>{eval('function _typeof(o) {\n "@babel/helpers - typeof";\n\n return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLDBCQUEwQix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanM/MjY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfdHlwZW9mKG8pIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG87XG4gIH0gOiBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMpLCBfdHlwZW9mKG8pO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n')},"./node_modules/@babel/runtime/regenerator/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === "object") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function("r", "regeneratorRuntime = r")(runtime);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsY0FBYyxtQkFBTyxDQUFDLGtHQUErQjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanM/MGRlZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPKEJhYmVsIDgpOiBSZW1vdmUgdGhpcyBmaWxlLlxuXG52YXIgcnVudGltZSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZVwiKSgpO1xubW9kdWxlLmV4cG9ydHMgPSBydW50aW1lO1xuXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL3BhY2thZ2VzL3J1bnRpbWUvcnVudGltZS5qcyNMNzM2PVxudHJ5IHtcbiAgcmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbn0gY2F0Y2ggKGFjY2lkZW50YWxTdHJpY3RNb2RlKSB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gXCJvYmplY3RcIikge1xuICAgIGdsb2JhbFRoaXMucmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbiAgfSBlbHNlIHtcbiAgICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n')},"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);\n }\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/YzE0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n')}},__webpack_module_cache__={};function __webpack_require__(n){var e=__webpack_module_cache__[n];if(void 0!==e)return e.exports;var B=__webpack_module_cache__[n]={exports:{}};return __webpack_modules__[n](B,B.exports,__webpack_require__),B.exports}__webpack_require__.n=n=>{var e=n&&n.__esModule?()=>n.default:()=>n;return __webpack_require__.d(e,{a:e}),e},__webpack_require__.d=(n,e)=>{for(var B in e)__webpack_require__.o(e,B)&&!__webpack_require__.o(n,B)&&Object.defineProperty(n,B,{enumerable:!0,get:e[B]})},__webpack_require__.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),__webpack_require__.r=n=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/scripts/admin.client.js")})(); \ No newline at end of file +(()=>{var __webpack_modules__={"./src/scripts/admin.client.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar userlogin;\nvar userpassword;\nvar username;\nvar displayMessage = function displayMessage(msg) {\n return document.getElementById('content').textContent = msg;\n};\nvar resetDesc = function resetDesc() {\n return document.getElementById('desc').value = '';\n};\nvar setup = function setup() {\n username = document.getElementById('username');\n getUser();\n document.getElementById('create').addEventListener('click', createShow);\n displayList();\n document.getElementById('logout').addEventListener('click', logout);\n};\nwindow.addEventListener('DOMContentLoaded', setup);\n\n// fetch GET all shows\nvar displayList = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee() {\n var requestOptions, response, allShows, list;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n requestOptions = {\n method: 'GET'\n };\n _context.next = 3;\n return fetch('/admin/items', requestOptions);\n case 3:\n response = _context.sent;\n _context.next = 6;\n return response.json();\n case 6:\n allShows = _context.sent;\n //(ici : code exploitation de allShows)\n list = document.getElementById('list');\n list.textContent = '';\n allShows.forEach(function (show) {\n return addToList(show, list);\n });\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function displayList() {\n return _ref.apply(this, arguments);\n };\n}();\nvar addToList = function addToList(show, list) {\n var node = document.createElement('div');\n node.className = 'show';\n node.textContent = \"\".concat(show.description, \" (\").concat(show.places, \")\");\n var deleteButton = document.createElement('button');\n deleteButton.className = 'delete';\n deleteButton.addEventListener('click', function () {\n return deleteShow(show._id);\n });\n deleteButton.textContent = 'annuler';\n node.appendChild(deleteButton);\n //\n list.appendChild(node);\n};\n\n// fetch DELETE to delete one task with given task id\nvar deleteShow = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2(showId) {\n var requestOptions, response;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n requestOptions = {\n method: 'DELETE'\n };\n _context2.next = 3;\n return fetch(\"/admin/\".concat(showId), requestOptions);\n case 3:\n response = _context2.sent;\n if (!response.ok) {\n _context2.next = 11;\n break;\n }\n displayMessage('suppression effectuée');\n displayList();\n _context2.next = 9;\n return fetch(\"/\".concat(showId), requestOptions);\n case 9:\n _context2.next = 12;\n break;\n case 11:\n displayMessage('problème suppression');\n case 12:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function deleteShow(_x) {\n return _ref2.apply(this, arguments);\n };\n}();\n\n// fetch POST to create one task\nvar createShow = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee3() {\n var newShowData, body, requestOptions, response, createdShow, errorMsg;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n newShowData = {\n description: document.getElementById('desc').value,\n places: document.getElementById('place').value\n };\n body = JSON.stringify(newShowData);\n requestOptions = {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: body\n };\n _context3.next = 5;\n return fetch('/admin/items', requestOptions);\n case 5:\n response = _context3.sent;\n if (!response.ok) {\n _context3.next = 15;\n break;\n }\n _context3.next = 9;\n return response.json();\n case 9:\n createdShow = _context3.sent;\n displayMessage(\"\".concat(createdShow.description, \" cr\\xE9\\xE9e\"));\n resetDesc();\n displayList();\n _context3.next = 19;\n break;\n case 15:\n _context3.next = 17;\n return response.json();\n case 17:\n errorMsg = _context3.sent;\n displayMessage(\"probl\\xE8me cr\\xE9ation \".concat(errorMsg));\n case 19:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function createShow() {\n return _ref3.apply(this, arguments);\n };\n}();\nvar getUser = /*#__PURE__*/function () {\n var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee4() {\n var requestOptions, response, user, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n requestOptions = {\n method: 'GET'\n };\n _context4.next = 3;\n return fetch('/me', requestOptions);\n case 3:\n response = _context4.sent;\n if (!response.ok) {\n _context4.next = 11;\n break;\n }\n _context4.next = 7;\n return response.json();\n case 7:\n user = _context4.sent;\n username.textContent = user.name;\n _context4.next = 15;\n break;\n case 11:\n _context4.next = 13;\n return response.json();\n case 13:\n error = _context4.sent;\n handleError(error);\n case 15:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function getUser() {\n return _ref4.apply(this, arguments);\n };\n}();\nvar logout = /*#__PURE__*/function () {\n var _ref5 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee5() {\n var requestOptions, response;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n requestOptions = {\n method: 'GET'\n };\n _context5.next = 3;\n return fetch(\"/access/logout\", requestOptions);\n case 3:\n response = _context5.sent;\n if (response.ok) {\n window.location.href = '/';\n }\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function logout() {\n return _ref5.apply(this, arguments);\n };\n}();\nvar handleError = function handleError(error) {\n if (error.redirectTo) window.location.href = error.redirectTo;else console.log(\"erreur : \".concat(error.message));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O1VBQzNCO1FBQUM7UUFBQTtVQUFBLE9BQUFGLFNBQUEsQ0FBQTFDLElBQUE7TUFBQTtJQUFBLEdBQUF3QyxRQUFBO0VBQUEsQ0FDRjtFQUFBLGdCQVJLL0QsTUFBTUEsQ0FBQTtJQUFBLE9BQUE4RCxLQUFBLENBQUF0QyxLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBUVg7QUFFRCxJQUFNb0MsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUdKLEtBQUssRUFBSTtFQUMzQixJQUFJQSxLQUFLLENBQUNXLFVBQVUsRUFDbEJuRSxNQUFNLENBQUNpRSxRQUFRLENBQUNDLElBQUksR0FBRVYsS0FBSyxDQUFDVyxVQUFVLENBQUMsS0FFdkNDLE9BQU8sQ0FBQ0MsR0FBRyxhQUFBekMsTUFBQSxDQUFhNEIsS0FBSyxDQUFDYyxPQUFPLENBQUUsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vc3JjL3NjcmlwdHMvYWRtaW4uY2xpZW50LmpzP2VmMjIiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IHVzZXJsb2dpbjtcclxubGV0IHVzZXJwYXNzd29yZDtcclxubGV0IHVzZXJuYW1lO1xyXG5cclxuY29uc3QgZGlzcGxheU1lc3NhZ2UgPSBtc2cgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRlbnQnKS50ZXh0Q29udGVudCA9IG1zZztcclxuY29uc3QgcmVzZXREZXNjID0gKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc2MnKS52YWx1ZSA9ICcnO1xyXG5cclxuY29uc3Qgc2V0dXAgPSAoKSA9PiB7XHJcbiAgdXNlcm5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTtcclxuICBnZXRVc2VyKCk7XHJcbiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NyZWF0ZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY3JlYXRlU2hvdyk7XHJcbiAgZGlzcGxheUxpc3QoKTtcclxuICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nb3V0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBsb2dvdXQpO1xyXG59XHJcblxyXG53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIHNldHVwKTtcclxuXHJcbi8vIGZldGNoIEdFVCBhbGwgc2hvd3NcclxuY29uc3QgZGlzcGxheUxpc3QgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOiAnR0VUJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FkbWluL2l0ZW1zJywgcmVxdWVzdE9wdGlvbnMpXHJcbiAgICBjb25zdCBhbGxTaG93cyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuXHJcbiAgICAvLyhpY2kgOiBjb2RlICBleHBsb2l0YXRpb24gZGUgYWxsU2hvd3MpXHJcbiAgICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpc3QnKTtcclxuICAgIGxpc3QudGV4dENvbnRlbnQgPSAnJztcclxuICAgIGFsbFNob3dzLmZvckVhY2goIHNob3cgPT4gYWRkVG9MaXN0KHNob3csIGxpc3QpICk7XHJcbiAgfVxyXG5cclxuY29uc3QgYWRkVG9MaXN0ID0gKHNob3csbGlzdCkgPT4ge1xyXG4gIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICBub2RlLmNsYXNzTmFtZSA9ICdzaG93JztcclxuICBub2RlLnRleHRDb250ZW50ID0gYCR7c2hvdy5kZXNjcmlwdGlvbn0gKCR7c2hvdy5wbGFjZXN9KWA7XHJcbiAgY29uc3QgZGVsZXRlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XHJcbiAgZGVsZXRlQnV0dG9uLmNsYXNzTmFtZSA9ICdkZWxldGUnO1xyXG4gIGRlbGV0ZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IGRlbGV0ZVNob3coc2hvdy5faWQpKTtcclxuICBkZWxldGVCdXR0b24udGV4dENvbnRlbnQgPSAnYW5udWxlcic7XHJcbiAgbm9kZS5hcHBlbmRDaGlsZChkZWxldGVCdXR0b24pO1xyXG4gIC8vXHJcbiAgbGlzdC5hcHBlbmRDaGlsZChub2RlKTtcclxufVxyXG5cclxuLy8gZmV0Y2ggREVMRVRFIHRvIGRlbGV0ZSBvbmUgdGFzayB3aXRoIGdpdmVuIHRhc2sgaWRcclxuY29uc3QgZGVsZXRlU2hvdyA9XHJcbiAgYXN5bmMgc2hvd0lkID0+IHtcclxuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J0RFTEVURSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hZG1pbi8ke3Nob3dJZH1gLCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcclxuICAgICAgZGlzcGxheU1lc3NhZ2UoJ3N1cHByZXNzaW9uIGVmZmVjdHXDqWUnKTtcclxuICAgICAgZGlzcGxheUxpc3QoKTtcclxuICAgICAgYXdhaXQgZmV0Y2goYC8ke3Nob3dJZH1gLCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgZGlzcGxheU1lc3NhZ2UoJ3Byb2Jsw6htZSBzdXBwcmVzc2lvbicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8vIGZldGNoIFBPU1QgdG8gY3JlYXRlIG9uZSB0YXNrXHJcbmNvbnN0IGNyZWF0ZVNob3cgPVxyXG4gIGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1Nob3dEYXRhID0ge1xyXG4gICAgICAgICAgZGVzY3JpcHRpb24gOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzYycpLnZhbHVlLFxyXG4gICAgICAgICAgcGxhY2VzIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsYWNlJykudmFsdWUsXHJcbiAgICAgICAgfTtcclxuICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShuZXdTaG93RGF0YSk7XHJcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOiAnUE9TVCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycyA6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5IDogYm9keVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FkbWluL2l0ZW1zJywgcmVxdWVzdE9wdGlvbnMpO1xyXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XHJcbiAgICAgIGNvbnN0IGNyZWF0ZWRTaG93ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG4gICAgICBkaXNwbGF5TWVzc2FnZShgJHtjcmVhdGVkU2hvdy5kZXNjcmlwdGlvbn0gY3LDqcOpZWApO1xyXG4gICAgICByZXNldERlc2MoKTtcclxuICAgICAgZGlzcGxheUxpc3QoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBlcnJvck1zZyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICAgICAgZGlzcGxheU1lc3NhZ2UoYHByb2Jsw6htZSBjcsOpYXRpb24gJHtlcnJvck1zZ31gKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBcclxuY29uc3QgZ2V0VXNlciA9IGFzeW5jICgpID0+IHtcclxuICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDonR0VUJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL21lJywgcmVxdWVzdE9wdGlvbnMpO1xyXG4gIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICAgIHVzZXJuYW1lLnRleHRDb250ZW50ID0gdXNlci5uYW1lO1xyXG4gIH1cclxuICBlbHNlIHtcclxuICAgIGNvbnN0IGVycm9yID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG4gICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgbG9nb3V0ID0gYXN5bmMgKCkgPT4ge1xyXG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDonR0VUJyxcclxuICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hY2Nlc3MvbG9nb3V0YCwgcmVxdWVzdE9wdGlvbnMpO1xyXG4gIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWY9ICcvJztcclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IGhhbmRsZUVycm9yID0gZXJyb3IgPT4ge1xyXG4gIGlmIChlcnJvci5yZWRpcmVjdFRvKVxyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWY9IGVycm9yLnJlZGlyZWN0VG87XHJcbiAgZWxzZVxyXG4gICAgY29uc29sZS5sb2coYGVycmV1ciA6ICR7ZXJyb3IubWVzc2FnZX1gKTtcclxufVxyXG5cclxuIl0sIm5hbWVzIjpbInVzZXJsb2dpbiIsInVzZXJwYXNzd29yZCIsInVzZXJuYW1lIiwiZGlzcGxheU1lc3NhZ2UiLCJtc2ciLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwidGV4dENvbnRlbnQiLCJyZXNldERlc2MiLCJ2YWx1ZSIsInNldHVwIiwiZ2V0VXNlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJjcmVhdGVTaG93IiwiZGlzcGxheUxpc3QiLCJsb2dvdXQiLCJ3aW5kb3ciLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJyZXF1ZXN0T3B0aW9ucyIsInJlc3BvbnNlIiwiYWxsU2hvd3MiLCJsaXN0Iiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIm1ldGhvZCIsImZldGNoIiwic2VudCIsImpzb24iLCJmb3JFYWNoIiwic2hvdyIsImFkZFRvTGlzdCIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyIsIm5vZGUiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiY29uY2F0IiwiZGVzY3JpcHRpb24iLCJwbGFjZXMiLCJkZWxldGVCdXR0b24iLCJkZWxldGVTaG93IiwiX2lkIiwiYXBwZW5kQ2hpbGQiLCJfcmVmMiIsIl9jYWxsZWUyIiwic2hvd0lkIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwib2siLCJfeCIsIl9yZWYzIiwiX2NhbGxlZTMiLCJuZXdTaG93RGF0YSIsImJvZHkiLCJjcmVhdGVkU2hvdyIsImVycm9yTXNnIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwiSlNPTiIsInN0cmluZ2lmeSIsImhlYWRlcnMiLCJfcmVmNCIsIl9jYWxsZWU0IiwidXNlciIsImVycm9yIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwibmFtZSIsImhhbmRsZUVycm9yIiwiX3JlZjUiLCJfY2FsbGVlNSIsIl9jYWxsZWU1JCIsIl9jb250ZXh0NSIsImxvY2F0aW9uIiwiaHJlZiIsInJlZGlyZWN0VG8iLCJjb25zb2xlIiwibG9nIiwibWVzc2FnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/scripts/admin.client.js\n")},"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]);\nfunction _regeneratorRuntime() {\n "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = "function" == typeof Symbol ? Symbol : {},\n a = i.iterator || "@@iterator",\n c = i.asyncIterator || "@@asyncIterator",\n u = i.toStringTag || "@@toStringTag";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, "");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, "_invoke", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: "normal",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: "throw",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = "suspendedStart",\n l = "suspendedYield",\n f = "executing",\n s = "completed",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n ["next", "throw", "return"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if ("throw" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {\n invoke("next", t, i, a);\n }, function (t) {\n invoke("throw", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke("throw", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, "_invoke", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error("Generator is already running");\n if (o === s) {\n if ("throw" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else "return" === n.method && n.abrupt("return", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if ("normal" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a \'" + n + "\' method")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = "normal", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: "root"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || "" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if ("function" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + " is not iterable");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, "constructor", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {\n var e = "function" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {\n return this;\n }), define(g, "toString", function () {\n return "[object Generator]";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if ("throw" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if ("root" === i.tryLoc) return handle("end");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, "catchLoc"),\n u = n.call(i, "finallyLoc");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error("try statement without catch or finally");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if ("throw" === t.type) throw t.arg;\n return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n "catch": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if ("throw" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error("illegal catch attempt");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, "next" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvclJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzR0FBaUM7QUFDL0M7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsaURBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYTtBQUNiLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixlQUFlO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0Esc0NBQXNDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL2FwcC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcz85MDU1Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4vdHlwZW9mLmpzXCIpW1wiZGVmYXVsdFwiXTtcbmZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gIFwidXNlIHN0cmljdFwiOyAvKiEgcmVnZW5lcmF0b3ItcnVudGltZSAtLSBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4gLS0gbGljZW5zZSAoTUlUKTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9MSUNFTlNFICovXG4gIG1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yUnVudGltZSA9IGZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gICAgcmV0dXJuIGU7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cztcbiAgdmFyIHQsXG4gICAgZSA9IHt9LFxuICAgIHIgPSBPYmplY3QucHJvdG90eXBlLFxuICAgIG4gPSByLmhhc093blByb3BlcnR5LFxuICAgIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgfHwgZnVuY3Rpb24gKHQsIGUsIHIpIHtcbiAgICAgIHRbZV0gPSByLnZhbHVlO1xuICAgIH0sXG4gICAgaSA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sID8gU3ltYm9sIDoge30sXG4gICAgYSA9IGkuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCIsXG4gICAgYyA9IGkuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiLFxuICAgIHUgPSBpLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuICBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgZSwge1xuICAgICAgdmFsdWU6IHIsXG4gICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICB3cml0YWJsZTogITBcbiAgICB9KSwgdFtlXTtcbiAgfVxuICB0cnkge1xuICAgIGRlZmluZSh7fSwgXCJcIik7XG4gIH0gY2F0Y2ggKHQpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgICAgcmV0dXJuIHRbZV0gPSByO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gd3JhcCh0LCBlLCByLCBuKSB7XG4gICAgdmFyIGkgPSBlICYmIGUucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gZSA6IEdlbmVyYXRvcixcbiAgICAgIGEgPSBPYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSxcbiAgICAgIGMgPSBuZXcgQ29udGV4dChuIHx8IFtdKTtcbiAgICByZXR1cm4gbyhhLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IG1ha2VJbnZva2VNZXRob2QodCwgciwgYylcbiAgICB9KSwgYTtcbiAgfVxuICBmdW5jdGlvbiB0cnlDYXRjaCh0LCBlLCByKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwibm9ybWFsXCIsXG4gICAgICAgIGFyZzogdC5jYWxsKGUsIHIpXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKHQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwidGhyb3dcIixcbiAgICAgICAgYXJnOiB0XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBlLndyYXAgPSB3cmFwO1xuICB2YXIgaCA9IFwic3VzcGVuZGVkU3RhcnRcIixcbiAgICBsID0gXCJzdXNwZW5kZWRZaWVsZFwiLFxuICAgIGYgPSBcImV4ZWN1dGluZ1wiLFxuICAgIHMgPSBcImNvbXBsZXRlZFwiLFxuICAgIHkgPSB7fTtcbiAgZnVuY3Rpb24gR2VuZXJhdG9yKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb24oKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpIHt9XG4gIHZhciBwID0ge307XG4gIGRlZmluZShwLCBhLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pO1xuICB2YXIgZCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICB2ID0gZCAmJiBkKGQodmFsdWVzKFtdKSkpO1xuICB2ICYmIHYgIT09IHIgJiYgbi5jYWxsKHYsIGEpICYmIChwID0gdik7XG4gIHZhciBnID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID0gR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUocCk7XG4gIGZ1bmN0aW9uIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyh0KSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRlZmluZSh0LCBlLCBmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKGUsIHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gQXN5bmNJdGVyYXRvcih0LCBlKSB7XG4gICAgZnVuY3Rpb24gaW52b2tlKHIsIG8sIGksIGEpIHtcbiAgICAgIHZhciBjID0gdHJ5Q2F0Y2godFtyXSwgdCwgbyk7XG4gICAgICBpZiAoXCJ0aHJvd1wiICE9PSBjLnR5cGUpIHtcbiAgICAgICAgdmFyIHUgPSBjLmFyZyxcbiAgICAgICAgICBoID0gdS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGggJiYgXCJvYmplY3RcIiA9PSBfdHlwZW9mKGgpICYmIG4uY2FsbChoLCBcIl9fYXdhaXRcIikgPyBlLnJlc29sdmUoaC5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB0LCBpLCBhKTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSkgOiBlLnJlc29sdmUoaCkudGhlbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHUudmFsdWUgPSB0LCBpKHUpO1xuICAgICAgICB9LCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHJldHVybiBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBhKGMuYXJnKTtcbiAgICB9XG4gICAgdmFyIHI7XG4gICAgbyh0aGlzLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlKHQsIG4pIHtcbiAgICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBlKGZ1bmN0aW9uIChlLCByKSB7XG4gICAgICAgICAgICBpbnZva2UodCwgbiwgZSwgcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHIgPSByID8gci50aGVuKGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLCBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZykgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoZSwgciwgbikge1xuICAgIHZhciBvID0gaDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGksIGEpIHtcbiAgICAgIGlmIChvID09PSBmKSB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgaWYgKG8gPT09IHMpIHtcbiAgICAgICAgaWYgKFwidGhyb3dcIiA9PT0gaSkgdGhyb3cgYTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdCxcbiAgICAgICAgICBkb25lOiAhMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZm9yIChuLm1ldGhvZCA9IGksIG4uYXJnID0gYTs7KSB7XG4gICAgICAgIHZhciBjID0gbi5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICB2YXIgdSA9IG1heWJlSW52b2tlRGVsZWdhdGUoYywgbik7XG4gICAgICAgICAgaWYgKHUpIHtcbiAgICAgICAgICAgIGlmICh1ID09PSB5KSBjb250aW51ZTtcbiAgICAgICAgICAgIHJldHVybiB1O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJuZXh0XCIgPT09IG4ubWV0aG9kKSBuLnNlbnQgPSBuLl9zZW50ID0gbi5hcmc7ZWxzZSBpZiAoXCJ0aHJvd1wiID09PSBuLm1ldGhvZCkge1xuICAgICAgICAgIGlmIChvID09PSBoKSB0aHJvdyBvID0gcywgbi5hcmc7XG4gICAgICAgICAgbi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyk7XG4gICAgICAgIH0gZWxzZSBcInJldHVyblwiID09PSBuLm1ldGhvZCAmJiBuLmFicnVwdChcInJldHVyblwiLCBuLmFyZyk7XG4gICAgICAgIG8gPSBmO1xuICAgICAgICB2YXIgcCA9IHRyeUNhdGNoKGUsIHIsIG4pO1xuICAgICAgICBpZiAoXCJub3JtYWxcIiA9PT0gcC50eXBlKSB7XG4gICAgICAgICAgaWYgKG8gPSBuLmRvbmUgPyBzIDogbCwgcC5hcmcgPT09IHkpIGNvbnRpbnVlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcC5hcmcsXG4gICAgICAgICAgICBkb25lOiBuLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIFwidGhyb3dcIiA9PT0gcC50eXBlICYmIChvID0gcywgbi5tZXRob2QgPSBcInRocm93XCIsIG4uYXJnID0gcC5hcmcpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSB7XG4gICAgdmFyIG4gPSByLm1ldGhvZCxcbiAgICAgIG8gPSBlLml0ZXJhdG9yW25dO1xuICAgIGlmIChvID09PSB0KSByZXR1cm4gci5kZWxlZ2F0ZSA9IG51bGwsIFwidGhyb3dcIiA9PT0gbiAmJiBlLml0ZXJhdG9yW1wicmV0dXJuXCJdICYmIChyLm1ldGhvZCA9IFwicmV0dXJuXCIsIHIuYXJnID0gdCwgbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSwgXCJ0aHJvd1wiID09PSByLm1ldGhvZCkgfHwgXCJyZXR1cm5cIiAhPT0gbiAmJiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ1wiICsgbiArIFwiJyBtZXRob2RcIikpLCB5O1xuICAgIHZhciBpID0gdHJ5Q2F0Y2gobywgZS5pdGVyYXRvciwgci5hcmcpO1xuICAgIGlmIChcInRocm93XCIgPT09IGkudHlwZSkgcmV0dXJuIHIubWV0aG9kID0gXCJ0aHJvd1wiLCByLmFyZyA9IGkuYXJnLCByLmRlbGVnYXRlID0gbnVsbCwgeTtcbiAgICB2YXIgYSA9IGkuYXJnO1xuICAgIHJldHVybiBhID8gYS5kb25lID8gKHJbZS5yZXN1bHROYW1lXSA9IGEudmFsdWUsIHIubmV4dCA9IGUubmV4dExvYywgXCJyZXR1cm5cIiAhPT0gci5tZXRob2QgJiYgKHIubWV0aG9kID0gXCJuZXh0XCIsIHIuYXJnID0gdCksIHIuZGVsZWdhdGUgPSBudWxsLCB5KSA6IGEgOiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLCByLmRlbGVnYXRlID0gbnVsbCwgeSk7XG4gIH1cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHtcbiAgICAgIHRyeUxvYzogdFswXVxuICAgIH07XG4gICAgMSBpbiB0ICYmIChlLmNhdGNoTG9jID0gdFsxXSksIDIgaW4gdCAmJiAoZS5maW5hbGx5TG9jID0gdFsyXSwgZS5hZnRlckxvYyA9IHRbM10pLCB0aGlzLnRyeUVudHJpZXMucHVzaChlKTtcbiAgfVxuICBmdW5jdGlvbiByZXNldFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHQuY29tcGxldGlvbiB8fCB7fTtcbiAgICBlLnR5cGUgPSBcIm5vcm1hbFwiLCBkZWxldGUgZS5hcmcsIHQuY29tcGxldGlvbiA9IGU7XG4gIH1cbiAgZnVuY3Rpb24gQ29udGV4dCh0KSB7XG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3tcbiAgICAgIHRyeUxvYzogXCJyb290XCJcbiAgICB9XSwgdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyksIHRoaXMucmVzZXQoITApO1xuICB9XG4gIGZ1bmN0aW9uIHZhbHVlcyhlKSB7XG4gICAgaWYgKGUgfHwgXCJcIiA9PT0gZSkge1xuICAgICAgdmFyIHIgPSBlW2FdO1xuICAgICAgaWYgKHIpIHJldHVybiByLmNhbGwoZSk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLm5leHQpIHJldHVybiBlO1xuICAgICAgaWYgKCFpc05hTihlLmxlbmd0aCkpIHtcbiAgICAgICAgdmFyIG8gPSAtMSxcbiAgICAgICAgICBpID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIGZvciAoOyArK28gPCBlLmxlbmd0aDspIGlmIChuLmNhbGwoZSwgbykpIHJldHVybiBuZXh0LnZhbHVlID0gZVtvXSwgbmV4dC5kb25lID0gITEsIG5leHQ7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC52YWx1ZSA9IHQsIG5leHQuZG9uZSA9ICEwLCBuZXh0O1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBpLm5leHQgPSBpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyBcIiBpcyBub3QgaXRlcmFibGVcIik7XG4gIH1cbiAgcmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBvKGcsIFwiY29uc3RydWN0b3JcIiwge1xuICAgIHZhbHVlOiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICBjb25maWd1cmFibGU6ICEwXG4gIH0pLCBvKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBcImNvbnN0cnVjdG9yXCIsIHtcbiAgICB2YWx1ZTogR2VuZXJhdG9yRnVuY3Rpb24sXG4gICAgY29uZmlndXJhYmxlOiAhMFxuICB9KSwgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBkZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIHUsIFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksIGUuaXNHZW5lcmF0b3JGdW5jdGlvbiA9IGZ1bmN0aW9uICh0KSB7XG4gICAgdmFyIGUgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHQgJiYgdC5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gISFlICYmIChlID09PSBHZW5lcmF0b3JGdW5jdGlvbiB8fCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIgPT09IChlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSkpO1xuICB9LCBlLm1hcmsgPSBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YodCwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpIDogKHQuX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIGRlZmluZSh0LCB1LCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSwgdC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKGcpLCB0O1xuICB9LCBlLmF3cmFwID0gZnVuY3Rpb24gKHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hd2FpdDogdFxuICAgIH07XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksIGRlZmluZShBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSwgYywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZS5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvciwgZS5hc3luYyA9IGZ1bmN0aW9uICh0LCByLCBuLCBvLCBpKSB7XG4gICAgdm9pZCAwID09PSBpICYmIChpID0gUHJvbWlzZSk7XG4gICAgdmFyIGEgPSBuZXcgQXN5bmNJdGVyYXRvcih3cmFwKHQsIHIsIG4sIG8pLCBpKTtcbiAgICByZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpID8gYSA6IGEubmV4dCgpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgIHJldHVybiB0LmRvbmUgPyB0LnZhbHVlIDogYS5uZXh0KCk7XG4gICAgfSk7XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSwgZGVmaW5lKGcsIHUsIFwiR2VuZXJhdG9yXCIpLCBkZWZpbmUoZywgYSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZGVmaW5lKGcsIFwidG9TdHJpbmdcIiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBcIltvYmplY3QgR2VuZXJhdG9yXVwiO1xuICB9KSwgZS5rZXlzID0gZnVuY3Rpb24gKHQpIHtcbiAgICB2YXIgZSA9IE9iamVjdCh0KSxcbiAgICAgIHIgPSBbXTtcbiAgICBmb3IgKHZhciBuIGluIGUpIHIucHVzaChuKTtcbiAgICByZXR1cm4gci5yZXZlcnNlKCksIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICBmb3IgKDsgci5sZW5ndGg7KSB7XG4gICAgICAgIHZhciB0ID0gci5wb3AoKTtcbiAgICAgICAgaWYgKHQgaW4gZSkgcmV0dXJuIG5leHQudmFsdWUgPSB0LCBuZXh0LmRvbmUgPSAhMSwgbmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0LmRvbmUgPSAhMCwgbmV4dDtcbiAgICB9O1xuICB9LCBlLnZhbHVlcyA9IHZhbHVlcywgQ29udGV4dC5wcm90b3R5cGUgPSB7XG4gICAgY29uc3RydWN0b3I6IENvbnRleHQsXG4gICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KGUpIHtcbiAgICAgIGlmICh0aGlzLnByZXYgPSAwLCB0aGlzLm5leHQgPSAwLCB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdCwgdGhpcy5kb25lID0gITEsIHRoaXMuZGVsZWdhdGUgPSBudWxsLCB0aGlzLm1ldGhvZCA9IFwibmV4dFwiLCB0aGlzLmFyZyA9IHQsIHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKHJlc2V0VHJ5RW50cnkpLCAhZSkgZm9yICh2YXIgciBpbiB0aGlzKSBcInRcIiA9PT0gci5jaGFyQXQoMCkgJiYgbi5jYWxsKHRoaXMsIHIpICYmICFpc05hTigrci5zbGljZSgxKSkgJiYgKHRoaXNbcl0gPSB0KTtcbiAgICB9LFxuICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICB0aGlzLmRvbmUgPSAhMDtcbiAgICAgIHZhciB0ID0gdGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247XG4gICAgICBpZiAoXCJ0aHJvd1wiID09PSB0LnR5cGUpIHRocm93IHQuYXJnO1xuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuICAgIGRpc3BhdGNoRXhjZXB0aW9uOiBmdW5jdGlvbiBkaXNwYXRjaEV4Y2VwdGlvbihlKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB0aHJvdyBlO1xuICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKG4sIG8pIHtcbiAgICAgICAgcmV0dXJuIGEudHlwZSA9IFwidGhyb3dcIiwgYS5hcmcgPSBlLCByLm5leHQgPSBuLCBvICYmIChyLm1ldGhvZCA9IFwibmV4dFwiLCByLmFyZyA9IHQpLCAhIW87XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBvID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IG8gPj0gMDsgLS1vKSB7XG4gICAgICAgIHZhciBpID0gdGhpcy50cnlFbnRyaWVzW29dLFxuICAgICAgICAgIGEgPSBpLmNvbXBsZXRpb247XG4gICAgICAgIGlmIChcInJvb3RcIiA9PT0gaS50cnlMb2MpIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIGlmIChpLnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgYyA9IG4uY2FsbChpLCBcImNhdGNoTG9jXCIpLFxuICAgICAgICAgICAgdSA9IG4uY2FsbChpLCBcImZpbmFsbHlMb2NcIik7XG4gICAgICAgICAgaWYgKGMgJiYgdSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYykge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXUpIHRocm93IG5ldyBFcnJvcihcInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5XCIpO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWJydXB0OiBmdW5jdGlvbiBhYnJ1cHQodCwgZSkge1xuICAgICAgZm9yICh2YXIgciA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyByID49IDA7IC0tcikge1xuICAgICAgICB2YXIgbyA9IHRoaXMudHJ5RW50cmllc1tyXTtcbiAgICAgICAgaWYgKG8udHJ5TG9jIDw9IHRoaXMucHJldiAmJiBuLmNhbGwobywgXCJmaW5hbGx5TG9jXCIpICYmIHRoaXMucHJldiA8IG8uZmluYWxseUxvYykge1xuICAgICAgICAgIHZhciBpID0gbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSAmJiAoXCJicmVha1wiID09PSB0IHx8IFwiY29udGludWVcIiA9PT0gdCkgJiYgaS50cnlMb2MgPD0gZSAmJiBlIDw9IGkuZmluYWxseUxvYyAmJiAoaSA9IG51bGwpO1xuICAgICAgdmFyIGEgPSBpID8gaS5jb21wbGV0aW9uIDoge307XG4gICAgICByZXR1cm4gYS50eXBlID0gdCwgYS5hcmcgPSBlLCBpID8gKHRoaXMubWV0aG9kID0gXCJuZXh0XCIsIHRoaXMubmV4dCA9IGkuZmluYWxseUxvYywgeSkgOiB0aGlzLmNvbXBsZXRlKGEpO1xuICAgIH0sXG4gICAgY29tcGxldGU6IGZ1bmN0aW9uIGNvbXBsZXRlKHQsIGUpIHtcbiAgICAgIGlmIChcInRocm93XCIgPT09IHQudHlwZSkgdGhyb3cgdC5hcmc7XG4gICAgICByZXR1cm4gXCJicmVha1wiID09PSB0LnR5cGUgfHwgXCJjb250aW51ZVwiID09PSB0LnR5cGUgPyB0aGlzLm5leHQgPSB0LmFyZyA6IFwicmV0dXJuXCIgPT09IHQudHlwZSA/ICh0aGlzLnJ2YWwgPSB0aGlzLmFyZyA9IHQuYXJnLCB0aGlzLm1ldGhvZCA9IFwicmV0dXJuXCIsIHRoaXMubmV4dCA9IFwiZW5kXCIpIDogXCJub3JtYWxcIiA9PT0gdC50eXBlICYmIGUgJiYgKHRoaXMubmV4dCA9IGUpLCB5O1xuICAgIH0sXG4gICAgZmluaXNoOiBmdW5jdGlvbiBmaW5pc2godCkge1xuICAgICAgZm9yICh2YXIgZSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBlID49IDA7IC0tZSkge1xuICAgICAgICB2YXIgciA9IHRoaXMudHJ5RW50cmllc1tlXTtcbiAgICAgICAgaWYgKHIuZmluYWxseUxvYyA9PT0gdCkgcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLCByLmFmdGVyTG9jKSwgcmVzZXRUcnlFbnRyeShyKSwgeTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiY2F0Y2hcIjogZnVuY3Rpb24gX2NhdGNoKHQpIHtcbiAgICAgIGZvciAodmFyIGUgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgZSA+PSAwOyAtLWUpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLnRyeUVudHJpZXNbZV07XG4gICAgICAgIGlmIChyLnRyeUxvYyA9PT0gdCkge1xuICAgICAgICAgIHZhciBuID0gci5jb21wbGV0aW9uO1xuICAgICAgICAgIGlmIChcInRocm93XCIgPT09IG4udHlwZSkge1xuICAgICAgICAgICAgdmFyIG8gPSBuLmFyZztcbiAgICAgICAgICAgIHJlc2V0VHJ5RW50cnkocik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIik7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbiBkZWxlZ2F0ZVlpZWxkKGUsIHIsIG4pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlbGVnYXRlID0ge1xuICAgICAgICBpdGVyYXRvcjogdmFsdWVzKGUpLFxuICAgICAgICByZXN1bHROYW1lOiByLFxuICAgICAgICBuZXh0TG9jOiBuXG4gICAgICB9LCBcIm5leHRcIiA9PT0gdGhpcy5tZXRob2QgJiYgKHRoaXMuYXJnID0gdCksIHk7XG4gICAgfVxuICB9LCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcmVnZW5lcmF0b3JSdW50aW1lLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\n')},"./node_modules/@babel/runtime/helpers/typeof.js":module=>{eval('function _typeof(o) {\n "@babel/helpers - typeof";\n\n return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLDBCQUEwQix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanM/MjY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfdHlwZW9mKG8pIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG87XG4gIH0gOiBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMpLCBfdHlwZW9mKG8pO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n')},"./node_modules/@babel/runtime/regenerator/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === "object") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function("r", "regeneratorRuntime = r")(runtime);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsY0FBYyxtQkFBTyxDQUFDLGtHQUErQjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanM/MGRlZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPKEJhYmVsIDgpOiBSZW1vdmUgdGhpcyBmaWxlLlxuXG52YXIgcnVudGltZSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZVwiKSgpO1xubW9kdWxlLmV4cG9ydHMgPSBydW50aW1lO1xuXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL3BhY2thZ2VzL3J1bnRpbWUvcnVudGltZS5qcyNMNzM2PVxudHJ5IHtcbiAgcmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbn0gY2F0Y2ggKGFjY2lkZW50YWxTdHJpY3RNb2RlKSB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gXCJvYmplY3RcIikge1xuICAgIGdsb2JhbFRoaXMucmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbiAgfSBlbHNlIHtcbiAgICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n')},"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);\n }\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/YzE0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n')}},__webpack_module_cache__={};function __webpack_require__(n){var e=__webpack_module_cache__[n];if(void 0!==e)return e.exports;var t=__webpack_module_cache__[n]={exports:{}};return __webpack_modules__[n](t,t.exports,__webpack_require__),t.exports}__webpack_require__.n=n=>{var e=n&&n.__esModule?()=>n.default:()=>n;return __webpack_require__.d(e,{a:e}),e},__webpack_require__.d=(n,e)=>{for(var t in e)__webpack_require__.o(e,t)&&!__webpack_require__.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:e[t]})},__webpack_require__.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),__webpack_require__.r=n=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/scripts/admin.client.js")})(); \ No newline at end of file diff --git a/showtime/server/public/scripts/user-bundle.js b/showtime/server/public/scripts/user-bundle.js index 2a55d0ccaee941d180e8b6160d8f3ca86596356d..463790380f48d535f48c9e3aaed2a5f793ba7aab 100644 --- a/showtime/server/public/scripts/user-bundle.js +++ b/showtime/server/public/scripts/user-bundle.js @@ -1,2 +1,2 @@ /*! For license information please see user-bundle.js.LICENSE.txt */ -(()=>{var __webpack_modules__={"./src/scripts/user.client.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar userlogin;\nvar userpassword;\nvar username;\n\n//const displayShowList = require(\'./utils\');\n\nvar setup = function setup() {\n username = document.getElementById(\'username\');\n getUser();\n // document.getElementById(\'update\').addEventListener(\'click\', update);\n displayShowList();\n displayTicketsList();\n document.getElementById(\'logout\').addEventListener(\'click\', logout);\n};\nwindow.addEventListener(\'DOMContentLoaded\', setup);\nvar getUser = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee() {\n var requestOptions, response, user, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context.next = 3;\n return fetch(\'/me\', requestOptions);\n case 3:\n response = _context.sent;\n if (!response.ok) {\n _context.next = 11;\n break;\n }\n _context.next = 7;\n return response.json();\n case 7:\n user = _context.sent;\n username.textContent = user.name;\n _context.next = 15;\n break;\n case 11:\n _context.next = 13;\n return response.json();\n case 13:\n error = _context.sent;\n handleError(error);\n case 15:\n case "end":\n return _context.stop();\n }\n }, _callee);\n }));\n return function getUser() {\n return _ref.apply(this, arguments);\n };\n}();\nvar displayShowList = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2() {\n var requestOptions, response, allShows, list;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context2.next = 3;\n return fetch(\'/admin/items\', requestOptions);\n case 3:\n response = _context2.sent;\n _context2.next = 6;\n return response.json();\n case 6:\n allShows = _context2.sent;\n //(ici : code exploitation de allShows)\n list = document.getElementById(\'list\');\n list.textContent = \'\';\n allShows.forEach(function (show) {\n return addToList(show, list);\n });\n case 10:\n case "end":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function displayShowList() {\n return _ref2.apply(this, arguments);\n };\n}();\nvar addToList = function addToList(show, list) {\n var node = document.createElement(\'div\');\n node.id = show._id;\n var span = document.createElement(\'span\');\n span.className = "places";\n span.textContent = "".concat(show.places, " places");\n node.textContent = "".concat(show.description, " : ");\n node.appendChild(span);\n //\n //node.addEventListener(\'mouseover\', () => getTask(show._id));\n //\n var ticketsButton = document.createElement(\'button\');\n ticketsButton.className = \'ticket\';\n ticketsButton.addEventListener(\'click\', addTicketShow);\n ticketsButton.textContent = \'+1 tickets\';\n node.appendChild(ticketsButton);\n //\n list.appendChild(node);\n};\nvar update = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee3(data) {\n var body, requestOptions, response, updatedUser, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n body = JSON.stringify(data);\n requestOptions = {\n method: \'PUT\',\n headers: {\n "Content-Type": "application/json"\n },\n body: body\n };\n _context3.next = 4;\n return fetch(\'/tickets\', requestOptions);\n case 4:\n response = _context3.sent;\n if (!response.ok) {\n _context3.next = 12;\n break;\n }\n _context3.next = 8;\n return response.json();\n case 8:\n updatedUser = _context3.sent;\n console.log("show infos updated : ".concat(JSON.stringify(updatedUser)));\n _context3.next = 16;\n break;\n case 12:\n _context3.next = 14;\n return response.json();\n case 14:\n error = _context3.sent;\n handleError(error);\n case 16:\n case "end":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function update(_x) {\n return _ref3.apply(this, arguments);\n };\n}();\nvar displayTicketsList = /*#__PURE__*/function () {\n var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee4() {\n var requestOptions, response, allTickets;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context4.next = 3;\n return fetch(\'/tickets\', requestOptions);\n case 3:\n response = _context4.sent;\n _context4.next = 6;\n return response.json();\n case 6:\n allTickets = _context4.sent;\n allTickets.forEach(function (ticket) {\n return addTicketsToList(ticket);\n });\n case 8:\n case "end":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function displayTicketsList() {\n return _ref4.apply(this, arguments);\n };\n}();\nvar addTicketsToList = function addTicketsToList(ticket) {\n var list = document.getElementById("showTickets");\n createDivTickets(ticket, list);\n};\nvar addTicketShow = /*#__PURE__*/function () {\n var _ref5 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee5(event) {\n var divShow, showId, description, ticket, list, nbTickets;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n divShow = event.target.parentElement;\n showId = divShow.id;\n description = divShow.textContent.split(\':\')[0];\n ticket = {\n show: showId,\n description: description,\n tickets: 1\n };\n list = document.getElementById("showTickets");\n nbTickets = addToTicketsList(ticket, list);\n ticket.tickets = nbTickets;\n _context5.next = 9;\n return update(ticket);\n case 9:\n case "end":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function addTicketShow(_x2) {\n return _ref5.apply(this, arguments);\n };\n}();\nvar addToTicketsList = function addToTicketsList(ticket, list) {\n var nbTickets;\n if (document.getElementById(ticket.show + "-t") === null) {\n createDivTickets(ticket, list);\n nbTickets = 1;\n } else {\n var sp = document.getElementById(ticket.show + "-t").querySelector(".tickets");\n sp.textContent = 1 + parseInt(sp.textContent);\n nbTickets = parseInt(sp.textContent);\n }\n return nbTickets;\n};\nvar createDivTickets = function createDivTickets(ticket, list) {\n var showId = ticket.show + "-t";\n var node = document.createElement(\'div\');\n node.id = showId;\n node.textContent = "".concat(ticket.description);\n var span = document.createElement(\'span\');\n span.className = "tickets";\n span.textContent = ticket.tickets;\n node.appendChild(span);\n var annulationButton = document.createElement(\'button\');\n annulationButton.className = \'annulation\';\n annulationButton.textContent = "Annuler";\n annulationButton.addEventListener("click", cancelTicketShow);\n node.appendChild(annulationButton);\n list.appendChild(node);\n};\nvar cancelTicketShow = /*#__PURE__*/function () {\n var _ref6 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee6(event) {\n var list, ticketDiv, showId, body, requestOptions, response, updatedUser, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n list = document.getElementById("showTickets");\n ticketDiv = event.target.parentElement;\n list.removeChild(ticketDiv);\n showId = ticketDiv.id.split(\'-\')[0];\n body = JSON.stringify(showId);\n requestOptions = {\n method: \'DELETE\'\n };\n _context6.next = 8;\n return fetch("/".concat(showId), requestOptions);\n case 8:\n response = _context6.sent;\n if (!response.ok) {\n _context6.next = 16;\n break;\n }\n _context6.next = 12;\n return response.json();\n case 12:\n updatedUser = _context6.sent;\n console.log("deleted ticket id : ".concat(JSON.stringify(updatedUser)));\n _context6.next = 20;\n break;\n case 16:\n _context6.next = 18;\n return response.json();\n case 18:\n error = _context6.sent;\n handleError(error);\n case 20:\n case "end":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return function cancelTicketShow(_x3) {\n return _ref6.apply(this, arguments);\n };\n}();\nvar logout = /*#__PURE__*/function () {\n var _ref7 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee7() {\n var requestOptions, response;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context7.next = 3;\n return fetch("/access/logout", requestOptions);\n case 3:\n response = _context7.sent;\n if (response.ok) {\n window.location.href = \'/\';\n }\n case 5:\n case "end":\n return _context7.stop();\n }\n }, _callee7);\n }));\n return function logout() {\n return _ref7.apply(this, arguments);\n };\n}();\nvar handleError = function handleError(error) {\n if (error.redirectTo) window.location.href = error.redirectTo;else console.log("erreur : ".concat(error.message));\n};\n\n// const update = async (data) => {\n// const body = JSON.stringify(data);\n// const requestOptions = {\n// method :\'PUT\',\n// headers : { "Content-Type": "application/json" },\n// body : body\n// };\n// const response = await fetch(\'/tickets\', requestOptions);\n// if (response.ok) {\n// const updatedUser = await response.json();\n// console.log(`show infos updated : ${JSON.stringify(updatedUser)}`);\n// }\n// else {\n// const error = await response.json();\n// handleError(error);\n// }\n// }\n\n// const displayTicketsList = async () => {\n// const requestOptions = {\n// method : \'GET\'\n// };\n// const response = await fetch(\'/tickets\', requestOptions)\n// const allTickets = await response.json();\n// allTickets.forEach( ticket => addTicketsToList(ticket) );\n// }\n\n// const addTicketsToList = (ticket) => {\n// const list = document.getElementById("showTickets");\n// createDivTickets(ticket, list);\n// } \n\n// const addTicketShow = async (event) => {\n// const divShow = event.target.parentElement;\n// const nbTickets = addToTicketsList(divShow);\n// const ticketsData = {description : divShow.textContent.split(\':\')[0], tickets : nbTickets, show : divShow.id};\n// await update(ticketsData);\n// };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc2NyaXB0cy91c2VyLmNsaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFJQSxTQUFTO0FBQ2IsSUFBSUMsWUFBWTtBQUNoQixJQUFJQyxRQUFROztBQUVaOztBQUVBLElBQU1DLEtBQUssR0FBRyxTQUFSQSxLQUFLQSxDQUFBLEVBQVM7RUFDbEJELFFBQVEsR0FBR0UsUUFBUSxDQUFDQyxjQUFjLENBQUMsVUFBVSxDQUFDO0VBQzlDQyxPQUFPLENBQUMsQ0FBQztFQUNUO0VBQ0FDLGVBQWUsQ0FBQyxDQUFDO0VBQ2pCQyxrQkFBa0IsQ0FBQyxDQUFDO0VBQ3BCSixRQUFRLENBQUNDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQ0ksZ0JBQWdCLENBQUMsT0FBTyxFQUFFQyxNQUFNLENBQUM7QUFDckUsQ0FBQztBQUNEQyxNQUFNLENBQUNGLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFTixLQUFLLENBQUM7QUFFbEQsSUFBTUcsT0FBTztFQUFBLElBQUFNLElBQUEsR0FBQUMsbUZBQUEsZUFBQUMsc0VBQUEsQ0FBRyxTQUFBRSxRQUFBO0lBQUEsSUFBQUMsY0FBQSxFQUFBQyxRQUFBLEVBQUFDLElBQUEsRUFBQUMsS0FBQTtJQUFBLE9BQUFOLHNFQUFBLFVBQUFRLFNBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQ1JSLGNBQWMsR0FBRztZQUNFUyxNQUFNLEVBQUU7VUFDVixDQUFDO1VBQUFILFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BQ0RFLEtBQUssQ0FBQyxLQUFLLEVBQUVWLGNBQWMsQ0FBQztRQUFBO1VBQTdDQyxRQUFRLEdBQUFLLFFBQUEsQ0FBQUssSUFBQTtVQUFBLEtBQ1ZWLFFBQVEsQ0FBQ1csRUFBRTtZQUFBTixRQUFBLENBQUFFLElBQUE7WUFBQTtVQUFBO1VBQUFGLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BQ01QLFFBQVEsQ0FBQ1ksSUFBSSxDQUFDLENBQUM7UUFBQTtVQUE1QlgsSUFBSSxHQUFBSSxRQUFBLENBQUFLLElBQUE7VUFDVjFCLFFBQVEsQ0FBQzZCLFdBQVcsR0FBR1osSUFBSSxDQUFDYSxJQUFJO1VBQUNULFFBQUEsQ0FBQUUsSUFBQTtVQUFBO1FBQUE7VUFBQUYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FHYlAsUUFBUSxDQUFDWSxJQUFJLENBQUMsQ0FBQztRQUFBO1VBQTdCVixLQUFLLEdBQUFHLFFBQUEsQ0FBQUssSUFBQTtVQUNYSyxXQUFXLENBQUNiLEtBQUssQ0FBQztRQUFDO1FBQUE7VUFBQSxPQUFBRyxRQUFBLENBQUFXLElBQUE7TUFBQTtJQUFBLEdBQUFsQixPQUFBO0VBQUEsQ0FFdEI7RUFBQSxnQkFiS1YsT0FBT0EsQ0FBQTtJQUFBLE9BQUFNLElBQUEsQ0FBQXVCLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FhWjtBQUVELElBQU03QixlQUFlO0VBQUEsSUFBQThCLEtBQUEsR0FBQXhCLG1GQUFBLGVBQUFDLHNFQUFBLENBQUcsU0FBQXdCLFNBQUE7SUFBQSxJQUFBckIsY0FBQSxFQUFBQyxRQUFBLEVBQUFxQixRQUFBLEVBQUFDLElBQUE7SUFBQSxPQUFBMUIsc0VBQUEsVUFBQTJCLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBbEIsSUFBQSxHQUFBa0IsU0FBQSxDQUFBakIsSUFBQTtRQUFBO1VBQ2hCUixjQUFjLEdBQUc7WUFDRVMsTUFBTSxFQUFHO1VBQ1gsQ0FBQztVQUFBZ0IsU0FBQSxDQUFBakIsSUFBQTtVQUFBLE9BQ0RFLEtBQUssQ0FBQyxjQUFjLEVBQUVWLGNBQWMsQ0FBQztRQUFBO1VBQXREQyxRQUFRLEdBQUF3QixTQUFBLENBQUFkLElBQUE7VUFBQWMsU0FBQSxDQUFBakIsSUFBQTtVQUFBLE9BQ1NQLFFBQVEsQ0FBQ1ksSUFBSSxDQUFDLENBQUM7UUFBQTtVQUFoQ1MsUUFBUSxHQUFBRyxTQUFBLENBQUFkLElBQUE7VUFFZDtVQUNNWSxJQUFJLEdBQUdwQyxRQUFRLENBQUNDLGNBQWMsQ0FBQyxNQUFNLENBQUM7VUFDNUNtQyxJQUFJLENBQUNULFdBQVcsR0FBRyxFQUFFO1VBQ3JCUSxRQUFRLENBQUNJLE9BQU8sQ0FBRSxVQUFBQyxJQUFJO1lBQUEsT0FBSUMsU0FBUyxDQUFDRCxJQUFJLEVBQUVKLElBQUksQ0FBQztVQUFBLENBQUMsQ0FBQztRQUFDO1FBQUE7VUFBQSxPQUFBRSxTQUFBLENBQUFSLElBQUE7TUFBQTtJQUFBLEdBQUFJLFFBQUE7RUFBQSxDQUNuRDtFQUFBLGdCQVhLL0IsZUFBZUEsQ0FBQTtJQUFBLE9BQUE4QixLQUFBLENBQUFGLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FXcEI7QUFFRCxJQUFNUyxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBSUQsSUFBSSxFQUFDSixJQUFJLEVBQUs7RUFDakMsSUFBTU0sSUFBSSxHQUFHMUMsUUFBUSxDQUFDMkMsYUFBYSxDQUFDLEtBQUssQ0FBQztFQUMxQ0QsSUFBSSxDQUFDRSxFQUFFLEdBQUdKLElBQUksQ0FBQ0ssR0FBRztFQUNsQixJQUFNQyxJQUFJLEdBQUc5QyxRQUFRLENBQUMyQyxhQUFhLENBQUMsTUFBTSxDQUFDO0VBQzNDRyxJQUFJLENBQUNDLFNBQVMsR0FBRyxRQUFRO0VBQ3pCRCxJQUFJLENBQUNuQixXQUFXLE1BQUFxQixNQUFBLENBQU1SLElBQUksQ0FBQ1MsTUFBTSxZQUFTO0VBQzFDUCxJQUFJLENBQUNmLFdBQVcsTUFBQXFCLE1BQUEsQ0FBTVIsSUFBSSxDQUFDVSxXQUFXLFFBQUs7RUFDM0NSLElBQUksQ0FBQ1MsV0FBVyxDQUFDTCxJQUFJLENBQUM7RUFDdEI7RUFDQTtFQUNBO0VBQ0EsSUFBTU0sYUFBYSxHQUFHcEQsUUFBUSxDQUFDMkMsYUFBYSxDQUFDLFFBQVEsQ0FBQztFQUN0RFMsYUFBYSxDQUFDTCxTQUFTLEdBQUcsUUFBUTtFQUNsQ0ssYUFBYSxDQUFDL0MsZ0JBQWdCLENBQUMsT0FBTyxFQUFFZ0QsYUFBYSxDQUFDO0VBQ3RERCxhQUFhLENBQUN6QixXQUFXLEdBQUcsWUFBWTtFQUN4Q2UsSUFBSSxDQUFDUyxXQUFXLENBQUNDLGFBQWEsQ0FBQztFQUMvQjtFQUNBaEIsSUFBSSxDQUFDZSxXQUFXLENBQUNULElBQUksQ0FBQztBQUN0QixDQUFDO0FBRUQsSUFBTVksTUFBTTtFQUFBLElBQUFDLEtBQUEsR0FBQTlDLG1GQUFBLGVBQUFDLHNFQUFBLENBQUksU0FBQThDLFNBQU9DLElBQUk7SUFBQSxJQUFBQyxJQUFBLEVBQUE3QyxjQUFBLEVBQUFDLFFBQUEsRUFBQTZDLFdBQUEsRUFBQTNDLEtBQUE7SUFBQSxPQUFBTixzRUFBQSxVQUFBa0QsVUFBQUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUF6QyxJQUFBLEdBQUF5QyxTQUFBLENBQUF4QyxJQUFBO1FBQUE7VUFDbkJxQyxJQUFJLEdBQUdJLElBQUksQ0FBQ0MsU0FBUyxDQUFDTixJQUFJLENBQUM7VUFDM0I1QyxjQUFjLEdBQUc7WUFDQVMsTUFBTSxFQUFFLEtBQUs7WUFDYjBDLE9BQU8sRUFBRztjQUFFLGNBQWMsRUFBRTtZQUFtQixDQUFDO1lBQ2hETixJQUFJLEVBQUdBO1VBQ1QsQ0FBQztVQUFBRyxTQUFBLENBQUF4QyxJQUFBO1VBQUEsT0FDQ0UsS0FBSyxDQUFDLFVBQVUsRUFBRVYsY0FBYyxDQUFDO1FBQUE7VUFBbERDLFFBQVEsR0FBQStDLFNBQUEsQ0FBQXJDLElBQUE7VUFBQSxLQUNWVixRQUFRLENBQUNXLEVBQUU7WUFBQW9DLFNBQUEsQ0FBQXhDLElBQUE7WUFBQTtVQUFBO1VBQUF3QyxTQUFBLENBQUF4QyxJQUFBO1VBQUEsT0FDYVAsUUFBUSxDQUFDWSxJQUFJLENBQUMsQ0FBQztRQUFBO1VBQW5DaUMsV0FBVyxHQUFBRSxTQUFBLENBQUFyQyxJQUFBO1VBQ2pCeUMsT0FBTyxDQUFDQyxHQUFHLHlCQUFBbEIsTUFBQSxDQUF5QmMsSUFBSSxDQUFDQyxTQUFTLENBQUNKLFdBQVcsQ0FBQyxDQUFFLENBQUM7VUFBQ0UsU0FBQSxDQUFBeEMsSUFBQTtVQUFBO1FBQUE7VUFBQXdDLFNBQUEsQ0FBQXhDLElBQUE7VUFBQSxPQUcvQ1AsUUFBUSxDQUFDWSxJQUFJLENBQUMsQ0FBQztRQUFBO1VBQTdCVixLQUFLLEdBQUE2QyxTQUFBLENBQUFyQyxJQUFBO1VBQ1hLLFdBQVcsQ0FBQ2IsS0FBSyxDQUFDO1FBQUM7UUFBQTtVQUFBLE9BQUE2QyxTQUFBLENBQUEvQixJQUFBO01BQUE7SUFBQSxHQUFBMEIsUUFBQTtFQUFBLENBRXRCO0VBQUEsZ0JBaEJLRixNQUFNQSxDQUFBYSxFQUFBO0lBQUEsT0FBQVosS0FBQSxDQUFBeEIsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQWdCWDtBQUVELElBQU01QixrQkFBa0I7RUFBQSxJQUFBZ0UsS0FBQSxHQUFBM0QsbUZBQUEsZUFBQUMsc0VBQUEsQ0FBRyxTQUFBMkQsU0FBQTtJQUFBLElBQUF4RCxjQUFBLEVBQUFDLFFBQUEsRUFBQXdELFVBQUE7SUFBQSxPQUFBNUQsc0VBQUEsVUFBQTZELFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBcEQsSUFBQSxHQUFBb0QsU0FBQSxDQUFBbkQsSUFBQTtRQUFBO1VBQ25CUixjQUFjLEdBQUc7WUFDRVMsTUFBTSxFQUFHO1VBQ1gsQ0FBQztVQUFBa0QsU0FBQSxDQUFBbkQsSUFBQTtVQUFBLE9BQ0RFLEtBQUssQ0FBQyxVQUFVLEVBQUVWLGNBQWMsQ0FBQztRQUFBO1VBQWxEQyxRQUFRLEdBQUEwRCxTQUFBLENBQUFoRCxJQUFBO1VBQUFnRCxTQUFBLENBQUFuRCxJQUFBO1VBQUEsT0FDV1AsUUFBUSxDQUFDWSxJQUFJLENBQUMsQ0FBQztRQUFBO1VBQWxDNEMsVUFBVSxHQUFBRSxTQUFBLENBQUFoRCxJQUFBO1VBQ2hCOEMsVUFBVSxDQUFDL0IsT0FBTyxDQUFFLFVBQUFrQyxNQUFNO1lBQUEsT0FBSUMsZ0JBQWdCLENBQUNELE1BQU0sQ0FBQztVQUFBLENBQUMsQ0FBQztRQUFDO1FBQUE7VUFBQSxPQUFBRCxTQUFBLENBQUExQyxJQUFBO01BQUE7SUFBQSxHQUFBdUMsUUFBQTtFQUFBLENBQzFEO0VBQUEsZ0JBUEtqRSxrQkFBa0JBLENBQUE7SUFBQSxPQUFBZ0UsS0FBQSxDQUFBckMsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQU92QjtBQUVELElBQU0wQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJRCxNQUFNLEVBQUs7RUFDbkMsSUFBTXJDLElBQUksR0FBR3BDLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLGFBQWEsQ0FBQztFQUNuRDBFLGdCQUFnQixDQUFDRixNQUFNLEVBQUVyQyxJQUFJLENBQUM7QUFDaEMsQ0FBQztBQUVELElBQU1pQixhQUFhO0VBQUEsSUFBQXVCLEtBQUEsR0FBQW5FLG1GQUFBLGVBQUFDLHNFQUFBLENBQUcsU0FBQW1FLFNBQU9DLEtBQUs7SUFBQSxJQUFBQyxPQUFBLEVBQUFDLE1BQUEsRUFBQTlCLFdBQUEsRUFBQXVCLE1BQUEsRUFBQXJDLElBQUEsRUFBQTZDLFNBQUE7SUFBQSxPQUFBdkUsc0VBQUEsVUFBQXdFLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBL0QsSUFBQSxHQUFBK0QsU0FBQSxDQUFBOUQsSUFBQTtRQUFBO1VBQzFCMEQsT0FBTyxHQUFHRCxLQUFLLENBQUNNLE1BQU0sQ0FBQ0MsYUFBYTtVQUNwQ0wsTUFBTSxHQUFHRCxPQUFPLENBQUNuQyxFQUFFO1VBQ25CTSxXQUFXLEdBQUc2QixPQUFPLENBQUNwRCxXQUFXLENBQUMyRCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQy9DYixNQUFNLEdBQUc7WUFBQ2pDLElBQUksRUFBR3dDLE1BQU07WUFBRTlCLFdBQVcsRUFBR0EsV0FBVztZQUFFcUMsT0FBTyxFQUFHO1VBQUMsQ0FBQztVQUNoRW5ELElBQUksR0FBR3BDLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLGFBQWEsQ0FBQztVQUU3Q2dGLFNBQVMsR0FBR08sZ0JBQWdCLENBQUNmLE1BQU0sRUFBRXJDLElBQUksQ0FBQztVQUNoRHFDLE1BQU0sQ0FBQ2MsT0FBTyxHQUFHTixTQUFTO1VBQUNFLFNBQUEsQ0FBQTlELElBQUE7VUFBQSxPQUNyQmlDLE1BQU0sQ0FBQ21CLE1BQU0sQ0FBQztRQUFBO1FBQUE7VUFBQSxPQUFBVSxTQUFBLENBQUFyRCxJQUFBO01BQUE7SUFBQSxHQUFBK0MsUUFBQTtFQUFBLENBQ3JCO0VBQUEsZ0JBVkt4QixhQUFhQSxDQUFBb0MsR0FBQTtJQUFBLE9BQUFiLEtBQUEsQ0FBQTdDLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FVbEI7QUFFRCxJQUFNd0QsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSWYsTUFBTSxFQUFFckMsSUFBSSxFQUFLO0VBQ3pDLElBQUk2QyxTQUFTO0VBQ2IsSUFBR2pGLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDd0UsTUFBTSxDQUFDakMsSUFBSSxHQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtJQUNyRG1DLGdCQUFnQixDQUFDRixNQUFNLEVBQUVyQyxJQUFJLENBQUM7SUFDOUI2QyxTQUFTLEdBQUcsQ0FBQztFQUNmLENBQUMsTUFBSztJQUNKLElBQU1TLEVBQUUsR0FBRzFGLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDd0UsTUFBTSxDQUFDakMsSUFBSSxHQUFDLElBQUksQ0FBQyxDQUFDbUQsYUFBYSxDQUFDLFVBQVUsQ0FBQztJQUM5RUQsRUFBRSxDQUFDL0QsV0FBVyxHQUFHLENBQUMsR0FBR2lFLFFBQVEsQ0FBQ0YsRUFBRSxDQUFDL0QsV0FBVyxDQUFDO0lBQzdDc0QsU0FBUyxHQUFHVyxRQUFRLENBQUNGLEVBQUUsQ0FBQy9ELFdBQVcsQ0FBQztFQUN0QztFQUNBLE9BQU9zRCxTQUFTO0FBQ2xCLENBQUM7QUFHRCxJQUFNTixnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJRixNQUFNLEVBQUVyQyxJQUFJLEVBQUs7RUFDekMsSUFBTTRDLE1BQU0sR0FBR1AsTUFBTSxDQUFDakMsSUFBSSxHQUFHLElBQUk7RUFDakMsSUFBTUUsSUFBSSxHQUFHMUMsUUFBUSxDQUFDMkMsYUFBYSxDQUFDLEtBQUssQ0FBQztFQUMxQ0QsSUFBSSxDQUFDRSxFQUFFLEdBQUdvQyxNQUFNO0VBQ2hCdEMsSUFBSSxDQUFDZixXQUFXLE1BQUFxQixNQUFBLENBQU15QixNQUFNLENBQUN2QixXQUFXLENBQUU7RUFDMUMsSUFBTUosSUFBSSxHQUFHOUMsUUFBUSxDQUFDMkMsYUFBYSxDQUFDLE1BQU0sQ0FBQztFQUMzQ0csSUFBSSxDQUFDQyxTQUFTLEdBQUcsU0FBUztFQUMxQkQsSUFBSSxDQUFDbkIsV0FBVyxHQUFHOEMsTUFBTSxDQUFDYyxPQUFPO0VBQ2pDN0MsSUFBSSxDQUFDUyxXQUFXLENBQUNMLElBQUksQ0FBQztFQUN0QixJQUFNK0MsZ0JBQWdCLEdBQUc3RixRQUFRLENBQUMyQyxhQUFhLENBQUMsUUFBUSxDQUFDO0VBQ3pEa0QsZ0JBQWdCLENBQUM5QyxTQUFTLEdBQUcsWUFBWTtFQUN6QzhDLGdCQUFnQixDQUFDbEUsV0FBVyxHQUFHLFNBQVM7RUFDeENrRSxnQkFBZ0IsQ0FBQ3hGLGdCQUFnQixDQUFDLE9BQU8sRUFBRXlGLGdCQUFnQixDQUFDO0VBQzVEcEQsSUFBSSxDQUFDUyxXQUFXLENBQUMwQyxnQkFBZ0IsQ0FBQztFQUNsQ3pELElBQUksQ0FBQ2UsV0FBVyxDQUFDVCxJQUFJLENBQUM7QUFDeEIsQ0FBQztBQUVELElBQU1vRCxnQkFBZ0I7RUFBQSxJQUFBQyxLQUFBLEdBQUF0RixtRkFBQSxlQUFBQyxzRUFBQSxDQUFHLFNBQUFzRixTQUFPbEIsS0FBSztJQUFBLElBQUExQyxJQUFBLEVBQUE2RCxTQUFBLEVBQUFqQixNQUFBLEVBQUF0QixJQUFBLEVBQUE3QyxjQUFBLEVBQUFDLFFBQUEsRUFBQTZDLFdBQUEsRUFBQTNDLEtBQUE7SUFBQSxPQUFBTixzRUFBQSxVQUFBd0YsVUFBQUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUEvRSxJQUFBLEdBQUErRSxTQUFBLENBQUE5RSxJQUFBO1FBQUE7VUFDN0JlLElBQUksR0FBR3BDLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLGFBQWEsQ0FBQztVQUM3Q2dHLFNBQVMsR0FBR25CLEtBQUssQ0FBQ00sTUFBTSxDQUFDQyxhQUFhO1VBQzVDakQsSUFBSSxDQUFDZ0UsV0FBVyxDQUFDSCxTQUFTLENBQUM7VUFDckJqQixNQUFNLEdBQUdpQixTQUFTLENBQUNyRCxFQUFFLENBQUMwQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQ25DNUIsSUFBSSxHQUFHSSxJQUFJLENBQUNDLFNBQVMsQ0FBQ2lCLE1BQU0sQ0FBQztVQUM3Qm5FLGNBQWMsR0FBRztZQUNBUyxNQUFNLEVBQUU7VUFDVixDQUFDO1VBQUE2RSxTQUFBLENBQUE5RSxJQUFBO1VBQUEsT0FDQ0UsS0FBSyxLQUFBeUIsTUFBQSxDQUFLZ0MsTUFBTSxHQUFJbkUsY0FBYyxDQUFDO1FBQUE7VUFBcERDLFFBQVEsR0FBQXFGLFNBQUEsQ0FBQTNFLElBQUE7VUFBQSxLQUNWVixRQUFRLENBQUNXLEVBQUU7WUFBQTBFLFNBQUEsQ0FBQTlFLElBQUE7WUFBQTtVQUFBO1VBQUE4RSxTQUFBLENBQUE5RSxJQUFBO1VBQUEsT0FDYVAsUUFBUSxDQUFDWSxJQUFJLENBQUMsQ0FBQztRQUFBO1VBQW5DaUMsV0FBVyxHQUFBd0MsU0FBQSxDQUFBM0UsSUFBQTtVQUNqQnlDLE9BQU8sQ0FBQ0MsR0FBRyx3QkFBQWxCLE1BQUEsQ0FBd0JjLElBQUksQ0FBQ0MsU0FBUyxDQUFDSixXQUFXLENBQUMsQ0FBRSxDQUFDO1VBQUN3QyxTQUFBLENBQUE5RSxJQUFBO1VBQUE7UUFBQTtVQUFBOEUsU0FBQSxDQUFBOUUsSUFBQTtVQUFBLE9BRzlDUCxRQUFRLENBQUNZLElBQUksQ0FBQyxDQUFDO1FBQUE7VUFBN0JWLEtBQUssR0FBQW1GLFNBQUEsQ0FBQTNFLElBQUE7VUFDWEssV0FBVyxDQUFDYixLQUFLLENBQUM7UUFBQztRQUFBO1VBQUEsT0FBQW1GLFNBQUEsQ0FBQXJFLElBQUE7TUFBQTtJQUFBLEdBQUFrRSxRQUFBO0VBQUEsQ0FFdEI7RUFBQSxnQkFsQktGLGdCQUFnQkEsQ0FBQU8sR0FBQTtJQUFBLE9BQUFOLEtBQUEsQ0FBQWhFLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FrQnJCO0FBRUQsSUFBTTFCLE1BQU07RUFBQSxJQUFBZ0csS0FBQSxHQUFBN0YsbUZBQUEsZUFBQUMsc0VBQUEsQ0FBRyxTQUFBNkYsU0FBQTtJQUFBLElBQUExRixjQUFBLEVBQUFDLFFBQUE7SUFBQSxPQUFBSixzRUFBQSxVQUFBOEYsVUFBQUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUFyRixJQUFBLEdBQUFxRixTQUFBLENBQUFwRixJQUFBO1FBQUE7VUFDUFIsY0FBYyxHQUFHO1lBQ0FTLE1BQU0sRUFBRTtVQUNWLENBQUM7VUFBQW1GLFNBQUEsQ0FBQXBGLElBQUE7VUFBQSxPQUNDRSxLQUFLLG1CQUFtQlYsY0FBYyxDQUFDO1FBQUE7VUFBeERDLFFBQVEsR0FBQTJGLFNBQUEsQ0FBQWpGLElBQUE7VUFDZCxJQUFJVixRQUFRLENBQUNXLEVBQUUsRUFBRTtZQUNmbEIsTUFBTSxDQUFDbUcsUUFBUSxDQUFDQyxJQUFJLEdBQUUsR0FBRztVQUMzQjtRQUFDO1FBQUE7VUFBQSxPQUFBRixTQUFBLENBQUEzRSxJQUFBO01BQUE7SUFBQSxHQUFBeUUsUUFBQTtFQUFBLENBQ0Y7RUFBQSxnQkFSS2pHLE1BQU1BLENBQUE7SUFBQSxPQUFBZ0csS0FBQSxDQUFBdkUsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQVFYO0FBRUQsSUFBTUgsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUdiLEtBQUssRUFBSTtFQUMzQixJQUFJQSxLQUFLLENBQUM0RixVQUFVLEVBQ2xCckcsTUFBTSxDQUFDbUcsUUFBUSxDQUFDQyxJQUFJLEdBQUUzRixLQUFLLENBQUM0RixVQUFVLENBQUMsS0FFdkMzQyxPQUFPLENBQUNDLEdBQUcsYUFBQWxCLE1BQUEsQ0FBYWhDLEtBQUssQ0FBQzZGLE9BQU8sQ0FBRSxDQUFDO0FBQzVDLENBQUM7O0FBU0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL2FwcC8uL3NyYy9zY3JpcHRzL3VzZXIuY2xpZW50LmpzP2I2MjMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IHVzZXJsb2dpbjtcbmxldCB1c2VycGFzc3dvcmQ7XG5sZXQgdXNlcm5hbWU7XG5cbi8vY29uc3QgZGlzcGxheVNob3dMaXN0ID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG5jb25zdCBzZXR1cCA9ICgpID0+IHtcbiAgdXNlcm5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTtcbiAgZ2V0VXNlcigpO1xuICAvLyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB1cGRhdGUpO1xuICBkaXNwbGF5U2hvd0xpc3QoKTtcbiAgZGlzcGxheVRpY2tldHNMaXN0KCk7XG4gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dvdXQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGxvZ291dCk7XG59XG53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIHNldHVwKTtcblxuY29uc3QgZ2V0VXNlciA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOidHRVQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9tZScsIHJlcXVlc3RPcHRpb25zKTtcbiAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICB1c2VybmFtZS50ZXh0Q29udGVudCA9IHVzZXIubmFtZTtcbiAgfVxuICBlbHNlIHtcbiAgICBjb25zdCBlcnJvciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBoYW5kbGVFcnJvcihlcnJvcik7XG4gIH1cbn1cblxuY29uc3QgZGlzcGxheVNob3dMaXN0ID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6ICdHRVQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FkbWluL2l0ZW1zJywgcmVxdWVzdE9wdGlvbnMpXG4gIGNvbnN0IGFsbFNob3dzID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuXG4gIC8vKGljaSA6IGNvZGUgIGV4cGxvaXRhdGlvbiBkZSBhbGxTaG93cylcbiAgY29uc3QgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaXN0Jyk7XG4gIGxpc3QudGV4dENvbnRlbnQgPSAnJztcbiAgYWxsU2hvd3MuZm9yRWFjaCggc2hvdyA9PiBhZGRUb0xpc3Qoc2hvdywgbGlzdCkgKTtcbn1cblxuY29uc3QgYWRkVG9MaXN0ID0gKHNob3csbGlzdCkgPT4ge1xuY29uc3Qgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xubm9kZS5pZCA9IHNob3cuX2lkO1xuY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbnNwYW4uY2xhc3NOYW1lID0gXCJwbGFjZXNcIjtcbnNwYW4udGV4dENvbnRlbnQgPSBgJHtzaG93LnBsYWNlc30gcGxhY2VzYFxubm9kZS50ZXh0Q29udGVudCA9IGAke3Nob3cuZGVzY3JpcHRpb259IDogYDtcbm5vZGUuYXBwZW5kQ2hpbGQoc3Bhbik7XG4vL1xuLy9ub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsICgpID0+IGdldFRhc2soc2hvdy5faWQpKTtcbi8vXG5jb25zdCB0aWNrZXRzQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG50aWNrZXRzQnV0dG9uLmNsYXNzTmFtZSA9ICd0aWNrZXQnO1xudGlja2V0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGFkZFRpY2tldFNob3cpO1xudGlja2V0c0J1dHRvbi50ZXh0Q29udGVudCA9ICcrMSB0aWNrZXRzJztcbm5vZGUuYXBwZW5kQ2hpbGQodGlja2V0c0J1dHRvbik7XG4vL1xubGlzdC5hcHBlbmRDaGlsZChub2RlKTtcbn1cblxuY29uc3QgdXBkYXRlID0gIGFzeW5jIChkYXRhKSA9PiB7XG4gIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDonUFVUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzIDogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgOiBib2R5XG4gICAgICAgICAgICAgICAgICAgICAgIH07XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy90aWNrZXRzJywgcmVxdWVzdE9wdGlvbnMpO1xuICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBjb25zb2xlLmxvZyhgc2hvdyBpbmZvcyB1cGRhdGVkIDogJHtKU09OLnN0cmluZ2lmeSh1cGRhdGVkVXNlcil9YCk7XG4gIH1cbiAgZWxzZSB7XG4gICAgY29uc3QgZXJyb3IgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xuICB9XG59XG5cbmNvbnN0IGRpc3BsYXlUaWNrZXRzTGlzdCA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOiAnR0VUJ1xuICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy90aWNrZXRzJywgcmVxdWVzdE9wdGlvbnMpXG4gIGNvbnN0IGFsbFRpY2tldHMgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIGFsbFRpY2tldHMuZm9yRWFjaCggdGlja2V0ID0+IGFkZFRpY2tldHNUb0xpc3QodGlja2V0KSApO1xufVxuXG5jb25zdCBhZGRUaWNrZXRzVG9MaXN0ID0gKHRpY2tldCkgPT4ge1xuICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzaG93VGlja2V0c1wiKTtcbiAgY3JlYXRlRGl2VGlja2V0cyh0aWNrZXQsIGxpc3QpO1xufSBcblxuY29uc3QgYWRkVGlja2V0U2hvdyA9IGFzeW5jIChldmVudCkgPT4ge1xuICBjb25zdCBkaXZTaG93ID0gZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQ7XG4gIGNvbnN0IHNob3dJZCA9IGRpdlNob3cuaWQ7XG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gZGl2U2hvdy50ZXh0Q29udGVudC5zcGxpdCgnOicpWzBdO1xuICBjb25zdCB0aWNrZXQgPSB7c2hvdyA6IHNob3dJZCwgZGVzY3JpcHRpb24gOiBkZXNjcmlwdGlvbiwgdGlja2V0cyA6IDF9O1xuICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzaG93VGlja2V0c1wiKTtcblxuICBjb25zdCBuYlRpY2tldHMgPSBhZGRUb1RpY2tldHNMaXN0KHRpY2tldCwgbGlzdCk7XG4gIHRpY2tldC50aWNrZXRzID0gbmJUaWNrZXRzO1xuICBhd2FpdCB1cGRhdGUodGlja2V0KTtcbn07XG5cbmNvbnN0IGFkZFRvVGlja2V0c0xpc3QgPSAodGlja2V0LCBsaXN0KSA9PiB7XG4gIGxldCBuYlRpY2tldHM7XG4gIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRpY2tldC5zaG93K1wiLXRcIikgPT09IG51bGwpIHtcbiAgICBjcmVhdGVEaXZUaWNrZXRzKHRpY2tldCwgbGlzdCk7XG4gICAgbmJUaWNrZXRzID0gMTtcbiAgfWVsc2Uge1xuICAgIGNvbnN0IHNwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGlja2V0LnNob3crXCItdFwiKS5xdWVyeVNlbGVjdG9yKFwiLnRpY2tldHNcIik7XG4gICAgc3AudGV4dENvbnRlbnQgPSAxICsgcGFyc2VJbnQoc3AudGV4dENvbnRlbnQpO1xuICAgIG5iVGlja2V0cyA9IHBhcnNlSW50KHNwLnRleHRDb250ZW50KTtcbiAgfVxuICByZXR1cm4gbmJUaWNrZXRzO1xufTtcblxuXG5jb25zdCBjcmVhdGVEaXZUaWNrZXRzID0gKHRpY2tldCwgbGlzdCkgPT4ge1xuICBjb25zdCBzaG93SWQgPSB0aWNrZXQuc2hvdyArIFwiLXRcIjtcbiAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBub2RlLmlkID0gc2hvd0lkO1xuICBub2RlLnRleHRDb250ZW50ID0gYCR7dGlja2V0LmRlc2NyaXB0aW9ufWA7XG4gIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gIHNwYW4uY2xhc3NOYW1lID0gXCJ0aWNrZXRzXCI7XG4gIHNwYW4udGV4dENvbnRlbnQgPSB0aWNrZXQudGlja2V0cztcbiAgbm9kZS5hcHBlbmRDaGlsZChzcGFuKTtcbiAgY29uc3QgYW5udWxhdGlvbkJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xuICBhbm51bGF0aW9uQnV0dG9uLmNsYXNzTmFtZSA9ICdhbm51bGF0aW9uJztcbiAgYW5udWxhdGlvbkJ1dHRvbi50ZXh0Q29udGVudCA9IFwiQW5udWxlclwiO1xuICBhbm51bGF0aW9uQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjYW5jZWxUaWNrZXRTaG93KTtcbiAgbm9kZS5hcHBlbmRDaGlsZChhbm51bGF0aW9uQnV0dG9uKTtcbiAgbGlzdC5hcHBlbmRDaGlsZChub2RlKTtcbn1cblxuY29uc3QgY2FuY2VsVGlja2V0U2hvdyA9IGFzeW5jIChldmVudCkgPT4ge1xuICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzaG93VGlja2V0c1wiKTtcbiAgY29uc3QgdGlja2V0RGl2ID0gZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQ7XG4gIGxpc3QucmVtb3ZlQ2hpbGQodGlja2V0RGl2KTtcbiAgY29uc3Qgc2hvd0lkID0gdGlja2V0RGl2LmlkLnNwbGl0KCctJylbMF07XG4gIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShzaG93SWQpO1xuICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOidERUxFVEUnLFxuICAgICAgICAgICAgICAgICAgICAgICB9O1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAvJHtzaG93SWR9YCwgcmVxdWVzdE9wdGlvbnMpO1xuICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBjb25zb2xlLmxvZyhgZGVsZXRlZCB0aWNrZXQgaWQgOiAke0pTT04uc3RyaW5naWZ5KHVwZGF0ZWRVc2VyKX1gKTtcbiAgfVxuICBlbHNlIHtcbiAgICBjb25zdCBlcnJvciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBoYW5kbGVFcnJvcihlcnJvcik7XG4gIH1cbn1cblxuY29uc3QgbG9nb3V0ID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOidHRVQnLFxuICAgICAgICAgICAgICAgICAgICAgICB9O1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAvYWNjZXNzL2xvZ291dGAsIHJlcXVlc3RPcHRpb25zKTtcbiAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWY9ICcvJztcbiAgfVxufVxuXG5jb25zdCBoYW5kbGVFcnJvciA9IGVycm9yID0+IHtcbiAgaWYgKGVycm9yLnJlZGlyZWN0VG8pXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWY9IGVycm9yLnJlZGlyZWN0VG87XG4gIGVsc2VcbiAgICBjb25zb2xlLmxvZyhgZXJyZXVyIDogJHtlcnJvci5tZXNzYWdlfWApO1xufVxuXG5cblxuXG5cblxuXG5cbi8vIGNvbnN0IHVwZGF0ZSA9ICBhc3luYyAoZGF0YSkgPT4ge1xuLy8gICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4vLyAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J1BVVCcsXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycyA6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5IDogYm9keVxuLy8gICAgICAgICAgICAgICAgICAgICAgICB9O1xuLy8gICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvdGlja2V0cycsIHJlcXVlc3RPcHRpb25zKTtcbi8vICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4vLyAgICAgY29uc3QgdXBkYXRlZFVzZXIgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4vLyAgICAgY29uc29sZS5sb2coYHNob3cgaW5mb3MgdXBkYXRlZCA6ICR7SlNPTi5zdHJpbmdpZnkodXBkYXRlZFVzZXIpfWApO1xuLy8gICB9XG4vLyAgIGVsc2Uge1xuLy8gICAgIGNvbnN0IGVycm9yID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuLy8gICAgIGhhbmRsZUVycm9yKGVycm9yKTtcbi8vICAgfVxuLy8gfVxuXG4vLyBjb25zdCBkaXNwbGF5VGlja2V0c0xpc3QgPSBhc3luYyAoKSA9PiB7XG4vLyAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDogJ0dFVCdcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuLy8gICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvdGlja2V0cycsIHJlcXVlc3RPcHRpb25zKVxuLy8gICBjb25zdCBhbGxUaWNrZXRzID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuLy8gICBhbGxUaWNrZXRzLmZvckVhY2goIHRpY2tldCA9PiBhZGRUaWNrZXRzVG9MaXN0KHRpY2tldCkgKTtcbi8vIH1cblxuLy8gY29uc3QgYWRkVGlja2V0c1RvTGlzdCA9ICh0aWNrZXQpID0+IHtcbi8vICAgY29uc3QgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic2hvd1RpY2tldHNcIik7XG4vLyAgIGNyZWF0ZURpdlRpY2tldHModGlja2V0LCBsaXN0KTtcbi8vIH0gXG5cbi8vIGNvbnN0IGFkZFRpY2tldFNob3cgPSBhc3luYyAoZXZlbnQpID0+IHtcbi8vICAgY29uc3QgZGl2U2hvdyA9IGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50O1xuLy8gICBjb25zdCBuYlRpY2tldHMgPSBhZGRUb1RpY2tldHNMaXN0KGRpdlNob3cpO1xuLy8gICBjb25zdCB0aWNrZXRzRGF0YSA9IHtkZXNjcmlwdGlvbiA6IGRpdlNob3cudGV4dENvbnRlbnQuc3BsaXQoJzonKVswXSwgdGlja2V0cyA6IG5iVGlja2V0cywgc2hvdyA6IGRpdlNob3cuaWR9O1xuLy8gICBhd2FpdCB1cGRhdGUodGlja2V0c0RhdGEpO1xuLy8gfTtcbiJdLCJuYW1lcyI6WyJ1c2VybG9naW4iLCJ1c2VycGFzc3dvcmQiLCJ1c2VybmFtZSIsInNldHVwIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImdldFVzZXIiLCJkaXNwbGF5U2hvd0xpc3QiLCJkaXNwbGF5VGlja2V0c0xpc3QiLCJhZGRFdmVudExpc3RlbmVyIiwibG9nb3V0Iiwid2luZG93IiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVxdWVzdE9wdGlvbnMiLCJyZXNwb25zZSIsInVzZXIiLCJlcnJvciIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJtZXRob2QiLCJmZXRjaCIsInNlbnQiLCJvayIsImpzb24iLCJ0ZXh0Q29udGVudCIsIm5hbWUiLCJoYW5kbGVFcnJvciIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9yZWYyIiwiX2NhbGxlZTIiLCJhbGxTaG93cyIsImxpc3QiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJmb3JFYWNoIiwic2hvdyIsImFkZFRvTGlzdCIsIm5vZGUiLCJjcmVhdGVFbGVtZW50IiwiaWQiLCJfaWQiLCJzcGFuIiwiY2xhc3NOYW1lIiwiY29uY2F0IiwicGxhY2VzIiwiZGVzY3JpcHRpb24iLCJhcHBlbmRDaGlsZCIsInRpY2tldHNCdXR0b24iLCJhZGRUaWNrZXRTaG93IiwidXBkYXRlIiwiX3JlZjMiLCJfY2FsbGVlMyIsImRhdGEiLCJib2R5IiwidXBkYXRlZFVzZXIiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJKU09OIiwic3RyaW5naWZ5IiwiaGVhZGVycyIsImNvbnNvbGUiLCJsb2ciLCJfeCIsIl9yZWY0IiwiX2NhbGxlZTQiLCJhbGxUaWNrZXRzIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwidGlja2V0IiwiYWRkVGlja2V0c1RvTGlzdCIsImNyZWF0ZURpdlRpY2tldHMiLCJfcmVmNSIsIl9jYWxsZWU1IiwiZXZlbnQiLCJkaXZTaG93Iiwic2hvd0lkIiwibmJUaWNrZXRzIiwiX2NhbGxlZTUkIiwiX2NvbnRleHQ1IiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsInNwbGl0IiwidGlja2V0cyIsImFkZFRvVGlja2V0c0xpc3QiLCJfeDIiLCJzcCIsInF1ZXJ5U2VsZWN0b3IiLCJwYXJzZUludCIsImFubnVsYXRpb25CdXR0b24iLCJjYW5jZWxUaWNrZXRTaG93IiwiX3JlZjYiLCJfY2FsbGVlNiIsInRpY2tldERpdiIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsInJlbW92ZUNoaWxkIiwiX3gzIiwiX3JlZjciLCJfY2FsbGVlNyIsIl9jYWxsZWU3JCIsIl9jb250ZXh0NyIsImxvY2F0aW9uIiwiaHJlZiIsInJlZGlyZWN0VG8iLCJtZXNzYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/scripts/user.client.js\n')},"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]);\nfunction _regeneratorRuntime() {\n "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = "function" == typeof Symbol ? Symbol : {},\n a = i.iterator || "@@iterator",\n c = i.asyncIterator || "@@asyncIterator",\n u = i.toStringTag || "@@toStringTag";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, "");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, "_invoke", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: "normal",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: "throw",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = "suspendedStart",\n l = "suspendedYield",\n f = "executing",\n s = "completed",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n ["next", "throw", "return"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if ("throw" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {\n invoke("next", t, i, a);\n }, function (t) {\n invoke("throw", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke("throw", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, "_invoke", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error("Generator is already running");\n if (o === s) {\n if ("throw" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else "return" === n.method && n.abrupt("return", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if ("normal" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a \'" + n + "\' method")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = "normal", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: "root"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || "" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if ("function" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + " is not iterable");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, "constructor", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {\n var e = "function" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {\n return this;\n }), define(g, "toString", function () {\n return "[object Generator]";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if ("throw" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if ("root" === i.tryLoc) return handle("end");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, "catchLoc"),\n u = n.call(i, "finallyLoc");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error("try statement without catch or finally");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if ("throw" === t.type) throw t.arg;\n return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n "catch": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if ("throw" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error("illegal catch attempt");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, "next" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvclJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzR0FBaUM7QUFDL0M7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsaURBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYTtBQUNiLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixlQUFlO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0Esc0NBQXNDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL2FwcC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcz85MDU1Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4vdHlwZW9mLmpzXCIpW1wiZGVmYXVsdFwiXTtcbmZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gIFwidXNlIHN0cmljdFwiOyAvKiEgcmVnZW5lcmF0b3ItcnVudGltZSAtLSBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4gLS0gbGljZW5zZSAoTUlUKTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9MSUNFTlNFICovXG4gIG1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yUnVudGltZSA9IGZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gICAgcmV0dXJuIGU7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cztcbiAgdmFyIHQsXG4gICAgZSA9IHt9LFxuICAgIHIgPSBPYmplY3QucHJvdG90eXBlLFxuICAgIG4gPSByLmhhc093blByb3BlcnR5LFxuICAgIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgfHwgZnVuY3Rpb24gKHQsIGUsIHIpIHtcbiAgICAgIHRbZV0gPSByLnZhbHVlO1xuICAgIH0sXG4gICAgaSA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sID8gU3ltYm9sIDoge30sXG4gICAgYSA9IGkuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCIsXG4gICAgYyA9IGkuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiLFxuICAgIHUgPSBpLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuICBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgZSwge1xuICAgICAgdmFsdWU6IHIsXG4gICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICB3cml0YWJsZTogITBcbiAgICB9KSwgdFtlXTtcbiAgfVxuICB0cnkge1xuICAgIGRlZmluZSh7fSwgXCJcIik7XG4gIH0gY2F0Y2ggKHQpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgICAgcmV0dXJuIHRbZV0gPSByO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gd3JhcCh0LCBlLCByLCBuKSB7XG4gICAgdmFyIGkgPSBlICYmIGUucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gZSA6IEdlbmVyYXRvcixcbiAgICAgIGEgPSBPYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSxcbiAgICAgIGMgPSBuZXcgQ29udGV4dChuIHx8IFtdKTtcbiAgICByZXR1cm4gbyhhLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IG1ha2VJbnZva2VNZXRob2QodCwgciwgYylcbiAgICB9KSwgYTtcbiAgfVxuICBmdW5jdGlvbiB0cnlDYXRjaCh0LCBlLCByKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwibm9ybWFsXCIsXG4gICAgICAgIGFyZzogdC5jYWxsKGUsIHIpXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKHQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwidGhyb3dcIixcbiAgICAgICAgYXJnOiB0XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBlLndyYXAgPSB3cmFwO1xuICB2YXIgaCA9IFwic3VzcGVuZGVkU3RhcnRcIixcbiAgICBsID0gXCJzdXNwZW5kZWRZaWVsZFwiLFxuICAgIGYgPSBcImV4ZWN1dGluZ1wiLFxuICAgIHMgPSBcImNvbXBsZXRlZFwiLFxuICAgIHkgPSB7fTtcbiAgZnVuY3Rpb24gR2VuZXJhdG9yKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb24oKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpIHt9XG4gIHZhciBwID0ge307XG4gIGRlZmluZShwLCBhLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pO1xuICB2YXIgZCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICB2ID0gZCAmJiBkKGQodmFsdWVzKFtdKSkpO1xuICB2ICYmIHYgIT09IHIgJiYgbi5jYWxsKHYsIGEpICYmIChwID0gdik7XG4gIHZhciBnID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID0gR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUocCk7XG4gIGZ1bmN0aW9uIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyh0KSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRlZmluZSh0LCBlLCBmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKGUsIHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gQXN5bmNJdGVyYXRvcih0LCBlKSB7XG4gICAgZnVuY3Rpb24gaW52b2tlKHIsIG8sIGksIGEpIHtcbiAgICAgIHZhciBjID0gdHJ5Q2F0Y2godFtyXSwgdCwgbyk7XG4gICAgICBpZiAoXCJ0aHJvd1wiICE9PSBjLnR5cGUpIHtcbiAgICAgICAgdmFyIHUgPSBjLmFyZyxcbiAgICAgICAgICBoID0gdS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGggJiYgXCJvYmplY3RcIiA9PSBfdHlwZW9mKGgpICYmIG4uY2FsbChoLCBcIl9fYXdhaXRcIikgPyBlLnJlc29sdmUoaC5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB0LCBpLCBhKTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSkgOiBlLnJlc29sdmUoaCkudGhlbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHUudmFsdWUgPSB0LCBpKHUpO1xuICAgICAgICB9LCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHJldHVybiBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBhKGMuYXJnKTtcbiAgICB9XG4gICAgdmFyIHI7XG4gICAgbyh0aGlzLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlKHQsIG4pIHtcbiAgICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBlKGZ1bmN0aW9uIChlLCByKSB7XG4gICAgICAgICAgICBpbnZva2UodCwgbiwgZSwgcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHIgPSByID8gci50aGVuKGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLCBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZykgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoZSwgciwgbikge1xuICAgIHZhciBvID0gaDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGksIGEpIHtcbiAgICAgIGlmIChvID09PSBmKSB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgaWYgKG8gPT09IHMpIHtcbiAgICAgICAgaWYgKFwidGhyb3dcIiA9PT0gaSkgdGhyb3cgYTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdCxcbiAgICAgICAgICBkb25lOiAhMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZm9yIChuLm1ldGhvZCA9IGksIG4uYXJnID0gYTs7KSB7XG4gICAgICAgIHZhciBjID0gbi5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICB2YXIgdSA9IG1heWJlSW52b2tlRGVsZWdhdGUoYywgbik7XG4gICAgICAgICAgaWYgKHUpIHtcbiAgICAgICAgICAgIGlmICh1ID09PSB5KSBjb250aW51ZTtcbiAgICAgICAgICAgIHJldHVybiB1O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJuZXh0XCIgPT09IG4ubWV0aG9kKSBuLnNlbnQgPSBuLl9zZW50ID0gbi5hcmc7ZWxzZSBpZiAoXCJ0aHJvd1wiID09PSBuLm1ldGhvZCkge1xuICAgICAgICAgIGlmIChvID09PSBoKSB0aHJvdyBvID0gcywgbi5hcmc7XG4gICAgICAgICAgbi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyk7XG4gICAgICAgIH0gZWxzZSBcInJldHVyblwiID09PSBuLm1ldGhvZCAmJiBuLmFicnVwdChcInJldHVyblwiLCBuLmFyZyk7XG4gICAgICAgIG8gPSBmO1xuICAgICAgICB2YXIgcCA9IHRyeUNhdGNoKGUsIHIsIG4pO1xuICAgICAgICBpZiAoXCJub3JtYWxcIiA9PT0gcC50eXBlKSB7XG4gICAgICAgICAgaWYgKG8gPSBuLmRvbmUgPyBzIDogbCwgcC5hcmcgPT09IHkpIGNvbnRpbnVlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcC5hcmcsXG4gICAgICAgICAgICBkb25lOiBuLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIFwidGhyb3dcIiA9PT0gcC50eXBlICYmIChvID0gcywgbi5tZXRob2QgPSBcInRocm93XCIsIG4uYXJnID0gcC5hcmcpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSB7XG4gICAgdmFyIG4gPSByLm1ldGhvZCxcbiAgICAgIG8gPSBlLml0ZXJhdG9yW25dO1xuICAgIGlmIChvID09PSB0KSByZXR1cm4gci5kZWxlZ2F0ZSA9IG51bGwsIFwidGhyb3dcIiA9PT0gbiAmJiBlLml0ZXJhdG9yW1wicmV0dXJuXCJdICYmIChyLm1ldGhvZCA9IFwicmV0dXJuXCIsIHIuYXJnID0gdCwgbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSwgXCJ0aHJvd1wiID09PSByLm1ldGhvZCkgfHwgXCJyZXR1cm5cIiAhPT0gbiAmJiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ1wiICsgbiArIFwiJyBtZXRob2RcIikpLCB5O1xuICAgIHZhciBpID0gdHJ5Q2F0Y2gobywgZS5pdGVyYXRvciwgci5hcmcpO1xuICAgIGlmIChcInRocm93XCIgPT09IGkudHlwZSkgcmV0dXJuIHIubWV0aG9kID0gXCJ0aHJvd1wiLCByLmFyZyA9IGkuYXJnLCByLmRlbGVnYXRlID0gbnVsbCwgeTtcbiAgICB2YXIgYSA9IGkuYXJnO1xuICAgIHJldHVybiBhID8gYS5kb25lID8gKHJbZS5yZXN1bHROYW1lXSA9IGEudmFsdWUsIHIubmV4dCA9IGUubmV4dExvYywgXCJyZXR1cm5cIiAhPT0gci5tZXRob2QgJiYgKHIubWV0aG9kID0gXCJuZXh0XCIsIHIuYXJnID0gdCksIHIuZGVsZWdhdGUgPSBudWxsLCB5KSA6IGEgOiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLCByLmRlbGVnYXRlID0gbnVsbCwgeSk7XG4gIH1cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHtcbiAgICAgIHRyeUxvYzogdFswXVxuICAgIH07XG4gICAgMSBpbiB0ICYmIChlLmNhdGNoTG9jID0gdFsxXSksIDIgaW4gdCAmJiAoZS5maW5hbGx5TG9jID0gdFsyXSwgZS5hZnRlckxvYyA9IHRbM10pLCB0aGlzLnRyeUVudHJpZXMucHVzaChlKTtcbiAgfVxuICBmdW5jdGlvbiByZXNldFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHQuY29tcGxldGlvbiB8fCB7fTtcbiAgICBlLnR5cGUgPSBcIm5vcm1hbFwiLCBkZWxldGUgZS5hcmcsIHQuY29tcGxldGlvbiA9IGU7XG4gIH1cbiAgZnVuY3Rpb24gQ29udGV4dCh0KSB7XG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3tcbiAgICAgIHRyeUxvYzogXCJyb290XCJcbiAgICB9XSwgdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyksIHRoaXMucmVzZXQoITApO1xuICB9XG4gIGZ1bmN0aW9uIHZhbHVlcyhlKSB7XG4gICAgaWYgKGUgfHwgXCJcIiA9PT0gZSkge1xuICAgICAgdmFyIHIgPSBlW2FdO1xuICAgICAgaWYgKHIpIHJldHVybiByLmNhbGwoZSk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLm5leHQpIHJldHVybiBlO1xuICAgICAgaWYgKCFpc05hTihlLmxlbmd0aCkpIHtcbiAgICAgICAgdmFyIG8gPSAtMSxcbiAgICAgICAgICBpID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIGZvciAoOyArK28gPCBlLmxlbmd0aDspIGlmIChuLmNhbGwoZSwgbykpIHJldHVybiBuZXh0LnZhbHVlID0gZVtvXSwgbmV4dC5kb25lID0gITEsIG5leHQ7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC52YWx1ZSA9IHQsIG5leHQuZG9uZSA9ICEwLCBuZXh0O1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBpLm5leHQgPSBpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyBcIiBpcyBub3QgaXRlcmFibGVcIik7XG4gIH1cbiAgcmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBvKGcsIFwiY29uc3RydWN0b3JcIiwge1xuICAgIHZhbHVlOiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICBjb25maWd1cmFibGU6ICEwXG4gIH0pLCBvKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBcImNvbnN0cnVjdG9yXCIsIHtcbiAgICB2YWx1ZTogR2VuZXJhdG9yRnVuY3Rpb24sXG4gICAgY29uZmlndXJhYmxlOiAhMFxuICB9KSwgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBkZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIHUsIFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksIGUuaXNHZW5lcmF0b3JGdW5jdGlvbiA9IGZ1bmN0aW9uICh0KSB7XG4gICAgdmFyIGUgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHQgJiYgdC5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gISFlICYmIChlID09PSBHZW5lcmF0b3JGdW5jdGlvbiB8fCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIgPT09IChlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSkpO1xuICB9LCBlLm1hcmsgPSBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YodCwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpIDogKHQuX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIGRlZmluZSh0LCB1LCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSwgdC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKGcpLCB0O1xuICB9LCBlLmF3cmFwID0gZnVuY3Rpb24gKHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hd2FpdDogdFxuICAgIH07XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksIGRlZmluZShBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSwgYywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZS5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvciwgZS5hc3luYyA9IGZ1bmN0aW9uICh0LCByLCBuLCBvLCBpKSB7XG4gICAgdm9pZCAwID09PSBpICYmIChpID0gUHJvbWlzZSk7XG4gICAgdmFyIGEgPSBuZXcgQXN5bmNJdGVyYXRvcih3cmFwKHQsIHIsIG4sIG8pLCBpKTtcbiAgICByZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpID8gYSA6IGEubmV4dCgpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgIHJldHVybiB0LmRvbmUgPyB0LnZhbHVlIDogYS5uZXh0KCk7XG4gICAgfSk7XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSwgZGVmaW5lKGcsIHUsIFwiR2VuZXJhdG9yXCIpLCBkZWZpbmUoZywgYSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZGVmaW5lKGcsIFwidG9TdHJpbmdcIiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBcIltvYmplY3QgR2VuZXJhdG9yXVwiO1xuICB9KSwgZS5rZXlzID0gZnVuY3Rpb24gKHQpIHtcbiAgICB2YXIgZSA9IE9iamVjdCh0KSxcbiAgICAgIHIgPSBbXTtcbiAgICBmb3IgKHZhciBuIGluIGUpIHIucHVzaChuKTtcbiAgICByZXR1cm4gci5yZXZlcnNlKCksIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICBmb3IgKDsgci5sZW5ndGg7KSB7XG4gICAgICAgIHZhciB0ID0gci5wb3AoKTtcbiAgICAgICAgaWYgKHQgaW4gZSkgcmV0dXJuIG5leHQudmFsdWUgPSB0LCBuZXh0LmRvbmUgPSAhMSwgbmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0LmRvbmUgPSAhMCwgbmV4dDtcbiAgICB9O1xuICB9LCBlLnZhbHVlcyA9IHZhbHVlcywgQ29udGV4dC5wcm90b3R5cGUgPSB7XG4gICAgY29uc3RydWN0b3I6IENvbnRleHQsXG4gICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KGUpIHtcbiAgICAgIGlmICh0aGlzLnByZXYgPSAwLCB0aGlzLm5leHQgPSAwLCB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdCwgdGhpcy5kb25lID0gITEsIHRoaXMuZGVsZWdhdGUgPSBudWxsLCB0aGlzLm1ldGhvZCA9IFwibmV4dFwiLCB0aGlzLmFyZyA9IHQsIHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKHJlc2V0VHJ5RW50cnkpLCAhZSkgZm9yICh2YXIgciBpbiB0aGlzKSBcInRcIiA9PT0gci5jaGFyQXQoMCkgJiYgbi5jYWxsKHRoaXMsIHIpICYmICFpc05hTigrci5zbGljZSgxKSkgJiYgKHRoaXNbcl0gPSB0KTtcbiAgICB9LFxuICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICB0aGlzLmRvbmUgPSAhMDtcbiAgICAgIHZhciB0ID0gdGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247XG4gICAgICBpZiAoXCJ0aHJvd1wiID09PSB0LnR5cGUpIHRocm93IHQuYXJnO1xuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuICAgIGRpc3BhdGNoRXhjZXB0aW9uOiBmdW5jdGlvbiBkaXNwYXRjaEV4Y2VwdGlvbihlKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB0aHJvdyBlO1xuICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKG4sIG8pIHtcbiAgICAgICAgcmV0dXJuIGEudHlwZSA9IFwidGhyb3dcIiwgYS5hcmcgPSBlLCByLm5leHQgPSBuLCBvICYmIChyLm1ldGhvZCA9IFwibmV4dFwiLCByLmFyZyA9IHQpLCAhIW87XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBvID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IG8gPj0gMDsgLS1vKSB7XG4gICAgICAgIHZhciBpID0gdGhpcy50cnlFbnRyaWVzW29dLFxuICAgICAgICAgIGEgPSBpLmNvbXBsZXRpb247XG4gICAgICAgIGlmIChcInJvb3RcIiA9PT0gaS50cnlMb2MpIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIGlmIChpLnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgYyA9IG4uY2FsbChpLCBcImNhdGNoTG9jXCIpLFxuICAgICAgICAgICAgdSA9IG4uY2FsbChpLCBcImZpbmFsbHlMb2NcIik7XG4gICAgICAgICAgaWYgKGMgJiYgdSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYykge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXUpIHRocm93IG5ldyBFcnJvcihcInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5XCIpO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWJydXB0OiBmdW5jdGlvbiBhYnJ1cHQodCwgZSkge1xuICAgICAgZm9yICh2YXIgciA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyByID49IDA7IC0tcikge1xuICAgICAgICB2YXIgbyA9IHRoaXMudHJ5RW50cmllc1tyXTtcbiAgICAgICAgaWYgKG8udHJ5TG9jIDw9IHRoaXMucHJldiAmJiBuLmNhbGwobywgXCJmaW5hbGx5TG9jXCIpICYmIHRoaXMucHJldiA8IG8uZmluYWxseUxvYykge1xuICAgICAgICAgIHZhciBpID0gbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSAmJiAoXCJicmVha1wiID09PSB0IHx8IFwiY29udGludWVcIiA9PT0gdCkgJiYgaS50cnlMb2MgPD0gZSAmJiBlIDw9IGkuZmluYWxseUxvYyAmJiAoaSA9IG51bGwpO1xuICAgICAgdmFyIGEgPSBpID8gaS5jb21wbGV0aW9uIDoge307XG4gICAgICByZXR1cm4gYS50eXBlID0gdCwgYS5hcmcgPSBlLCBpID8gKHRoaXMubWV0aG9kID0gXCJuZXh0XCIsIHRoaXMubmV4dCA9IGkuZmluYWxseUxvYywgeSkgOiB0aGlzLmNvbXBsZXRlKGEpO1xuICAgIH0sXG4gICAgY29tcGxldGU6IGZ1bmN0aW9uIGNvbXBsZXRlKHQsIGUpIHtcbiAgICAgIGlmIChcInRocm93XCIgPT09IHQudHlwZSkgdGhyb3cgdC5hcmc7XG4gICAgICByZXR1cm4gXCJicmVha1wiID09PSB0LnR5cGUgfHwgXCJjb250aW51ZVwiID09PSB0LnR5cGUgPyB0aGlzLm5leHQgPSB0LmFyZyA6IFwicmV0dXJuXCIgPT09IHQudHlwZSA/ICh0aGlzLnJ2YWwgPSB0aGlzLmFyZyA9IHQuYXJnLCB0aGlzLm1ldGhvZCA9IFwicmV0dXJuXCIsIHRoaXMubmV4dCA9IFwiZW5kXCIpIDogXCJub3JtYWxcIiA9PT0gdC50eXBlICYmIGUgJiYgKHRoaXMubmV4dCA9IGUpLCB5O1xuICAgIH0sXG4gICAgZmluaXNoOiBmdW5jdGlvbiBmaW5pc2godCkge1xuICAgICAgZm9yICh2YXIgZSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBlID49IDA7IC0tZSkge1xuICAgICAgICB2YXIgciA9IHRoaXMudHJ5RW50cmllc1tlXTtcbiAgICAgICAgaWYgKHIuZmluYWxseUxvYyA9PT0gdCkgcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLCByLmFmdGVyTG9jKSwgcmVzZXRUcnlFbnRyeShyKSwgeTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiY2F0Y2hcIjogZnVuY3Rpb24gX2NhdGNoKHQpIHtcbiAgICAgIGZvciAodmFyIGUgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgZSA+PSAwOyAtLWUpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLnRyeUVudHJpZXNbZV07XG4gICAgICAgIGlmIChyLnRyeUxvYyA9PT0gdCkge1xuICAgICAgICAgIHZhciBuID0gci5jb21wbGV0aW9uO1xuICAgICAgICAgIGlmIChcInRocm93XCIgPT09IG4udHlwZSkge1xuICAgICAgICAgICAgdmFyIG8gPSBuLmFyZztcbiAgICAgICAgICAgIHJlc2V0VHJ5RW50cnkocik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIik7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbiBkZWxlZ2F0ZVlpZWxkKGUsIHIsIG4pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlbGVnYXRlID0ge1xuICAgICAgICBpdGVyYXRvcjogdmFsdWVzKGUpLFxuICAgICAgICByZXN1bHROYW1lOiByLFxuICAgICAgICBuZXh0TG9jOiBuXG4gICAgICB9LCBcIm5leHRcIiA9PT0gdGhpcy5tZXRob2QgJiYgKHRoaXMuYXJnID0gdCksIHk7XG4gICAgfVxuICB9LCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcmVnZW5lcmF0b3JSdW50aW1lLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\n')},"./node_modules/@babel/runtime/helpers/typeof.js":module=>{eval('function _typeof(o) {\n "@babel/helpers - typeof";\n\n return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLDBCQUEwQix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanM/MjY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfdHlwZW9mKG8pIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG87XG4gIH0gOiBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMpLCBfdHlwZW9mKG8pO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n')},"./node_modules/@babel/runtime/regenerator/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === "object") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function("r", "regeneratorRuntime = r")(runtime);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsY0FBYyxtQkFBTyxDQUFDLGtHQUErQjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanM/MGRlZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPKEJhYmVsIDgpOiBSZW1vdmUgdGhpcyBmaWxlLlxuXG52YXIgcnVudGltZSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZVwiKSgpO1xubW9kdWxlLmV4cG9ydHMgPSBydW50aW1lO1xuXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL3BhY2thZ2VzL3J1bnRpbWUvcnVudGltZS5qcyNMNzM2PVxudHJ5IHtcbiAgcmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbn0gY2F0Y2ggKGFjY2lkZW50YWxTdHJpY3RNb2RlKSB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gXCJvYmplY3RcIikge1xuICAgIGdsb2JhbFRoaXMucmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbiAgfSBlbHNlIHtcbiAgICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n')},"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);\n }\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/YzE0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n')}},__webpack_module_cache__={};function __webpack_require__(n){var Q=__webpack_module_cache__[n];if(void 0!==Q)return Q.exports;var B=__webpack_module_cache__[n]={exports:{}};return __webpack_modules__[n](B,B.exports,__webpack_require__),B.exports}__webpack_require__.n=n=>{var Q=n&&n.__esModule?()=>n.default:()=>n;return __webpack_require__.d(Q,{a:Q}),Q},__webpack_require__.d=(n,Q)=>{for(var B in Q)__webpack_require__.o(Q,B)&&!__webpack_require__.o(n,B)&&Object.defineProperty(n,B,{enumerable:!0,get:Q[B]})},__webpack_require__.o=(n,Q)=>Object.prototype.hasOwnProperty.call(n,Q),__webpack_require__.r=n=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/scripts/user.client.js")})(); \ No newline at end of file +(()=>{var __webpack_modules__={"./src/scripts/user.client.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar username;\nvar setup = function setup() {\n username = document.getElementById(\'username\');\n getUser();\n displayShowList();\n displayTicketsList();\n document.getElementById(\'logout\').addEventListener(\'click\', logout);\n};\nwindow.addEventListener(\'DOMContentLoaded\', setup);\nvar getUser = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee() {\n var requestOptions, response, user, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context.next = 3;\n return fetch(\'/me\', requestOptions);\n case 3:\n response = _context.sent;\n if (!response.ok) {\n _context.next = 11;\n break;\n }\n _context.next = 7;\n return response.json();\n case 7:\n user = _context.sent;\n username.textContent = user.name;\n _context.next = 15;\n break;\n case 11:\n _context.next = 13;\n return response.json();\n case 13:\n error = _context.sent;\n handleError(error);\n case 15:\n case "end":\n return _context.stop();\n }\n }, _callee);\n }));\n return function getUser() {\n return _ref.apply(this, arguments);\n };\n}();\nvar displayShowList = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2() {\n var requestOptions, response, allShows, list, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context2.next = 3;\n return fetch(\'/admin/items\', requestOptions);\n case 3:\n response = _context2.sent;\n if (!response.ok) {\n _context2.next = 13;\n break;\n }\n _context2.next = 7;\n return response.json();\n case 7:\n allShows = _context2.sent;\n //(ici : code exploitation de allShows)\n list = document.getElementById(\'list\');\n list.textContent = \'\';\n allShows.forEach(function (show) {\n return addToList(show, list);\n });\n _context2.next = 17;\n break;\n case 13:\n _context2.next = 15;\n return response.json();\n case 15:\n error = _context2.sent;\n handleError(error);\n case 17:\n case "end":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function displayShowList() {\n return _ref2.apply(this, arguments);\n };\n}();\nvar addToList = function addToList(show, list) {\n var node = document.createElement(\'div\');\n node.id = show._id;\n var span = document.createElement(\'span\');\n span.className = "places";\n span.textContent = "".concat(show.places, " places");\n node.textContent = "".concat(show.description, " : ");\n node.appendChild(span);\n //\n var ticketsButton = document.createElement(\'button\');\n ticketsButton.className = \'ticket\';\n ticketsButton.addEventListener(\'click\', addTicketShow);\n ticketsButton.textContent = \'+1 tickets\';\n node.appendChild(ticketsButton);\n //\n list.appendChild(node);\n};\nvar update = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee3(data) {\n var body, requestOptions, response, updatedUser, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n body = JSON.stringify(data);\n requestOptions = {\n method: \'PUT\',\n headers: {\n "Content-Type": "application/json"\n },\n body: body\n };\n _context3.next = 4;\n return fetch(\'/tickets\', requestOptions);\n case 4:\n response = _context3.sent;\n if (!response.ok) {\n _context3.next = 12;\n break;\n }\n _context3.next = 8;\n return response.json();\n case 8:\n updatedUser = _context3.sent;\n console.log("show infos updated : ".concat(JSON.stringify(updatedUser)));\n _context3.next = 16;\n break;\n case 12:\n _context3.next = 14;\n return response.json();\n case 14:\n error = _context3.sent;\n handleError(error);\n case 16:\n case "end":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function update(_x) {\n return _ref3.apply(this, arguments);\n };\n}();\nvar displayTicketsList = /*#__PURE__*/function () {\n var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee4() {\n var requestOptions, response, allTickets, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context4.next = 3;\n return fetch(\'/tickets\', requestOptions);\n case 3:\n response = _context4.sent;\n if (!response.ok) {\n _context4.next = 11;\n break;\n }\n _context4.next = 7;\n return response.json();\n case 7:\n allTickets = _context4.sent;\n allTickets.forEach(function (ticket) {\n return addTicketsToList(ticket);\n });\n _context4.next = 15;\n break;\n case 11:\n _context4.next = 13;\n return response.json();\n case 13:\n error = _context4.sent;\n handleError(error);\n case 15:\n case "end":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function displayTicketsList() {\n return _ref4.apply(this, arguments);\n };\n}();\nvar addTicketsToList = function addTicketsToList(ticket) {\n var list = document.getElementById("showTickets");\n createDivTickets(ticket, list);\n};\nvar addTicketShow = /*#__PURE__*/function () {\n var _ref5 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee5(event) {\n var divShow, showId, description, ticket, list, nbTickets;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n divShow = event.target.parentElement;\n showId = divShow.id;\n description = divShow.textContent.split(\':\')[0];\n ticket = {\n show: showId,\n description: description,\n tickets: 1\n };\n list = document.getElementById("showTickets");\n nbTickets = addToTicketsList(ticket, list);\n ticket.tickets = nbTickets;\n _context5.next = 9;\n return update(ticket);\n case 9:\n case "end":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function addTicketShow(_x2) {\n return _ref5.apply(this, arguments);\n };\n}();\nvar addToTicketsList = function addToTicketsList(ticket, list) {\n var nbTickets;\n if (document.getElementById(ticket.show + "-t") === null) {\n createDivTickets(ticket, list);\n nbTickets = 1;\n } else {\n var sp = document.getElementById(ticket.show + "-t").querySelector(".tickets");\n sp.textContent = 1 + parseInt(sp.textContent);\n nbTickets = parseInt(sp.textContent);\n }\n return nbTickets;\n};\nvar createDivTickets = function createDivTickets(ticket, list) {\n var showId = ticket.show + "-t";\n var node = document.createElement(\'div\');\n node.id = showId;\n node.textContent = "".concat(ticket.description);\n var span = document.createElement(\'span\');\n span.className = "tickets";\n span.textContent = ticket.tickets;\n node.appendChild(span);\n var annulationButton = document.createElement(\'button\');\n annulationButton.className = \'annulation\';\n annulationButton.textContent = "Annuler";\n annulationButton.addEventListener("click", cancelTicketShow);\n node.appendChild(annulationButton);\n list.appendChild(node);\n};\nvar cancelTicketShow = /*#__PURE__*/function () {\n var _ref6 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee6(event) {\n var list, ticketDiv, showId, body, requestOptions, response, updatedUser, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n list = document.getElementById("showTickets");\n ticketDiv = event.target.parentElement;\n list.removeChild(ticketDiv);\n showId = ticketDiv.id.split(\'-\')[0];\n body = JSON.stringify(showId);\n requestOptions = {\n method: \'DELETE\'\n };\n _context6.next = 8;\n return fetch("/".concat(showId), requestOptions);\n case 8:\n response = _context6.sent;\n if (!response.ok) {\n _context6.next = 16;\n break;\n }\n _context6.next = 12;\n return response.json();\n case 12:\n updatedUser = _context6.sent;\n console.log("deleted ticket id : ".concat(JSON.stringify(updatedUser)));\n _context6.next = 20;\n break;\n case 16:\n _context6.next = 18;\n return response.json();\n case 18:\n error = _context6.sent;\n handleError(error);\n case 20:\n case "end":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return function cancelTicketShow(_x3) {\n return _ref6.apply(this, arguments);\n };\n}();\nvar logout = /*#__PURE__*/function () {\n var _ref7 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee7() {\n var requestOptions, response;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context7.next = 3;\n return fetch("/access/logout", requestOptions);\n case 3:\n response = _context7.sent;\n if (response.ok) {\n window.location.href = \'/\';\n }\n case 5:\n case "end":\n return _context7.stop();\n }\n }, _callee7);\n }));\n return function logout() {\n return _ref7.apply(this, arguments);\n };\n}();\nvar handleError = function handleError(error) {\n if (error.redirectTo) window.location.href = error.redirectTo;else console.log("erreur : ".concat(error.message));\n};\n\n// const update = async (data) => {\n// const body = JSON.stringify(data);\n// const requestOptions = {\n// method :\'PUT\',\n// headers : { "Content-Type": "application/json" },\n// body : body\n// };\n// const response = await fetch(\'/tickets\', requestOptions);\n// if (response.ok) {\n// const updatedUser = await response.json();\n// console.log(`show infos updated : ${JSON.stringify(updatedUser)}`);\n// }\n// else {\n// const error = await response.json();\n// handleError(error);\n// }\n// }\n\n// const displayTicketsList = async () => {\n// const requestOptions = {\n// method : \'GET\'\n// };\n// const response = await fetch(\'/tickets\', requestOptions)\n// const allTickets = await response.json();\n// allTickets.forEach( ticket => addTicketsToList(ticket) );\n// }\n\n// const addTicketsToList = (ticket) => {\n// const list = document.getElementById("showTickets");\n// createDivTickets(ticket, list);\n// } \n\n// const addTicketShow = async (event) => {\n// const divShow = event.target.parentElement;\n// const nbTickets = addToTicketsList(divShow);\n// const ticketsData = {description : divShow.textContent.split(\':\')[0], tickets : nbTickets, show : divShow.id};\n// await update(ticketsData);\n// };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SUFBQTtNQUFBO0lBQUEsR0FBQXlFLFFBQUE7RUFBQSxDQUNGO0VBQUEsZ0JBUktqRyxNQUFNQSxDQUFBO0lBQUEsT0FBQWdHLEtBQUEsQ0FBQXZFLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FRWDtBQUVELElBQU1ILFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFHYixLQUFLLEVBQUk7RUFDM0IsSUFBSUEsS0FBSyxDQUFDNEYsVUFBVSxFQUNsQnJHLE1BQU0sQ0FBQ21HLFFBQVEsQ0FBQ0MsSUFBSSxHQUFFM0YsS0FBSyxDQUFDNEYsVUFBVSxDQUFDLEtBRXZDM0MsT0FBTyxDQUFDQyxHQUFHLGFBQUFsQixNQUFBLENBQWFoQyxLQUFLLENBQUM2RixPQUFPLENBQUUsQ0FBQztBQUM1QyxDQUFDOztBQVNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9zcmMvc2NyaXB0cy91c2VyLmNsaWVudC5qcz9iNjIzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCB1c2VybmFtZTtcblxuY29uc3Qgc2V0dXAgPSAoKSA9PiB7XG4gIHVzZXJuYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZXJuYW1lJyk7XG4gIGdldFVzZXIoKTtcbiAgZGlzcGxheVNob3dMaXN0KCk7XG4gIGRpc3BsYXlUaWNrZXRzTGlzdCgpO1xuICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nb3V0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBsb2dvdXQpO1xufVxud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBzZXR1cCk7XG5cbmNvbnN0IGdldFVzZXIgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDonR0VUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvbWUnLCByZXF1ZXN0T3B0aW9ucyk7XG4gIGlmIChyZXNwb25zZS5vaykge1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgdXNlcm5hbWUudGV4dENvbnRlbnQgPSB1c2VyLm5hbWU7XG4gIH1cbiAgZWxzZSB7XG4gICAgY29uc3QgZXJyb3IgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xuICB9XG59XG5cbmNvbnN0IGRpc3BsYXlTaG93TGlzdCA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOiAnR0VUJ1xuICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hZG1pbi9pdGVtcycsIHJlcXVlc3RPcHRpb25zKVxuICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICBjb25zdCBhbGxTaG93cyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAvLyhpY2kgOiBjb2RlICBleHBsb2l0YXRpb24gZGUgYWxsU2hvd3MpXG4gICAgY29uc3QgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaXN0Jyk7XG4gICAgbGlzdC50ZXh0Q29udGVudCA9ICcnO1xuICAgIGFsbFNob3dzLmZvckVhY2goIHNob3cgPT4gYWRkVG9MaXN0KHNob3csIGxpc3QpICk7ICBcbiAgfVxuICBlbHNlIHtcbiAgICBjb25zdCBlcnJvciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBoYW5kbGVFcnJvcihlcnJvcik7XG4gIH1cbn1cblxuY29uc3QgYWRkVG9MaXN0ID0gKHNob3csbGlzdCkgPT4ge1xuY29uc3Qgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xubm9kZS5pZCA9IHNob3cuX2lkO1xuY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbnNwYW4uY2xhc3NOYW1lID0gXCJwbGFjZXNcIjtcbnNwYW4udGV4dENvbnRlbnQgPSBgJHtzaG93LnBsYWNlc30gcGxhY2VzYFxubm9kZS50ZXh0Q29udGVudCA9IGAke3Nob3cuZGVzY3JpcHRpb259IDogYDtcbm5vZGUuYXBwZW5kQ2hpbGQoc3Bhbik7XG4vL1xuY29uc3QgdGlja2V0c0J1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xudGlja2V0c0J1dHRvbi5jbGFzc05hbWUgPSAndGlja2V0JztcbnRpY2tldHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhZGRUaWNrZXRTaG93KTtcbnRpY2tldHNCdXR0b24udGV4dENvbnRlbnQgPSAnKzEgdGlja2V0cyc7XG5ub2RlLmFwcGVuZENoaWxkKHRpY2tldHNCdXR0b24pO1xuLy9cbmxpc3QuYXBwZW5kQ2hpbGQobm9kZSk7XG59XG5cbmNvbnN0IHVwZGF0ZSA9ICBhc3luYyAoZGF0YSkgPT4ge1xuICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J1BVVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycyA6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICBib2R5IDogYm9keVxuICAgICAgICAgICAgICAgICAgICAgICB9O1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvdGlja2V0cycsIHJlcXVlc3RPcHRpb25zKTtcbiAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgY29uc3QgdXBkYXRlZFVzZXIgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgY29uc29sZS5sb2coYHNob3cgaW5mb3MgdXBkYXRlZCA6ICR7SlNPTi5zdHJpbmdpZnkodXBkYXRlZFVzZXIpfWApO1xuICB9XG4gIGVsc2Uge1xuICAgIGNvbnN0IGVycm9yID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGhhbmRsZUVycm9yKGVycm9yKTtcbiAgfVxufVxuXG5jb25zdCBkaXNwbGF5VGlja2V0c0xpc3QgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDogJ0dFVCdcbiAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvdGlja2V0cycsIHJlcXVlc3RPcHRpb25zKVxuICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICBjb25zdCBhbGxUaWNrZXRzID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGFsbFRpY2tldHMuZm9yRWFjaCggdGlja2V0ID0+IGFkZFRpY2tldHNUb0xpc3QodGlja2V0KSApOyAgXG4gIH1cbiAgZWxzZSB7XG4gICAgY29uc3QgZXJyb3IgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xuICB9XG59XG5cbmNvbnN0IGFkZFRpY2tldHNUb0xpc3QgPSAodGlja2V0KSA9PiB7XG4gIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNob3dUaWNrZXRzXCIpO1xuICBjcmVhdGVEaXZUaWNrZXRzKHRpY2tldCwgbGlzdCk7XG59IFxuXG5jb25zdCBhZGRUaWNrZXRTaG93ID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IGRpdlNob3cgPSBldmVudC50YXJnZXQucGFyZW50RWxlbWVudDtcbiAgY29uc3Qgc2hvd0lkID0gZGl2U2hvdy5pZDtcbiAgY29uc3QgZGVzY3JpcHRpb24gPSBkaXZTaG93LnRleHRDb250ZW50LnNwbGl0KCc6JylbMF07XG4gIGNvbnN0IHRpY2tldCA9IHtzaG93IDogc2hvd0lkLCBkZXNjcmlwdGlvbiA6IGRlc2NyaXB0aW9uLCB0aWNrZXRzIDogMX07XG4gIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNob3dUaWNrZXRzXCIpO1xuXG4gIGNvbnN0IG5iVGlja2V0cyA9IGFkZFRvVGlja2V0c0xpc3QodGlja2V0LCBsaXN0KTtcbiAgdGlja2V0LnRpY2tldHMgPSBuYlRpY2tldHM7XG4gIGF3YWl0IHVwZGF0ZSh0aWNrZXQpO1xufTtcblxuY29uc3QgYWRkVG9UaWNrZXRzTGlzdCA9ICh0aWNrZXQsIGxpc3QpID0+IHtcbiAgbGV0IG5iVGlja2V0cztcbiAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGlja2V0LnNob3crXCItdFwiKSA9PT0gbnVsbCkge1xuICAgIGNyZWF0ZURpdlRpY2tldHModGlja2V0LCBsaXN0KTtcbiAgICBuYlRpY2tldHMgPSAxO1xuICB9ZWxzZSB7XG4gICAgY29uc3Qgc3AgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aWNrZXQuc2hvdytcIi10XCIpLnF1ZXJ5U2VsZWN0b3IoXCIudGlja2V0c1wiKTtcbiAgICBzcC50ZXh0Q29udGVudCA9IDEgKyBwYXJzZUludChzcC50ZXh0Q29udGVudCk7XG4gICAgbmJUaWNrZXRzID0gcGFyc2VJbnQoc3AudGV4dENvbnRlbnQpO1xuICB9XG4gIHJldHVybiBuYlRpY2tldHM7XG59O1xuXG5cbmNvbnN0IGNyZWF0ZURpdlRpY2tldHMgPSAodGlja2V0LCBsaXN0KSA9PiB7XG4gIGNvbnN0IHNob3dJZCA9IHRpY2tldC5zaG93ICsgXCItdFwiO1xuICBjb25zdCBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIG5vZGUuaWQgPSBzaG93SWQ7XG4gIG5vZGUudGV4dENvbnRlbnQgPSBgJHt0aWNrZXQuZGVzY3JpcHRpb259YDtcbiAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgc3Bhbi5jbGFzc05hbWUgPSBcInRpY2tldHNcIjtcbiAgc3Bhbi50ZXh0Q29udGVudCA9IHRpY2tldC50aWNrZXRzO1xuICBub2RlLmFwcGVuZENoaWxkKHNwYW4pO1xuICBjb25zdCBhbm51bGF0aW9uQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gIGFubnVsYXRpb25CdXR0b24uY2xhc3NOYW1lID0gJ2FubnVsYXRpb24nO1xuICBhbm51bGF0aW9uQnV0dG9uLnRleHRDb250ZW50ID0gXCJBbm51bGVyXCI7XG4gIGFubnVsYXRpb25CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGNhbmNlbFRpY2tldFNob3cpO1xuICBub2RlLmFwcGVuZENoaWxkKGFubnVsYXRpb25CdXR0b24pO1xuICBsaXN0LmFwcGVuZENoaWxkKG5vZGUpO1xufVxuXG5jb25zdCBjYW5jZWxUaWNrZXRTaG93ID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNob3dUaWNrZXRzXCIpO1xuICBjb25zdCB0aWNrZXREaXYgPSBldmVudC50YXJnZXQucGFyZW50RWxlbWVudDtcbiAgbGlzdC5yZW1vdmVDaGlsZCh0aWNrZXREaXYpO1xuICBjb25zdCBzaG93SWQgPSB0aWNrZXREaXYuaWQuc3BsaXQoJy0nKVswXTtcbiAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHNob3dJZCk7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J0RFTEVURScsXG4gICAgICAgICAgICAgICAgICAgICAgIH07XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC8ke3Nob3dJZH1gLCByZXF1ZXN0T3B0aW9ucyk7XG4gIGlmIChyZXNwb25zZS5vaykge1xuICAgIGNvbnN0IHVwZGF0ZWRVc2VyID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGNvbnNvbGUubG9nKGBkZWxldGVkIHRpY2tldCBpZCA6ICR7SlNPTi5zdHJpbmdpZnkodXBkYXRlZFVzZXIpfWApO1xuICB9XG4gIGVsc2Uge1xuICAgIGNvbnN0IGVycm9yID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGhhbmRsZUVycm9yKGVycm9yKTtcbiAgfVxufVxuXG5jb25zdCBsb2dvdXQgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J0dFVCcsXG4gICAgICAgICAgICAgICAgICAgICAgIH07XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hY2Nlc3MvbG9nb3V0YCwgcmVxdWVzdE9wdGlvbnMpO1xuICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZj0gJy8nO1xuICB9XG59XG5cbmNvbnN0IGhhbmRsZUVycm9yID0gZXJyb3IgPT4ge1xuICBpZiAoZXJyb3IucmVkaXJlY3RUbylcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZj0gZXJyb3IucmVkaXJlY3RUbztcbiAgZWxzZVxuICAgIGNvbnNvbGUubG9nKGBlcnJldXIgOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG59XG5cblxuXG5cblxuXG5cblxuLy8gY29uc3QgdXBkYXRlID0gIGFzeW5jIChkYXRhKSA9PiB7XG4vLyAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbi8vICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDonUFVUJyxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzIDogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgOiBib2R5XG4vLyAgICAgICAgICAgICAgICAgICAgICAgIH07XG4vLyAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy90aWNrZXRzJywgcmVxdWVzdE9wdGlvbnMpO1xuLy8gICBpZiAocmVzcG9uc2Uub2spIHtcbi8vICAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbi8vICAgICBjb25zb2xlLmxvZyhgc2hvdyBpbmZvcyB1cGRhdGVkIDogJHtKU09OLnN0cmluZ2lmeSh1cGRhdGVkVXNlcil9YCk7XG4vLyAgIH1cbi8vICAgZWxzZSB7XG4vLyAgICAgY29uc3QgZXJyb3IgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4vLyAgICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xuLy8gICB9XG4vLyB9XG5cbi8vIGNvbnN0IGRpc3BsYXlUaWNrZXRzTGlzdCA9IGFzeW5jICgpID0+IHtcbi8vICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOiAnR0VUJ1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4vLyAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy90aWNrZXRzJywgcmVxdWVzdE9wdGlvbnMpXG4vLyAgIGNvbnN0IGFsbFRpY2tldHMgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4vLyAgIGFsbFRpY2tldHMuZm9yRWFjaCggdGlja2V0ID0+IGFkZFRpY2tldHNUb0xpc3QodGlja2V0KSApO1xuLy8gfVxuXG4vLyBjb25zdCBhZGRUaWNrZXRzVG9MaXN0ID0gKHRpY2tldCkgPT4ge1xuLy8gICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzaG93VGlja2V0c1wiKTtcbi8vICAgY3JlYXRlRGl2VGlja2V0cyh0aWNrZXQsIGxpc3QpO1xuLy8gfSBcblxuLy8gY29uc3QgYWRkVGlja2V0U2hvdyA9IGFzeW5jIChldmVudCkgPT4ge1xuLy8gICBjb25zdCBkaXZTaG93ID0gZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQ7XG4vLyAgIGNvbnN0IG5iVGlja2V0cyA9IGFkZFRvVGlja2V0c0xpc3QoZGl2U2hvdyk7XG4vLyAgIGNvbnN0IHRpY2tldHNEYXRhID0ge2Rlc2NyaXB0aW9uIDogZGl2U2hvdy50ZXh0Q29udGVudC5zcGxpdCgnOicpWzBdLCB0aWNrZXRzIDogbmJUaWNrZXRzLCBzaG93IDogZGl2U2hvdy5pZH07XG4vLyAgIGF3YWl0IHVwZGF0ZSh0aWNrZXRzRGF0YSk7XG4vLyB9O1xuIl0sIm5hbWVzIjpbInVzZXJuYW1lIiwic2V0dXAiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZ2V0VXNlciIsImRpc3BsYXlTaG93TGlzdCIsImRpc3BsYXlUaWNrZXRzTGlzdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJsb2dvdXQiLCJ3aW5kb3ciLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJyZXF1ZXN0T3B0aW9ucyIsInJlc3BvbnNlIiwidXNlciIsImVycm9yIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIm1ldGhvZCIsImZldGNoIiwic2VudCIsIm9rIiwianNvbiIsInRleHRDb250ZW50IiwibmFtZSIsImhhbmRsZUVycm9yIiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIiwiX3JlZjIiLCJfY2FsbGVlMiIsImFsbFNob3dzIiwibGlzdCIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImZvckVhY2giLCJzaG93IiwiYWRkVG9MaXN0Iiwibm9kZSIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsIl9pZCIsInNwYW4iLCJjbGFzc05hbWUiLCJjb25jYXQiLCJwbGFjZXMiLCJkZXNjcmlwdGlvbiIsImFwcGVuZENoaWxkIiwidGlja2V0c0J1dHRvbiIsImFkZFRpY2tldFNob3ciLCJ1cGRhdGUiLCJfcmVmMyIsIl9jYWxsZWUzIiwiZGF0YSIsImJvZHkiLCJ1cGRhdGVkVXNlciIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsIkpTT04iLCJzdHJpbmdpZnkiLCJoZWFkZXJzIiwiY29uc29sZSIsImxvZyIsIl94IiwiX3JlZjQiLCJfY2FsbGVlNCIsImFsbFRpY2tldHMiLCJfY2FsbGVlNCQiLCJfY29udGV4dDQiLCJ0aWNrZXQiLCJhZGRUaWNrZXRzVG9MaXN0IiwiY3JlYXRlRGl2VGlja2V0cyIsIl9yZWY1IiwiX2NhbGxlZTUiLCJldmVudCIsImRpdlNob3ciLCJzaG93SWQiLCJuYlRpY2tldHMiLCJfY2FsbGVlNSQiLCJfY29udGV4dDUiLCJ0YXJnZXQiLCJwYXJlbnRFbGVtZW50Iiwic3BsaXQiLCJ0aWNrZXRzIiwiYWRkVG9UaWNrZXRzTGlzdCIsIl94MiIsInNwIiwicXVlcnlTZWxlY3RvciIsInBhcnNlSW50IiwiYW5udWxhdGlvbkJ1dHRvbiIsImNhbmNlbFRpY2tldFNob3ciLCJfcmVmNiIsIl9jYWxsZWU2IiwidGlja2V0RGl2IiwiX2NhbGxlZTYkIiwiX2NvbnRleHQ2IiwicmVtb3ZlQ2hpbGQiLCJfeDMiLCJfcmVmNyIsIl9jYWxsZWU3IiwiX2NhbGxlZTckIiwiX2NvbnRleHQ3IiwibG9jYXRpb24iLCJocmVmIiwicmVkaXJlY3RUbyIsIm1lc3NhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/scripts/user.client.js\n')},"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]);\nfunction _regeneratorRuntime() {\n "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = "function" == typeof Symbol ? Symbol : {},\n a = i.iterator || "@@iterator",\n c = i.asyncIterator || "@@asyncIterator",\n u = i.toStringTag || "@@toStringTag";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, "");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, "_invoke", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: "normal",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: "throw",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = "suspendedStart",\n l = "suspendedYield",\n f = "executing",\n s = "completed",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n ["next", "throw", "return"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if ("throw" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {\n invoke("next", t, i, a);\n }, function (t) {\n invoke("throw", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke("throw", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, "_invoke", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error("Generator is already running");\n if (o === s) {\n if ("throw" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else "return" === n.method && n.abrupt("return", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if ("normal" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a \'" + n + "\' method")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = "normal", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: "root"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || "" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if ("function" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + " is not iterable");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, "constructor", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {\n var e = "function" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {\n return this;\n }), define(g, "toString", function () {\n return "[object Generator]";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if ("throw" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if ("root" === i.tryLoc) return handle("end");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, "catchLoc"),\n u = n.call(i, "finallyLoc");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error("try statement without catch or finally");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if ("throw" === t.type) throw t.arg;\n return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n "catch": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if ("throw" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error("illegal catch attempt");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, "next" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvclJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzR0FBaUM7QUFDL0M7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsaURBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYTtBQUNiLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixlQUFlO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0Esc0NBQXNDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL2FwcC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcz85MDU1Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4vdHlwZW9mLmpzXCIpW1wiZGVmYXVsdFwiXTtcbmZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gIFwidXNlIHN0cmljdFwiOyAvKiEgcmVnZW5lcmF0b3ItcnVudGltZSAtLSBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4gLS0gbGljZW5zZSAoTUlUKTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9MSUNFTlNFICovXG4gIG1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yUnVudGltZSA9IGZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gICAgcmV0dXJuIGU7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cztcbiAgdmFyIHQsXG4gICAgZSA9IHt9LFxuICAgIHIgPSBPYmplY3QucHJvdG90eXBlLFxuICAgIG4gPSByLmhhc093blByb3BlcnR5LFxuICAgIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgfHwgZnVuY3Rpb24gKHQsIGUsIHIpIHtcbiAgICAgIHRbZV0gPSByLnZhbHVlO1xuICAgIH0sXG4gICAgaSA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sID8gU3ltYm9sIDoge30sXG4gICAgYSA9IGkuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCIsXG4gICAgYyA9IGkuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiLFxuICAgIHUgPSBpLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuICBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgZSwge1xuICAgICAgdmFsdWU6IHIsXG4gICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICB3cml0YWJsZTogITBcbiAgICB9KSwgdFtlXTtcbiAgfVxuICB0cnkge1xuICAgIGRlZmluZSh7fSwgXCJcIik7XG4gIH0gY2F0Y2ggKHQpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgICAgcmV0dXJuIHRbZV0gPSByO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gd3JhcCh0LCBlLCByLCBuKSB7XG4gICAgdmFyIGkgPSBlICYmIGUucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gZSA6IEdlbmVyYXRvcixcbiAgICAgIGEgPSBPYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSxcbiAgICAgIGMgPSBuZXcgQ29udGV4dChuIHx8IFtdKTtcbiAgICByZXR1cm4gbyhhLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IG1ha2VJbnZva2VNZXRob2QodCwgciwgYylcbiAgICB9KSwgYTtcbiAgfVxuICBmdW5jdGlvbiB0cnlDYXRjaCh0LCBlLCByKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwibm9ybWFsXCIsXG4gICAgICAgIGFyZzogdC5jYWxsKGUsIHIpXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKHQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwidGhyb3dcIixcbiAgICAgICAgYXJnOiB0XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBlLndyYXAgPSB3cmFwO1xuICB2YXIgaCA9IFwic3VzcGVuZGVkU3RhcnRcIixcbiAgICBsID0gXCJzdXNwZW5kZWRZaWVsZFwiLFxuICAgIGYgPSBcImV4ZWN1dGluZ1wiLFxuICAgIHMgPSBcImNvbXBsZXRlZFwiLFxuICAgIHkgPSB7fTtcbiAgZnVuY3Rpb24gR2VuZXJhdG9yKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb24oKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpIHt9XG4gIHZhciBwID0ge307XG4gIGRlZmluZShwLCBhLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pO1xuICB2YXIgZCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICB2ID0gZCAmJiBkKGQodmFsdWVzKFtdKSkpO1xuICB2ICYmIHYgIT09IHIgJiYgbi5jYWxsKHYsIGEpICYmIChwID0gdik7XG4gIHZhciBnID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID0gR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUocCk7XG4gIGZ1bmN0aW9uIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyh0KSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRlZmluZSh0LCBlLCBmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKGUsIHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gQXN5bmNJdGVyYXRvcih0LCBlKSB7XG4gICAgZnVuY3Rpb24gaW52b2tlKHIsIG8sIGksIGEpIHtcbiAgICAgIHZhciBjID0gdHJ5Q2F0Y2godFtyXSwgdCwgbyk7XG4gICAgICBpZiAoXCJ0aHJvd1wiICE9PSBjLnR5cGUpIHtcbiAgICAgICAgdmFyIHUgPSBjLmFyZyxcbiAgICAgICAgICBoID0gdS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGggJiYgXCJvYmplY3RcIiA9PSBfdHlwZW9mKGgpICYmIG4uY2FsbChoLCBcIl9fYXdhaXRcIikgPyBlLnJlc29sdmUoaC5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB0LCBpLCBhKTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSkgOiBlLnJlc29sdmUoaCkudGhlbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHUudmFsdWUgPSB0LCBpKHUpO1xuICAgICAgICB9LCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHJldHVybiBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBhKGMuYXJnKTtcbiAgICB9XG4gICAgdmFyIHI7XG4gICAgbyh0aGlzLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlKHQsIG4pIHtcbiAgICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBlKGZ1bmN0aW9uIChlLCByKSB7XG4gICAgICAgICAgICBpbnZva2UodCwgbiwgZSwgcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHIgPSByID8gci50aGVuKGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLCBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZykgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoZSwgciwgbikge1xuICAgIHZhciBvID0gaDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGksIGEpIHtcbiAgICAgIGlmIChvID09PSBmKSB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgaWYgKG8gPT09IHMpIHtcbiAgICAgICAgaWYgKFwidGhyb3dcIiA9PT0gaSkgdGhyb3cgYTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdCxcbiAgICAgICAgICBkb25lOiAhMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZm9yIChuLm1ldGhvZCA9IGksIG4uYXJnID0gYTs7KSB7XG4gICAgICAgIHZhciBjID0gbi5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICB2YXIgdSA9IG1heWJlSW52b2tlRGVsZWdhdGUoYywgbik7XG4gICAgICAgICAgaWYgKHUpIHtcbiAgICAgICAgICAgIGlmICh1ID09PSB5KSBjb250aW51ZTtcbiAgICAgICAgICAgIHJldHVybiB1O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJuZXh0XCIgPT09IG4ubWV0aG9kKSBuLnNlbnQgPSBuLl9zZW50ID0gbi5hcmc7ZWxzZSBpZiAoXCJ0aHJvd1wiID09PSBuLm1ldGhvZCkge1xuICAgICAgICAgIGlmIChvID09PSBoKSB0aHJvdyBvID0gcywgbi5hcmc7XG4gICAgICAgICAgbi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyk7XG4gICAgICAgIH0gZWxzZSBcInJldHVyblwiID09PSBuLm1ldGhvZCAmJiBuLmFicnVwdChcInJldHVyblwiLCBuLmFyZyk7XG4gICAgICAgIG8gPSBmO1xuICAgICAgICB2YXIgcCA9IHRyeUNhdGNoKGUsIHIsIG4pO1xuICAgICAgICBpZiAoXCJub3JtYWxcIiA9PT0gcC50eXBlKSB7XG4gICAgICAgICAgaWYgKG8gPSBuLmRvbmUgPyBzIDogbCwgcC5hcmcgPT09IHkpIGNvbnRpbnVlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcC5hcmcsXG4gICAgICAgICAgICBkb25lOiBuLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIFwidGhyb3dcIiA9PT0gcC50eXBlICYmIChvID0gcywgbi5tZXRob2QgPSBcInRocm93XCIsIG4uYXJnID0gcC5hcmcpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSB7XG4gICAgdmFyIG4gPSByLm1ldGhvZCxcbiAgICAgIG8gPSBlLml0ZXJhdG9yW25dO1xuICAgIGlmIChvID09PSB0KSByZXR1cm4gci5kZWxlZ2F0ZSA9IG51bGwsIFwidGhyb3dcIiA9PT0gbiAmJiBlLml0ZXJhdG9yW1wicmV0dXJuXCJdICYmIChyLm1ldGhvZCA9IFwicmV0dXJuXCIsIHIuYXJnID0gdCwgbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSwgXCJ0aHJvd1wiID09PSByLm1ldGhvZCkgfHwgXCJyZXR1cm5cIiAhPT0gbiAmJiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ1wiICsgbiArIFwiJyBtZXRob2RcIikpLCB5O1xuICAgIHZhciBpID0gdHJ5Q2F0Y2gobywgZS5pdGVyYXRvciwgci5hcmcpO1xuICAgIGlmIChcInRocm93XCIgPT09IGkudHlwZSkgcmV0dXJuIHIubWV0aG9kID0gXCJ0aHJvd1wiLCByLmFyZyA9IGkuYXJnLCByLmRlbGVnYXRlID0gbnVsbCwgeTtcbiAgICB2YXIgYSA9IGkuYXJnO1xuICAgIHJldHVybiBhID8gYS5kb25lID8gKHJbZS5yZXN1bHROYW1lXSA9IGEudmFsdWUsIHIubmV4dCA9IGUubmV4dExvYywgXCJyZXR1cm5cIiAhPT0gci5tZXRob2QgJiYgKHIubWV0aG9kID0gXCJuZXh0XCIsIHIuYXJnID0gdCksIHIuZGVsZWdhdGUgPSBudWxsLCB5KSA6IGEgOiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLCByLmRlbGVnYXRlID0gbnVsbCwgeSk7XG4gIH1cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHtcbiAgICAgIHRyeUxvYzogdFswXVxuICAgIH07XG4gICAgMSBpbiB0ICYmIChlLmNhdGNoTG9jID0gdFsxXSksIDIgaW4gdCAmJiAoZS5maW5hbGx5TG9jID0gdFsyXSwgZS5hZnRlckxvYyA9IHRbM10pLCB0aGlzLnRyeUVudHJpZXMucHVzaChlKTtcbiAgfVxuICBmdW5jdGlvbiByZXNldFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHQuY29tcGxldGlvbiB8fCB7fTtcbiAgICBlLnR5cGUgPSBcIm5vcm1hbFwiLCBkZWxldGUgZS5hcmcsIHQuY29tcGxldGlvbiA9IGU7XG4gIH1cbiAgZnVuY3Rpb24gQ29udGV4dCh0KSB7XG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3tcbiAgICAgIHRyeUxvYzogXCJyb290XCJcbiAgICB9XSwgdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyksIHRoaXMucmVzZXQoITApO1xuICB9XG4gIGZ1bmN0aW9uIHZhbHVlcyhlKSB7XG4gICAgaWYgKGUgfHwgXCJcIiA9PT0gZSkge1xuICAgICAgdmFyIHIgPSBlW2FdO1xuICAgICAgaWYgKHIpIHJldHVybiByLmNhbGwoZSk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLm5leHQpIHJldHVybiBlO1xuICAgICAgaWYgKCFpc05hTihlLmxlbmd0aCkpIHtcbiAgICAgICAgdmFyIG8gPSAtMSxcbiAgICAgICAgICBpID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIGZvciAoOyArK28gPCBlLmxlbmd0aDspIGlmIChuLmNhbGwoZSwgbykpIHJldHVybiBuZXh0LnZhbHVlID0gZVtvXSwgbmV4dC5kb25lID0gITEsIG5leHQ7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC52YWx1ZSA9IHQsIG5leHQuZG9uZSA9ICEwLCBuZXh0O1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBpLm5leHQgPSBpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyBcIiBpcyBub3QgaXRlcmFibGVcIik7XG4gIH1cbiAgcmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBvKGcsIFwiY29uc3RydWN0b3JcIiwge1xuICAgIHZhbHVlOiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICBjb25maWd1cmFibGU6ICEwXG4gIH0pLCBvKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBcImNvbnN0cnVjdG9yXCIsIHtcbiAgICB2YWx1ZTogR2VuZXJhdG9yRnVuY3Rpb24sXG4gICAgY29uZmlndXJhYmxlOiAhMFxuICB9KSwgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBkZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIHUsIFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksIGUuaXNHZW5lcmF0b3JGdW5jdGlvbiA9IGZ1bmN0aW9uICh0KSB7XG4gICAgdmFyIGUgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHQgJiYgdC5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gISFlICYmIChlID09PSBHZW5lcmF0b3JGdW5jdGlvbiB8fCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIgPT09IChlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSkpO1xuICB9LCBlLm1hcmsgPSBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YodCwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpIDogKHQuX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIGRlZmluZSh0LCB1LCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSwgdC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKGcpLCB0O1xuICB9LCBlLmF3cmFwID0gZnVuY3Rpb24gKHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hd2FpdDogdFxuICAgIH07XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksIGRlZmluZShBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSwgYywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZS5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvciwgZS5hc3luYyA9IGZ1bmN0aW9uICh0LCByLCBuLCBvLCBpKSB7XG4gICAgdm9pZCAwID09PSBpICYmIChpID0gUHJvbWlzZSk7XG4gICAgdmFyIGEgPSBuZXcgQXN5bmNJdGVyYXRvcih3cmFwKHQsIHIsIG4sIG8pLCBpKTtcbiAgICByZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpID8gYSA6IGEubmV4dCgpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgIHJldHVybiB0LmRvbmUgPyB0LnZhbHVlIDogYS5uZXh0KCk7XG4gICAgfSk7XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSwgZGVmaW5lKGcsIHUsIFwiR2VuZXJhdG9yXCIpLCBkZWZpbmUoZywgYSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZGVmaW5lKGcsIFwidG9TdHJpbmdcIiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBcIltvYmplY3QgR2VuZXJhdG9yXVwiO1xuICB9KSwgZS5rZXlzID0gZnVuY3Rpb24gKHQpIHtcbiAgICB2YXIgZSA9IE9iamVjdCh0KSxcbiAgICAgIHIgPSBbXTtcbiAgICBmb3IgKHZhciBuIGluIGUpIHIucHVzaChuKTtcbiAgICByZXR1cm4gci5yZXZlcnNlKCksIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICBmb3IgKDsgci5sZW5ndGg7KSB7XG4gICAgICAgIHZhciB0ID0gci5wb3AoKTtcbiAgICAgICAgaWYgKHQgaW4gZSkgcmV0dXJuIG5leHQudmFsdWUgPSB0LCBuZXh0LmRvbmUgPSAhMSwgbmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0LmRvbmUgPSAhMCwgbmV4dDtcbiAgICB9O1xuICB9LCBlLnZhbHVlcyA9IHZhbHVlcywgQ29udGV4dC5wcm90b3R5cGUgPSB7XG4gICAgY29uc3RydWN0b3I6IENvbnRleHQsXG4gICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KGUpIHtcbiAgICAgIGlmICh0aGlzLnByZXYgPSAwLCB0aGlzLm5leHQgPSAwLCB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdCwgdGhpcy5kb25lID0gITEsIHRoaXMuZGVsZWdhdGUgPSBudWxsLCB0aGlzLm1ldGhvZCA9IFwibmV4dFwiLCB0aGlzLmFyZyA9IHQsIHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKHJlc2V0VHJ5RW50cnkpLCAhZSkgZm9yICh2YXIgciBpbiB0aGlzKSBcInRcIiA9PT0gci5jaGFyQXQoMCkgJiYgbi5jYWxsKHRoaXMsIHIpICYmICFpc05hTigrci5zbGljZSgxKSkgJiYgKHRoaXNbcl0gPSB0KTtcbiAgICB9LFxuICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICB0aGlzLmRvbmUgPSAhMDtcbiAgICAgIHZhciB0ID0gdGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247XG4gICAgICBpZiAoXCJ0aHJvd1wiID09PSB0LnR5cGUpIHRocm93IHQuYXJnO1xuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuICAgIGRpc3BhdGNoRXhjZXB0aW9uOiBmdW5jdGlvbiBkaXNwYXRjaEV4Y2VwdGlvbihlKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB0aHJvdyBlO1xuICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKG4sIG8pIHtcbiAgICAgICAgcmV0dXJuIGEudHlwZSA9IFwidGhyb3dcIiwgYS5hcmcgPSBlLCByLm5leHQgPSBuLCBvICYmIChyLm1ldGhvZCA9IFwibmV4dFwiLCByLmFyZyA9IHQpLCAhIW87XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBvID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IG8gPj0gMDsgLS1vKSB7XG4gICAgICAgIHZhciBpID0gdGhpcy50cnlFbnRyaWVzW29dLFxuICAgICAgICAgIGEgPSBpLmNvbXBsZXRpb247XG4gICAgICAgIGlmIChcInJvb3RcIiA9PT0gaS50cnlMb2MpIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIGlmIChpLnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgYyA9IG4uY2FsbChpLCBcImNhdGNoTG9jXCIpLFxuICAgICAgICAgICAgdSA9IG4uY2FsbChpLCBcImZpbmFsbHlMb2NcIik7XG4gICAgICAgICAgaWYgKGMgJiYgdSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYykge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXUpIHRocm93IG5ldyBFcnJvcihcInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5XCIpO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWJydXB0OiBmdW5jdGlvbiBhYnJ1cHQodCwgZSkge1xuICAgICAgZm9yICh2YXIgciA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyByID49IDA7IC0tcikge1xuICAgICAgICB2YXIgbyA9IHRoaXMudHJ5RW50cmllc1tyXTtcbiAgICAgICAgaWYgKG8udHJ5TG9jIDw9IHRoaXMucHJldiAmJiBuLmNhbGwobywgXCJmaW5hbGx5TG9jXCIpICYmIHRoaXMucHJldiA8IG8uZmluYWxseUxvYykge1xuICAgICAgICAgIHZhciBpID0gbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSAmJiAoXCJicmVha1wiID09PSB0IHx8IFwiY29udGludWVcIiA9PT0gdCkgJiYgaS50cnlMb2MgPD0gZSAmJiBlIDw9IGkuZmluYWxseUxvYyAmJiAoaSA9IG51bGwpO1xuICAgICAgdmFyIGEgPSBpID8gaS5jb21wbGV0aW9uIDoge307XG4gICAgICByZXR1cm4gYS50eXBlID0gdCwgYS5hcmcgPSBlLCBpID8gKHRoaXMubWV0aG9kID0gXCJuZXh0XCIsIHRoaXMubmV4dCA9IGkuZmluYWxseUxvYywgeSkgOiB0aGlzLmNvbXBsZXRlKGEpO1xuICAgIH0sXG4gICAgY29tcGxldGU6IGZ1bmN0aW9uIGNvbXBsZXRlKHQsIGUpIHtcbiAgICAgIGlmIChcInRocm93XCIgPT09IHQudHlwZSkgdGhyb3cgdC5hcmc7XG4gICAgICByZXR1cm4gXCJicmVha1wiID09PSB0LnR5cGUgfHwgXCJjb250aW51ZVwiID09PSB0LnR5cGUgPyB0aGlzLm5leHQgPSB0LmFyZyA6IFwicmV0dXJuXCIgPT09IHQudHlwZSA/ICh0aGlzLnJ2YWwgPSB0aGlzLmFyZyA9IHQuYXJnLCB0aGlzLm1ldGhvZCA9IFwicmV0dXJuXCIsIHRoaXMubmV4dCA9IFwiZW5kXCIpIDogXCJub3JtYWxcIiA9PT0gdC50eXBlICYmIGUgJiYgKHRoaXMubmV4dCA9IGUpLCB5O1xuICAgIH0sXG4gICAgZmluaXNoOiBmdW5jdGlvbiBmaW5pc2godCkge1xuICAgICAgZm9yICh2YXIgZSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBlID49IDA7IC0tZSkge1xuICAgICAgICB2YXIgciA9IHRoaXMudHJ5RW50cmllc1tlXTtcbiAgICAgICAgaWYgKHIuZmluYWxseUxvYyA9PT0gdCkgcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLCByLmFmdGVyTG9jKSwgcmVzZXRUcnlFbnRyeShyKSwgeTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiY2F0Y2hcIjogZnVuY3Rpb24gX2NhdGNoKHQpIHtcbiAgICAgIGZvciAodmFyIGUgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgZSA+PSAwOyAtLWUpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLnRyeUVudHJpZXNbZV07XG4gICAgICAgIGlmIChyLnRyeUxvYyA9PT0gdCkge1xuICAgICAgICAgIHZhciBuID0gci5jb21wbGV0aW9uO1xuICAgICAgICAgIGlmIChcInRocm93XCIgPT09IG4udHlwZSkge1xuICAgICAgICAgICAgdmFyIG8gPSBuLmFyZztcbiAgICAgICAgICAgIHJlc2V0VHJ5RW50cnkocik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIik7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbiBkZWxlZ2F0ZVlpZWxkKGUsIHIsIG4pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlbGVnYXRlID0ge1xuICAgICAgICBpdGVyYXRvcjogdmFsdWVzKGUpLFxuICAgICAgICByZXN1bHROYW1lOiByLFxuICAgICAgICBuZXh0TG9jOiBuXG4gICAgICB9LCBcIm5leHRcIiA9PT0gdGhpcy5tZXRob2QgJiYgKHRoaXMuYXJnID0gdCksIHk7XG4gICAgfVxuICB9LCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcmVnZW5lcmF0b3JSdW50aW1lLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\n')},"./node_modules/@babel/runtime/helpers/typeof.js":module=>{eval('function _typeof(o) {\n "@babel/helpers - typeof";\n\n return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLDBCQUEwQix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanM/MjY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfdHlwZW9mKG8pIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG87XG4gIH0gOiBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMpLCBfdHlwZW9mKG8pO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n')},"./node_modules/@babel/runtime/regenerator/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === "object") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function("r", "regeneratorRuntime = r")(runtime);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsY0FBYyxtQkFBTyxDQUFDLGtHQUErQjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanM/MGRlZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPKEJhYmVsIDgpOiBSZW1vdmUgdGhpcyBmaWxlLlxuXG52YXIgcnVudGltZSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZVwiKSgpO1xubW9kdWxlLmV4cG9ydHMgPSBydW50aW1lO1xuXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL3BhY2thZ2VzL3J1bnRpbWUvcnVudGltZS5qcyNMNzM2PVxudHJ5IHtcbiAgcmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbn0gY2F0Y2ggKGFjY2lkZW50YWxTdHJpY3RNb2RlKSB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gXCJvYmplY3RcIikge1xuICAgIGdsb2JhbFRoaXMucmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbiAgfSBlbHNlIHtcbiAgICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n')},"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);\n }\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/YzE0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n')}},__webpack_module_cache__={};function __webpack_require__(Q){var n=__webpack_module_cache__[Q];if(void 0!==n)return n.exports;var B=__webpack_module_cache__[Q]={exports:{}};return __webpack_modules__[Q](B,B.exports,__webpack_require__),B.exports}__webpack_require__.n=Q=>{var n=Q&&Q.__esModule?()=>Q.default:()=>Q;return __webpack_require__.d(n,{a:n}),n},__webpack_require__.d=(Q,n)=>{for(var B in n)__webpack_require__.o(n,B)&&!__webpack_require__.o(Q,B)&&Object.defineProperty(Q,B,{enumerable:!0,get:n[B]})},__webpack_require__.o=(Q,n)=>Object.prototype.hasOwnProperty.call(Q,n),__webpack_require__.r=Q=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(Q,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(Q,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/scripts/user.client.js")})(); \ No newline at end of file diff --git a/showtime/server/public/style/admin.css b/showtime/server/public/style/admin.css index b281fae1883c4f79dec67666998144425588b6db..f0982d9cf0ac0f6190b35cf3ee950fe216407e7d 100644 --- a/showtime/server/public/style/admin.css +++ b/showtime/server/public/style/admin.css @@ -20,7 +20,7 @@ body { } #place { - width : 50px; + width : 100px; text-align : right; } diff --git a/showtime/server/public/style/style.css b/showtime/server/public/style/style.css index 027b1b0a04626d7d6d8be4e10a0b26fb97c4c729..74327c0c9364970330ccea47924c5e5cd100fff4 100644 --- a/showtime/server/public/style/style.css +++ b/showtime/server/public/style/style.css @@ -17,6 +17,9 @@ input { text-align :center; } +#place { + width: 10px; +} button { padding : 3px; width : 100px; @@ -24,17 +27,20 @@ button { font-weight : bold; } -#list div.shows { - padding : 2px; - margin : 1px 2px; +#shows, #tickets { + margin : 10px; + padding : 4px; + border : solid thin #999; } -div.shows:nth-of-type(even) { - background-color: #EEE; + +#list, #shows { + padding : 2px; + margin : 4px 4px; } .tickets { width : 50px; - color: red; + color: green; } #userdata { diff --git a/showtime/server/routes/admin.route.js b/showtime/server/routes/admin.route.js index ee1cf0e3d47e5e116f34561fa9a87f40dba70caf..81b5998fe00af8c593c1c1ac2348d8974befc1bf 100644 --- a/showtime/server/routes/admin.route.js +++ b/showtime/server/routes/admin.route.js @@ -8,7 +8,7 @@ const authMiddleware = require('../middlewares/authentication.middleware'); router.get('/', adminController.home ); router.get('/me', authMiddleware.validToken, adminController.me ); router.get('/items', authMiddleware.validToken, adminController.list); -router.post('/new', authMiddleware.validToken, authMiddleware.isAdmin, adminController.create); +router.post('/items', authMiddleware.validToken, authMiddleware.isAdmin, adminController.create); router.delete('/:showId', authMiddleware.validToken, authMiddleware.isAdmin, adminController.deleteShow); // router.put('/me', authMiddleware.validToken, adminController.update ); diff --git a/showtime/server/routes/index.route.js b/showtime/server/routes/index.route.js index a98e413ef8bf9f7b78480882584bbabb03408b74..1c063f356bd18756dbc7ec321fadb386ef9f024b 100644 --- a/showtime/server/routes/index.route.js +++ b/showtime/server/routes/index.route.js @@ -9,9 +9,9 @@ const indexController = require('../controllers/index.controller'); router.get('/', authMiddleware.validToken, indexController.home ); router.get('/me', authMiddleware.validToken, indexController.me ); +router.get('/tickets', authMiddleware.validToken, indexController.listTickets); router.put('/tickets', authMiddleware.validToken, indexController.update ); router.delete('/:showId', authMiddleware.validToken, indexController.deleteTickets); -router.get('/tickets', authMiddleware.validToken, indexController.listTickets); router.get('/items', authMiddleware.validToken, indexController.listShow); router.get('/about', indexController.about ); router.get('/adminonly', authMiddleware.validToken, authMiddleware.isAdmin, indexController.adminonly ); diff --git a/showtime/server/routes/user.route.js b/showtime/server/routes/user.route.js deleted file mode 100644 index d766b9be5c78a5263bb689f271fd2a0ffed7258a..0000000000000000000000000000000000000000 --- a/showtime/server/routes/user.route.js +++ /dev/null @@ -1,14 +0,0 @@ -const express = require('express'); -const router = express.Router(); - -const authMiddleware = require('../middlewares/authentication.middleware'); - -// import controller for index -const userController = require('../controllers/user.controller'); - -router.get('/', userController.home ); -router.get('/me', authMiddleware.validToken, userController.me ); -router.put('/me', authMiddleware.validToken, userController.update ); - -module.exports = router; -