diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000..637d8acc47
Binary files /dev/null and b/.DS_Store differ
diff --git a/BE/.env b/BE/.env
new file mode 100644
index 0000000000..ceffbfaca2
--- /dev/null
+++ b/BE/.env
@@ -0,0 +1,5 @@
+PORT=8000
+MONGODB_URI=mongodb://lesavantdon:icecream2@localhost:27017/productsdb?authSource=admin
+
+console.log('MongoDB URI:', process.env.MONGODB_URI); // Debugging line
+
diff --git a/BE/.gitignore b/BE/.gitignore
new file mode 100644
index 0000000000..1de628c798
--- /dev/null
+++ b/BE/.gitignore
@@ -0,0 +1,3 @@
+# Node modules
+node_modules/
+package-lock.json/
\ No newline at end of file
diff --git a/BE/README.md b/BE/README.md
new file mode 100644
index 0000000000..a033394417
--- /dev/null
+++ b/BE/README.md
@@ -0,0 +1,11 @@
+*dependencies required for back end*
+ "cors": "^2.8.5",
+ "dotenv": "^16.4.5",
+ "express": "^4.19.2",
+ "mongoose": "^8.5.3"
+
+*from terminal CD into BE*
+
+ CD BE "npm start" to run back end
+ make sure data is seeded into the mongo database with
+ "BE git:(master) ✗ node scripts/seed.js" in shell/terminal
\ No newline at end of file
diff --git a/BE/api/products/index.js b/BE/api/products/index.js
new file mode 100644
index 0000000000..879845a3c4
--- /dev/null
+++ b/BE/api/products/index.js
@@ -0,0 +1,12 @@
+const express = require('express');
+const router = express.Router();
+const productController = require('../../controllers/productController');
+
+
+router.get('/', productController.getAllProducts);
+router.get('/:id', productController.getProductById);
+router.post('/', productController.createProduct);
+router.put('/:id', productController.updateProduct);
+router.delete('/:id', productController.deleteProduct);
+
+module.exports = router;
\ No newline at end of file
diff --git a/BE/api/reviews/index.js b/BE/api/reviews/index.js
new file mode 100644
index 0000000000..767e7c5dac
--- /dev/null
+++ b/BE/api/reviews/index.js
@@ -0,0 +1,17 @@
+const express = require('express');
+const router = express.Router();
+const reviewController = require('../../controllers/reviewController'); // Make sure the path is correct
+
+
+// In your reviews route file (e.g., api/reviews/index.js)
+
+router.get('/', reviewController.getAllReviews);
+router.post('/:productId', reviewController.createReview); // Create a new review
+router.get('/:productId', reviewController.getReviewsByProductId);
+router.get('/reviews/:productId', reviewController.getPaginatedReviewsByProductId);
+
+router.delete('/:reviewId', reviewController.deleteReview);
+
+
+module.exports = router;
+
diff --git a/BE/app.js b/BE/app.js
new file mode 100644
index 0000000000..0cb59ed985
--- /dev/null
+++ b/BE/app.js
@@ -0,0 +1,38 @@
+// app.js
+const express = require('express');
+const dotenv = require('dotenv');
+const cors = require('cors'); // Import cors
+const connectDB = require('./config/db');
+const productsRoutes = require('./api/products/index.js');
+const reviewsRoutes = require('./api/reviews/index.js'); // Import reviews routes
+const errorHandler = require('./middleware/errorHandler');
+
+dotenv.config(); // Load environment variables from .env file
+const app = express();
+app.use(cors());
+
+app.use(express.json());
+app.use((req, res, next) => {
+ res.header("Access-Control-Allow-Origin", "*");
+ res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE");
+ res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
+ next();
+});
+
+app.get('/', (req, res) => {
+ res.send('Welcome to the API');
+});
+
+app.use('/api/products', productsRoutes);
+app.use('/api/reviews', reviewsRoutes);
+
+
+app.use((req, res) => {
+ res.status(404).send('Sorry, that route doesn’t exist.');
+});
+app.use((err, req, res, next) => {
+ console.error(err.stack);
+ res.status(500).send('Something broke!');
+});
+
+module.exports = app; // Export the app
diff --git a/BE/config/db.js b/BE/config/db.js
new file mode 100644
index 0000000000..c96ad02d1b
--- /dev/null
+++ b/BE/config/db.js
@@ -0,0 +1,18 @@
+const mongoose = require('mongoose');
+
+const connectDB = async () => {
+ try {
+ const conn = await mongoose.connect(process.env.MONGODB_URI, {
+ // The following options are deprecated and can be removed:
+ // useNewUrlParser: true,
+ // useUnifiedTopology: true,
+ });
+
+ console.log(`MongoDB Connected: ${conn.connection.host}`);
+ } catch (error) {
+ console.error(`Error: ${error.message}`);
+ process.exit(1); // Exit process with failure
+ }
+};
+
+module.exports = connectDB;
diff --git a/BE/controllers/productController.js b/BE/controllers/productController.js
new file mode 100644
index 0000000000..a7684fccda
--- /dev/null
+++ b/BE/controllers/productController.js
@@ -0,0 +1,132 @@
+const Product = require('../models/product');
+
+// Get all products with pagination, filtering, and sorting
+const getAllProducts = async (req, res) => {
+ const { page = 1, limit = 9, category = 'all', sort = 'asc' } = req.query;
+
+ const query = {};
+ // Filter by category if not 'all'
+ if (category && category !== 'all') {
+ query.category = category;
+ }
+
+ try {
+ // Get total count of products for pagination
+ const totalProducts = await Product.countDocuments(query);
+
+ // Calculate the number of products to skip
+ const skip = (page - 1) * limit;
+
+ // Fetch the products from the database
+ const products = await Product.find(query)
+ .sort({ price: sort === 'asc' ? 1 : -1 }) // Sort by price
+ .skip(skip) // Skip the appropriate number of products
+ .limit(parseInt(limit)); // Limit the number of results
+
+ // Calculate total pages
+ const totalPages = Math.ceil(totalProducts / limit);
+
+ // Send the response
+ res.json({
+ products,
+ totalPages
+ });
+ } catch (error) {
+ console.error(error);
+ res.status(500).json({ message: 'Error fetching products.' });
+ }
+};
+
+
+// Get a single product by ID
+const getProductById = async (req, res) => {
+ const { id } = req.params;
+
+ try {
+ const product = await Product.findById(id);
+
+ if (!product) {
+ return res.status(404).json({ message: 'Product not found.' });
+ }
+
+ res.json(product);
+ } catch (error) {
+ console.error(error);
+ res.status(500).json({ message: 'Error fetching product.' });
+ }
+};
+
+// Create a new product
+const createProduct = async (req, res) => {
+ const { userName, name, description, price, category, image } = req.body;
+
+ if (!userName || !name || !description || !price || !category || !image) {
+ return res.status(400).json({ message: 'All fields are required.' });
+ }
+
+ try {
+ const newProduct = new Product({
+ userName,
+ name,
+ description,
+ price,
+ category,
+ image
+ });
+
+ const savedProduct = await newProduct.save();
+ res.status(201).json(savedProduct);
+ } catch (error) {
+ console.error(error);
+ res.status(500).json({ message: 'Error creating product.' });
+ }
+};
+
+// Update a product by ID
+const updateProduct = async (req, res) => {
+ const { id } = req.params;
+ const { userName, name, description, price, category, image } = req.body;
+
+ try {
+ const updatedProduct = await Product.findByIdAndUpdate(
+ id,
+ { userName, name, description, price, category, image },
+ { new: true, runValidators: true }
+ );
+
+ if (!updatedProduct) {
+ return res.status(404).json({ message: 'Product not found.' });
+ }
+
+ res.json(updatedProduct);
+ } catch (error) {
+ console.error(error);
+ res.status(500).json({ message: 'Error updating product.' });
+ }
+};
+
+// Delete a product by ID
+const deleteProduct = async (req, res) => {
+ const { id } = req.params;
+
+ try {
+ const deletedProduct = await Product.findByIdAndDelete(id);
+
+ if (!deletedProduct) {
+ return res.status(404).json({ message: 'Product not found.' });
+ }
+
+ res.status(200).json({ message: 'Product deleted successfully.' });
+ } catch (error) {
+ console.error(error);
+ res.status(500).json({ message: 'Error deleting product.' });
+ }
+};
+
+module.exports = {
+ getAllProducts,
+ getProductById,
+ createProduct,
+ updateProduct,
+ deleteProduct
+};
diff --git a/BE/controllers/reviewController.js b/BE/controllers/reviewController.js
new file mode 100644
index 0000000000..30b9f77e33
--- /dev/null
+++ b/BE/controllers/reviewController.js
@@ -0,0 +1,115 @@
+const Review = require('../models/review');
+const Product = require('../models/product');
+const mongoose = require('mongoose');
+
+const getAllReviews = async (req, res) => {
+ try {
+ const reviews = await Review.find(); // Fetch all reviews
+ res.json(reviews); // Return the reviews
+ } catch (error) {
+ console.error('Error fetching reviews:', error);
+ res.status(500).json({ message: 'Server error' });
+ }
+};
+
+const createReview = async (req, res) => {
+ try {
+ // Extract data from request body
+ const { user, rating, review, productId } = req.body;
+
+ // Create a new review instance
+ const newReview = new Review({
+ user,
+ rating,
+ review,
+ productId
+ });
+
+ // Save the review to the database
+ const savedReview = await newReview.save();
+
+ // Send the saved review as a response
+ return res.status(201).json(savedReview);
+ } catch (error) {
+ console.error('Error creating review:', error);
+ return res.status(500).json({ message: 'Failed to create review.' });
+ }
+};
+
+// Corrected the function declaration
+const getReviewsByProductId = async (req, res) => {
+ try {
+ const { productId } = req.params; // Get the product ID from the route
+ const reviews = await Review.find({ productId }); // Find reviews associated with the product ID
+
+ if (!reviews || reviews.length === 0) {
+ return res.status(404).json({ message: 'No reviews found for this product.' });
+ }
+
+ res.json(reviews); // Return the found reviews
+ } catch (error) {
+ console.error('Error fetching reviews:', error);
+ res.status(500).json({ message: 'Server error' });
+ }
+};
+
+
+
+// Delete a review by productId and reviewId
+const deleteReview = async (req, res) => {
+ try {
+ const { reviewId } = req.params; // Get reviewId from request parameters
+ console.log('Attempting to delete review with ID:', reviewId);
+
+ const review = await Review.findById(reviewId); // Check if review exists
+ if (!review) {
+ console.error('Review not found:', reviewId);
+ return res.status(404).json({ message: 'Review not found' });
+ }
+
+ await Review.findByIdAndDelete(reviewId); // Delete the review
+ console.log('Review deleted successfully:', reviewId);
+
+ return res.status(200).json({ message: 'Review deleted successfully' });
+ } catch (error) {
+ console.error('Error deleting review:', error);
+ return res.status(500).json({ message: 'Server error', error });
+ }
+};
+
+// Fetch reviews for a product with pagination
+const getPaginatedReviewsByProductId = async (req, res) => {
+ const { productId } = req.params;
+ const { page = 1, limit = 4 } = req.query; // Default to page 1 and limit 4 reviews
+
+ try {
+ // Fetch reviews using pagination
+ const reviews = await Review.find({ productId })
+ .limit(limit * 1) // Limit to the specified number of reviews
+ .skip((page - 1) * limit) // Skip to the relevant page
+ .exec();
+
+ // Get the total number of reviews
+ const totalReviews = await Review.countDocuments({ productId });
+
+ res.status(200).json({
+ reviews,
+ totalPages: Math.ceil(totalReviews / limit),
+ currentPage: page,
+ });
+ } catch (error) {
+ res.status(500).json({ message: 'Error fetching paginated reviews', error });
+ }
+};
+
+
+
+
+module.exports = {
+ getAllReviews,
+ createReview,
+ getReviewsByProductId,
+ deleteReview,
+ getPaginatedReviewsByProductId,
+
+};
diff --git a/BE/middleware/errorHandler.js b/BE/middleware/errorHandler.js
new file mode 100644
index 0000000000..a5813f7558
--- /dev/null
+++ b/BE/middleware/errorHandler.js
@@ -0,0 +1,10 @@
+const errorHandler = (err, req, res, next) => {
+ const statusCode = res.statusCode === 200 ? 500 : res.statusCode;
+ res.status(statusCode);
+ res.json({
+ message: err.message,
+ stack: process.env.NODE_ENV === 'production' ? null : err.stack,
+ });
+};
+
+module.exports = errorHandler;
\ No newline at end of file
diff --git a/BE/models/product.js b/BE/models/product.js
new file mode 100644
index 0000000000..f5f1099512
--- /dev/null
+++ b/BE/models/product.js
@@ -0,0 +1,15 @@
+const mongoose = require('mongoose');
+
+// Product Schema
+const productSchema = new mongoose.Schema({
+ userName: { type: String, required: true },
+ name: { type: String, required: true },
+ description: { type: String, required: true },
+ price: { type: Number, required: true },
+ category: { type: String, required: true },
+ image: { type: String, required: true },
+}, { timestamps: true });
+
+const Product = mongoose.model('Product', productSchema);
+
+module.exports = Product;
diff --git a/BE/models/review.js b/BE/models/review.js
new file mode 100644
index 0000000000..4b71c808b5
--- /dev/null
+++ b/BE/models/review.js
@@ -0,0 +1,13 @@
+const mongoose = require('mongoose');
+
+// Review Schema
+const reviewSchema = new mongoose.Schema({
+ user: { type: String, required: true },
+ rating: { type: Number, required: true },
+ review: { type: String, required: true },
+ productId: { type: mongoose.Schema.Types.ObjectId, ref: 'Product', required: true }, // Reference to Product
+}, { timestamps: true });
+
+const Review = mongoose.model('Review', reviewSchema);
+
+module.exports = Review;
diff --git a/BE/package.json b/BE/package.json
new file mode 100644
index 0000000000..09d49a722f
--- /dev/null
+++ b/BE/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "be",
+ "version": "1.0.0",
+ "description": "be server",
+ "main": "server.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "start": "node server.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lesavantdon/product-list.git"
+ },
+ "author": "",
+ "license": "ISC",
+ "bugs": {
+ "url": "https://github.com/lesavantdon/product-list/issues"
+ },
+ "homepage": "https://github.com/lesavantdon/product-list#readme",
+ "dependencies": {
+ "cors": "^2.8.5",
+ "dotenv": "^16.4.5",
+ "express": "^4.19.2",
+ "mongoose": "^8.5.3"
+ }
+}
diff --git a/BE/scripts/seed.js b/BE/scripts/seed.js
new file mode 100644
index 0000000000..9630fa96fd
--- /dev/null
+++ b/BE/scripts/seed.js
@@ -0,0 +1,214 @@
+require('dotenv').config(); // Load environment variables
+
+const mongoose = require('mongoose');
+const Product = require('../models/product'); // Ensure this path is correct
+const Review = require('../models/review'); // Ensure this path is correct
+
+const uri = process.env.MONGODB_URI || "mongodb://lesavantdon:icecream2@localhost:27017/productsdb?authSource=admin";
+
+// Connect to MongoDB
+mongoose.connect(uri)
+ .then(() => {
+ console.log('Database connected!');
+ return Product.deleteMany({}); // Clear existing product data
+ })
+ .then(() => {
+ console.log('Existing product data deleted!');
+
+ // Sample product datanode
+ const sampleProducts = [
+ {
+ name: 'Ray-Ban Wayfarer',
+ price: 150,
+ category: 'Sunglasses',
+ image: 'https://example.com/rayban-wayfarer.jpg',
+ description: 'Classic Ray-Ban Wayfarer sunglasses, known for their iconic style.',
+ userName: 'JohnDoe'
+ },
+ {
+ name: 'Oakley Holbrook',
+ price: 130,
+ category: 'Sunglasses',
+ image: 'https://example.com/oakley-holbrook.jpg',
+ description: 'Stylish Oakley Holbrook sunglasses designed for a modern look.',
+ userName: 'JaneSmith'
+ },
+ {
+ name: 'Persol 714',
+ price: 250,
+ category: 'Sunglasses',
+ image: 'https://example.com/persol-714.jpg',
+ description: 'Foldable sunglasses designed by Persol.',
+ userName: 'BobJohnson'
+ },
+ {
+ name: 'Maui Jim Peahi',
+ price: 220,
+ category: 'Sunglasses',
+ image: 'https://example.com/maui-jim-peahi.jpg',
+ description: 'Maui Jim Peahi sunglasses with polarized lenses.',
+ userName: 'AliceWilliams'
+ },
+ {
+ name: 'Gucci GG0061S',
+ price: 400,
+ category: 'Sunglasses',
+ image: 'https://example.com/gucci-gg0061s.jpg',
+ description: 'Luxury sunglasses from Gucci with a stylish design.',
+ userName: 'CharlieBrown'
+ },
+ {
+ name: 'Fendi FF 0240S',
+ price: 300,
+ category: 'Sunglasses',
+ image: 'https://example.com/fendi-ff-0240s.jpg',
+ description: 'Trendy Fendi sunglasses with a unique frame.',
+ userName: 'SamanthaGreen'
+ },
+ {
+ name: 'Prada PR 17WS',
+ price: 350,
+ category: 'Sunglasses',
+ image: 'https://example.com/prada-pr-17ws.jpg',
+ description: 'Elegant Prada sunglasses perfect for any occasion.',
+ userName: 'DanielThompson'
+ },
+ {
+ name: 'Tom Ford FT0237',
+ price: 500,
+ category: 'Sunglasses',
+ image: 'https://example.com/tom-ford-ft0237.jpg',
+ description: 'Tom Ford sunglasses with a luxury design.',
+ userName: 'OliviaMartinez'
+ },
+ {
+ name: 'Bolon B6033',
+ price: 90,
+ category: 'Sunglasses',
+ image: 'https://example.com/bolon-b6033.jpg',
+ description: 'Affordable and stylish sunglasses by Bolon.',
+ userName: 'SophiaRobinson'
+ },
+ {
+ name: 'Ray-Ban Aviator',
+ price: 160,
+ category: 'Sunglasses',
+ image: 'https://example.com/rayban-aviator.jpg',
+ description: 'Classic aviator sunglasses from Ray-Ban.',
+ userName: 'LiamJones'
+ },
+ {
+ name: 'Vogue Eyewear VO4097S',
+ price: 180,
+ category: 'Sunglasses',
+ image: 'https://example.com/vogue-vo4097s.jpg',
+ description: 'Chic Vogue sunglasses with a vintage touch.',
+ userName: 'EllaDavis'
+ },
+ {
+ name: 'Levi’s LV001',
+ price: 75,
+ category: 'Sunglasses',
+ image: 'https://example.com/levis-lv001.jpg',
+ description: 'Stylish Levi’s sunglasses that fit any casual outfit.',
+ userName: 'AvaGarcia'
+ }
+
+
+ ];
+
+ return Product.insertMany(sampleProducts); // Insert new product data
+ })
+ .then(async (insertedProducts) => {
+ console.log('New products added!');
+
+ // Sample review data with dynamic product IDs and required fields
+ const sampleReviews = [
+ {
+ productId: insertedProducts[0]._id, // Use the ID of the first inserted product
+ review: 'Absolutely love these sunglasses! Perfect for sunny days.', // Actual review text
+ rating: 5,
+ user: 'AliceWilliams', // User who made the review
+ },
+ {
+ productId: insertedProducts[1]._id, // Use the ID of the second inserted product
+ review: 'Great style but a bit pricey. Still worth it!', // Actual review text
+ rating: 4,
+ user: 'MichaelBrown', // User who made the review
+ },
+ {
+ productId: insertedProducts[2]._id, // ID of the Persol 714
+ review: 'Stylish and functional, perfect for outdoor activities.',
+ rating: 5,
+ user: 'SophieTurner',
+ },
+ {
+ productId: insertedProducts[3]._id, // ID of the Maui Jim Peahi
+ review: 'The polarized lenses make a big difference! Highly recommend.',
+ rating: 5,
+ user: 'EmmaStone',
+ },
+ {
+ productId: insertedProducts[4]._id, // ID of the Gucci GG0061S
+ review: 'Luxury feel and stylish design, but the fit is a bit snug.',
+ rating: 4,
+ user: 'DanielCraig',
+ },
+ {
+ productId: insertedProducts[5]._id, // ID of the Fendi FF 0240S
+ review: 'These are my go-to sunglasses for every occasion!',
+ rating: 5,
+ user: 'ScarlettJohansson',
+ },
+ {
+ productId: insertedProducts[6]._id, // ID of the Prada PR 17WS
+ review: 'Great design, but they slip off my nose sometimes.',
+ rating: 3,
+ user: 'ChrisHemsworth',
+ },
+ {
+ productId: insertedProducts[7]._id, // ID of the Tom Ford FT0237
+ review: 'Truly a statement piece! Worth every penny.',
+ rating: 5,
+ user: 'NataliePortman',
+ },
+ {
+ productId: insertedProducts[8]._id, // ID of the Bolon B6033
+ review: 'Decent sunglasses for the price, but they feel a bit cheap.',
+ rating: 3,
+ user: 'RyanGosling',
+ },
+ {
+ productId: insertedProducts[9]._id, // ID of the Ray-Ban Aviator
+ review: 'Classic aviators that never go out of style!',
+ rating: 4,
+ user: 'OliviaColman',
+ },
+ {
+ productId: insertedProducts[10]._id, // ID of the Vogue Eyewear VO4097S
+ review: 'Love the vintage look! They fit perfectly.',
+ rating: 5,
+ user: 'JessicaAlba',
+ },
+ {
+ productId: insertedProducts[11]._id, // ID of the Levi’s LV001
+ review: 'Stylish and affordable, great for casual outings.',
+ rating: 4,
+ user: 'TomHolland',
+ },
+
+
+ ];
+
+ await Review.deleteMany({}); // Clear existing reviews
+ console.log('Existing reviews deleted!');
+
+ await Review.insertMany(sampleReviews); // Insert new reviews
+ console.log('New reviews added!');
+ })
+ .catch(err => {
+ console.error('Error:', err);
+ })
+ .finally(() => {
+ mongoose.connection.close(); // Close the connection
+ });
diff --git a/BE/server.js b/BE/server.js
new file mode 100644
index 0000000000..31ffd9f9ed
--- /dev/null
+++ b/BE/server.js
@@ -0,0 +1,18 @@
+
+
+const dotenv = require('dotenv');
+const connectDB = require('./config/db');
+const app = require('./app'); // Import your main app configuration
+
+
+
+
+
+
+dotenv.config(); // Load environment variables from .env file
+connectDB(); // Connect to the database
+const PORT = process.env.PORT || 5000;
+app.listen(PORT, () => {
+ console.log(`Server running on port ${PORT}`);
+});
+
diff --git a/BE/swagger.yaml b/BE/swagger.yaml
new file mode 100644
index 0000000000..e2a71b1f0e
--- /dev/null
+++ b/BE/swagger.yaml
@@ -0,0 +1,31 @@
+openapi: 3.0.0
+info:
+ title: Product API
+ version: 1.0.0
+paths:
+ /api/products:
+ get:
+ summary: Get all products
+ responses:
+ "200":
+ description: Success
+ post:
+ summary: Create a new product
+ responses:
+ "201":
+ description: Created
+ /api/products/{id}:
+ get:
+ summary: Get a product by ID
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Success
+ delete:
+ summary: Delete a product by ID
+ parameters:
diff --git a/FE/.gitignore b/FE/.gitignore
new file mode 100644
index 0000000000..1de628c798
--- /dev/null
+++ b/FE/.gitignore
@@ -0,0 +1,3 @@
+# Node modules
+node_modules/
+package-lock.json/
\ No newline at end of file
diff --git a/FE/.next/build-manifest.json b/FE/.next/build-manifest.json
new file mode 100644
index 0000000000..22dd7af59b
--- /dev/null
+++ b/FE/.next/build-manifest.json
@@ -0,0 +1,52 @@
+{
+ "polyfillFiles": [
+ "static/chunks/polyfills-c67a75d1b6f99dc8.js"
+ ],
+ "devFiles": [],
+ "ampDevFiles": [],
+ "lowPriorityFiles": [
+ "static/KxjiK-bHBzomz58T3BYAs/_buildManifest.js",
+ "static/KxjiK-bHBzomz58T3BYAs/_ssgManifest.js"
+ ],
+ "rootMainFiles": [],
+ "pages": {
+ "/HomePage": [
+ "static/chunks/webpack-3efa74f27f48abae.js",
+ "static/chunks/framework-825c16b9e70f8bdd.js",
+ "static/chunks/main-6ed36289ebba5a2e.js",
+ "static/css/8d5678ec7ae84e5b.css",
+ "static/chunks/66-507ab0653aca269b.js",
+ "static/chunks/731-413b078c5ace66cb.js",
+ "static/chunks/pages/HomePage-ab6b2d715f2e5d4c.js"
+ ],
+ "/ProductPage": [
+ "static/chunks/webpack-3efa74f27f48abae.js",
+ "static/chunks/framework-825c16b9e70f8bdd.js",
+ "static/chunks/main-6ed36289ebba5a2e.js",
+ "static/chunks/349f80dd-7ce8c51c11c8334d.js",
+ "static/chunks/66-507ab0653aca269b.js",
+ "static/chunks/402-0641fa14696cfe34.js",
+ "static/chunks/pages/ProductPage-ee3c7943368d0ecd.js"
+ ],
+ "/ReviewPage": [
+ "static/chunks/webpack-3efa74f27f48abae.js",
+ "static/chunks/framework-825c16b9e70f8bdd.js",
+ "static/chunks/main-6ed36289ebba5a2e.js",
+ "static/chunks/66-507ab0653aca269b.js",
+ "static/chunks/pages/ReviewPage-9b6e573c15fc74c5.js"
+ ],
+ "/_app": [
+ "static/chunks/webpack-3efa74f27f48abae.js",
+ "static/chunks/framework-825c16b9e70f8bdd.js",
+ "static/chunks/main-6ed36289ebba5a2e.js",
+ "static/chunks/pages/_app-ee11eff38c423302.js"
+ ],
+ "/_error": [
+ "static/chunks/webpack-3efa74f27f48abae.js",
+ "static/chunks/framework-825c16b9e70f8bdd.js",
+ "static/chunks/main-6ed36289ebba5a2e.js",
+ "static/chunks/pages/_error-52dc6c3eb610e871.js"
+ ]
+ },
+ "ampFirstPages": []
+}
\ No newline at end of file
diff --git a/FE/.next/cache/eslint/.cache_10t9hhs b/FE/.next/cache/eslint/.cache_10t9hhs
new file mode 100644
index 0000000000..4471eeab6f
--- /dev/null
+++ b/FE/.next/cache/eslint/.cache_10t9hhs
@@ -0,0 +1 @@
+[{"/Users/aneetsingh/FE+BE/FE/src/App.js":"1","/Users/aneetsingh/FE+BE/FE/src/components/FilterByCategory.js":"2","/Users/aneetsingh/FE+BE/FE/src/components/Pagination.js":"3","/Users/aneetsingh/FE+BE/FE/src/components/ProductList.js":"4","/Users/aneetsingh/FE+BE/FE/src/components/Search.js":"5","/Users/aneetsingh/FE+BE/FE/src/components/productComponent.js":"6","/Users/aneetsingh/FE+BE/FE/src/components/reviewComponent.js":"7","/Users/aneetsingh/FE+BE/FE/src/components/sortByPrice.js":"8","/Users/aneetsingh/FE+BE/FE/src/features/products/productsSlice.js":"9","/Users/aneetsingh/FE+BE/FE/src/index.js":"10","/Users/aneetsingh/FE+BE/FE/src/pages/HomePage.js":"11","/Users/aneetsingh/FE+BE/FE/src/pages/ProductPage.js":"12","/Users/aneetsingh/FE+BE/FE/src/pages/ReviewPage.js":"13","/Users/aneetsingh/FE+BE/FE/src/redux/actions/productActions.js":"14","/Users/aneetsingh/FE+BE/FE/src/redux/reducers/productReducer.js":"15","/Users/aneetsingh/FE+BE/FE/src/redux/store.js":"16","/Users/aneetsingh/FE+BE/FE/src/redux/types.js":"17","/Users/aneetsingh/FE+BE/FE/src/services/api.js":"18","/Users/aneetsingh/FE+BE/FE/src/utils/api.js":"19","/Users/aneetsingh/FE+BE/FE/src/utils/helpers.js":"20"},{"size":739,"mtime":1725681817462,"results":"21","hashOfConfig":"22"},{"size":1795,"mtime":1726111206612,"results":"23","hashOfConfig":"22"},{"size":722,"mtime":1723613627089,"results":"24","hashOfConfig":"22"},{"size":2294,"mtime":1726111644541,"results":"25","hashOfConfig":"22"},{"size":775,"mtime":1725676449435,"results":"26","hashOfConfig":"22"},{"size":3109,"mtime":1724128145335,"results":"27","hashOfConfig":"22"},{"size":2527,"mtime":1725402464360,"results":"28","hashOfConfig":"22"},{"size":1310,"mtime":1725777299104,"results":"29","hashOfConfig":"22"},{"size":1115,"mtime":1723617121856,"results":"30","hashOfConfig":"22"},{"size":346,"mtime":1725773655701,"results":"31","hashOfConfig":"22"},{"size":2748,"mtime":1726113896478,"results":"32","hashOfConfig":"22"},{"size":658,"mtime":1723783467175,"results":"33","hashOfConfig":"22"},{"size":299,"mtime":1725772379706,"results":"34","hashOfConfig":"22"},{"size":615,"mtime":1723783371965,"results":"35","hashOfConfig":"22"},{"size":540,"mtime":1723783379086,"results":"36","hashOfConfig":"22"},{"size":449,"mtime":1725487025399,"results":"37","hashOfConfig":"22"},{"size":94,"mtime":1723783411352,"results":"38","hashOfConfig":"22"},{"size":1581,"mtime":1724123678823,"results":"39","hashOfConfig":"22"},{"size":426,"mtime":1723783693548,"results":"40","hashOfConfig":"22"},{"size":62,"mtime":1723783692440,"results":"41","hashOfConfig":"22"},{"filePath":"42","messages":"43","suppressedMessages":"44","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"ymjvvx",{"filePath":"45","messages":"46","suppressedMessages":"47","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"48","messages":"49","suppressedMessages":"50","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"51","messages":"52","suppressedMessages":"53","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"54","messages":"55","suppressedMessages":"56","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"57","messages":"58","suppressedMessages":"59","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"60","messages":"61","suppressedMessages":"62","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"63","messages":"64","suppressedMessages":"65","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"66","messages":"67","suppressedMessages":"68","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"69","messages":"70","suppressedMessages":"71","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"72","messages":"73","suppressedMessages":"74","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"75","messages":"76","suppressedMessages":"77","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"78","messages":"79","suppressedMessages":"80","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"81","messages":"82","suppressedMessages":"83","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"84","messages":"85","suppressedMessages":"86","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"87","messages":"88","suppressedMessages":"89","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"90","messages":"91","suppressedMessages":"92","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"93","messages":"94","suppressedMessages":"95","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"96","messages":"97","suppressedMessages":"98","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"99","messages":"100","suppressedMessages":"101","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/aneetsingh/FE+BE/FE/src/App.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/components/FilterByCategory.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/components/Pagination.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/components/ProductList.js",["102"],[],"/Users/aneetsingh/FE+BE/FE/src/components/Search.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/components/productComponent.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/components/reviewComponent.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/components/sortByPrice.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/features/products/productsSlice.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/index.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/pages/HomePage.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/pages/ProductPage.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/pages/ReviewPage.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/redux/actions/productActions.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/redux/reducers/productReducer.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/redux/store.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/redux/types.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/services/api.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/utils/api.js",[],[],"/Users/aneetsingh/FE+BE/FE/src/utils/helpers.js",[],[],{"ruleId":"103","severity":1,"message":"104","line":46,"column":15,"nodeType":"105","endLine":46,"endColumn":87},"@next/next/no-img-element","Using `
` could result in slower LCP and higher bandwidth. Consider using `` from `next/image` to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element","JSXOpeningElement"]
\ No newline at end of file
diff --git a/FE/.next/cache/webpack/client-production/0.pack b/FE/.next/cache/webpack/client-production/0.pack
new file mode 100644
index 0000000000..cf1f992d95
Binary files /dev/null and b/FE/.next/cache/webpack/client-production/0.pack differ
diff --git a/FE/.next/cache/webpack/client-production/1.pack b/FE/.next/cache/webpack/client-production/1.pack
new file mode 100644
index 0000000000..a5a61f7651
Binary files /dev/null and b/FE/.next/cache/webpack/client-production/1.pack differ
diff --git a/FE/.next/cache/webpack/client-production/2.pack b/FE/.next/cache/webpack/client-production/2.pack
new file mode 100644
index 0000000000..7f3d7717d8
Binary files /dev/null and b/FE/.next/cache/webpack/client-production/2.pack differ
diff --git a/FE/.next/cache/webpack/client-production/index.pack b/FE/.next/cache/webpack/client-production/index.pack
new file mode 100644
index 0000000000..bf9d6324c9
Binary files /dev/null and b/FE/.next/cache/webpack/client-production/index.pack differ
diff --git a/FE/.next/cache/webpack/client-production/index.pack.old b/FE/.next/cache/webpack/client-production/index.pack.old
new file mode 100644
index 0000000000..e26f477829
Binary files /dev/null and b/FE/.next/cache/webpack/client-production/index.pack.old differ
diff --git a/FE/.next/cache/webpack/server-production/0.pack b/FE/.next/cache/webpack/server-production/0.pack
new file mode 100644
index 0000000000..5a3ebe5568
Binary files /dev/null and b/FE/.next/cache/webpack/server-production/0.pack differ
diff --git a/FE/.next/cache/webpack/server-production/1.pack b/FE/.next/cache/webpack/server-production/1.pack
new file mode 100644
index 0000000000..58c368e61c
Binary files /dev/null and b/FE/.next/cache/webpack/server-production/1.pack differ
diff --git a/FE/.next/cache/webpack/server-production/2.pack b/FE/.next/cache/webpack/server-production/2.pack
new file mode 100644
index 0000000000..dd44447326
Binary files /dev/null and b/FE/.next/cache/webpack/server-production/2.pack differ
diff --git a/FE/.next/cache/webpack/server-production/index.pack b/FE/.next/cache/webpack/server-production/index.pack
new file mode 100644
index 0000000000..975f007b04
Binary files /dev/null and b/FE/.next/cache/webpack/server-production/index.pack differ
diff --git a/FE/.next/cache/webpack/server-production/index.pack.old b/FE/.next/cache/webpack/server-production/index.pack.old
new file mode 100644
index 0000000000..2e0d30f71c
Binary files /dev/null and b/FE/.next/cache/webpack/server-production/index.pack.old differ
diff --git a/FE/.next/package.json b/FE/.next/package.json
new file mode 100644
index 0000000000..7156107e3a
--- /dev/null
+++ b/FE/.next/package.json
@@ -0,0 +1 @@
+{"type": "commonjs"}
\ No newline at end of file
diff --git a/FE/.next/prerender-manifest.js b/FE/.next/prerender-manifest.js
new file mode 100644
index 0000000000..02824f9e4f
--- /dev/null
+++ b/FE/.next/prerender-manifest.js
@@ -0,0 +1 @@
+self.__PRERENDER_MANIFEST="{\"preview\":{\"previewModeId\":\"36fac0f16a91517e9e97e6bc5fcbd5cd\",\"previewModeSigningKey\":\"3e56f845fa7871d783780564391eee972cc036765058fa5c330fb46aacd9ca34\",\"previewModeEncryptionKey\":\"4ad11391a867efcb970c6cf9196a729176373a8bb042225f13dede80cbdb3998\"}}"
\ No newline at end of file
diff --git a/FE/.next/react-loadable-manifest.json b/FE/.next/react-loadable-manifest.json
new file mode 100644
index 0000000000..9e26dfeeb6
--- /dev/null
+++ b/FE/.next/react-loadable-manifest.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/FE/.next/routes-manifest.json b/FE/.next/routes-manifest.json
new file mode 100644
index 0000000000..f608d3fabd
--- /dev/null
+++ b/FE/.next/routes-manifest.json
@@ -0,0 +1 @@
+{"version":3,"pages404":true,"caseSensitive":false,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[],"dynamicRoutes":[],"staticRoutes":[{"page":"/HomePage","regex":"^/HomePage(?:/)?$","routeKeys":{},"namedRegex":"^/HomePage(?:/)?$"},{"page":"/ProductPage","regex":"^/ProductPage(?:/)?$","routeKeys":{},"namedRegex":"^/ProductPage(?:/)?$"},{"page":"/ReviewPage","regex":"^/ReviewPage(?:/)?$","routeKeys":{},"namedRegex":"^/ReviewPage(?:/)?$"}],"dataRoutes":[],"rsc":{"header":"RSC","varyHeader":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Url","prefetchHeader":"Next-Router-Prefetch","contentTypeHeader":"text/x-component"},"rewrites":[]}
\ No newline at end of file
diff --git a/FE/.next/server/chunks/209.js b/FE/.next/server/chunks/209.js
new file mode 100644
index 0000000000..de9f592168
--- /dev/null
+++ b/FE/.next/server/chunks/209.js
@@ -0,0 +1,6 @@
+"use strict";exports.id=209,exports.ids=[209],exports.modules={9209:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{Head:function(){return Head},NextScript:function(){return NextScript},Html:function(){return Html},Main:function(){return Main},default:function(){return Document}});let r=_interop_require_default(n(6689)),i=n(2338),o=n(5778),l=n(9630),s=_interop_require_default(n(676)),a=n(3112);function _interop_require_default(e){return e&&e.__esModule?e:{default:e}}let u=new Set;function getDocumentFiles(e,t,n){let r=(0,o.getPageFiles)(e,"/_app"),i=n?[]:(0,o.getPageFiles)(e,t);return{sharedFiles:r,pageFiles:i,allFiles:[...new Set([...r,...i])]}}function getPolyfillScripts(e,t){let{assetPrefix:n,buildManifest:i,assetQueryString:o,disableOptimizedLoading:l,crossOrigin:s}=e;return i.polyfillFiles.filter(e=>e.endsWith(".js")&&!e.endsWith(".module.js")).map(e=>r.default.createElement("script",{key:e,defer:!l,nonce:t.nonce,crossOrigin:t.crossOrigin||s,noModule:!0,src:`${n}/_next/${e}${o}`}))}function AmpStyles({styles:e}){if(!e)return null;let t=Array.isArray(e)?e:[];if(e.props&&Array.isArray(e.props.children)){let hasStyles=e=>{var t,n;return null==e?void 0:null==(n=e.props)?void 0:null==(t=n.dangerouslySetInnerHTML)?void 0:t.__html};e.props.children.forEach(e=>{Array.isArray(e)?e.forEach(e=>hasStyles(e)&&t.push(e)):hasStyles(e)&&t.push(e)})}return r.default.createElement("style",{"amp-custom":"",dangerouslySetInnerHTML:{__html:t.map(e=>e.props.dangerouslySetInnerHTML.__html).join("").replace(/\/\*# sourceMappingURL=.*\*\//g,"").replace(/\/\*@ sourceURL=.*?\*\//g,"")}})}function getDynamicChunks(e,t,n){let{dynamicImports:i,assetPrefix:o,isDevelopment:l,assetQueryString:s,disableOptimizedLoading:a,crossOrigin:u}=e;return i.map(e=>!e.endsWith(".js")||n.allFiles.includes(e)?null:r.default.createElement("script",{async:!l&&a,defer:!a,key:e,src:`${o}/_next/${encodeURI(e)}${s}`,nonce:t.nonce,crossOrigin:t.crossOrigin||u}))}function getScripts(e,t,n){var i;let{assetPrefix:o,buildManifest:l,isDevelopment:s,assetQueryString:a,disableOptimizedLoading:u,crossOrigin:c}=e,d=n.allFiles.filter(e=>e.endsWith(".js")),p=null==(i=l.lowPriorityFiles)?void 0:i.filter(e=>e.endsWith(".js"));return[...d,...p].map(e=>r.default.createElement("script",{key:e,src:`${o}/_next/${encodeURI(e)}${a}`,nonce:t.nonce,async:!s&&u,defer:!u,crossOrigin:t.crossOrigin||c}))}function getPreNextScripts(e,t){let{scriptLoader:n,disableOptimizedLoading:i,crossOrigin:o}=e,l=function(e,t){let{assetPrefix:n,scriptLoader:i,crossOrigin:o,nextScriptWorkers:l}=e;if(!l)return null;try{let{partytownSnippet:e}=require("@builder.io/partytown/integration"),l=Array.isArray(t.children)?t.children:[t.children],s=l.find(e=>{var t,n;return!!e&&!!e.props&&(null==e?void 0:null==(n=e.props)?void 0:null==(t=n.dangerouslySetInnerHTML)?void 0:t.__html.length)&&"data-partytown-config"in e.props});return r.default.createElement(r.default.Fragment,null,!s&&r.default.createElement("script",{"data-partytown-config":"",dangerouslySetInnerHTML:{__html:`
+ partytown = {
+ lib: "${n}/_next/static/~partytown/"
+ };
+ `}}),r.default.createElement("script",{"data-partytown":"",dangerouslySetInnerHTML:{__html:e()}}),(i.worker||[]).map((e,n)=>{let{strategy:i,src:l,children:s,dangerouslySetInnerHTML:a,...u}=e,c={};if(l)c.src=l;else if(a&&a.__html)c.dangerouslySetInnerHTML={__html:a.__html};else if(s)c.dangerouslySetInnerHTML={__html:"string"==typeof s?s:Array.isArray(s)?s.join(""):""};else throw Error("Invalid usage of next/script. Did you forget to include a src attribute or an inline script? https://nextjs.org/docs/messages/invalid-script");return r.default.createElement("script",{...c,...u,type:"text/partytown",key:l||n,nonce:t.nonce,"data-nscript":"worker",crossOrigin:t.crossOrigin||o})}))}catch(e){return(0,s.default)(e)&&"MODULE_NOT_FOUND"!==e.code&&console.warn(`Warning: ${e.message}`),null}}(e,t),a=(n.beforeInteractive||[]).filter(e=>e.src).map((e,n)=>{let{strategy:l,...s}=e;return r.default.createElement("script",{...s,key:s.src||n,defer:s.defer??!i,nonce:t.nonce,"data-nscript":"beforeInteractive",crossOrigin:t.crossOrigin||o})});return r.default.createElement(r.default.Fragment,null,l,a)}let Head=class Head extends r.default.Component{static #e=this.contextType=a.HtmlContext;getCssLinks(e){let{assetPrefix:t,assetQueryString:n,dynamicImports:i,crossOrigin:o,optimizeCss:l,optimizeFonts:s}=this.context,a=e.allFiles.filter(e=>e.endsWith(".css")),u=new Set(e.sharedFiles),c=new Set([]),d=Array.from(new Set(i.filter(e=>e.endsWith(".css"))));if(d.length){let e=new Set(a);d=d.filter(t=>!(e.has(t)||u.has(t))),c=new Set(d),a.push(...d)}let p=[];return a.forEach(e=>{let i=u.has(e);l||p.push(r.default.createElement("link",{key:`${e}-preload`,nonce:this.props.nonce,rel:"preload",href:`${t}/_next/${encodeURI(e)}${n}`,as:"style",crossOrigin:this.props.crossOrigin||o}));let s=c.has(e);p.push(r.default.createElement("link",{key:e,nonce:this.props.nonce,rel:"stylesheet",href:`${t}/_next/${encodeURI(e)}${n}`,crossOrigin:this.props.crossOrigin||o,"data-n-g":s?void 0:i?"":void 0,"data-n-p":s?void 0:i?void 0:""}))}),s&&(p=this.makeStylesheetInert(p)),0===p.length?null:p}getPreloadDynamicChunks(){let{dynamicImports:e,assetPrefix:t,assetQueryString:n,crossOrigin:i}=this.context;return e.map(e=>e.endsWith(".js")?r.default.createElement("link",{rel:"preload",key:e,href:`${t}/_next/${encodeURI(e)}${n}`,as:"script",nonce:this.props.nonce,crossOrigin:this.props.crossOrigin||i}):null).filter(Boolean)}getPreloadMainLinks(e){let{assetPrefix:t,assetQueryString:n,scriptLoader:i,crossOrigin:o}=this.context,l=e.allFiles.filter(e=>e.endsWith(".js"));return[...(i.beforeInteractive||[]).map(e=>r.default.createElement("link",{key:e.src,nonce:this.props.nonce,rel:"preload",href:e.src,as:"script",crossOrigin:this.props.crossOrigin||o})),...l.map(e=>r.default.createElement("link",{key:e,nonce:this.props.nonce,rel:"preload",href:`${t}/_next/${encodeURI(e)}${n}`,as:"script",crossOrigin:this.props.crossOrigin||o}))]}getBeforeInteractiveInlineScripts(){let{scriptLoader:e}=this.context,{nonce:t,crossOrigin:n}=this.props;return(e.beforeInteractive||[]).filter(e=>!e.src&&(e.dangerouslySetInnerHTML||e.children)).map((e,i)=>{let{strategy:o,children:l,dangerouslySetInnerHTML:s,src:a,...u}=e,c="";return s&&s.__html?c=s.__html:l&&(c="string"==typeof l?l:Array.isArray(l)?l.join(""):""),r.default.createElement("script",{...u,dangerouslySetInnerHTML:{__html:c},key:u.id||i,nonce:t,"data-nscript":"beforeInteractive",crossOrigin:n||void 0})})}getDynamicChunks(e){return getDynamicChunks(this.context,this.props,e)}getPreNextScripts(){return getPreNextScripts(this.context,this.props)}getScripts(e){return getScripts(this.context,this.props,e)}getPolyfillScripts(){return getPolyfillScripts(this.context,this.props)}makeStylesheetInert(e){return r.default.Children.map(e,e=>{var t,n;if((null==e?void 0:e.type)==="link"&&(null==e?void 0:null==(t=e.props)?void 0:t.href)&&i.OPTIMIZED_FONT_PROVIDERS.some(({url:t})=>{var n,r;return null==e?void 0:null==(r=e.props)?void 0:null==(n=r.href)?void 0:n.startsWith(t)})){let t={...e.props||{},"data-href":e.props.href,href:void 0};return r.default.cloneElement(e,t)}if(null==e?void 0:null==(n=e.props)?void 0:n.children){let t={...e.props||{},children:this.makeStylesheetInert(e.props.children)};return r.default.cloneElement(e,t)}return e}).filter(Boolean)}render(){let{styles:e,ampPath:t,inAmpMode:i,hybridAmp:o,canonicalBase:l,__NEXT_DATA__:s,dangerousAsPath:a,headTags:u,unstable_runtimeJS:c,unstable_JsPreload:d,disableOptimizedLoading:p,optimizeCss:f,optimizeFonts:h,assetPrefix:m,nextFontManifest:_}=this.context,g=!1===c,E=!1===d||!p;this.context.docComponentsRendered.Head=!0;let{head:S}=this.context,y=[],I=[];S&&(S.forEach(e=>{let t;this.context.strictNextHead&&(t=r.default.createElement("meta",{name:"next-head",content:"1"})),e&&"link"===e.type&&"preload"===e.props.rel&&"style"===e.props.as?(t&&y.push(t),y.push(e)):e&&(t&&("meta"!==e.type||!e.props.charSet)&&I.push(t),I.push(e))}),S=y.concat(I));let T=r.default.Children.toArray(this.props.children).filter(Boolean);h&&!i&&(T=this.makeStylesheetInert(T));let P=!1,N=!1;S=r.default.Children.map(S||[],e=>{if(!e)return e;let{type:t,props:n}=e;if(i){let r="";if("meta"===t&&"viewport"===n.name?r='name="viewport"':"link"===t&&"canonical"===n.rel?N=!0:"script"===t&&(n.src&&-1>n.src.indexOf("ampproject")||n.dangerouslySetInnerHTML&&(!n.type||"text/javascript"===n.type))&&(r="",n=n.removeChild(n.firstChild)):"string"==typeof i.is?n=_.createElement(a,{is:i.is}):(n=_.createElement(a),"select"===a&&(_=n,i.multiple?_.multiple=!0:i.size&&(_.size=i.size))):n=_.createElementNS(n,a),n[tN]=t,n[tz]=i,u(n,t,!1,!1),t.stateNode=n;e:{switch(_=vb(a,i),a){case"dialog":D("cancel",n),D("close",n),x=i;break;case"iframe":case"object":case"embed":D("load",n),x=i;break;case"video":case"audio":for(x=0;xr3&&(t.flags|=128,i=!0,Dj(C,!1),t.lanes=4194304)}}else{if(!i){if(null!==(n=Ch(_))){if(t.flags|=128,i=!0,null!==(a=n.updateQueue)&&(t.updateQueue=a,t.flags|=4),Dj(C,!0),null===C.tail&&"hidden"===C.tailMode&&!_.alternate&&!t1)return S(t),null}else 2*e$()-C.renderingStartTime>r3&&1073741824!==a&&(t.flags|=128,i=!0,Dj(C,!1),t.lanes=4194304)}C.isBackwards?(_.sibling=t.child,t.child=_):(null!==(a=C.last)?a.sibling=_:t.child=_,C.last=_)}if(null!==C.tail)return t=C.tail,C.rendering=t,C.tail=t.sibling,C.renderingStartTime=e$(),t.sibling=null,a=rs.current,G(rs,i?1&a|2:1&a),t;return S(t),null;case 22:case 23:return Hj(),i=null!==t.memoizedState,null!==n&&null!==n.memoizedState!==i&&(t.flags|=8192),i&&0!=(1&t.mode)?0!=(1073741824&rK)&&(S(t),6&t.subtreeFlags&&(t.flags|=8192)):S(t),null;case 24:case 25:return null}throw Error(p(156,t.tag))}(a,t,rK))){rH=a;return}}else{if(null!==(a=function(n,t){switch(wg(t),t.tag){case 1:return Zf(t.type)&&$f(),65536&(n=t.flags)?(t.flags=-65537&n|128,t):null;case 3:return zh(),E(tU),E(tO),Eh(),0!=(65536&(n=t.flags))&&0==(128&n)?(t.flags=-65537&n|128,t):null;case 5:return Bh(t),null;case 13:if(E(rs),null!==(n=t.memoizedState)&&null!==n.dehydrated){if(null===t.alternate)throw Error(p(340));Ig()}return 65536&(n=t.flags)?(t.flags=-65537&n|128,t):null;case 19:return E(rs),null;case 4:return zh(),null;case 10:return ah(t.type._context),null;case 22:case 23:return Hj(),null;default:return null}}(a,t))){a.flags&=32767,rH=a;return}if(null!==n)n.flags|=32768,n.subtreeFlags=0,n.deletions=null;else{rq=6,rH=null;return}}if(null!==(t=t.sibling)){rH=t;return}rH=t=n}while(null!==t);0===rq&&(rq=5)}function Pk(n,t,a){var i=e4,u=rB.transition;try{rB.transition=null,e4=1,function(n,t,a,i){do Hk();while(null!==r7);if(0!=(6&rA))throw Error(p(327));a=n.finishedWork;var u=n.finishedLanes;if(null!==a){if(n.finishedWork=null,n.finishedLanes=0,a===n.current)throw Error(p(177));n.callbackNode=null,n.callbackPriority=0;var o=a.lanes|a.childLanes;if(function(n,t){var a=n.pendingLanes&~t;n.pendingLanes=t,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=t,n.mutableReadLanes&=t,n.entangledLanes&=t,t=n.entanglements;var i=n.eventTimes;for(n=n.expirationTimes;0i&&(u=i,i=o,o=u),u=Ke(a,o);var s=Ke(a,i);u&&s&&(1!==n.rangeCount||n.anchorNode!==u.node||n.anchorOffset!==u.offset||n.focusNode!==s.node||n.focusOffset!==s.offset)&&((t=t.createRange()).setStart(u.node,u.offset),n.removeAllRanges(),o>i?(n.addRange(t),n.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),n.addRange(t)))}}for(t=[],n=a;n=n.parentNode;)1===n.nodeType&&t.push({element:n,left:n.scrollLeft,top:n.scrollTop});for("function"==typeof a.focus&&a.focus(),a=0;an?16:n,null===r7)var i=!1;else{if(n=r7,r7=null,le=0,0!=(6&rA))throw Error(p(331));var u=rA;for(rA|=4,rM=n.current;null!==rM;){var o=rM,s=o.child;if(0!=(16&rM.flags)){var w=o.deletions;if(null!==w){for(var x=0;xe$()-r2?Kk(n,0):rJ|=a),Dk(n,t)}function Yk(n,t){0===t&&(0==(1&n.mode)?t=1:(t=e3,0==(130023424&(e3<<=1))&&(e3=4194304)));var a=R();null!==(n=ih(n,t))&&(Ac(n,t,a),Dk(n,a))}function uj(n){var t=n.memoizedState,a=0;null!==t&&(a=t.retryLane),Yk(n,a)}function bk(n,t){var a=0;switch(n.tag){case 13:var i=n.stateNode,u=n.memoizedState;null!==u&&(a=u.retryLane);break;case 19:i=n.stateNode;break;default:throw Error(p(314))}null!==i&&i.delete(t),Yk(n,a)}function $k(n,t,a,i){this.tag=n,this.key=a,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bg(n,t,a,i){return new $k(n,t,a,i)}function aj(n){return!(!(n=n.prototype)||!n.isReactComponent)}function Pg(n,t){var a=n.alternate;return null===a?((a=Bg(n.tag,t,n.key,n.mode)).elementType=n.elementType,a.type=n.type,a.stateNode=n.stateNode,a.alternate=n,n.alternate=a):(a.pendingProps=t,a.type=n.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=14680064&n.flags,a.childLanes=n.childLanes,a.lanes=n.lanes,a.child=n.child,a.memoizedProps=n.memoizedProps,a.memoizedState=n.memoizedState,a.updateQueue=n.updateQueue,t=n.dependencies,a.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},a.sibling=n.sibling,a.index=n.index,a.ref=n.ref,a}function Rg(n,t,a,i,u,o){var s=2;if(i=n,"function"==typeof n)aj(n)&&(s=1);else if("string"==typeof n)s=5;else e:switch(n){case en:return Tg(a.children,u,o,t);case et:s=8,u|=8;break;case er:return(n=Bg(12,a,t,2|u)).elementType=er,n.lanes=o,n;case es:return(n=Bg(13,a,t,u)).elementType=es,n.lanes=o,n;case ec:return(n=Bg(19,a,t,u)).elementType=ec,n.lanes=o,n;case eg:return pj(a,u,o,t);default:if("object"==typeof n&&null!==n)switch(n.$$typeof){case ea:s=10;break e;case eu:s=9;break e;case eo:s=11;break e;case ef:s=14;break e;case ep:s=16,i=null;break e}throw Error(p(130,null==n?n:typeof n,""))}return(t=Bg(s,a,t,u)).elementType=n,t.type=i,t.lanes=o,t}function Tg(n,t,a,i){return(n=Bg(7,n,i,t)).lanes=a,n}function pj(n,t,a,i){return(n=Bg(22,n,i,t)).elementType=eg,n.lanes=a,n.stateNode={isHidden:!1},n}function Qg(n,t,a){return(n=Bg(6,n,null,t)).lanes=a,n}function Sg(n,t,a){return(t=Bg(4,null!==n.children?n.children:[],n.key,t)).lanes=a,t.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},t}function al(n,t,a,i,u){this.tag=t,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zc(0),this.expirationTimes=zc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zc(0),this.identifierPrefix=i,this.onRecoverableError=u,this.mutableSourceEagerHydrationData=null}function bl(n,t,a,i,u,o,s,w,x){return n=new al(n,t,a,w,x),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Bg(3,null,null,t),n.current=o,o.stateNode=n,o.memoizedState={element:i,isDehydrated:a,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(o),n}function dl(n){if(!n)return tI;n=n._reactInternals;e:{if(Vb(n)!==n||1!==n.tag)throw Error(p(170));var t=n;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Zf(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(p(171))}if(1===n.tag){var a=n.type;if(Zf(a))return bg(n,a,t)}return t}function el(n,t,a,i,u,o,s,w,x){return(n=bl(a,i,!0,n,u,o,s,w,x)).context=dl(null),a=n.current,(o=mh(i=R(),u=yi(a))).callback=null!=t?t:null,nh(a,o,u),n.current.lanes=u,Ac(n,u,i),Dk(n,i),n}function fl(n,t,a,i){var u=t.current,o=R(),s=yi(u);return a=dl(a),null===t.context?t.context=a:t.pendingContext=a,(t=mh(o,s)).payload={element:n},null!==(i=void 0===i?null:i)&&(t.callback=i),null!==(n=nh(u,t,s))&&(gi(n,u,s,o),oh(n,u,s)),s}function gl(n){return(n=n.current).child?(n.child.tag,n.child.stateNode):null}function hl(n,t){if(null!==(n=n.memoizedState)&&null!==n.dehydrated){var a=n.retryLane;n.retryLane=0!==a&&a>>1,u=n[i];if(0>>1;ig(w,a))xg(C,w)?(n[i]=C,n[x]=a,i=x):(n[i]=w,n[s]=a,i=s);else if(xg(C,a))n[i]=C,n[x]=a,i=x;else break}}return t}function g(n,t){var a=n.sortIndex-t.sortIndex;return 0!==a?a:n.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var a,i=performance;t.unstable_now=function(){return i.now()}}else{var u=Date,o=u.now();t.unstable_now=function(){return u.now()-o}}var s=[],w=[],x=1,C=null,_=3,N=!1,z=!1,j=!1,L="function"==typeof setTimeout?setTimeout:null,U="function"==typeof clearTimeout?clearTimeout:null,V="undefined"!=typeof setImmediate?setImmediate:null;function G(n){for(var t=h(w);null!==t;){if(null===t.callback)k(w);else if(t.startTime<=n)k(w),t.sortIndex=t.expirationTime,f(s,t);else break;t=h(w)}}function H(n){if(j=!1,G(n),!z){if(null!==h(s))z=!0,I(J);else{var t=h(w);null!==t&&K(H,t.startTime-n)}}}function J(n,a){z=!1,j&&(j=!1,U($),$=-1),N=!0;var i=_;try{for(G(a),C=h(s);null!==C&&(!(C.expirationTime>a)||n&&!M());){var u=C.callback;if("function"==typeof u){C.callback=null,_=C.priorityLevel;var o=u(C.expirationTime<=a);a=t.unstable_now(),"function"==typeof o?C.callback=o:C===h(s)&&k(s),G(a)}else k(s);C=h(s)}if(null!==C)var x=!0;else{var L=h(w);null!==L&&K(H,L.startTime-a),x=!1}return x}finally{C=null,_=i,N=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var B=!1,A=null,$=-1,Y=5,Z=-1;function M(){return!(t.unstable_now()-Zn||125u?(n.sortIndex=i,f(w,n),null===h(s)&&n===h(w)&&(j?(U($),$=-1):j=!0,K(H,i-u))):(n.sortIndex=o,f(s,n),z||N||(z=!0,I(J))),n},t.unstable_shouldYield=M,t.unstable_wrapCallback=function(n){var t=_;return function(){var a=_;_=t;try{return n.apply(this,arguments)}finally{_=a}}}},9136:function(n,t,a){n.exports=a(53)}}]);
\ No newline at end of file
diff --git a/FE/.next/static/chunks/main-6ed36289ebba5a2e.js b/FE/.next/static/chunks/main-6ed36289ebba5a2e.js
new file mode 100644
index 0000000000..577edbe138
--- /dev/null
+++ b/FE/.next/static/chunks/main-6ed36289ebba5a2e.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[377],{4878:function(r,n){"use strict";function getDeploymentIdQueryOrEmptyString(){return""}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getDeploymentIdQueryOrEmptyString",{enumerable:!0,get:function(){return getDeploymentIdQueryOrEmptyString}})},37:function(){"trimStart"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),"trimEnd"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),"description"in Symbol.prototype||Object.defineProperty(Symbol.prototype,"description",{configurable:!0,get:function(){var r=/\((.*)\)/.exec(this.toString());return r?r[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(r,n){return n=this.concat.apply([],this),r>1&&n.some(Array.isArray)?n.flat(r-1):n},Array.prototype.flatMap=function(r,n){return this.map(r,n).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(r){if("function"!=typeof r)return this.then(r,r);var n=this.constructor||Promise;return this.then(function(o){return n.resolve(r()).then(function(){return o})},function(o){return n.resolve(r()).then(function(){throw o})})}),Object.fromEntries||(Object.fromEntries=function(r){return Array.from(r).reduce(function(r,n){return r[n[0]]=n[1],r},{})}),Array.prototype.at||(Array.prototype.at=function(r){var n=Math.trunc(r)||0;if(n<0&&(n+=this.length),!(n<0||n>=this.length))return this[n]})},7192:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addBasePath",{enumerable:!0,get:function(){return addBasePath}});var u=o(6063),s=o(2866);function addBasePath(r,n){return(0,s.normalizePathTrailingSlash)((0,u.addPathPrefix)(r,""))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),r.exports=n.default)},3607:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),o(4586),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addLocale",{enumerable:!0,get:function(){return addLocale}}),o(2866);var addLocale=function(r){for(var n=arguments.length,o=Array(n>1?n-1:0),u=1;u25){window.location.reload();return}clearTimeout(n),n=setTimeout(init,s>5?5e3:1e3)}o&&o.close();var n,l=location.hostname,f=location.port,d=function(r){var n=location.protocol;try{n=new URL(r).protocol}catch(r){}return"http:"===n?"ws":"wss"}(r.assetPrefix||""),h=r.assetPrefix.replace(/^\/+/,""),_=d+"://"+l+":"+f+(h?"/"+h:"");h.startsWith("http")&&(_=d+"://"+h.split("://")[1]),(o=new window.WebSocket(""+_+r.path)).onopen=function(){s=0,window.console.log("[HMR] connected")},o.onerror=handleDisconnect,o.onclose=handleDisconnect,o.onmessage=function(r){var n=JSON.parse(r.data),o=!0,s=!1,l=void 0;try{for(var f,d=u[Symbol.iterator]();!(o=(f=d.next()).done);o=!0)(0,f.value)(n)}catch(r){s=!0,l=r}finally{try{o||null==d.return||d.return()}finally{if(s)throw l}}}}()}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),r.exports=n.default)},6864:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hasBasePath",{enumerable:!0,get:function(){return hasBasePath}});var u=o(387);function hasBasePath(r){return(0,u.pathHasPrefix)(r,"")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),r.exports=n.default)},6623:function(r,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{DOMAttributeNames:function(){return u},isEqualNode:function(){return isEqualNode},default:function(){return initHeadManager}});var o,u={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv",noModule:"noModule"};function reactElementToDOM(r){var n=r.type,o=r.props,s=document.createElement(n);for(var l in o)if(o.hasOwnProperty(l)&&"children"!==l&&"dangerouslySetInnerHTML"!==l&&void 0!==o[l]){var f=u[l]||l.toLowerCase();"script"===n&&("async"===f||"defer"===f||"noModule"===f)?s[f]=!!o[l]:s.setAttribute(f,o[l])}var d=o.children,h=o.dangerouslySetInnerHTML;return h?s.innerHTML=h.__html||"":d&&(s.textContent="string"==typeof d?d:Array.isArray(d)?d.join(""):""),s}function isEqualNode(r,n){if(r instanceof HTMLElement&&n instanceof HTMLElement){var o=n.getAttribute("nonce");if(o&&!r.getAttribute("nonce")){var u=n.cloneNode(!0);return u.setAttribute("nonce",""),u.nonce=o,o===r.nonce&&r.isEqualNode(u)}}return r.isEqualNode(n)}function initHeadManager(){return{mountedInstances:new Set,updateHead:function(r){var n={};r.forEach(function(r){if("link"===r.type&&r.props["data-optimized-fonts"]){if(document.querySelector('style[data-href="'+r.props["data-href"]+'"]'))return;r.props.href=r.props["data-href"],r.props["data-href"]=void 0}var o=n[r.type]||[];o.push(r),n[r.type]=o});var u=n.title?n.title[0]:null,s="";if(u){var l=u.props.children;s="string"==typeof l?l:Array.isArray(l)?l.join(""):""}s!==document.title&&(document.title=s),["meta","base","link","style","script"].forEach(function(r){o(r,n[r]||[])})}}}o=function(r,n){for(var o,u=document.getElementsByTagName("head")[0],s=u.querySelector("meta[name=next-head-count]"),l=Number(s.content),f=[],d=0,h=s.previousElementSibling;d>>13,n=Math.imul(n,1540483477);return n>>>0}(""+r+o)%this.numBits;n.push(u)}return n}}],[{key:"from",value:function(r,n){void 0===n&&(n=.01);var o=new BloomFilter(r.length,n),u=!0,s=!1,l=void 0;try{for(var f,d=r[Symbol.iterator]();!(u=(f=d.next()).done);u=!0){var h=f.value;o.add(h)}}catch(r){s=!0,l=r}finally{try{u||null==d.return||d.return()}finally{if(s)throw l}}return o}}]),BloomFilter}()},2338:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var u,s=o(5766);Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{MODERN_BROWSERSLIST_TARGET:function(){return l.default},COMPILER_NAMES:function(){return f},INTERNAL_HEADERS:function(){return d},COMPILER_INDEXES:function(){return h},PHASE_EXPORT:function(){return _},PHASE_PRODUCTION_BUILD:function(){return y},PHASE_PRODUCTION_SERVER:function(){return g},PHASE_DEVELOPMENT_SERVER:function(){return b},PHASE_TEST:function(){return P},PHASE_INFO:function(){return E},PAGES_MANIFEST:function(){return S},APP_PATHS_MANIFEST:function(){return R},APP_PATH_ROUTES_MANIFEST:function(){return O},BUILD_MANIFEST:function(){return w},APP_BUILD_MANIFEST:function(){return j},FUNCTIONS_CONFIG_MANIFEST:function(){return M},SUBRESOURCE_INTEGRITY_MANIFEST:function(){return A},NEXT_FONT_MANIFEST:function(){return C},EXPORT_MARKER:function(){return I},EXPORT_DETAIL:function(){return x},PRERENDER_MANIFEST:function(){return L},ROUTES_MANIFEST:function(){return N},IMAGES_MANIFEST:function(){return k},SERVER_FILES_MANIFEST:function(){return D},DEV_CLIENT_PAGES_MANIFEST:function(){return F},MIDDLEWARE_MANIFEST:function(){return U},DEV_MIDDLEWARE_MANIFEST:function(){return H},REACT_LOADABLE_MANIFEST:function(){return B},FONT_MANIFEST:function(){return q},SERVER_DIRECTORY:function(){return W},CONFIG_FILES:function(){return z},BUILD_ID_FILE:function(){return G},BLOCKED_PAGES:function(){return V},CLIENT_PUBLIC_FILES_PATH:function(){return K},CLIENT_STATIC_FILES_PATH:function(){return X},STRING_LITERAL_DROP_BUNDLE:function(){return Y},NEXT_BUILTIN_DOCUMENT:function(){return Q},BARREL_OPTIMIZATION_PREFIX:function(){return $},CLIENT_REFERENCE_MANIFEST:function(){return J},SERVER_REFERENCE_MANIFEST:function(){return Z},MIDDLEWARE_BUILD_MANIFEST:function(){return ee},MIDDLEWARE_REACT_LOADABLE_MANIFEST:function(){return et},CLIENT_STATIC_FILES_RUNTIME_MAIN:function(){return er},CLIENT_STATIC_FILES_RUNTIME_MAIN_APP:function(){return en},APP_CLIENT_INTERNALS:function(){return ea},CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH:function(){return eo},CLIENT_STATIC_FILES_RUNTIME_AMP:function(){return ei},CLIENT_STATIC_FILES_RUNTIME_WEBPACK:function(){return eu},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS:function(){return es},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL:function(){return el},EDGE_RUNTIME_WEBPACK:function(){return ec},TEMPORARY_REDIRECT_STATUS:function(){return ef},PERMANENT_REDIRECT_STATUS:function(){return ed},STATIC_PROPS_ID:function(){return ep},SERVER_PROPS_ID:function(){return eh},PAGE_SEGMENT_KEY:function(){return e_},GOOGLE_FONT_PROVIDER:function(){return em},OPTIMIZED_FONT_PROVIDERS:function(){return ev},DEFAULT_SERIF_FONT:function(){return ey},DEFAULT_SANS_SERIF_FONT:function(){return eg},STATIC_STATUS_PAGES:function(){return eb},TRACE_OUTPUT_VERSION:function(){return eP},TURBO_TRACE_DEFAULT_MEMORY_LIMIT:function(){return eE},RSC_MODULE_TYPES:function(){return eS},EDGE_UNSUPPORTED_NODE_APIS:function(){return eR},SYSTEM_ENTRYPOINTS:function(){return eO}});var l=o(8754)._(o(8855)),f={client:"client",server:"server",edgeServer:"edge-server"},d=["x-invoke-path","x-invoke-status","x-invoke-error","x-invoke-query","x-middleware-invoke"],h=(u={},s._(u,f.client,0),s._(u,f.server,1),s._(u,f.edgeServer,2),u),_="phase-export",y="phase-production-build",g="phase-production-server",b="phase-development-server",P="phase-test",E="phase-info",S="pages-manifest.json",R="app-paths-manifest.json",O="app-path-routes-manifest.json",w="build-manifest.json",j="app-build-manifest.json",M="functions-config-manifest.json",A="subresource-integrity-manifest",C="next-font-manifest",I="export-marker.json",x="export-detail.json",L="prerender-manifest.json",N="routes-manifest.json",k="images-manifest.json",D="required-server-files.json",F="_devPagesManifest.json",U="middleware-manifest.json",H="_devMiddlewareManifest.json",B="react-loadable-manifest.json",q="font-manifest.json",W="server",z=["next.config.js","next.config.mjs"],G="BUILD_ID",V=["/_document","/_app","/_error"],K="public",X="static",Y="__NEXT_DROP_CLIENT_FILE__",Q="__NEXT_BUILTIN_DOCUMENT__",$="__barrel_optimize__",J="client-reference-manifest",Z="server-reference-manifest",ee="middleware-build-manifest",et="middleware-react-loadable-manifest",er="main",en=""+er+"-app",ea="app-pages-internals",eo="react-refresh",ei="amp",eu="webpack",es="polyfills",el=Symbol(es),ec="edge-runtime-webpack",ef=307,ed=308,ep="__N_SSG",eh="__N_SSP",e_="__PAGE__",em="https://fonts.googleapis.com/",ev=[{url:em,preconnect:"https://fonts.gstatic.com"},{url:"https://use.typekit.net",preconnect:"https://use.typekit.net"}],ey={name:"Times New Roman",xAvgCharWidth:821,azAvgWidth:854.3953488372093,unitsPerEm:2048},eg={name:"Arial",xAvgCharWidth:904,azAvgWidth:934.5116279069767,unitsPerEm:2048},eb=["/500"],eP=1,eE=6e3,eS={client:"client",server:"server"},eR=["clearImmediate","setImmediate","BroadcastChannel","ByteLengthQueuingStrategy","CompressionStream","CountQueuingStrategy","DecompressionStream","DomException","MessageChannel","MessageEvent","MessagePort","ReadableByteStreamController","ReadableStreamBYOBRequest","ReadableStreamDefaultController","TransformStreamDefaultController","WritableStreamDefaultController"],eO=new Set([er,eo,ei,en]);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),r.exports=n.default)},997:function(r,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"escapeStringRegexp",{enumerable:!0,get:function(){return escapeStringRegexp}});var o=/[|\\{}()[\]^$+*?.-]/,u=/[|\\{}()[\]^$+*?.-]/g;function escapeStringRegexp(r){return o.test(r)?r.replace(u,"\\$&"):r}},6734:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HeadManagerContext",{enumerable:!0,get:function(){return u}});var u=o(8754)._(o(7294)).default.createContext({})},9201:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var u=o(2253);Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{defaultHead:function(){return defaultHead},default:function(){return _default}});var s=o(8754),l=o(1757)._(o(7294)),f=s._(o(8955)),d=o(6861),h=o(6734),_=o(7543);function defaultHead(r){void 0===r&&(r=!1);var n=[l.default.createElement("meta",{charSet:"utf-8"})];return r||n.push(l.default.createElement("meta",{name:"viewport",content:"width=device-width"})),n}function onlyReactElement(r,n){return"string"==typeof n||"number"==typeof n?r:n.type===l.default.Fragment?r.concat(l.default.Children.toArray(n.props.children).reduce(function(r,n){return"string"==typeof n||"number"==typeof n?r:r.concat(n)},[])):r.concat(n)}o(1905);var y=["name","httpEquiv","charSet","itemProp"];function reduceComponents(r,n){var o,s,f,d,h=n.inAmpMode;return r.reduce(onlyReactElement,[]).reverse().concat(defaultHead(h).reverse()).filter((o=new Set,s=new Set,f=new Set,d={},function(r){var n=!0,u=!1;if(r.key&&"number"!=typeof r.key&&r.key.indexOf("$")>0){u=!0;var l=r.key.slice(r.key.indexOf("$")+1);o.has(l)?n=!1:o.add(l)}switch(r.type){case"title":case"base":s.has(r.type)?n=!1:s.add(r.type);break;case"meta":for(var h=0,_=y.length;h<_;h++){var g=y[h];if(r.props.hasOwnProperty(g)){if("charSet"===g)f.has(g)?n=!1:f.add(g);else{var b=r.props[g],P=d[g]||new Set;("name"!==g||!u)&&P.has(b)?n=!1:(P.add(b),d[g]=P)}}}}return n})).reverse().map(function(r,n){var o=r.key||n;if(!h&&"link"===r.type&&r.props.href&&["https://fonts.googleapis.com/css","https://use.typekit.net/"].some(function(n){return r.props.href.startsWith(n)})){var s=u._({},r.props||{});return s["data-href"]=s.href,s.href=void 0,s["data-optimized-fonts"]=!0,l.default.cloneElement(r,s)}return l.default.cloneElement(r,{key:o})})}var _default=function(r){var n=r.children,o=(0,l.useContext)(d.AmpStateContext),u=(0,l.useContext)(h.HeadManagerContext);return l.default.createElement(f.default,{reduceComponentsToState:reduceComponents,headManager:u,inAmpMode:(0,_.isInAmpMode)(o)},n)};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),r.exports=n.default)},1593:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{SearchParamsContext:function(){return s},PathnameContext:function(){return l},PathParamsContext:function(){return f}});var u=o(7294),s=(0,u.createContext)(null),l=(0,u.createContext)(null),f=(0,u.createContext)(null)},1774:function(r,n){"use strict";function normalizeLocalePath(r,n){var o,u=r.split("/");return(n||[]).some(function(n){return!!u[1]&&u[1].toLowerCase()===n.toLowerCase()&&(o=n,u.splice(1,1),r=u.join("/")||"/",!0)}),{pathname:r,detectedLocale:o}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"normalizeLocalePath",{enumerable:!0,get:function(){return normalizeLocalePath}})},869:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"ImageConfigContext",{enumerable:!0,get:function(){return l}});var u=o(8754)._(o(7294)),s=o(5494),l=u.default.createContext(s.imageConfigDefault)},5494:function(r,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{VALID_LOADERS:function(){return o},imageConfigDefault:function(){return u}});var o=["default","imgix","cloudinary","akamai","custom"],u={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"inline",remotePatterns:[],unoptimized:!1}},5585:function(r,n){"use strict";function getObjectClassLabel(r){return Object.prototype.toString.call(r)}function isPlainObject(r){if("[object Object]"!==getObjectClassLabel(r))return!1;var n=Object.getPrototypeOf(r);return null===n||n.hasOwnProperty("isPrototypeOf")}Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{getObjectClassLabel:function(){return getObjectClassLabel},isPlainObject:function(){return isPlainObject}})},6146:function(r,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"NEXT_DYNAMIC_NO_SSR_CODE",{enumerable:!0,get:function(){return o}});var o="NEXT_DYNAMIC_NO_SSR_CODE"},6860:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var u=o(4586);function mitt(){var r=Object.create(null);return{on:function(n,o){(r[n]||(r[n]=[])).push(o)},off:function(n,o){r[n]&&r[n].splice(r[n].indexOf(o)>>>0,1)},emit:function(n){for(var o=arguments.length,s=Array(o>1?o-1:0),l=1;l1&&u.status>=500?fetchRetry(r,n-1,o):u})})(o,f?3:1,{headers:Object.assign({},s?{purpose:"prefetch"}:{},s&&l?{"x-middleware-prefetch":"1"}:{}),method:null!=(n=null==r?void 0:r.method)?n:"GET"}).then(function(n){return n.ok&&(null==r?void 0:r.method)==="HEAD"?{dataHref:o,response:n,text:"",json:{},cacheKey:g}:n.text().then(function(r){if(!n.ok){if(l&&[301,302,307,308].includes(n.status))return{dataHref:o,response:n,text:r,json:{},cacheKey:g};if(404===n.status){var u;if(null==(u=tryToParseAsJSON(r))?void 0:u.notFound)return{dataHref:o,json:{notFound:$},response:n,text:r,cacheKey:g}}var s=Error("Failed to load static props");throw f||(0,P.markAssetError)(s),s}return{dataHref:o,json:d?tryToParseAsJSON(r):null,response:n,text:r,cacheKey:g}})}).then(function(r){return h&&"no-cache"!==r.response.headers.get("x-middleware-cache")||delete u[g],r}).catch(function(r){throw y||delete u[g],("Failed to fetch"===r.message||"NetworkError when attempting to fetch resource."===r.message||"Load failed"===r.message)&&(0,P.markAssetError)(r),r})};return y&&h?getData({}).then(function(r){return u[g]=Promise.resolve(r),r}):void 0!==u[g]?u[g]:u[g]=getData(_?{method:"HEAD"}:{})}function createKey(){return Math.random().toString(36).slice(2,10)}function handleHardNavigation(r){var n=r.url,o=r.router;if(n===(0,U.addBasePath)((0,k.addLocale)(o.asPath,o.locale)))throw Error("Invariant: attempted to hard navigate to the same URL "+n+" "+location.href);window.location.href=n}var getCancelledHandler=function(r){var n=r.route,o=r.router,u=!1,s=o.clc=function(){u=!0};return function(){if(u){var r=Error('Abort fetching component for route: "'+n+'"');throw r.cancelled=!0,r}s===o.clc&&(o.clc=null)}},J=function(){function Router(r,n,u,l){var f=l.initialProps,d=l.pageLoader,h=l.App,_=l.wrapApp,y=l.Component,g=l.err,P=l.subscription,E=l.isFallback,S=l.locale,R=(l.locales,l.defaultLocale,l.domainLocales,l.isPreview),O=this;s._(this,Router),this.sdc={},this.sbc={},this.isFirstPopStateEvent=!0,this._key=createKey(),this.onPopState=function(r){var n,o=O.isFirstPopStateEvent;O.isFirstPopStateEvent=!1;var u=r.state;if(!u){var s=O.pathname,l=O.query;O.changeState("replaceState",(0,L.formatWithValidation)({pathname:(0,U.addBasePath)(s),query:l}),(0,j.getURL)());return}if(u.__NA){window.location.reload();return}if(u.__N&&(!o||O.locale!==u.options.locale||u.as!==O.asPath)){var f=u.url,d=u.as,h=u.options,_=u.key;O._key=_;var y=(0,A.parseRelativeUrl)(f).pathname;(!O.isSsr||d!==(0,U.addBasePath)(O.asPath)||y!==(0,U.addBasePath)(O.pathname))&&(!O._bps||O._bps(u))&&O.change("replaceState",f,d,Object.assign({},h,{shallow:h.shallow&&O._shallow,locale:h.locale||O.defaultLocale,_h:0}),n)}};var w=(0,b.removeTrailingSlash)(r);this.components={},"/_error"!==r&&(this.components[w]={Component:y,initial:!0,props:f,err:g,__N_SSG:f&&f.__N_SSG,__N_SSP:f&&f.__N_SSP}),this.components["/_app"]={Component:h,styleSheets:[]};var C=o(684).q,I={numItems:0,errorRate:.01,numBits:0,numHashes:null,bitArray:[]},x={numItems:0,errorRate:.01,numBits:0,numHashes:null,bitArray:[]};(null==I?void 0:I.numHashes)&&(this._bfl_s=new C(I.numItems,I.errorRate),this._bfl_s.import(I)),(null==x?void 0:x.numHashes)&&(this._bfl_d=new C(x.numItems,x.errorRate),this._bfl_d.import(x)),this.events=Router.events,this.pageLoader=d;var N=(0,M.isDynamicRoute)(r)&&self.__NEXT_DATA__.autoExport;if(this.basePath="",this.sub=P,this.clc=null,this._wrapApp=_,this.isSsr=!0,this.isLocaleDomain=!1,this.isReady=!!(self.__NEXT_DATA__.gssp||self.__NEXT_DATA__.gip||self.__NEXT_DATA__.isExperimentalCompile||self.__NEXT_DATA__.appGip&&!self.__NEXT_DATA__.gsp||!N&&!self.location.search),this.state={route:w,pathname:r,query:n,asPath:N?r:u,isPreview:!!R,locale:void 0,isFallback:E},this._initialMatchesMiddlewarePromise=Promise.resolve(!1),!u.startsWith("//")){var k={locale:S},D=(0,j.getURL)();this._initialMatchesMiddlewarePromise=matchesMiddleware({router:this,locale:S,asPath:D}).then(function(o){return k._shouldResolveHref=u!==r,O.changeState("replaceState",o?D:(0,L.formatWithValidation)({pathname:(0,U.addBasePath)(r),query:n}),D,k),o})}window.addEventListener("popstate",this.onPopState)}return l._(Router,[{key:"reload",value:function(){window.location.reload()}},{key:"back",value:function(){window.history.back()}},{key:"forward",value:function(){window.history.forward()}},{key:"push",value:function(r,n,o){var u;return void 0===o&&(o={}),r=(u=prepareUrlAs(this,r,n)).url,n=u.as,this.change("pushState",r,n,o)}},{key:"replace",value:function(r,n,o){var u;return void 0===o&&(o={}),r=(u=prepareUrlAs(this,r,n)).url,n=u.as,this.change("replaceState",r,n,o)}},{key:"_bfl",value:function(r,n,o,s){var l=this;return u._(function(){var u,f,d,h,y,g,P,E,S,R,O,w,j,M,A;return _._(this,function(_){for(d=0,u=!1,f=!1,h=[r,n];d0&&!ec)throw Error((em?"The provided `href` ("+n+") value is missing query values ("+ey.join(", ")+") to be interpolated properly. ":"The provided `as` value ("+eh+") is incompatible with the `href` value ("+eu+"). ")+"Read more: https://nextjs.org/docs/messages/"+(em?"href-interpolation-failed":"incompatible-href-as"))}g||Router.events.emit("routeChangeStart",o,Q),eg="/404"===y.pathname||"/_error"===y.pathname,_.label=14;case 14:return _.trys.push([14,35,,36]),[4,y.getRouteInfo({route:eu,pathname:er,query:en,as:o,resolvedAs:ei,routeProps:Q,locale:O.locale,isPreview:O.isPreview,hasMiddleware:ec,unstable_skipClientCache:s.unstable_skipClientCache,isQueryUpdating:g&&!y.isFallback,isMiddlewareRewrite:el})];case 15:if(eS=_.sent(),!(!g&&!s.shallow))return[3,17];return[4,y._bfl(o,"resolvedAs"in eS?eS.resolvedAs:void 0,O.locale)];case 16:_.sent(),_.label=17;case 17:if("route"in eS&&ec&&(eu=er=eS.route||eu,Q.shallow||(en=Object.assign({},eS.query||{},en)),eR=(0,H.hasBasePath)(et.pathname)?(0,F.removeBasePath)(et.pathname):et.pathname,ed&&er!==eR&&Object.keys(ed).forEach(function(r){ed&&en[r]===ed[r]&&delete en[r]}),(0,M.isDynamicRoute)(er))&&(eO=!Q.shallow&&eS.resolvedAs?eS.resolvedAs:(0,U.addBasePath)((0,k.addLocale)(new URL(o,location.href).pathname,O.locale),!0),(0,H.hasBasePath)(eO)&&(eO=(0,F.removeBasePath)(eO)),ew=(0,x.getRouteRegex)(er),(ej=(0,I.getRouteMatcher)(ew)(new URL(eO,location.href).pathname))&&Object.assign(en,ej)),"type"in eS){if("redirect-internal"===eS.type)return[2,y.change(r,eS.newUrl,eS.newAs,s)];return handleHardNavigation({url:eS.destination,router:y}),[2,new Promise(function(){})]}if((eM=eS.Component)&&eM.unstable_scriptLoader&&[].concat(eM.unstable_scriptLoader()).forEach(function(r){(0,E.handleClientScriptLoad)(r.props)}),!((eS.__N_SSG||eS.__N_SSP)&&eS.props))return[3,23];if(eS.props.pageProps&&eS.props.pageProps.__N_REDIRECT){if(s.locale=!1,(eA=eS.props.pageProps.__N_REDIRECT).startsWith("/")&&!1!==eS.props.pageProps.__N_REDIRECT_BASE_PATH)return(eT=(0,A.parseRelativeUrl)(eA)).pathname=resolveDynamicRoute(eT.pathname,ea),eI=(eC=prepareUrlAs(y,eA,eA)).url,ex=eC.as,[2,y.change(r,eI,ex,s)];return handleHardNavigation({url:eA,router:y}),[2,new Promise(function(){})]}if(O.isPreview=!!eS.props.__N_PREVIEW,eS.props.notFound!==$)return[3,23];_.label=18;case 18:return _.trys.push([18,20,,21]),[4,y.fetchComponent("/404")];case 19:return _.sent(),eL="/404",[3,21];case 20:return _.sent(),eL="/_error",[3,21];case 21:return[4,y.getRouteInfo({route:eL,pathname:eL,query:en,as:o,resolvedAs:ei,routeProps:{shallow:!1},locale:O.locale,isPreview:O.isPreview,isNotFound:!0})];case 22:if("type"in(eS=_.sent()))throw Error("Unexpected middleware effect on /404");_.label=23;case 23:if(g&&"/_error"===y.pathname&&(null==(eP=self.__NEXT_DATA__.props)?void 0:null==(eb=eP.pageProps)?void 0:eb.statusCode)===500&&(null==(eE=eS.props)?void 0:eE.pageProps)&&(eS.props.pageProps.statusCode=500),ek=s.shallow&&O.route===(null!=(eN=eS.route)?eN:eu),eU=(eF=null!=(eD=s.scroll)?eD:!g&&!ek)?{x:0,y:0}:null,eH=null!=l?l:eU,eB=d._(f._({},O),{route:eu,pathname:er,query:en,asPath:J,isFallback:!1}),!(g&&eg))return[3,29];return[4,y.getRouteInfo({route:y.pathname,pathname:y.pathname,query:en,as:o,resolvedAs:ei,routeProps:{shallow:!1},locale:O.locale,isPreview:O.isPreview,isQueryUpdating:g&&!y.isFallback})];case 24:if("type"in(eS=_.sent()))throw Error("Unexpected middleware effect on "+y.pathname);"/_error"===y.pathname&&(null==(eW=self.__NEXT_DATA__.props)?void 0:null==(eq=eW.pageProps)?void 0:eq.statusCode)===500&&(null==(ez=eS.props)?void 0:ez.pageProps)&&(eS.props.pageProps.statusCode=500),_.label=25;case 25:return _.trys.push([25,27,,28]),[4,y.set(eB,eS,eH)];case 26:return _.sent(),[3,28];case 27:throw eG=_.sent(),(0,S.default)(eG)&&eG.cancelled&&Router.events.emit("routeChangeError",eG,J,Q),eG;case 28:return[2,!0];case 29:if(Router.events.emit("beforeHistoryChange",o,Q),y.changeState(r,n,o,s),g&&!eH&&!w&&!Z&&(0,G.compareRouterStates)(eB,y.state))return[3,34];_.label=30;case 30:return _.trys.push([30,32,,33]),[4,y.set(eB,eS,eH)];case 31:return _.sent(),[3,33];case 32:if((eV=_.sent()).cancelled)eS.error=eS.error||eV;else throw eV;return[3,33];case 33:if(eS.error)throw g||Router.events.emit("routeChangeError",eS.error,J,Q),eS.error;g||Router.events.emit("routeChangeComplete",o,Q),eK=/#.+$/,eF&&eK.test(o)&&y.scrollToHash(o),_.label=34;case 34:return[2,!0];case 35:if(eX=_.sent(),(0,S.default)(eX)&&eX.cancelled)return[2,!1];throw eX;case 36:return[2]}})})()}},{key:"changeState",value:function(r,n,o,u){void 0===u&&(u={}),("pushState"!==r||(0,j.getURL)()!==o)&&(this._shallow=u.shallow,window.history[r]({url:n,as:o,options:u,__N:!0,key:this._key="pushState"!==r?this._key:createKey()},"",o))}},{key:"handleRouteInfoError",value:function(r,n,o,s,l,f){var d=this;return u._(function(){var u,h,y,g,b,E;return _._(this,function(_){switch(_.label){case 0:if(console.error(r),r.cancelled)throw r;if((0,P.isAssetError)(r)||f)throw Router.events.emit("routeChangeError",r,s,l),handleHardNavigation({url:s,router:d}),buildCancellationError();_.label=1;case 1:return _.trys.push([1,7,,8]),[4,d.fetchComponent("/_error")];case 2:if(y=(h=_.sent()).page,g=h.styleSheets,(b={props:u,Component:y,styleSheets:g,err:r,error:r}).props)return[3,6];_.label=3;case 3:return _.trys.push([3,5,,6]),[4,d.getInitialProps(y,{err:r,pathname:n,query:o})];case 4:return b.props=_.sent(),[3,6];case 5:return console.error("Error in error page `getInitialProps`: ",_.sent()),b.props={},[3,6];case 6:return[2,b];case 7:return E=_.sent(),[2,d.handleRouteInfoError((0,S.default)(E)?E:Error(E+""),n,o,s,l,!0)];case 8:return[2]}})})()}},{key:"getRouteInfo",value:function(r){var n=this;return u._(function(){var o,s,l,h,y,g,P,E,R,w,j,M,A,C,I,x,N,k,D,U,H,B,W,z,G,V,K,X,Y,Q,$,J,Z,ee,et;return _._(this,function(er){switch(er.label){case 0:o=r.route,s=r.pathname,l=r.query,h=r.as,y=r.resolvedAs,g=r.routeProps,P=r.locale,E=r.hasMiddleware,R=r.isPreview,w=r.unstable_skipClientCache,j=r.isQueryUpdating,M=r.isMiddlewareRewrite,A=r.isNotFound,C=o,er.label=1;case 1:if(er.trys.push([1,10,,11]),D=getCancelledHandler({route:C,router:n}),U=n.components[C],g.shallow&&U&&n.route===C)return[2,U];if(E&&(U=void 0),H=!U||"initial"in U?void 0:U,B=j,W={dataHref:n.pageLoader.getDataHref({href:(0,L.formatWithValidation)({pathname:s,query:l}),skipInterpolation:!0,asPath:A?"/404":y,locale:P}),hasMiddleware:!0,isServerRender:n.isSsr,parseJSON:!0,inflightCache:B?n.sbc:n.sdc,persistCache:!R,isPrefetch:!1,unstable_skipClientCache:w,isBackground:B},!(j&&!M))return[3,2];return G=null,[3,4];case 2:return[4,withMiddlewareEffects({fetchData:function(){return fetchNextData(W)},asPath:A?"/404":y,locale:P,router:n}).catch(function(r){if(j)return null;throw r})];case 3:G=er.sent(),er.label=4;case 4:if((z=G)&&("/_error"===s||"/404"===s)&&(z.effect=void 0),j&&(z?z.json=self.__NEXT_DATA__.props:z={json:self.__NEXT_DATA__.props}),D(),(null==z?void 0:null==(I=z.effect)?void 0:I.type)==="redirect-internal"||(null==z?void 0:null==(x=z.effect)?void 0:x.type)==="redirect-external")return[2,z.effect];if((null==z?void 0:null==(N=z.effect)?void 0:N.type)!=="rewrite")return[3,6];return V=(0,b.removeTrailingSlash)(z.effect.resolvedHref),[4,n.pageLoader.getPageList()];case 5:if(K=er.sent(),(!j||K.includes(V))&&(C=V,s=z.effect.resolvedHref,l=f._({},l,z.effect.parsedAs.query),y=(0,F.removeBasePath)((0,O.normalizeLocalePath)(z.effect.parsedAs.pathname,n.locales).pathname),U=n.components[C],g.shallow&&U&&n.route===C&&!E))return[2,d._(f._({},U),{route:C})];er.label=6;case 6:if((0,q.isAPIRoute)(C))return handleHardNavigation({url:h,router:n}),[2,new Promise(function(){})];if(Y=H)return[3,8];return[4,n.fetchComponent(C).then(function(r){return{Component:r.page,styleSheets:r.styleSheets,__N_SSG:r.mod.__N_SSG,__N_SSP:r.mod.__N_SSP}})];case 7:Y=er.sent(),er.label=8;case 8:return X=Y,Q=null==z?void 0:null==(k=z.response)?void 0:k.headers.get("x-middleware-skip"),$=X.__N_SSG||X.__N_SSP,Q&&(null==z?void 0:z.dataHref)&&delete n.sdc[z.dataHref],[4,n._getData(u._(function(){var r,o;return _._(this,function(u){switch(u.label){case 0:if(!$)return[3,2];if((null==z?void 0:z.json)&&!Q)return[2,{cacheKey:z.cacheKey,props:z.json}];return[4,fetchNextData({dataHref:(null==z?void 0:z.dataHref)?z.dataHref:n.pageLoader.getDataHref({href:(0,L.formatWithValidation)({pathname:s,query:l}),asPath:y,locale:P}),isServerRender:n.isSsr,parseJSON:!0,inflightCache:Q?{}:n.sdc,persistCache:!R,isPrefetch:!1,unstable_skipClientCache:w})];case 1:return[2,{cacheKey:(r=u.sent()).cacheKey,props:r.json||{}}];case 2:return o={headers:{}},[4,n.getInitialProps(X.Component,{pathname:s,query:l,asPath:h,locale:P,locales:n.locales,defaultLocale:n.defaultLocale})];case 3:return[2,(o.props=u.sent(),o)]}})}))];case 9:return Z=(J=er.sent()).props,ee=J.cacheKey,X.__N_SSP&&W.dataHref&&ee&&delete n.sdc[ee],n.isPreview||!X.__N_SSG||j||fetchNextData(Object.assign({},W,{isBackground:!0,persistCache:!1,inflightCache:n.sbc})).catch(function(){}),Z.pageProps=Object.assign({},Z.pageProps),X.props=Z,X.route=C,X.query=l,X.resolvedAs=y,n.components[C]=X,[2,X];case 10:return et=er.sent(),[2,n.handleRouteInfoError((0,S.getProperError)(et),s,l,h,g)];case 11:return[2]}})})()}},{key:"set",value:function(r,n,o){return this.state=r,this.sub(n,this.components["/_app"].Component,o)}},{key:"beforePopState",value:function(r){this._bps=r}},{key:"onlyAHashChange",value:function(r){if(!this.asPath)return!1;var n=h._(this.asPath.split("#"),2),o=n[0],u=n[1],s=h._(r.split("#"),2),l=s[0],f=s[1];return!!f&&o===l&&u===f||o===l&&u!==f}},{key:"scrollToHash",value:function(r){var n=h._(r.split("#"),2)[1],o=void 0===n?"":n;(0,Q.handleSmoothScroll)(function(){if(""===o||"top"===o){window.scrollTo(0,0);return}var r=decodeURIComponent(o),n=document.getElementById(r);if(n){n.scrollIntoView();return}var u=document.getElementsByName(r)[0];u&&u.scrollIntoView()},{onlyHashChange:this.onlyAHashChange(r)})}},{key:"urlIsNew",value:function(r){return this.asPath!==r}},{key:"prefetch",value:function(r,n,o){var s=this;return u._(function(){var u,l,d,h,y,g,P,E,S,R,O,w,j,H;return _._(this,function(_){switch(_.label){case 0:if(void 0===n&&(n=r),void 0===o&&(o={}),(0,K.isBot)(window.navigator.userAgent))return[2];return l=(u=(0,A.parseRelativeUrl)(r)).pathname,d=u.pathname,h=u.query,y=d,[4,s.pageLoader.getPageList()];case 1:return g=_.sent(),P=n,E=void 0!==o.locale?o.locale||void 0:s.locale,[4,matchesMiddleware({asPath:n,locale:E,router:s})];case 2:return S=_.sent(),[3,4];case 3:if(R=_.sent().__rewrites,(O=(0,C.default)((0,U.addBasePath)((0,k.addLocale)(n,s.locale),!0),g,R,u.query,function(r){return resolveDynamicRoute(r,g)},s.locales)).externalDest)return[2];S||(P=(0,D.removeLocale)((0,F.removeBasePath)(O.asPath),s.locale)),O.matchedPage&&O.resolvedHref&&(d=O.resolvedHref,u.pathname=d,S||(r=(0,L.formatWithValidation)(u))),_.label=4;case 4:return u.pathname=resolveDynamicRoute(u.pathname,g),(0,M.isDynamicRoute)(u.pathname)&&(d=u.pathname,u.pathname=d,Object.assign(h,(0,I.getRouteMatcher)((0,x.getRouteRegex)(u.pathname))((0,N.parsePath)(n).pathname)||{}),S||(r=(0,L.formatWithValidation)(u))),[3,5];case 5:return[4,withMiddlewareEffects({fetchData:function(){return fetchNextData({dataHref:s.pageLoader.getDataHref({href:(0,L.formatWithValidation)({pathname:y,query:h}),skipInterpolation:!0,asPath:P,locale:E}),hasMiddleware:!0,isServerRender:s.isSsr,parseJSON:!0,inflightCache:s.sdc,persistCache:!s.isPreview,isPrefetch:!0})},asPath:n,locale:E,router:s})];case 6:j=_.sent(),_.label=7;case 7:if((null==(w=j)?void 0:w.effect.type)==="rewrite"&&(u.pathname=w.effect.resolvedHref,d=w.effect.resolvedHref,h=f._({},h,w.effect.parsedAs.query),P=w.effect.parsedAs.pathname,r=(0,L.formatWithValidation)(u)),(null==w?void 0:w.effect.type)==="redirect-external")return[2];return H=(0,b.removeTrailingSlash)(d),[4,s._bfl(n,P,o.locale,!0)];case 8:return _.sent()&&(s.components[l]={__appRouter:!0}),[4,Promise.all([s.pageLoader._isSsg(H).then(function(n){return!!n&&fetchNextData({dataHref:(null==w?void 0:w.json)?null==w?void 0:w.dataHref:s.pageLoader.getDataHref({href:r,asPath:P,locale:E}),isServerRender:!1,parseJSON:!0,inflightCache:s.sdc,persistCache:!s.isPreview,isPrefetch:!0,unstable_skipClientCache:o.unstable_skipClientCache||o.priority&&!0}).then(function(){return!1}).catch(function(){return!1})}),s.pageLoader[o.priority?"loadPage":"prefetch"](H)])];case 9:return _.sent(),[2]}})})()}},{key:"fetchComponent",value:function(r){var n=this;return u._(function(){var o,u,s;return _._(this,function(l){switch(l.label){case 0:o=getCancelledHandler({route:r,router:n}),l.label=1;case 1:return l.trys.push([1,3,,4]),[4,n.pageLoader.loadPage(r)];case 2:return u=l.sent(),o(),[2,u];case 3:throw s=l.sent(),o(),s;case 4:return[2]}})})()}},{key:"_getData",value:function(r){var n=this,o=!1,cancel=function(){o=!0};return this.clc=cancel,r().then(function(r){if(cancel===n.clc&&(n.clc=null),o){var u=Error("Loading initial props cancelled");throw u.cancelled=!0,u}return r})}},{key:"_getFlightData",value:function(r){return fetchNextData({dataHref:r,isServerRender:!0,parseJSON:!1,inflightCache:this.sdc,persistCache:!1,isPrefetch:!1}).then(function(r){return{data:r.text}})}},{key:"getInitialProps",value:function(r,n){var o=this.components["/_app"].Component,u=this._wrapApp(o);return n.AppTree=u,(0,j.loadGetInitialProps)(o,{AppTree:u,Component:r,router:this,ctx:n})}},{key:"route",get:function(){return this.state.route}},{key:"pathname",get:function(){return this.state.pathname}},{key:"query",get:function(){return this.state.query}},{key:"asPath",get:function(){return this.state.asPath}},{key:"locale",get:function(){return this.state.locale}},{key:"isFallback",get:function(){return this.state.isFallback}},{key:"isPreview",get:function(){return this.state.isPreview}}]),Router}();J.events=(0,w.default)()},7699:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addLocale",{enumerable:!0,get:function(){return addLocale}});var u=o(6063),s=o(387);function addLocale(r,n,o,l){if(!n||n===o)return r;var f=r.toLowerCase();return!l&&((0,s.pathHasPrefix)(f,"/api")||(0,s.pathHasPrefix)(f,"/"+n.toLowerCase()))?r:(0,u.addPathPrefix)(r,"/"+n)}},6063:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addPathPrefix",{enumerable:!0,get:function(){return addPathPrefix}});var u=o(1156);function addPathPrefix(r,n){if(!r.startsWith("/")||!n)return r;var o=(0,u.parsePath)(r);return""+n+o.pathname+o.query+o.hash}},4233:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addPathSuffix",{enumerable:!0,get:function(){return addPathSuffix}});var u=o(1156);function addPathSuffix(r,n){if(!r.startsWith("/")||!n)return r;var o=(0,u.parsePath)(r);return""+o.pathname+n+o.query+o.hash}},3090:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{normalizeAppPath:function(){return normalizeAppPath},normalizeRscPath:function(){return normalizeRscPath}});var u=o(504),s=o(6163);function normalizeAppPath(r){return(0,u.ensureLeadingSlash)(r.split("/").reduce(function(r,n,o,u){return!n||(0,s.isGroupSegment)(n)||"@"===n[0]||("page"===n||"route"===n)&&o===u.length-1?r:r+"/"+n},""))}function normalizeRscPath(r,n){return n?r.replace(/\.rsc($|\?)/,"$1"):r}},106:function(r,n){"use strict";function asPathToSearchParams(r){return new URL(r,"http://n").searchParams}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"asPathToSearchParams",{enumerable:!0,get:function(){return asPathToSearchParams}})},7763:function(r,n){"use strict";function compareRouterStates(r,n){var o=Object.keys(r);if(o.length!==Object.keys(n).length)return!1;for(var u=o.length;u--;){var s=o[u];if("query"===s){var l=Object.keys(r.query);if(l.length!==Object.keys(n.query).length)return!1;for(var f=l.length;f--;){var d=l[f];if(!n.query.hasOwnProperty(d)||r.query[d]!==n.query[d])return!1}}else if(!n.hasOwnProperty(s)||r[s]!==n[s])return!1}return!0}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"compareRouterStates",{enumerable:!0,get:function(){return compareRouterStates}})},7841:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"formatNextPathnameInfo",{enumerable:!0,get:function(){return formatNextPathnameInfo}});var u=o(7425),s=o(6063),l=o(4233),f=o(7699);function formatNextPathnameInfo(r){var n=(0,f.addLocale)(r.pathname,r.locale,r.buildId?void 0:r.defaultLocale,r.ignorePrefix);return(r.buildId||!r.trailingSlash)&&(n=(0,u.removeTrailingSlash)(n)),r.buildId&&(n=(0,l.addPathSuffix)((0,s.addPathPrefix)(n,"/_next/data/"+r.buildId),"/"===r.pathname?"index.json":".json")),n=(0,s.addPathPrefix)(n,r.basePath),!r.buildId&&r.trailingSlash?n.endsWith("/")?n:(0,l.addPathSuffix)(n,"/"):(0,u.removeTrailingSlash)(n)}},4364:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{formatUrl:function(){return formatUrl},urlObjectKeys:function(){return l},formatWithValidation:function(){return formatWithValidation}});var u=o(1757)._(o(5980)),s=/https?|ftp|gopher|file/;function formatUrl(r){var n=r.auth,o=r.hostname,l=r.protocol||"",f=r.pathname||"",d=r.hash||"",h=r.query||"",_=!1;n=n?encodeURIComponent(n).replace(/%3A/i,":")+"@":"",r.host?_=n+r.host:o&&(_=n+(~o.indexOf(":")?"["+o+"]":o),r.port&&(_+=":"+r.port)),h&&"object"==typeof h&&(h=String(u.urlQueryToSearchParams(h)));var y=r.search||h&&"?"+h||"";return l&&!l.endsWith(":")&&(l+=":"),r.slashes||(!l||s.test(l))&&!1!==_?(_="//"+(_||""),f&&"/"!==f[0]&&(f="/"+f)):_||(_=""),d&&"#"!==d[0]&&(d="#"+d),y&&"?"!==y[0]&&(y="?"+y),""+l+_+(f=f.replace(/[?#]/g,encodeURIComponent))+(y=y.replace("#","%23"))+d}var l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function formatWithValidation(r){return formatUrl(r)}},8356:function(r,n){"use strict";function getAssetPathFromRoute(r,n){return void 0===n&&(n=""),("/"===r?"/index":/^\/index(\/|$)/.test(r)?"/index"+r:""+r)+n}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return getAssetPathFromRoute}})},7007:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getNextPathnameInfo",{enumerable:!0,get:function(){return getNextPathnameInfo}});var u=o(1774),s=o(2531),l=o(387);function getNextPathnameInfo(r,n){var o=null!=(P=n.nextConfig)?P:{},f=o.basePath,d=o.i18n,h=o.trailingSlash,_={pathname:r,trailingSlash:"/"!==r?r.endsWith("/"):h};f&&(0,l.pathHasPrefix)(_.pathname,f)&&(_.pathname=(0,s.removePathPrefix)(_.pathname,f),_.basePath=f);var y=_.pathname;if(_.pathname.startsWith("/_next/data/")&&_.pathname.endsWith(".json")){var g=_.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/"),b=g[0];_.buildId=b,y="index"!==g[1]?"/"+g.slice(1).join("/"):"/",!0===n.parseData&&(_.pathname=y)}if(d){var P,E,S=n.i18nProvider?n.i18nProvider.analyze(_.pathname):(0,u.normalizeLocalePath)(_.pathname,d.locales);_.locale=S.detectedLocale,_.pathname=null!=(E=S.pathname)?E:_.pathname,!S.detectedLocale&&_.buildId&&(S=n.i18nProvider?n.i18nProvider.analyze(y):(0,u.normalizeLocalePath)(y,d.locales)).detectedLocale&&(_.locale=S.detectedLocale)}return _}},3937:function(r,n){"use strict";function handleSmoothScroll(r,n){if(void 0===n&&(n={}),n.onlyHashChange){r();return}var o=document.documentElement,u=o.style.scrollBehavior;o.style.scrollBehavior="auto",n.dontForceLayout||o.getClientRects(),r(),o.style.scrollBehavior=u}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleSmoothScroll",{enumerable:!0,get:function(){return handleSmoothScroll}})},8410:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{getSortedRoutes:function(){return u.getSortedRoutes},isDynamicRoute:function(){return s.isDynamicRoute}});var u=o(2677),s=o(9203)},2969:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"interpolateAs",{enumerable:!0,get:function(){return interpolateAs}});var u=o(2142),s=o(2839);function interpolateAs(r,n,o){var l="",f=(0,s.getRouteRegex)(r),d=f.groups,h=(n!==r?(0,u.getRouteMatcher)(f)(n):"")||o;l=r;var _=Object.keys(d);return _.every(function(r){var n=h[r]||"",o=d[r],u=o.repeat,s=o.optional,f="["+(u?"...":"")+r+"]";return s&&(f=(n?"":"/")+"["+f+"]"),u&&!Array.isArray(n)&&(n=[n]),(s||r in h)&&(l=l.replace(f,u?n.map(function(r){return encodeURIComponent(r)}).join("/"):encodeURIComponent(n))||"/")})||(l=""),{params:_,result:l}}},5119:function(r,n){"use strict";function isBot(r){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(r)}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isBot",{enumerable:!0,get:function(){return isBot}})},9203:function(r,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isDynamicRoute",{enumerable:!0,get:function(){return isDynamicRoute}});var o=/\/\[[^/]+?\](?=\/|$)/;function isDynamicRoute(r){return o.test(r)}},2227:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return isLocalURL}});var u=o(109),s=o(6864);function isLocalURL(r){if(!(0,u.isAbsoluteUrl)(r))return!0;try{var n=(0,u.getLocationOrigin)(),o=new URL(r,n);return o.origin===n&&(0,s.hasBasePath)(o.pathname)}catch(r){return!1}}},6455:function(r,n){"use strict";function omit(r,n){var o={};return Object.keys(r).forEach(function(u){n.includes(u)||(o[u]=r[u])}),o}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"omit",{enumerable:!0,get:function(){return omit}})},1156:function(r,n){"use strict";function parsePath(r){var n=r.indexOf("#"),o=r.indexOf("?"),u=o>-1&&(n<0||o-1?{pathname:r.substring(0,u?o:n),query:u?r.substring(o,n>-1?n:void 0):"",hash:n>-1?r.slice(n):""}:{pathname:r,query:"",hash:""}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"parsePath",{enumerable:!0,get:function(){return parsePath}})},1748:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"parseRelativeUrl",{enumerable:!0,get:function(){return parseRelativeUrl}});var u=o(109),s=o(5980);function parseRelativeUrl(r,n){var o=new URL((0,u.getLocationOrigin)()),l=n?new URL(n,o):r.startsWith(".")?new URL(window.location.href):o,f=new URL(r,l),d=f.pathname,h=f.searchParams,_=f.search,y=f.hash,g=f.href;if(f.origin!==o.origin)throw Error("invariant: invalid relative URL, router received "+r);return{pathname:d,query:(0,s.searchParamsToUrlQuery)(h),search:_,hash:y,href:g.slice(o.origin.length)}}},387:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"pathHasPrefix",{enumerable:!0,get:function(){return pathHasPrefix}});var u=o(1156);function pathHasPrefix(r,n){if("string"!=typeof r)return!1;var o=(0,u.parsePath)(r).pathname;return o===n||o.startsWith(n+"/")}},5980:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var u=o(1309);function searchParamsToUrlQuery(r){var n={};return r.forEach(function(r,o){void 0===n[o]?n[o]=r:Array.isArray(n[o])?n[o].push(r):n[o]=[n[o],r]}),n}function stringifyUrlQueryParam(r){return"string"!=typeof r&&("number"!=typeof r||isNaN(r))&&"boolean"!=typeof r?"":String(r)}function urlQueryToSearchParams(r){var n=new URLSearchParams;return Object.entries(r).forEach(function(r){var o=u._(r,2),s=o[0],l=o[1];Array.isArray(l)?l.forEach(function(r){return n.append(s,stringifyUrlQueryParam(r))}):n.set(s,stringifyUrlQueryParam(l))}),n}function assign(r){for(var n=arguments.length,o=Array(n>1?n-1:0),u=1;u30)&&(y=!0),isNaN(parseInt(_.slice(0,1)))||(y=!0),y&&(_=n()),s?u[_]=""+s+f:u[_]=""+f,h?d?"(?:/(?<"+_+">.+?))?":"/(?<"+_+">.+?)":"/(?<"+_+">[^/]+?)"}function getNamedParametrizedRoute(r,n){var o,u=(0,d.removeTrailingSlash)(r).slice(1).split("/"),s=(o=0,function(){for(var r="",n=++o;n>0;)r+=String.fromCharCode(97+(n-1)%26),n=Math.floor((n-1)/26);return r}),h={};return{namedParameterizedRoute:u.map(function(r){var o=l.INTERCEPTION_ROUTE_MARKERS.some(function(n){return r.startsWith(n)}),u=r.match(/\[((?:\[.*\])|.+)\]/);return o&&u?getSafeKeyFromSegment({getSafeRouteKey:s,segment:u[1],routeKeys:h,keyPrefix:n?"nxtI":void 0}):u?getSafeKeyFromSegment({getSafeRouteKey:s,segment:u[1],routeKeys:h,keyPrefix:n?"nxtP":void 0}):"/"+(0,f.escapeStringRegexp)(r)}).join(""),routeKeys:h}}function getNamedRouteRegex(r,n){var o=getNamedParametrizedRoute(r,n);return s._(u._({},getRouteRegex(r)),{namedRegex:"^"+o.namedParameterizedRoute+"(?:/)?$",routeKeys:o.routeKeys})}function getNamedMiddlewareRegex(r,n){var o=getParametrizedRoute(r).parameterizedRoute,u=n.catchAll,s=void 0===u||u;return"/"===o?{namedRegex:"^/"+(s?".*":"")+"$"}:{namedRegex:"^"+getNamedParametrizedRoute(r,!1).namedParameterizedRoute+(s?"(?:(/.*)?)":"")+"$"}}},2677:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var u=o(8564),s=o(2267),l=o(4586);Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getSortedRoutes",{enumerable:!0,get:function(){return getSortedRoutes}});var f=function(){function UrlNode(){u._(this,UrlNode),this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}return s._(UrlNode,[{key:"insert",value:function(r){this._insert(r.split("/").filter(Boolean),[],!1)}},{key:"smoosh",value:function(){return this._smoosh()}},{key:"_smoosh",value:function(r){var n=this;void 0===r&&(r="/");var o=l._(this.children.keys()).sort();null!==this.slugName&&o.splice(o.indexOf("[]"),1),null!==this.restSlugName&&o.splice(o.indexOf("[...]"),1),null!==this.optionalRestSlugName&&o.splice(o.indexOf("[[...]]"),1);var u=o.map(function(o){return n.children.get(o)._smoosh(""+r+o+"/")}).reduce(function(r,n){return l._(r).concat(l._(n))},[]);if(null!==this.slugName&&u.push.apply(u,l._(this.children.get("[]")._smoosh(r+"["+this.slugName+"]/"))),!this.placeholder){var s="/"===r?"/":r.slice(0,-1);if(null!=this.optionalRestSlugName)throw Error('You cannot define a route with the same specificity as a optional catch-all route ("'+s+'" and "'+s+"[[..."+this.optionalRestSlugName+']]").');u.unshift(s)}return null!==this.restSlugName&&u.push.apply(u,l._(this.children.get("[...]")._smoosh(r+"[..."+this.restSlugName+"]/"))),null!==this.optionalRestSlugName&&u.push.apply(u,l._(this.children.get("[[...]]")._smoosh(r+"[[..."+this.optionalRestSlugName+"]]/"))),u}},{key:"_insert",value:function(r,n,o){if(0===r.length){this.placeholder=!1;return}if(o)throw Error("Catch-all must be the last part of the URL.");var u=r[0];if(u.startsWith("[")&&u.endsWith("]")){var s=u.slice(1,-1),l=!1;if(s.startsWith("[")&&s.endsWith("]")&&(s=s.slice(1,-1),l=!0),s.startsWith("...")&&(s=s.substring(3),o=!0),s.startsWith("[")||s.endsWith("]"))throw Error("Segment names may not start or end with extra brackets ('"+s+"').");if(s.startsWith("."))throw Error("Segment names may not start with erroneous periods ('"+s+"').");function handleSlug(r,o){if(null!==r&&r!==o)throw Error("You cannot use different slug names for the same dynamic path ('"+r+"' !== '"+o+"').");n.forEach(function(r){if(r===o)throw Error('You cannot have the same slug name "'+o+'" repeat within a single dynamic path');if(r.replace(/\W/g,"")===u.replace(/\W/g,""))throw Error('You cannot have the slug names "'+r+'" and "'+o+'" differ only by non-word symbols within a single dynamic path')}),n.push(o)}if(o){if(l){if(null!=this.restSlugName)throw Error('You cannot use both an required and optional catch-all route at the same level ("[...'+this.restSlugName+']" and "'+r[0]+'" ).');handleSlug(this.optionalRestSlugName,s),this.optionalRestSlugName=s,u="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Error('You cannot use both an optional and required catch-all route at the same level ("[[...'+this.optionalRestSlugName+']]" and "'+r[0]+'").');handleSlug(this.restSlugName,s),this.restSlugName=s,u="[...]"}}else{if(l)throw Error('Optional route parameters are not yet supported ("'+r[0]+'").');handleSlug(this.slugName,s),this.slugName=s,u="[]"}}this.children.has(u)||this.children.set(u,new UrlNode),this.children.get(u)._insert(r.slice(1),n,o)}}]),UrlNode}();function getSortedRoutes(r){var n=new f;return r.forEach(function(r){return n.insert(r)}),n.smoosh()}},5612:function(r,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{default:function(){return _default},setConfig:function(){return setConfig}});var o,_default=function(){return o};function setConfig(r){o=r}},6163:function(r,n){"use strict";function isGroupSegment(r){return"("===r[0]&&r.endsWith(")")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isGroupSegment",{enumerable:!0,get:function(){return isGroupSegment}})},8955:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return SideEffect}});var u=o(7294),s=u.useLayoutEffect,l=u.useEffect;function SideEffect(r){var n=r.headManager,o=r.reduceComponentsToState;function emitChange(){if(n&&n.mountedInstances){var s=u.Children.toArray(Array.from(n.mountedInstances).filter(Boolean));n.updateHead(o(s,r))}}return s(function(){var o;return null==n||null==(o=n.mountedInstances)||o.add(r.children),function(){var o;null==n||null==(o=n.mountedInstances)||o.delete(r.children)}}),s(function(){return n&&(n._pendingUpdate=emitChange),function(){n&&(n._pendingUpdate=emitChange)}}),l(function(){return n&&n._pendingUpdate&&(n._pendingUpdate(),n._pendingUpdate=null),function(){n&&n._pendingUpdate&&(n._pendingUpdate(),n._pendingUpdate=null)}}),null}},109:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var u=o(1010),s=o(8564),l=o(8007),f=o(4586),d=o(8894),h=o(185),_=o(8207);Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{WEB_VITALS:function(){return y},execOnce:function(){return execOnce},isAbsoluteUrl:function(){return isAbsoluteUrl},getLocationOrigin:function(){return getLocationOrigin},getURL:function(){return getURL},getDisplayName:function(){return getDisplayName},isResSent:function(){return isResSent},normalizeRepeatedSlashes:function(){return normalizeRepeatedSlashes},loadGetInitialProps:function(){return loadGetInitialProps},SP:function(){return b},ST:function(){return P},DecodeError:function(){return E},NormalizeError:function(){return S},PageNotFoundError:function(){return R},MissingStaticPage:function(){return O},MiddlewareNotFoundError:function(){return w},stringifyError:function(){return stringifyError}});var y=["CLS","FCP","FID","INP","LCP","TTFB"];function execOnce(r){var n,o=!1;return function(){for(var u=arguments.length,s=Array(u),l=0;l=0?u="back-forward-cache":o&&(u=document.prerendering||g()>0?"prerender":o.type.replace(/_/g,"-")),{name:r,value:void 0===n?-1:n,rating:"good",delta:0,entries:[],id:"v3-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:u}},P=function(r,n,o){try{if(PerformanceObserver.supportedEntryTypes.includes(r)){var u=new PerformanceObserver(function(r){n(r.getEntries())});return u.observe(Object.assign({type:r,buffered:!0},o||{})),u}}catch(r){}},E=function(r,n){var T=function t(o){"pagehide"!==o.type&&"hidden"!==document.visibilityState||(r(o),n&&(removeEventListener("visibilitychange",t,!0),removeEventListener("pagehide",t,!0)))};addEventListener("visibilitychange",T,!0),addEventListener("pagehide",T,!0)},S=function(r,n,o,u){var s,l;return function(f){var d;n.value>=0&&(f||u)&&((l=n.value-(s||0))||void 0===s)&&(s=n.value,n.delta=l,n.rating=(d=n.value)>o[1]?"poor":d>o[0]?"needs-improvement":"good",r(n))}},R=-1,O=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},w=function(){E(function(r){R=r.timeStamp},!0)},j=function(){return R<0&&(R=O(),w(),_(function(){setTimeout(function(){R=O(),w()},0)})),{get firstHiddenTime(){return R}}},M=function(r,n){n=n||{};var o,u=[1800,3e3],s=j(),l=b("FCP"),c=function(r){r.forEach(function(r){"first-contentful-paint"===r.name&&(d&&d.disconnect(),r.startTime-1&&r(n)},s=b("CLS",0),l=0,f=[],p=function(r){r.forEach(function(r){if(!r.hadRecentInput){var n=f[0],o=f[f.length-1];l&&r.startTime-o.startTime<1e3&&r.startTime-n.startTime<5e3?(l+=r.value,f.push(r)):(l=r.value,f=[r]),l>s.value&&(s.value=l,s.entries=f,u())}})},d=P("layout-shift",p);d&&(u=S(i,s,o,n.reportAllChanges),E(function(){p(d.takeRecords()),u(!0)}),_(function(){l=0,C=-1,u=S(i,s=b("CLS",0),o,n.reportAllChanges)}))},x={passive:!0,capture:!0},L=new Date,N=function(r,n){u||(u=n,s=r,l=new Date,F(removeEventListener),k())},k=function(){if(s>=0&&s1e12?new Date:performance.now())-r.timeStamp;"pointerdown"==r.type?(n=function(){N(s,r),u()},o=function(){u()},u=function(){removeEventListener("pointerup",n,x),removeEventListener("pointercancel",o,x)},addEventListener("pointerup",n,x),addEventListener("pointercancel",o,x)):N(s,r)}},F=function(r){["mousedown","keydown","touchstart","pointerdown"].forEach(function(n){return r(n,D,x)})},U=function(r,n){n=n||{};var o,l=[100,300],d=j(),h=b("FID"),v=function(r){r.startTimen.latency){if(o)o.entries.push(r),o.latency=Math.max(o.latency,r.duration);else{var u={id:r.interactionId,latency:r.duration,entries:[r]};Y[u.id]=u,X.push(u)}X.sort(function(r,n){return n.latency-r.latency}),X.splice(10).forEach(function(r){delete Y[r.id]})}},$=function(r,n){n=n||{};var o=[200,500];G();var u,s=b("INP"),a=function(r){r.forEach(function(r){r.interactionId&&Q(r),"first-input"!==r.entryType||X.some(function(n){return n.entries.some(function(n){return r.duration===n.duration&&r.startTime===n.startTime})})||Q(r)});var n,o=(n=Math.min(X.length-1,Math.floor(K()/50)),X[n]);o&&o.latency!==s.value&&(s.value=o.latency,s.entries=o.entries,u())},l=P("event",a,{durationThreshold:n.durationThreshold||40});u=S(r,s,o,n.reportAllChanges),l&&(l.observe({type:"first-input",buffered:!0}),E(function(){a(l.takeRecords()),s.value<0&&K()>0&&(s.value=0,s.entries=[]),u(!0)}),_(function(){X=[],V=z(),u=S(r,s=b("INP"),o,n.reportAllChanges)}))},J={},Z=function(r,n){n=n||{};var o,u=[2500,4e3],s=j(),l=b("LCP"),c=function(r){var n=r[r.length-1];if(n){var u=n.startTime-g();uperformance.now())return;u.entries=[l],s(!0),_(function(){(s=S(r,u=b("TTFB",0),o,n.reportAllChanges))(!0)})}})},r.exports=o},9423:function(r,n){"use strict";function isAPIRoute(r){return"/api"===r||!!(null==r?void 0:r.startsWith("/api/"))}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isAPIRoute",{enumerable:!0,get:function(){return isAPIRoute}})},676:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{default:function(){return isError},getProperError:function(){return getProperError}});let u=o(5585);function isError(r){return"object"==typeof r&&null!==r&&"name"in r&&"message"in r}function getProperError(r){return isError(r)?r:Error((0,u.isPlainObject)(r)?JSON.stringify(r):r+"")}},2407:function(r,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(r,n){for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]})}(n,{INTERCEPTION_ROUTE_MARKERS:function(){return s},isInterceptionRouteAppPath:function(){return isInterceptionRouteAppPath},extractInterceptionRouteInformation:function(){return extractInterceptionRouteInformation}});let u=o(3090),s=["(..)(..)","(.)","(..)","(...)"];function isInterceptionRouteAppPath(r){return void 0!==r.split("/").find(r=>s.find(n=>r.startsWith(n)))}function extractInterceptionRouteInformation(r){let n,o,l;for(let u of r.split("/"))if(o=s.find(r=>u.startsWith(r))){[n,l]=r.split(o,2);break}if(!n||!o||!l)throw Error(`Invalid interception route: ${r}. Must be in the format //(..|...|..)(..)/`);switch(n=(0,u.normalizeAppPath)(n),o){case"(.)":l="/"===n?`/${l}`:n+"/"+l;break;case"(..)":if("/"===n)throw Error(`Invalid interception route: ${r}. Cannot use (..) marker at the root level, use (.) instead.`);l=n.split("/").slice(0,-1).concat(l).join("/");break;case"(...)":l="/"+l;break;case"(..)(..)":let f=n.split("/");if(f.length<=2)throw Error(`Invalid interception route: ${r}. Cannot use (..)(..) marker at the root level or one level up.`);l=f.slice(0,-2).concat(l).join("/");break;default:throw Error("Invariant: unexpected marker")}return{interceptingRoute:n,interceptedRoute:l}}},2431:function(){},2033:function(r,n,o){"use strict";function _array_like_to_array(r,n){(null==n||n>r.length)&&(n=r.length);for(var o=0,u=Array(n);o=0||(s[o]=r[o]);return s}(r,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(r);for(u=0;u=0)&&Object.prototype.propertyIsEnumerable.call(r,o)&&(s[o]=r[o])}return s}o.r(n),o.d(n,{_:function(){return _object_without_properties},_object_without_properties:function(){return _object_without_properties}})},3840:function(r,n,o){"use strict";function _set_prototype_of(r,n){return(_set_prototype_of=Object.setPrototypeOf||function(r,n){return r.__proto__=n,r})(r,n)}o.d(n,{b:function(){return _set_prototype_of}})},1309:function(r,n,o){"use strict";o.r(n),o.d(n,{_:function(){return _sliced_to_array},_sliced_to_array:function(){return _sliced_to_array}});var u=o(3270);function _sliced_to_array(r,n){return function(r){if(Array.isArray(r))return r}(r)||function(r,n){var o,u,s=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=s){var l=[],f=!0,d=!1;try{for(s=s.call(r);!(f=(o=s.next()).done)&&(l.push(o.value),!n||l.length!==n);f=!0);}catch(r){d=!0,u=r}finally{try{f||null==s.return||s.return()}finally{if(d)throw u}}return l}}(r,n)||(0,u.N)(r,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},4586:function(r,n,o){"use strict";o.r(n),o.d(n,{_:function(){return _to_consumable_array},_to_consumable_array:function(){return _to_consumable_array}});var u=o(2033),s=o(3270);function _to_consumable_array(r){return function(r){if(Array.isArray(r))return(0,u.F)(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||(0,s.N)(r)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},8207:function(r,n,o){"use strict";o.r(n),o.d(n,{_:function(){return u.Jh},_ts_generator:function(){return u.Jh}});var u=o(7582)},3270:function(r,n,o){"use strict";o.d(n,{N:function(){return _unsupported_iterable_to_array}});var u=o(2033);function _unsupported_iterable_to_array(r,n){if(r){if("string"==typeof r)return(0,u.F)(r,n);var o=Object.prototype.toString.call(r).slice(8,-1);if("Object"===o&&r.constructor&&(o=r.constructor.name),"Map"===o||"Set"===o)return Array.from(o);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return(0,u.F)(r,n)}}},8894:function(r,n,o){"use strict";o.r(n),o.d(n,{_:function(){return _wrap_native_super},_wrap_native_super:function(){return _wrap_native_super}});var u=o(1861),s=o(4165),l=o(3840);function _wrap_native_super(r){var n="function"==typeof Map?new Map:void 0;return(_wrap_native_super=function(r){if(null===r||-1===Function.toString.call(r).indexOf("[native code]"))return r;if("function"!=typeof r)throw TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(r))return n.get(r);n.set(r,Wrapper)}function Wrapper(){return(0,u._construct)(r,arguments,(0,s.X)(this).constructor)}return Wrapper.prototype=Object.create(r.prototype,{constructor:{value:Wrapper,enumerable:!1,writable:!0,configurable:!0}}),(0,l.b)(Wrapper,r)})(r)}},7582:function(r,n,o){"use strict";function __generator(r,n){var o,u,s,l={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},f=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return f.next=verb(0),f.throw=verb(1),f.return=verb(2),"function"==typeof Symbol&&(f[Symbol.iterator]=function(){return this}),f;function verb(d){return function(h){return function(d){if(o)throw TypeError("Generator is already executing.");for(;f&&(f=0,d[0]&&(l=0)),l;)try{if(o=1,u&&(s=2&d[0]?u.return:d[0]?u.throw||((s=u.return)&&s.call(u),0):u.next)&&!(s=s.call(u,d[1])).done)return s;switch(u=0,s&&(d=[2&d[0],s.value]),d[0]){case 0:case 1:s=d;break;case 4:return l.label++,{value:d[1],done:!1};case 5:l.label++,u=d[1],d=[0];continue;case 7:d=l.ops.pop(),l.trys.pop();continue;default:if(!(s=(s=l.trys).length>0&&s[s.length-1])&&(6===d[0]||2===d[0])){l=0;continue}if(3===d[0]&&(!s||d[1]>s[0]&&d[1]0?ut:at)(t)},ct=Math.min,ft=function(t){return t>0?ct(st(t),9007199254740991):0},lt=Math.max,ht=Math.min,pt=function(t,e){var r=st(t);return r<0?lt(r+e,0):ht(r,e)},dt=function(t){return function(e,r,n){var o,i=g(e),a=ft(i.length),u=pt(n,a);if(t&&r!=r){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===r)return t||u||0;return!t&&-1}},vt={includes:dt(!0),indexOf:dt(!1)},gt=vt.indexOf,yt=function(t,e){var r,n=g(t),o=0,i=[];for(r in n)!w(H,r)&&w(n,r)&&i.push(r);for(;e.length>o;)w(n,r=e[o++])&&(~gt(i,r)||i.push(r));return i},mt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],bt=mt.concat("length","prototype"),wt={f:Object.getOwnPropertyNames||function(t){return yt(t,bt)}},St={f:Object.getOwnPropertySymbols},Et=it("Reflect","ownKeys")||function(t){var e=wt.f(j(t)),r=St.f;return r?e.concat(r(t)):e},xt=function(t,e){for(var r=Et(e),n=I.f,o=R.f,i=0;i2?arguments[2]:void 0,u=Mt((void 0===a?n:pt(a,n))-i,n-o),s=1;for(i0;)i in r?r[o]=r[i]:delete r[o],o+=s,i+=s;return r},Nt=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())}),Ct=Nt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ft=z("wks"),Bt=n.Symbol,Dt=Ct?Bt:Bt&&Bt.withoutSetter||G,qt=function(t){return w(Ft,t)||(Ft[t]=Nt&&w(Bt,t)?Bt[t]:Dt("Symbol."+t)),Ft[t]},zt=Object.keys||function(t){return yt(t,mt)},Wt=i?Object.defineProperties:function(t,e){j(t);for(var r,n=zt(e),o=n.length,i=0;o>i;)I.f(t,r=n[i++],e[r]);return t},Kt=it("document","documentElement"),Gt=V("IE_PROTO"),$t=function(){},Vt=function(t){return"