diff --git a/.gitignore b/.gitignore
index 402935b..553d639 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,40 @@
+# Dependencies
node_modules/
-.next/
-dist/
-*.log
-.env
+/.pnp
+.pnp.js
+
+# Testing
+/coverage
+
+# Next.js
+/.next/
+/out/
+
+# Production
+/build
+/dist
+
+# Misc
.DS_Store
+*.pem
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Env
+.env
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+# TypeScript
+*.tsbuildinfo
+next-env.d.ts
+
+# Docker/DB
postgres_data/
-# Credenciales
+# Secrets
GiteaToken.txt
diff --git a/client/.next/BUILD_ID b/client/.next/BUILD_ID
new file mode 100644
index 0000000..42ddfdc
--- /dev/null
+++ b/client/.next/BUILD_ID
@@ -0,0 +1 @@
+Q-zfVzSkdLG_GvHabv8Ax
\ No newline at end of file
diff --git a/client/.next/app-build-manifest.json b/client/.next/app-build-manifest.json
new file mode 100644
index 0000000..7e8040d
--- /dev/null
+++ b/client/.next/app-build-manifest.json
@@ -0,0 +1,25 @@
+{
+ "pages": {
+ "/layout": [
+ "static/chunks/webpack.js",
+ "static/chunks/main-app.js",
+ "static/css/app/layout.css",
+ "static/chunks/app/layout.js"
+ ],
+ "/dashboard/page": [
+ "static/chunks/webpack.js",
+ "static/chunks/main-app.js",
+ "static/chunks/app/dashboard/page.js"
+ ],
+ "/page": [
+ "static/chunks/webpack.js",
+ "static/chunks/main-app.js",
+ "static/chunks/app/page.js"
+ ],
+ "/not-found": [
+ "static/chunks/webpack.js",
+ "static/chunks/main-app.js",
+ "static/chunks/app/not-found.js"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/client/.next/app-path-routes-manifest.json b/client/.next/app-path-routes-manifest.json
new file mode 100644
index 0000000..470454b
--- /dev/null
+++ b/client/.next/app-path-routes-manifest.json
@@ -0,0 +1 @@
+{"/_not-found":"/_not-found","/dashboard/page":"/dashboard","/page":"/"}
\ No newline at end of file
diff --git a/client/.next/build-manifest.json b/client/.next/build-manifest.json
new file mode 100644
index 0000000..018cb67
--- /dev/null
+++ b/client/.next/build-manifest.json
@@ -0,0 +1,19 @@
+{
+ "polyfillFiles": [
+ "static/chunks/polyfills.js"
+ ],
+ "devFiles": [],
+ "ampDevFiles": [],
+ "lowPriorityFiles": [
+ "static/development/_buildManifest.js",
+ "static/development/_ssgManifest.js"
+ ],
+ "rootMainFiles": [
+ "static/chunks/webpack.js",
+ "static/chunks/main-app.js"
+ ],
+ "pages": {
+ "/_app": []
+ },
+ "ampFirstPages": []
+}
\ No newline at end of file
diff --git a/client/.next/cache/config.json b/client/.next/cache/config.json
new file mode 100644
index 0000000..d7b08f0
--- /dev/null
+++ b/client/.next/cache/config.json
@@ -0,0 +1,7 @@
+{
+ "telemetry": {
+ "notifiedAt": "1766418825867",
+ "anonymousId": "e0cdec547134990904f3c012a006fcff905e94b4f10141bbc69c4f2e9ae75859",
+ "salt": "d0c6e804c295eba960ffcfc94ffbf971"
+ }
+}
\ No newline at end of file
diff --git a/client/.next/cache/images/+ux-q6R83MeJ-CRH6AFyhNI+vQ0Aw61z9Q53Smo7hNI=/60.1766425437869.zGYQlnMNxvrCPZHig3pviGCYK5J8504ZS19OH6gZmuc=.webp b/client/.next/cache/images/+ux-q6R83MeJ-CRH6AFyhNI+vQ0Aw61z9Q53Smo7hNI=/60.1766425437869.zGYQlnMNxvrCPZHig3pviGCYK5J8504ZS19OH6gZmuc=.webp
new file mode 100644
index 0000000..d86ebed
Binary files /dev/null and b/client/.next/cache/images/+ux-q6R83MeJ-CRH6AFyhNI+vQ0Aw61z9Q53Smo7hNI=/60.1766425437869.zGYQlnMNxvrCPZHig3pviGCYK5J8504ZS19OH6gZmuc=.webp differ
diff --git a/client/.next/cache/images/-5O+JC+NTIGIqhHImSvuCjEMlvOfaIVZaoK58wts0cI=/60.1766425235619.UKJH+ctMDiyfUlzQD22me-w4KIRjv0+PacblVGDT-+E=.webp b/client/.next/cache/images/-5O+JC+NTIGIqhHImSvuCjEMlvOfaIVZaoK58wts0cI=/60.1766425235619.UKJH+ctMDiyfUlzQD22me-w4KIRjv0+PacblVGDT-+E=.webp
new file mode 100644
index 0000000..8ea0cd6
Binary files /dev/null and b/client/.next/cache/images/-5O+JC+NTIGIqhHImSvuCjEMlvOfaIVZaoK58wts0cI=/60.1766425235619.UKJH+ctMDiyfUlzQD22me-w4KIRjv0+PacblVGDT-+E=.webp differ
diff --git a/client/.next/cache/images/-JHNQcTrokM+yxXmlrRs07g4ZbIRiQsPTEsxdujsvMs=/60.1766422130222.fXE3eiByPtAlqdxj1EhMmUo9fTqdc2MOBWE7+wGgyxA=.webp b/client/.next/cache/images/-JHNQcTrokM+yxXmlrRs07g4ZbIRiQsPTEsxdujsvMs=/60.1766422130222.fXE3eiByPtAlqdxj1EhMmUo9fTqdc2MOBWE7+wGgyxA=.webp
new file mode 100644
index 0000000..cdaf0ed
Binary files /dev/null and b/client/.next/cache/images/-JHNQcTrokM+yxXmlrRs07g4ZbIRiQsPTEsxdujsvMs=/60.1766422130222.fXE3eiByPtAlqdxj1EhMmUo9fTqdc2MOBWE7+wGgyxA=.webp differ
diff --git a/client/.next/cache/images/-f3l+3Qu-wSFG-8DypnkdEylQHj5N7Pj2AzLgC9NlEo=/60.1766425349485.PWRU7EKGX-qCjExLBWj7zQlqORmU5XLRzbRlpC2AIyc=.webp b/client/.next/cache/images/-f3l+3Qu-wSFG-8DypnkdEylQHj5N7Pj2AzLgC9NlEo=/60.1766425349485.PWRU7EKGX-qCjExLBWj7zQlqORmU5XLRzbRlpC2AIyc=.webp
new file mode 100644
index 0000000..e92e8c9
Binary files /dev/null and b/client/.next/cache/images/-f3l+3Qu-wSFG-8DypnkdEylQHj5N7Pj2AzLgC9NlEo=/60.1766425349485.PWRU7EKGX-qCjExLBWj7zQlqORmU5XLRzbRlpC2AIyc=.webp differ
diff --git a/client/.next/cache/images/-xB6r6JzC3TFmuIqI+tKrLXh4SBpARrDStr965g9m-o=/60.1766425355105.AN216WoWMumxnrnk+f18+rR4CsJdS06L-vvjX8adwu4=.webp b/client/.next/cache/images/-xB6r6JzC3TFmuIqI+tKrLXh4SBpARrDStr965g9m-o=/60.1766425355105.AN216WoWMumxnrnk+f18+rR4CsJdS06L-vvjX8adwu4=.webp
new file mode 100644
index 0000000..ab66806
Binary files /dev/null and b/client/.next/cache/images/-xB6r6JzC3TFmuIqI+tKrLXh4SBpARrDStr965g9m-o=/60.1766425355105.AN216WoWMumxnrnk+f18+rR4CsJdS06L-vvjX8adwu4=.webp differ
diff --git a/client/.next/cache/images/0TtkMbjGDvVzgmjvdI+5NVgEYxYh7eyDpviLki8PAT8=/60.1766425392886.nsUswSkT1mDegWU1q-gM5TASStM0Oj7G9EYdfn+QMFY=.webp b/client/.next/cache/images/0TtkMbjGDvVzgmjvdI+5NVgEYxYh7eyDpviLki8PAT8=/60.1766425392886.nsUswSkT1mDegWU1q-gM5TASStM0Oj7G9EYdfn+QMFY=.webp
new file mode 100644
index 0000000..d5a18a9
Binary files /dev/null and b/client/.next/cache/images/0TtkMbjGDvVzgmjvdI+5NVgEYxYh7eyDpviLki8PAT8=/60.1766425392886.nsUswSkT1mDegWU1q-gM5TASStM0Oj7G9EYdfn+QMFY=.webp differ
diff --git a/client/.next/cache/images/0kB7YRCy3d32lcsw86u9GxyOkLndrLarc3nuDxzqjdQ=/60.1766425994168.fxcvOA8OrBbH8rqWUxSDp+-ye6BxEIFpqIC1ZUTds20=.webp b/client/.next/cache/images/0kB7YRCy3d32lcsw86u9GxyOkLndrLarc3nuDxzqjdQ=/60.1766425994168.fxcvOA8OrBbH8rqWUxSDp+-ye6BxEIFpqIC1ZUTds20=.webp
new file mode 100644
index 0000000..0e0b871
Binary files /dev/null and b/client/.next/cache/images/0kB7YRCy3d32lcsw86u9GxyOkLndrLarc3nuDxzqjdQ=/60.1766425994168.fxcvOA8OrBbH8rqWUxSDp+-ye6BxEIFpqIC1ZUTds20=.webp differ
diff --git a/client/.next/cache/images/0s2CRZeTwfEZ7eIKJwFMWIEAJYI-R72FVtnmHQEdiEY=/60.1766426021726.1IvALzqpUx91kKLOSDzyUeMa6PiNiGPUtPSagKB8-jg=.webp b/client/.next/cache/images/0s2CRZeTwfEZ7eIKJwFMWIEAJYI-R72FVtnmHQEdiEY=/60.1766426021726.1IvALzqpUx91kKLOSDzyUeMa6PiNiGPUtPSagKB8-jg=.webp
new file mode 100644
index 0000000..767a1a1
Binary files /dev/null and b/client/.next/cache/images/0s2CRZeTwfEZ7eIKJwFMWIEAJYI-R72FVtnmHQEdiEY=/60.1766426021726.1IvALzqpUx91kKLOSDzyUeMa6PiNiGPUtPSagKB8-jg=.webp differ
diff --git a/client/.next/cache/images/17JT-emG8I-gJ6+Wj-Xx4EjrFWVJLLP4Z6Wzh8jGPXo=/60.1766425354954.1R2eZdVgQFGC7geLB+X9zehduIt74HzkZ2hFfJoe1uc=.webp b/client/.next/cache/images/17JT-emG8I-gJ6+Wj-Xx4EjrFWVJLLP4Z6Wzh8jGPXo=/60.1766425354954.1R2eZdVgQFGC7geLB+X9zehduIt74HzkZ2hFfJoe1uc=.webp
new file mode 100644
index 0000000..11f3149
Binary files /dev/null and b/client/.next/cache/images/17JT-emG8I-gJ6+Wj-Xx4EjrFWVJLLP4Z6Wzh8jGPXo=/60.1766425354954.1R2eZdVgQFGC7geLB+X9zehduIt74HzkZ2hFfJoe1uc=.webp differ
diff --git a/client/.next/cache/images/2zAs1OZ0fuqA6BpUDcKGQJYew321qIEJE98YlxI-FyU=/60.1766426019634.V7qPupNRDsQY9PVKilrZ1Kjmi6mS9gxRYjZKgIe8yus=.webp b/client/.next/cache/images/2zAs1OZ0fuqA6BpUDcKGQJYew321qIEJE98YlxI-FyU=/60.1766426019634.V7qPupNRDsQY9PVKilrZ1Kjmi6mS9gxRYjZKgIe8yus=.webp
new file mode 100644
index 0000000..0672001
Binary files /dev/null and b/client/.next/cache/images/2zAs1OZ0fuqA6BpUDcKGQJYew321qIEJE98YlxI-FyU=/60.1766426019634.V7qPupNRDsQY9PVKilrZ1Kjmi6mS9gxRYjZKgIe8yus=.webp differ
diff --git a/client/.next/cache/images/3XHRNrmDdODXHlR0PPi2zNyv5qmEZznDdrn4L9yQruU=/60.1766425417234.b8wRerBj5Acm6g-8CExBNkpu7EKgebgz4UMp+93VWR0=.webp b/client/.next/cache/images/3XHRNrmDdODXHlR0PPi2zNyv5qmEZznDdrn4L9yQruU=/60.1766425417234.b8wRerBj5Acm6g-8CExBNkpu7EKgebgz4UMp+93VWR0=.webp
new file mode 100644
index 0000000..40702f3
Binary files /dev/null and b/client/.next/cache/images/3XHRNrmDdODXHlR0PPi2zNyv5qmEZznDdrn4L9yQruU=/60.1766425417234.b8wRerBj5Acm6g-8CExBNkpu7EKgebgz4UMp+93VWR0=.webp differ
diff --git a/client/.next/cache/images/3b3LSf9kOYcc201LYf+OgUo0t+tvg+MVHHBbIeRIv3k=/60.1766420981221.GAmZT9WqKPkwCkGpQt54Zc2ZtKrCAhlal31r6VkGGWc=.webp b/client/.next/cache/images/3b3LSf9kOYcc201LYf+OgUo0t+tvg+MVHHBbIeRIv3k=/60.1766420981221.GAmZT9WqKPkwCkGpQt54Zc2ZtKrCAhlal31r6VkGGWc=.webp
new file mode 100644
index 0000000..2144319
Binary files /dev/null and b/client/.next/cache/images/3b3LSf9kOYcc201LYf+OgUo0t+tvg+MVHHBbIeRIv3k=/60.1766420981221.GAmZT9WqKPkwCkGpQt54Zc2ZtKrCAhlal31r6VkGGWc=.webp differ
diff --git a/client/.next/cache/images/45VPBQUKu-RGsyyuF3ujGkXzkBeH1jTNAs8STFmXrPY=/60.1766420086631.iM83Ln+6MSHUO7BqHzf5TZe3HdI-vkzZLvklo9BxSRU=.webp b/client/.next/cache/images/45VPBQUKu-RGsyyuF3ujGkXzkBeH1jTNAs8STFmXrPY=/60.1766420086631.iM83Ln+6MSHUO7BqHzf5TZe3HdI-vkzZLvklo9BxSRU=.webp
new file mode 100644
index 0000000..59cfdeb
Binary files /dev/null and b/client/.next/cache/images/45VPBQUKu-RGsyyuF3ujGkXzkBeH1jTNAs8STFmXrPY=/60.1766420086631.iM83Ln+6MSHUO7BqHzf5TZe3HdI-vkzZLvklo9BxSRU=.webp differ
diff --git a/client/.next/cache/images/4B+jkSYRvM+KMreoPlZAc8Ll9+BHlgVyxA3YY1S2ubM=/60.1766425282930.Ygc7ruWnIROcch23vMjrSl0xt8sPrAU7xeYZaRSe4I4=.webp b/client/.next/cache/images/4B+jkSYRvM+KMreoPlZAc8Ll9+BHlgVyxA3YY1S2ubM=/60.1766425282930.Ygc7ruWnIROcch23vMjrSl0xt8sPrAU7xeYZaRSe4I4=.webp
new file mode 100644
index 0000000..76e0f00
Binary files /dev/null and b/client/.next/cache/images/4B+jkSYRvM+KMreoPlZAc8Ll9+BHlgVyxA3YY1S2ubM=/60.1766425282930.Ygc7ruWnIROcch23vMjrSl0xt8sPrAU7xeYZaRSe4I4=.webp differ
diff --git a/client/.next/cache/images/4DSX0AptXpzHENEEXzttJnHEY+Y2tr4y-sa+5rVDmLg=/60.1766422058992.f3asQGMRdD1-AZ+3YSF3Wn32tat3u+ahLBYDB+ZC-BI=.webp b/client/.next/cache/images/4DSX0AptXpzHENEEXzttJnHEY+Y2tr4y-sa+5rVDmLg=/60.1766422058992.f3asQGMRdD1-AZ+3YSF3Wn32tat3u+ahLBYDB+ZC-BI=.webp
new file mode 100644
index 0000000..96b0b22
Binary files /dev/null and b/client/.next/cache/images/4DSX0AptXpzHENEEXzttJnHEY+Y2tr4y-sa+5rVDmLg=/60.1766422058992.f3asQGMRdD1-AZ+3YSF3Wn32tat3u+ahLBYDB+ZC-BI=.webp differ
diff --git a/client/.next/cache/images/4Pebyd41WfDNieReX7u5s88bY9emVkz3JICWx38qTz4=/60.1766425444921.uRzawukA0NJDXaYPlcEEyxy7WFxiQbyvO2JGAq9v1hA=.webp b/client/.next/cache/images/4Pebyd41WfDNieReX7u5s88bY9emVkz3JICWx38qTz4=/60.1766425444921.uRzawukA0NJDXaYPlcEEyxy7WFxiQbyvO2JGAq9v1hA=.webp
new file mode 100644
index 0000000..7bcfd19
Binary files /dev/null and b/client/.next/cache/images/4Pebyd41WfDNieReX7u5s88bY9emVkz3JICWx38qTz4=/60.1766425444921.uRzawukA0NJDXaYPlcEEyxy7WFxiQbyvO2JGAq9v1hA=.webp differ
diff --git a/client/.next/cache/images/4dD6dgZ-8ZeJD-JEDDMX-khCBjVqhHWz5QBtSUxwzSQ=/60.1766422441383.U270TJJduOfgivrcUxNDetmbrmK3bHfASxzPZHp2yWg=.webp b/client/.next/cache/images/4dD6dgZ-8ZeJD-JEDDMX-khCBjVqhHWz5QBtSUxwzSQ=/60.1766422441383.U270TJJduOfgivrcUxNDetmbrmK3bHfASxzPZHp2yWg=.webp
new file mode 100644
index 0000000..e51469f
Binary files /dev/null and b/client/.next/cache/images/4dD6dgZ-8ZeJD-JEDDMX-khCBjVqhHWz5QBtSUxwzSQ=/60.1766422441383.U270TJJduOfgivrcUxNDetmbrmK3bHfASxzPZHp2yWg=.webp differ
diff --git a/client/.next/cache/images/4fFlVFkpstBw8Py3dU9IoUCK6OdGaOfFHubX+FgW05Y=/60.1766425384991.MWIrmER-YRfvQLHqbmnEL3B2oayqPHP7DKzyAl+l6oA=.webp b/client/.next/cache/images/4fFlVFkpstBw8Py3dU9IoUCK6OdGaOfFHubX+FgW05Y=/60.1766425384991.MWIrmER-YRfvQLHqbmnEL3B2oayqPHP7DKzyAl+l6oA=.webp
new file mode 100644
index 0000000..70a5855
Binary files /dev/null and b/client/.next/cache/images/4fFlVFkpstBw8Py3dU9IoUCK6OdGaOfFHubX+FgW05Y=/60.1766425384991.MWIrmER-YRfvQLHqbmnEL3B2oayqPHP7DKzyAl+l6oA=.webp differ
diff --git a/client/.next/cache/images/4nP56+16LoaA6+HA1NHlLbpY6YvjRGDm9QeALYIYczg=/60.1766425389775.C-sW4teiTO1Y6pe-day+QFbUr430X0bA4VQjZPv+RsI=.webp b/client/.next/cache/images/4nP56+16LoaA6+HA1NHlLbpY6YvjRGDm9QeALYIYczg=/60.1766425389775.C-sW4teiTO1Y6pe-day+QFbUr430X0bA4VQjZPv+RsI=.webp
new file mode 100644
index 0000000..7936c9d
Binary files /dev/null and b/client/.next/cache/images/4nP56+16LoaA6+HA1NHlLbpY6YvjRGDm9QeALYIYczg=/60.1766425389775.C-sW4teiTO1Y6pe-day+QFbUr430X0bA4VQjZPv+RsI=.webp differ
diff --git a/client/.next/cache/images/5Xb9uH+a0runGSboaBOCuWdUwd9rSbp6PbiGReDmOCk=/60.1766426019432.V7qPupNRDsQY9PVKilrZ1Kjmi6mS9gxRYjZKgIe8yus=.webp b/client/.next/cache/images/5Xb9uH+a0runGSboaBOCuWdUwd9rSbp6PbiGReDmOCk=/60.1766426019432.V7qPupNRDsQY9PVKilrZ1Kjmi6mS9gxRYjZKgIe8yus=.webp
new file mode 100644
index 0000000..0672001
Binary files /dev/null and b/client/.next/cache/images/5Xb9uH+a0runGSboaBOCuWdUwd9rSbp6PbiGReDmOCk=/60.1766426019432.V7qPupNRDsQY9PVKilrZ1Kjmi6mS9gxRYjZKgIe8yus=.webp differ
diff --git a/client/.next/cache/images/5jczsqpssn5cqOW+kf7Vu9kvv-HMxto+xF2O7J3SRRM=/60.1766425985441.fxcvOA8OrBbH8rqWUxSDp+-ye6BxEIFpqIC1ZUTds20=.webp b/client/.next/cache/images/5jczsqpssn5cqOW+kf7Vu9kvv-HMxto+xF2O7J3SRRM=/60.1766425985441.fxcvOA8OrBbH8rqWUxSDp+-ye6BxEIFpqIC1ZUTds20=.webp
new file mode 100644
index 0000000..0e0b871
Binary files /dev/null and b/client/.next/cache/images/5jczsqpssn5cqOW+kf7Vu9kvv-HMxto+xF2O7J3SRRM=/60.1766425985441.fxcvOA8OrBbH8rqWUxSDp+-ye6BxEIFpqIC1ZUTds20=.webp differ
diff --git a/client/.next/cache/images/7IqX0x2P3xdRfUGSs0atVGpoMA1Ad8Hd94gaDOzfxIg=/60.1766422130148.fXE3eiByPtAlqdxj1EhMmUo9fTqdc2MOBWE7+wGgyxA=.webp b/client/.next/cache/images/7IqX0x2P3xdRfUGSs0atVGpoMA1Ad8Hd94gaDOzfxIg=/60.1766422130148.fXE3eiByPtAlqdxj1EhMmUo9fTqdc2MOBWE7+wGgyxA=.webp
new file mode 100644
index 0000000..cdaf0ed
Binary files /dev/null and b/client/.next/cache/images/7IqX0x2P3xdRfUGSs0atVGpoMA1Ad8Hd94gaDOzfxIg=/60.1766422130148.fXE3eiByPtAlqdxj1EhMmUo9fTqdc2MOBWE7+wGgyxA=.webp differ
diff --git a/client/.next/cache/images/7fiTvYG7JWegdRfWn3ty5K+uoE5oxj7vY1oyeHtE6Eo=/60.1766420086730.ZZdjYXuLqzfKborbGQfEuPzXnxJn8+RD8DoM+zxqi9g=.webp b/client/.next/cache/images/7fiTvYG7JWegdRfWn3ty5K+uoE5oxj7vY1oyeHtE6Eo=/60.1766420086730.ZZdjYXuLqzfKborbGQfEuPzXnxJn8+RD8DoM+zxqi9g=.webp
new file mode 100644
index 0000000..0aa5e9f
Binary files /dev/null and b/client/.next/cache/images/7fiTvYG7JWegdRfWn3ty5K+uoE5oxj7vY1oyeHtE6Eo=/60.1766420086730.ZZdjYXuLqzfKborbGQfEuPzXnxJn8+RD8DoM+zxqi9g=.webp differ
diff --git a/client/.next/cache/images/9btDk6TJxNdWRMFMqTWlHcriKGfIpA9GoRdFi-tetoI=/60.1766422121275.qBWaXa0GYueDYZh+JqD8PkTdqLWjfxA5AiQZFxhOItM=.webp b/client/.next/cache/images/9btDk6TJxNdWRMFMqTWlHcriKGfIpA9GoRdFi-tetoI=/60.1766422121275.qBWaXa0GYueDYZh+JqD8PkTdqLWjfxA5AiQZFxhOItM=.webp
new file mode 100644
index 0000000..547405c
Binary files /dev/null and b/client/.next/cache/images/9btDk6TJxNdWRMFMqTWlHcriKGfIpA9GoRdFi-tetoI=/60.1766422121275.qBWaXa0GYueDYZh+JqD8PkTdqLWjfxA5AiQZFxhOItM=.webp differ
diff --git a/client/.next/cache/images/ANf3Ge21JHf6y0Z0AO3zTft4VYiBQ5o1OMXAbLDJGkg=/60.1766426035397.pY6X9mznWOGU-UsdNwIX4ezsXiXMw+sLHPXBs4Hw-yU=.webp b/client/.next/cache/images/ANf3Ge21JHf6y0Z0AO3zTft4VYiBQ5o1OMXAbLDJGkg=/60.1766426035397.pY6X9mznWOGU-UsdNwIX4ezsXiXMw+sLHPXBs4Hw-yU=.webp
new file mode 100644
index 0000000..e737396
Binary files /dev/null and b/client/.next/cache/images/ANf3Ge21JHf6y0Z0AO3zTft4VYiBQ5o1OMXAbLDJGkg=/60.1766426035397.pY6X9mznWOGU-UsdNwIX4ezsXiXMw+sLHPXBs4Hw-yU=.webp differ
diff --git a/client/.next/cache/images/AS-ujJK1OcFJOxIUoZcx57qAjEYMgLpRQw+7bT-XNMY=/60.1766425381176.dPIjX1f-fygC+9+RELgFa6wOZfJwHDCwZ7d-dWyOdxs=.webp b/client/.next/cache/images/AS-ujJK1OcFJOxIUoZcx57qAjEYMgLpRQw+7bT-XNMY=/60.1766425381176.dPIjX1f-fygC+9+RELgFa6wOZfJwHDCwZ7d-dWyOdxs=.webp
new file mode 100644
index 0000000..571f66e
Binary files /dev/null and b/client/.next/cache/images/AS-ujJK1OcFJOxIUoZcx57qAjEYMgLpRQw+7bT-XNMY=/60.1766425381176.dPIjX1f-fygC+9+RELgFa6wOZfJwHDCwZ7d-dWyOdxs=.webp differ
diff --git a/client/.next/cache/images/Acooj-JIpOZ+QxWDUzM2Oj88Wv1yWG4dnRETwWzhAVU=/60.1766425389654.8dogsRFankfgrO0zmfpQLJ2rtn5X-hq6KzxQA7ExQ7c=.webp b/client/.next/cache/images/Acooj-JIpOZ+QxWDUzM2Oj88Wv1yWG4dnRETwWzhAVU=/60.1766425389654.8dogsRFankfgrO0zmfpQLJ2rtn5X-hq6KzxQA7ExQ7c=.webp
new file mode 100644
index 0000000..483a325
Binary files /dev/null and b/client/.next/cache/images/Acooj-JIpOZ+QxWDUzM2Oj88Wv1yWG4dnRETwWzhAVU=/60.1766425389654.8dogsRFankfgrO0zmfpQLJ2rtn5X-hq6KzxQA7ExQ7c=.webp differ
diff --git a/client/.next/cache/images/Br6oKl0Wcytp3BYx8FJE2mkYd6gupcw4oWRyL4C07ek=/60.1766425359929.8dogsRFankfgrO0zmfpQLJ2rtn5X-hq6KzxQA7ExQ7c=.webp b/client/.next/cache/images/Br6oKl0Wcytp3BYx8FJE2mkYd6gupcw4oWRyL4C07ek=/60.1766425359929.8dogsRFankfgrO0zmfpQLJ2rtn5X-hq6KzxQA7ExQ7c=.webp
new file mode 100644
index 0000000..483a325
Binary files /dev/null and b/client/.next/cache/images/Br6oKl0Wcytp3BYx8FJE2mkYd6gupcw4oWRyL4C07ek=/60.1766425359929.8dogsRFankfgrO0zmfpQLJ2rtn5X-hq6KzxQA7ExQ7c=.webp differ
diff --git a/client/.next/cache/images/E3o3asK4hOX18te6MXACqYTTNMipOMAXFuBsjcdmQv8=/60.1766425368894.Ufsik1BO9SXtzSkZ044SaVGtZKnnWsETkvZPTBlAOpo=.webp b/client/.next/cache/images/E3o3asK4hOX18te6MXACqYTTNMipOMAXFuBsjcdmQv8=/60.1766425368894.Ufsik1BO9SXtzSkZ044SaVGtZKnnWsETkvZPTBlAOpo=.webp
new file mode 100644
index 0000000..e7e6a6e
Binary files /dev/null and b/client/.next/cache/images/E3o3asK4hOX18te6MXACqYTTNMipOMAXFuBsjcdmQv8=/60.1766425368894.Ufsik1BO9SXtzSkZ044SaVGtZKnnWsETkvZPTBlAOpo=.webp differ
diff --git a/client/.next/cache/images/EPzv-ngjOouCVkQU6n4U-T7mmmKQWO60efVtlY0zAdU=/60.1766426035423.1C4l5bNYROjep3BtdDNbi3s33OyJvZ8IC9h0pxbC5T8=.webp b/client/.next/cache/images/EPzv-ngjOouCVkQU6n4U-T7mmmKQWO60efVtlY0zAdU=/60.1766426035423.1C4l5bNYROjep3BtdDNbi3s33OyJvZ8IC9h0pxbC5T8=.webp
new file mode 100644
index 0000000..ae68b74
Binary files /dev/null and b/client/.next/cache/images/EPzv-ngjOouCVkQU6n4U-T7mmmKQWO60efVtlY0zAdU=/60.1766426035423.1C4l5bNYROjep3BtdDNbi3s33OyJvZ8IC9h0pxbC5T8=.webp differ
diff --git a/client/.next/cache/images/F1DuLfoW-6RjcKBtrmnTKdO4gRHWIRZYQ-mI02C-T-4=/60.1766425368216.Gs7sjjrxdStrTzQoyJlemZaGF8yPLLeFqJdBHTJ9RFU=.webp b/client/.next/cache/images/F1DuLfoW-6RjcKBtrmnTKdO4gRHWIRZYQ-mI02C-T-4=/60.1766425368216.Gs7sjjrxdStrTzQoyJlemZaGF8yPLLeFqJdBHTJ9RFU=.webp
new file mode 100644
index 0000000..a703638
Binary files /dev/null and b/client/.next/cache/images/F1DuLfoW-6RjcKBtrmnTKdO4gRHWIRZYQ-mI02C-T-4=/60.1766425368216.Gs7sjjrxdStrTzQoyJlemZaGF8yPLLeFqJdBHTJ9RFU=.webp differ
diff --git a/client/.next/cache/images/FU8vzob4V9Ivo+3PvLzLbg3WPCaWJZRn3ZFBvr5UIXE=/60.1766425417474.b8wRerBj5Acm6g-8CExBNkpu7EKgebgz4UMp+93VWR0=.webp b/client/.next/cache/images/FU8vzob4V9Ivo+3PvLzLbg3WPCaWJZRn3ZFBvr5UIXE=/60.1766425417474.b8wRerBj5Acm6g-8CExBNkpu7EKgebgz4UMp+93VWR0=.webp
new file mode 100644
index 0000000..40702f3
Binary files /dev/null and b/client/.next/cache/images/FU8vzob4V9Ivo+3PvLzLbg3WPCaWJZRn3ZFBvr5UIXE=/60.1766425417474.b8wRerBj5Acm6g-8CExBNkpu7EKgebgz4UMp+93VWR0=.webp differ
diff --git a/client/.next/cache/images/G78FvRcAlRhF1wlWjy4zbhM2kE7gONCbCaz4cc18nwY=/60.1766426314648.MvGmnPOiK36k7SODRQFz4F1w--2I3zHOK3todLnK-1Y=.webp b/client/.next/cache/images/G78FvRcAlRhF1wlWjy4zbhM2kE7gONCbCaz4cc18nwY=/60.1766426314648.MvGmnPOiK36k7SODRQFz4F1w--2I3zHOK3todLnK-1Y=.webp
new file mode 100644
index 0000000..8deb083
Binary files /dev/null and b/client/.next/cache/images/G78FvRcAlRhF1wlWjy4zbhM2kE7gONCbCaz4cc18nwY=/60.1766426314648.MvGmnPOiK36k7SODRQFz4F1w--2I3zHOK3todLnK-1Y=.webp differ
diff --git a/client/.next/cache/images/GKBsgO2soB1b+bpAVulj2sPkOOddBPfaInUe5ejuyfY=/60.1766426020721.FnGE4PYs2Z-Y5qMfjb3h92c07l5bk-e55TxrID4S+uo=.webp b/client/.next/cache/images/GKBsgO2soB1b+bpAVulj2sPkOOddBPfaInUe5ejuyfY=/60.1766426020721.FnGE4PYs2Z-Y5qMfjb3h92c07l5bk-e55TxrID4S+uo=.webp
new file mode 100644
index 0000000..707a7b4
Binary files /dev/null and b/client/.next/cache/images/GKBsgO2soB1b+bpAVulj2sPkOOddBPfaInUe5ejuyfY=/60.1766426020721.FnGE4PYs2Z-Y5qMfjb3h92c07l5bk-e55TxrID4S+uo=.webp differ
diff --git a/client/.next/cache/images/HRCgglaWCahC0El6yOJU0mkAJ4Ld6LAhr9drBSUnU5g=/60.1766425368604.TWCSvREp1w0m9Bf4-fmlK-z0iUKTn1RTE06RfTAvkf0=.webp b/client/.next/cache/images/HRCgglaWCahC0El6yOJU0mkAJ4Ld6LAhr9drBSUnU5g=/60.1766425368604.TWCSvREp1w0m9Bf4-fmlK-z0iUKTn1RTE06RfTAvkf0=.webp
new file mode 100644
index 0000000..155da65
Binary files /dev/null and b/client/.next/cache/images/HRCgglaWCahC0El6yOJU0mkAJ4Ld6LAhr9drBSUnU5g=/60.1766425368604.TWCSvREp1w0m9Bf4-fmlK-z0iUKTn1RTE06RfTAvkf0=.webp differ
diff --git a/client/.next/cache/images/HqcWEMWkrbL-7vGktppl-TUA1E9HtXsgdyRadEGDwBk=/60.1766426035362.euBG7s9KS3jwNQHs+IhwZaj2cxUy1TCYQiymPoEP-9Q=.webp b/client/.next/cache/images/HqcWEMWkrbL-7vGktppl-TUA1E9HtXsgdyRadEGDwBk=/60.1766426035362.euBG7s9KS3jwNQHs+IhwZaj2cxUy1TCYQiymPoEP-9Q=.webp
new file mode 100644
index 0000000..9850da8
Binary files /dev/null and b/client/.next/cache/images/HqcWEMWkrbL-7vGktppl-TUA1E9HtXsgdyRadEGDwBk=/60.1766426035362.euBG7s9KS3jwNQHs+IhwZaj2cxUy1TCYQiymPoEP-9Q=.webp differ
diff --git a/client/.next/cache/images/Jh9Mk-oc6c0ZFPkKyXPDgkCaSJrT3HvWsAsenyUOPII=/60.1766426021387.1IvALzqpUx91kKLOSDzyUeMa6PiNiGPUtPSagKB8-jg=.webp b/client/.next/cache/images/Jh9Mk-oc6c0ZFPkKyXPDgkCaSJrT3HvWsAsenyUOPII=/60.1766426021387.1IvALzqpUx91kKLOSDzyUeMa6PiNiGPUtPSagKB8-jg=.webp
new file mode 100644
index 0000000..767a1a1
Binary files /dev/null and b/client/.next/cache/images/Jh9Mk-oc6c0ZFPkKyXPDgkCaSJrT3HvWsAsenyUOPII=/60.1766426021387.1IvALzqpUx91kKLOSDzyUeMa6PiNiGPUtPSagKB8-jg=.webp differ
diff --git a/client/.next/cache/images/KFm-YuJrvC8HvBW54I+kbZ1-yHkSMFeK3iM9L5KNQzA=/60.1766425389952.8dogsRFankfgrO0zmfpQLJ2rtn5X-hq6KzxQA7ExQ7c=.webp b/client/.next/cache/images/KFm-YuJrvC8HvBW54I+kbZ1-yHkSMFeK3iM9L5KNQzA=/60.1766425389952.8dogsRFankfgrO0zmfpQLJ2rtn5X-hq6KzxQA7ExQ7c=.webp
new file mode 100644
index 0000000..483a325
Binary files /dev/null and b/client/.next/cache/images/KFm-YuJrvC8HvBW54I+kbZ1-yHkSMFeK3iM9L5KNQzA=/60.1766425389952.8dogsRFankfgrO0zmfpQLJ2rtn5X-hq6KzxQA7ExQ7c=.webp differ
diff --git a/client/.next/cache/images/LxP0dphMZ14NbxZ2DvQYrubJRDWvX42bSimfCTPwF2U=/60.1766426021098.FUS+58GN97-YMohlCTD05YCw3QzrMdbSMUigJ06j1PY=.webp b/client/.next/cache/images/LxP0dphMZ14NbxZ2DvQYrubJRDWvX42bSimfCTPwF2U=/60.1766426021098.FUS+58GN97-YMohlCTD05YCw3QzrMdbSMUigJ06j1PY=.webp
new file mode 100644
index 0000000..6648ade
Binary files /dev/null and b/client/.next/cache/images/LxP0dphMZ14NbxZ2DvQYrubJRDWvX42bSimfCTPwF2U=/60.1766426021098.FUS+58GN97-YMohlCTD05YCw3QzrMdbSMUigJ06j1PY=.webp differ
diff --git a/client/.next/cache/images/Lzhzu-fl6h+zafi+x2XdohOIuLwSDi1Ev7I8PX7aegA=/60.1766426344628.loGbVnBdRebPY9rgp9HM0bUVM8bFUBd6l+wyv-b+znE=.webp b/client/.next/cache/images/Lzhzu-fl6h+zafi+x2XdohOIuLwSDi1Ev7I8PX7aegA=/60.1766426344628.loGbVnBdRebPY9rgp9HM0bUVM8bFUBd6l+wyv-b+znE=.webp
new file mode 100644
index 0000000..1ab0b52
Binary files /dev/null and b/client/.next/cache/images/Lzhzu-fl6h+zafi+x2XdohOIuLwSDi1Ev7I8PX7aegA=/60.1766426344628.loGbVnBdRebPY9rgp9HM0bUVM8bFUBd6l+wyv-b+znE=.webp differ
diff --git a/client/.next/cache/images/MTyy581cES1+ojFhGodQHMpxHrzlbPtAjshzRhKVjzI=/60.1766426035454.+eiPYYwfmcFv47hB84xAiI+s9-G2zZfXuyqtUEXs53U=.webp b/client/.next/cache/images/MTyy581cES1+ojFhGodQHMpxHrzlbPtAjshzRhKVjzI=/60.1766426035454.+eiPYYwfmcFv47hB84xAiI+s9-G2zZfXuyqtUEXs53U=.webp
new file mode 100644
index 0000000..7f98da7
Binary files /dev/null and b/client/.next/cache/images/MTyy581cES1+ojFhGodQHMpxHrzlbPtAjshzRhKVjzI=/60.1766426035454.+eiPYYwfmcFv47hB84xAiI+s9-G2zZfXuyqtUEXs53U=.webp differ
diff --git a/client/.next/cache/images/Mrmrc00kss83Q-t1hQCbXdzNVV+DDMuBNEbputz5vVA=/60.1766425368051.FZJqSqTGa5qB-Jv1mOChgVc3s3M6e7mBKPNHV6k16oc=.webp b/client/.next/cache/images/Mrmrc00kss83Q-t1hQCbXdzNVV+DDMuBNEbputz5vVA=/60.1766425368051.FZJqSqTGa5qB-Jv1mOChgVc3s3M6e7mBKPNHV6k16oc=.webp
new file mode 100644
index 0000000..ad4f0aa
Binary files /dev/null and b/client/.next/cache/images/Mrmrc00kss83Q-t1hQCbXdzNVV+DDMuBNEbputz5vVA=/60.1766425368051.FZJqSqTGa5qB-Jv1mOChgVc3s3M6e7mBKPNHV6k16oc=.webp differ
diff --git a/client/.next/cache/images/NLqmv3GEA5ouv0AGPXYcdRhtbZJhclw0spBQBT-6QfM=/60.1766425359909.-5aN3Qa4WWhSIfudoy-IQtMf1eNvaE6ZBYKWm+Ox7Jg=.webp b/client/.next/cache/images/NLqmv3GEA5ouv0AGPXYcdRhtbZJhclw0spBQBT-6QfM=/60.1766425359909.-5aN3Qa4WWhSIfudoy-IQtMf1eNvaE6ZBYKWm+Ox7Jg=.webp
new file mode 100644
index 0000000..99b07b0
Binary files /dev/null and b/client/.next/cache/images/NLqmv3GEA5ouv0AGPXYcdRhtbZJhclw0spBQBT-6QfM=/60.1766425359909.-5aN3Qa4WWhSIfudoy-IQtMf1eNvaE6ZBYKWm+Ox7Jg=.webp differ
diff --git a/client/.next/cache/images/O1TeLjSfNBH7H0b0DIFSH8OpsaGm-ioQXpnf8B9YqD4=/60.1766425368814.mnEnDlPZcZAnMswmh3t0ILVyD3SP90HrpMYlx7hc-io=.webp b/client/.next/cache/images/O1TeLjSfNBH7H0b0DIFSH8OpsaGm-ioQXpnf8B9YqD4=/60.1766425368814.mnEnDlPZcZAnMswmh3t0ILVyD3SP90HrpMYlx7hc-io=.webp
new file mode 100644
index 0000000..070be37
Binary files /dev/null and b/client/.next/cache/images/O1TeLjSfNBH7H0b0DIFSH8OpsaGm-ioQXpnf8B9YqD4=/60.1766425368814.mnEnDlPZcZAnMswmh3t0ILVyD3SP90HrpMYlx7hc-io=.webp differ
diff --git a/client/.next/cache/images/OGRkHNM1UED-PFfWsojGJtSKKJluZD787lL0q3AH-lk=/60.1766426021583.FUS+58GN97-YMohlCTD05YCw3QzrMdbSMUigJ06j1PY=.webp b/client/.next/cache/images/OGRkHNM1UED-PFfWsojGJtSKKJluZD787lL0q3AH-lk=/60.1766426021583.FUS+58GN97-YMohlCTD05YCw3QzrMdbSMUigJ06j1PY=.webp
new file mode 100644
index 0000000..6648ade
Binary files /dev/null and b/client/.next/cache/images/OGRkHNM1UED-PFfWsojGJtSKKJluZD787lL0q3AH-lk=/60.1766426021583.FUS+58GN97-YMohlCTD05YCw3QzrMdbSMUigJ06j1PY=.webp differ
diff --git a/client/.next/cache/images/OzmD9XWL+h15cE88hyYDnKUAZhUEL+ACQAqesqy2V0U=/60.1766425450610.Tna5V93VBS6ao6WCIp8EkfJWE0hQ8ug+5w6eiNUO-q4=.webp b/client/.next/cache/images/OzmD9XWL+h15cE88hyYDnKUAZhUEL+ACQAqesqy2V0U=/60.1766425450610.Tna5V93VBS6ao6WCIp8EkfJWE0hQ8ug+5w6eiNUO-q4=.webp
new file mode 100644
index 0000000..2028ee4
Binary files /dev/null and b/client/.next/cache/images/OzmD9XWL+h15cE88hyYDnKUAZhUEL+ACQAqesqy2V0U=/60.1766425450610.Tna5V93VBS6ao6WCIp8EkfJWE0hQ8ug+5w6eiNUO-q4=.webp differ
diff --git a/client/.next/cache/images/Q6K6v3ONE3pzNs+6UgazOzpSNpB5E0ZJCbbehpu62JM=/60.1766426035710.pY6X9mznWOGU-UsdNwIX4ezsXiXMw+sLHPXBs4Hw-yU=.webp b/client/.next/cache/images/Q6K6v3ONE3pzNs+6UgazOzpSNpB5E0ZJCbbehpu62JM=/60.1766426035710.pY6X9mznWOGU-UsdNwIX4ezsXiXMw+sLHPXBs4Hw-yU=.webp
new file mode 100644
index 0000000..e737396
Binary files /dev/null and b/client/.next/cache/images/Q6K6v3ONE3pzNs+6UgazOzpSNpB5E0ZJCbbehpu62JM=/60.1766426035710.pY6X9mznWOGU-UsdNwIX4ezsXiXMw+sLHPXBs4Hw-yU=.webp differ
diff --git a/client/.next/cache/images/QCdRfDloxXIIyR3i7hZ3GAPxBygUw7zbJmpFHdIg1Rw=/60.1766425450888.Tna5V93VBS6ao6WCIp8EkfJWE0hQ8ug+5w6eiNUO-q4=.webp b/client/.next/cache/images/QCdRfDloxXIIyR3i7hZ3GAPxBygUw7zbJmpFHdIg1Rw=/60.1766425450888.Tna5V93VBS6ao6WCIp8EkfJWE0hQ8ug+5w6eiNUO-q4=.webp
new file mode 100644
index 0000000..2028ee4
Binary files /dev/null and b/client/.next/cache/images/QCdRfDloxXIIyR3i7hZ3GAPxBygUw7zbJmpFHdIg1Rw=/60.1766425450888.Tna5V93VBS6ao6WCIp8EkfJWE0hQ8ug+5w6eiNUO-q4=.webp differ
diff --git a/client/.next/cache/images/QXcPj-5kivz9yAK3Mp-kHs2idxF149E+HboEAn-WC9U=/60.1766425354823.AN216WoWMumxnrnk+f18+rR4CsJdS06L-vvjX8adwu4=.webp b/client/.next/cache/images/QXcPj-5kivz9yAK3Mp-kHs2idxF149E+HboEAn-WC9U=/60.1766425354823.AN216WoWMumxnrnk+f18+rR4CsJdS06L-vvjX8adwu4=.webp
new file mode 100644
index 0000000..ab66806
Binary files /dev/null and b/client/.next/cache/images/QXcPj-5kivz9yAK3Mp-kHs2idxF149E+HboEAn-WC9U=/60.1766425354823.AN216WoWMumxnrnk+f18+rR4CsJdS06L-vvjX8adwu4=.webp differ
diff --git a/client/.next/cache/images/QaKm0bTesE21AVtUnMAs4L4htg3iyvngV99SCpKyKPs=/60.1766426035388.1C4l5bNYROjep3BtdDNbi3s33OyJvZ8IC9h0pxbC5T8=.webp b/client/.next/cache/images/QaKm0bTesE21AVtUnMAs4L4htg3iyvngV99SCpKyKPs=/60.1766426035388.1C4l5bNYROjep3BtdDNbi3s33OyJvZ8IC9h0pxbC5T8=.webp
new file mode 100644
index 0000000..ae68b74
Binary files /dev/null and b/client/.next/cache/images/QaKm0bTesE21AVtUnMAs4L4htg3iyvngV99SCpKyKPs=/60.1766426035388.1C4l5bNYROjep3BtdDNbi3s33OyJvZ8IC9h0pxbC5T8=.webp differ
diff --git a/client/.next/cache/images/QyxXYcF244wUIctwmOyASxD58X5-0y5MAgJQ5YMBC2M=/60.1766425244899.jF-ur-73o-etCsS5WW2AKBgPdQ0y4hzTXdzq-TCyN2U=.webp b/client/.next/cache/images/QyxXYcF244wUIctwmOyASxD58X5-0y5MAgJQ5YMBC2M=/60.1766425244899.jF-ur-73o-etCsS5WW2AKBgPdQ0y4hzTXdzq-TCyN2U=.webp
new file mode 100644
index 0000000..f59c4f2
Binary files /dev/null and b/client/.next/cache/images/QyxXYcF244wUIctwmOyASxD58X5-0y5MAgJQ5YMBC2M=/60.1766425244899.jF-ur-73o-etCsS5WW2AKBgPdQ0y4hzTXdzq-TCyN2U=.webp differ
diff --git a/client/.next/cache/images/R+FALALihEQMaiYnog7LoUhMMRIZVenC2Yet3CeuD+c=/60.1766422442392.lG0OdvtfBL2354qnROyf1i7d5mB5emJyvt0TpBzLfvY=.webp b/client/.next/cache/images/R+FALALihEQMaiYnog7LoUhMMRIZVenC2Yet3CeuD+c=/60.1766422442392.lG0OdvtfBL2354qnROyf1i7d5mB5emJyvt0TpBzLfvY=.webp
new file mode 100644
index 0000000..542454f
Binary files /dev/null and b/client/.next/cache/images/R+FALALihEQMaiYnog7LoUhMMRIZVenC2Yet3CeuD+c=/60.1766422442392.lG0OdvtfBL2354qnROyf1i7d5mB5emJyvt0TpBzLfvY=.webp differ
diff --git a/client/.next/cache/images/RPjh1k1LdxKfYd4qsqyGnXxzVwQ3cnocJKyIOCCJsYE=/60.1766425417083.Tw5n8L7zquAfPdCkkH6b2WMUBi9YXYfOrE8eTbIDOdc=.webp b/client/.next/cache/images/RPjh1k1LdxKfYd4qsqyGnXxzVwQ3cnocJKyIOCCJsYE=/60.1766425417083.Tw5n8L7zquAfPdCkkH6b2WMUBi9YXYfOrE8eTbIDOdc=.webp
new file mode 100644
index 0000000..a85f62b
Binary files /dev/null and b/client/.next/cache/images/RPjh1k1LdxKfYd4qsqyGnXxzVwQ3cnocJKyIOCCJsYE=/60.1766425417083.Tw5n8L7zquAfPdCkkH6b2WMUBi9YXYfOrE8eTbIDOdc=.webp differ
diff --git a/client/.next/cache/images/S+2m0lIRp9SfDzY3y-mOQMIs+tTsd6TDRfxMVSOZTpU=/60.1766426262308.L-cJ0Rw-nwic91LowxjcFHjPyZcPsdvjVsm5B4Je1JQ=.webp b/client/.next/cache/images/S+2m0lIRp9SfDzY3y-mOQMIs+tTsd6TDRfxMVSOZTpU=/60.1766426262308.L-cJ0Rw-nwic91LowxjcFHjPyZcPsdvjVsm5B4Je1JQ=.webp
new file mode 100644
index 0000000..dce46de
Binary files /dev/null and b/client/.next/cache/images/S+2m0lIRp9SfDzY3y-mOQMIs+tTsd6TDRfxMVSOZTpU=/60.1766426262308.L-cJ0Rw-nwic91LowxjcFHjPyZcPsdvjVsm5B4Je1JQ=.webp differ
diff --git a/client/.next/cache/images/S9mCRxsxCUIPpcFfNupZgyeycSaj6SU317yY1rN9tlM=/60.1766425450718.GDBTYhs6YK6ymt9WjnRrpDupIvDBc1trBxriwRSS2x4=.webp b/client/.next/cache/images/S9mCRxsxCUIPpcFfNupZgyeycSaj6SU317yY1rN9tlM=/60.1766425450718.GDBTYhs6YK6ymt9WjnRrpDupIvDBc1trBxriwRSS2x4=.webp
new file mode 100644
index 0000000..53561d1
Binary files /dev/null and b/client/.next/cache/images/S9mCRxsxCUIPpcFfNupZgyeycSaj6SU317yY1rN9tlM=/60.1766425450718.GDBTYhs6YK6ymt9WjnRrpDupIvDBc1trBxriwRSS2x4=.webp differ
diff --git a/client/.next/cache/images/SU4A+ceM1xZ05UZpsdmdj3SnxnHaCjqDAhXHlIlwfY8=/60.1766425359921.zGYQlnMNxvrCPZHig3pviGCYK5J8504ZS19OH6gZmuc=.webp b/client/.next/cache/images/SU4A+ceM1xZ05UZpsdmdj3SnxnHaCjqDAhXHlIlwfY8=/60.1766425359921.zGYQlnMNxvrCPZHig3pviGCYK5J8504ZS19OH6gZmuc=.webp
new file mode 100644
index 0000000..d86ebed
Binary files /dev/null and b/client/.next/cache/images/SU4A+ceM1xZ05UZpsdmdj3SnxnHaCjqDAhXHlIlwfY8=/60.1766425359921.zGYQlnMNxvrCPZHig3pviGCYK5J8504ZS19OH6gZmuc=.webp differ
diff --git a/client/.next/cache/images/SVl1Lp0IdodJHm8VEQdnuMVzcrPcNGpKkZcwod0p-5A=/60.1766426021994.EzGznMgWp8XJUSXH5o7oAVW9pNNgTLjWhVfTt94LZkY=.webp b/client/.next/cache/images/SVl1Lp0IdodJHm8VEQdnuMVzcrPcNGpKkZcwod0p-5A=/60.1766426021994.EzGznMgWp8XJUSXH5o7oAVW9pNNgTLjWhVfTt94LZkY=.webp
new file mode 100644
index 0000000..b80b506
Binary files /dev/null and b/client/.next/cache/images/SVl1Lp0IdodJHm8VEQdnuMVzcrPcNGpKkZcwod0p-5A=/60.1766426021994.EzGznMgWp8XJUSXH5o7oAVW9pNNgTLjWhVfTt94LZkY=.webp differ
diff --git a/client/.next/cache/images/Ta4JYmGZh06DCn7FfbcO22K+MdORPv9wQ7cuijNcFiw=/60.1766425340950.I8NItMll5HSqhiObSYB95WCqlla1VLWWi-FDyS2Lg20=.webp b/client/.next/cache/images/Ta4JYmGZh06DCn7FfbcO22K+MdORPv9wQ7cuijNcFiw=/60.1766425340950.I8NItMll5HSqhiObSYB95WCqlla1VLWWi-FDyS2Lg20=.webp
new file mode 100644
index 0000000..a88b878
Binary files /dev/null and b/client/.next/cache/images/Ta4JYmGZh06DCn7FfbcO22K+MdORPv9wQ7cuijNcFiw=/60.1766425340950.I8NItMll5HSqhiObSYB95WCqlla1VLWWi-FDyS2Lg20=.webp differ
diff --git a/client/.next/cache/images/TquGK5k6vAEVRe8vDs2N3ShIDHCSHSgKK32e2g5UuYs=/60.1766426022128.cJ9KmQLN8aeoMlo-DqrDcEmVb7fCK81bUd8s39wapMc=.webp b/client/.next/cache/images/TquGK5k6vAEVRe8vDs2N3ShIDHCSHSgKK32e2g5UuYs=/60.1766426022128.cJ9KmQLN8aeoMlo-DqrDcEmVb7fCK81bUd8s39wapMc=.webp
new file mode 100644
index 0000000..adf36b8
Binary files /dev/null and b/client/.next/cache/images/TquGK5k6vAEVRe8vDs2N3ShIDHCSHSgKK32e2g5UuYs=/60.1766426022128.cJ9KmQLN8aeoMlo-DqrDcEmVb7fCK81bUd8s39wapMc=.webp differ
diff --git a/client/.next/cache/images/TsEOjdCGVQ7JNBN03m4iSX6qM9I2LszjbFg+UPJlkvU=/60.1766422076813.f3asQGMRdD1-AZ+3YSF3Wn32tat3u+ahLBYDB+ZC-BI=.webp b/client/.next/cache/images/TsEOjdCGVQ7JNBN03m4iSX6qM9I2LszjbFg+UPJlkvU=/60.1766422076813.f3asQGMRdD1-AZ+3YSF3Wn32tat3u+ahLBYDB+ZC-BI=.webp
new file mode 100644
index 0000000..96b0b22
Binary files /dev/null and b/client/.next/cache/images/TsEOjdCGVQ7JNBN03m4iSX6qM9I2LszjbFg+UPJlkvU=/60.1766422076813.f3asQGMRdD1-AZ+3YSF3Wn32tat3u+ahLBYDB+ZC-BI=.webp differ
diff --git a/client/.next/cache/images/VAjyH1W23IvNLBPYDAM5CCu1CTYe0LQUXKNKPHLIuoY=/60.1766422120381.Pm7WyjUX7x2C2Lv8+7RetOAds8O+z21ztLj2lvL0Pek=.webp b/client/.next/cache/images/VAjyH1W23IvNLBPYDAM5CCu1CTYe0LQUXKNKPHLIuoY=/60.1766422120381.Pm7WyjUX7x2C2Lv8+7RetOAds8O+z21ztLj2lvL0Pek=.webp
new file mode 100644
index 0000000..d64a3ed
Binary files /dev/null and b/client/.next/cache/images/VAjyH1W23IvNLBPYDAM5CCu1CTYe0LQUXKNKPHLIuoY=/60.1766422120381.Pm7WyjUX7x2C2Lv8+7RetOAds8O+z21ztLj2lvL0Pek=.webp differ
diff --git a/client/.next/cache/images/ViMaAZESt-eq1-Ksf98cOdA3fZL6G2bok-09BfRl4e4=/60.1766426021244.wVPTx6zLXRWpMk7RXUxe-5reqZXMjMO+nff-A9nd70w=.webp b/client/.next/cache/images/ViMaAZESt-eq1-Ksf98cOdA3fZL6G2bok-09BfRl4e4=/60.1766426021244.wVPTx6zLXRWpMk7RXUxe-5reqZXMjMO+nff-A9nd70w=.webp
new file mode 100644
index 0000000..8afda73
Binary files /dev/null and b/client/.next/cache/images/ViMaAZESt-eq1-Ksf98cOdA3fZL6G2bok-09BfRl4e4=/60.1766426021244.wVPTx6zLXRWpMk7RXUxe-5reqZXMjMO+nff-A9nd70w=.webp differ
diff --git a/client/.next/cache/images/W8uDMTcEURmjlOCzq3-rYWMUmctNiDZidcC968iEXFc=/60.1766425437959.zGYQlnMNxvrCPZHig3pviGCYK5J8504ZS19OH6gZmuc=.webp b/client/.next/cache/images/W8uDMTcEURmjlOCzq3-rYWMUmctNiDZidcC968iEXFc=/60.1766425437959.zGYQlnMNxvrCPZHig3pviGCYK5J8504ZS19OH6gZmuc=.webp
new file mode 100644
index 0000000..d86ebed
Binary files /dev/null and b/client/.next/cache/images/W8uDMTcEURmjlOCzq3-rYWMUmctNiDZidcC968iEXFc=/60.1766425437959.zGYQlnMNxvrCPZHig3pviGCYK5J8504ZS19OH6gZmuc=.webp differ
diff --git a/client/.next/cache/images/WAyQu-YtVem7mMVDKttbga19AK-QMvDpL-W0il++08E=/60.1766425389788.-5aN3Qa4WWhSIfudoy-IQtMf1eNvaE6ZBYKWm+Ox7Jg=.webp b/client/.next/cache/images/WAyQu-YtVem7mMVDKttbga19AK-QMvDpL-W0il++08E=/60.1766425389788.-5aN3Qa4WWhSIfudoy-IQtMf1eNvaE6ZBYKWm+Ox7Jg=.webp
new file mode 100644
index 0000000..99b07b0
Binary files /dev/null and b/client/.next/cache/images/WAyQu-YtVem7mMVDKttbga19AK-QMvDpL-W0il++08E=/60.1766425389788.-5aN3Qa4WWhSIfudoy-IQtMf1eNvaE6ZBYKWm+Ox7Jg=.webp differ
diff --git a/client/.next/cache/images/Xd40YRxhIABadOb0Bij03rEN+9YoFnlIaMl73lrA8rM=/60.1766426035807.uD7O5GJAoixYrIhqKY6KBDj8Qh4t+Evypmn-1vEZrDg=.webp b/client/.next/cache/images/Xd40YRxhIABadOb0Bij03rEN+9YoFnlIaMl73lrA8rM=/60.1766426035807.uD7O5GJAoixYrIhqKY6KBDj8Qh4t+Evypmn-1vEZrDg=.webp
new file mode 100644
index 0000000..705f223
Binary files /dev/null and b/client/.next/cache/images/Xd40YRxhIABadOb0Bij03rEN+9YoFnlIaMl73lrA8rM=/60.1766426035807.uD7O5GJAoixYrIhqKY6KBDj8Qh4t+Evypmn-1vEZrDg=.webp differ
diff --git a/client/.next/cache/images/Xh5ZkeFuN5Bz08qdVbair6FVopfrBYuSaIU5f4kRhRk=/60.1766425444642.uRzawukA0NJDXaYPlcEEyxy7WFxiQbyvO2JGAq9v1hA=.webp b/client/.next/cache/images/Xh5ZkeFuN5Bz08qdVbair6FVopfrBYuSaIU5f4kRhRk=/60.1766425444642.uRzawukA0NJDXaYPlcEEyxy7WFxiQbyvO2JGAq9v1hA=.webp
new file mode 100644
index 0000000..7bcfd19
Binary files /dev/null and b/client/.next/cache/images/Xh5ZkeFuN5Bz08qdVbair6FVopfrBYuSaIU5f4kRhRk=/60.1766425444642.uRzawukA0NJDXaYPlcEEyxy7WFxiQbyvO2JGAq9v1hA=.webp differ
diff --git a/client/.next/cache/images/YhzOa8Lv+92RMuosVSY2alt1369CgGT0p9M2tIc-3zY=/60.1766425385113.BNq7zgjHzfjIve3DPLs5yBFqLeMchJX9WHPgg+LwePI=.webp b/client/.next/cache/images/YhzOa8Lv+92RMuosVSY2alt1369CgGT0p9M2tIc-3zY=/60.1766425385113.BNq7zgjHzfjIve3DPLs5yBFqLeMchJX9WHPgg+LwePI=.webp
new file mode 100644
index 0000000..0f58076
Binary files /dev/null and b/client/.next/cache/images/YhzOa8Lv+92RMuosVSY2alt1369CgGT0p9M2tIc-3zY=/60.1766425385113.BNq7zgjHzfjIve3DPLs5yBFqLeMchJX9WHPgg+LwePI=.webp differ
diff --git a/client/.next/cache/images/b9uvS7Ll9Qh52vdMxkhZP-CZzGl-eWXDAS7COwiZo7A=/60.1766426313791.MvGmnPOiK36k7SODRQFz4F1w--2I3zHOK3todLnK-1Y=.webp b/client/.next/cache/images/b9uvS7Ll9Qh52vdMxkhZP-CZzGl-eWXDAS7COwiZo7A=/60.1766426313791.MvGmnPOiK36k7SODRQFz4F1w--2I3zHOK3todLnK-1Y=.webp
new file mode 100644
index 0000000..8deb083
Binary files /dev/null and b/client/.next/cache/images/b9uvS7Ll9Qh52vdMxkhZP-CZzGl-eWXDAS7COwiZo7A=/60.1766426313791.MvGmnPOiK36k7SODRQFz4F1w--2I3zHOK3todLnK-1Y=.webp differ
diff --git a/client/.next/cache/images/bH9azZsg9pWWUh+tbqVBxIoY06RTJ5rDNl4Y7ttdRhM=/60.1766422450972.CF6E94Ijy69f49+6ol0UMUyuwezplpvQCcEM9fNO9vQ=.webp b/client/.next/cache/images/bH9azZsg9pWWUh+tbqVBxIoY06RTJ5rDNl4Y7ttdRhM=/60.1766422450972.CF6E94Ijy69f49+6ol0UMUyuwezplpvQCcEM9fNO9vQ=.webp
new file mode 100644
index 0000000..5e4bf87
Binary files /dev/null and b/client/.next/cache/images/bH9azZsg9pWWUh+tbqVBxIoY06RTJ5rDNl4Y7ttdRhM=/60.1766422450972.CF6E94Ijy69f49+6ol0UMUyuwezplpvQCcEM9fNO9vQ=.webp differ
diff --git a/client/.next/cache/images/bOPpmI+eoFWMwETuWANReZyLm++1HdLUCKy-3TOlhnQ=/60.1766425393117.DEc2qNJN+ei5RCwIPrGFxeyR92loPC--d0uLk1fz234=.webp b/client/.next/cache/images/bOPpmI+eoFWMwETuWANReZyLm++1HdLUCKy-3TOlhnQ=/60.1766425393117.DEc2qNJN+ei5RCwIPrGFxeyR92loPC--d0uLk1fz234=.webp
new file mode 100644
index 0000000..84fd0ae
Binary files /dev/null and b/client/.next/cache/images/bOPpmI+eoFWMwETuWANReZyLm++1HdLUCKy-3TOlhnQ=/60.1766425393117.DEc2qNJN+ei5RCwIPrGFxeyR92loPC--d0uLk1fz234=.webp differ
diff --git a/client/.next/cache/images/bili8jyWD79D05R2irrO+Ea1f7rvMmbTmo81HgMGMrU=/60.1766422442258.fsHB-uQsTiEZM1oAQFp0sJIo39fDS9Mj8f6HUdLwb0I=.webp b/client/.next/cache/images/bili8jyWD79D05R2irrO+Ea1f7rvMmbTmo81HgMGMrU=/60.1766422442258.fsHB-uQsTiEZM1oAQFp0sJIo39fDS9Mj8f6HUdLwb0I=.webp
new file mode 100644
index 0000000..b0d6d2b
Binary files /dev/null and b/client/.next/cache/images/bili8jyWD79D05R2irrO+Ea1f7rvMmbTmo81HgMGMrU=/60.1766422442258.fsHB-uQsTiEZM1oAQFp0sJIo39fDS9Mj8f6HUdLwb0I=.webp differ
diff --git a/client/.next/cache/images/cIZQITXGvcI10pHUbyJppxEoiUh3Hg87toFdRP0EJgc=/60.1766425393325.mnEnDlPZcZAnMswmh3t0ILVyD3SP90HrpMYlx7hc-io=.webp b/client/.next/cache/images/cIZQITXGvcI10pHUbyJppxEoiUh3Hg87toFdRP0EJgc=/60.1766425393325.mnEnDlPZcZAnMswmh3t0ILVyD3SP90HrpMYlx7hc-io=.webp
new file mode 100644
index 0000000..070be37
Binary files /dev/null and b/client/.next/cache/images/cIZQITXGvcI10pHUbyJppxEoiUh3Hg87toFdRP0EJgc=/60.1766425393325.mnEnDlPZcZAnMswmh3t0ILVyD3SP90HrpMYlx7hc-io=.webp differ
diff --git a/client/.next/cache/images/cbsF22QLLjO+D+F0b7tcb9XGUKO10xHORd+4F1ReCWo=/60.1766426020880.nZaSjLWo6HwQ10dJF0tCgqQxLMWBgqJA4iWaUYHNDFE=.webp b/client/.next/cache/images/cbsF22QLLjO+D+F0b7tcb9XGUKO10xHORd+4F1ReCWo=/60.1766426020880.nZaSjLWo6HwQ10dJF0tCgqQxLMWBgqJA4iWaUYHNDFE=.webp
new file mode 100644
index 0000000..d34ba1d
Binary files /dev/null and b/client/.next/cache/images/cbsF22QLLjO+D+F0b7tcb9XGUKO10xHORd+4F1ReCWo=/60.1766426020880.nZaSjLWo6HwQ10dJF0tCgqQxLMWBgqJA4iWaUYHNDFE=.webp differ
diff --git a/client/.next/cache/images/eyULIwWRckSzEnXIFiBVOTNDhek8-lYlxOfJHtSCOUU=/60.1766425368351.Gs7sjjrxdStrTzQoyJlemZaGF8yPLLeFqJdBHTJ9RFU=.webp b/client/.next/cache/images/eyULIwWRckSzEnXIFiBVOTNDhek8-lYlxOfJHtSCOUU=/60.1766425368351.Gs7sjjrxdStrTzQoyJlemZaGF8yPLLeFqJdBHTJ9RFU=.webp
new file mode 100644
index 0000000..a703638
Binary files /dev/null and b/client/.next/cache/images/eyULIwWRckSzEnXIFiBVOTNDhek8-lYlxOfJHtSCOUU=/60.1766425368351.Gs7sjjrxdStrTzQoyJlemZaGF8yPLLeFqJdBHTJ9RFU=.webp differ
diff --git a/client/.next/cache/images/f-WjQGQBKGWH5GOd+RTIb5yaLKdPuk7rYwZRZ82J-9A=/60.1766422450900.CF6E94Ijy69f49+6ol0UMUyuwezplpvQCcEM9fNO9vQ=.webp b/client/.next/cache/images/f-WjQGQBKGWH5GOd+RTIb5yaLKdPuk7rYwZRZ82J-9A=/60.1766422450900.CF6E94Ijy69f49+6ol0UMUyuwezplpvQCcEM9fNO9vQ=.webp
new file mode 100644
index 0000000..5e4bf87
Binary files /dev/null and b/client/.next/cache/images/f-WjQGQBKGWH5GOd+RTIb5yaLKdPuk7rYwZRZ82J-9A=/60.1766422450900.CF6E94Ijy69f49+6ol0UMUyuwezplpvQCcEM9fNO9vQ=.webp differ
diff --git a/client/.next/cache/images/f0ycMCTYMrOeOfQE047huN4OmbWRBb-xjsk+nj8ZIjM=/60.1766425444743.-V7bTfoVdC3ASuF0twpFrPpGfm0qhlO8NJzWmdnlmxA=.webp b/client/.next/cache/images/f0ycMCTYMrOeOfQE047huN4OmbWRBb-xjsk+nj8ZIjM=/60.1766425444743.-V7bTfoVdC3ASuF0twpFrPpGfm0qhlO8NJzWmdnlmxA=.webp
new file mode 100644
index 0000000..4b3aceb
Binary files /dev/null and b/client/.next/cache/images/f0ycMCTYMrOeOfQE047huN4OmbWRBb-xjsk+nj8ZIjM=/60.1766425444743.-V7bTfoVdC3ASuF0twpFrPpGfm0qhlO8NJzWmdnlmxA=.webp differ
diff --git a/client/.next/cache/images/fDa4GOclqp8ZufhhePZRTmKPkqZjE6lJCHz31+WDwOc=/60.1766426022256.Ciut8Prfv1XiRW6TNlDpR4DPu0blZhoQXPbZ-1E8ehE=.webp b/client/.next/cache/images/fDa4GOclqp8ZufhhePZRTmKPkqZjE6lJCHz31+WDwOc=/60.1766426022256.Ciut8Prfv1XiRW6TNlDpR4DPu0blZhoQXPbZ-1E8ehE=.webp
new file mode 100644
index 0000000..0b32982
Binary files /dev/null and b/client/.next/cache/images/fDa4GOclqp8ZufhhePZRTmKPkqZjE6lJCHz31+WDwOc=/60.1766426022256.Ciut8Prfv1XiRW6TNlDpR4DPu0blZhoQXPbZ-1E8ehE=.webp differ
diff --git a/client/.next/cache/images/flPoPTqkS6HX+FNOKbW-hSCsQtUoYLQfzRZW+6Hhb+o=/60.1766425384848.MWIrmER-YRfvQLHqbmnEL3B2oayqPHP7DKzyAl+l6oA=.webp b/client/.next/cache/images/flPoPTqkS6HX+FNOKbW-hSCsQtUoYLQfzRZW+6Hhb+o=/60.1766425384848.MWIrmER-YRfvQLHqbmnEL3B2oayqPHP7DKzyAl+l6oA=.webp
new file mode 100644
index 0000000..70a5855
Binary files /dev/null and b/client/.next/cache/images/flPoPTqkS6HX+FNOKbW-hSCsQtUoYLQfzRZW+6Hhb+o=/60.1766425384848.MWIrmER-YRfvQLHqbmnEL3B2oayqPHP7DKzyAl+l6oA=.webp differ
diff --git a/client/.next/cache/images/h69ctv0r3zdnjHvvbtmb6pk6mYzF6k0iK88tLyzjVjQ=/60.1766425341935.5DJKOHzjxAQpDXZxfsoVDiTQJUppqBLVgcTI9CERfRw=.webp b/client/.next/cache/images/h69ctv0r3zdnjHvvbtmb6pk6mYzF6k0iK88tLyzjVjQ=/60.1766425341935.5DJKOHzjxAQpDXZxfsoVDiTQJUppqBLVgcTI9CERfRw=.webp
new file mode 100644
index 0000000..f2bc56c
Binary files /dev/null and b/client/.next/cache/images/h69ctv0r3zdnjHvvbtmb6pk6mYzF6k0iK88tLyzjVjQ=/60.1766425341935.5DJKOHzjxAQpDXZxfsoVDiTQJUppqBLVgcTI9CERfRw=.webp differ
diff --git a/client/.next/cache/images/hR-PCppFrkMV9FXGwIGBgE++CbaAqyU4Qt5r9qv0Lls=/60.1766425283385.TWCSvREp1w0m9Bf4-fmlK-z0iUKTn1RTE06RfTAvkf0=.webp b/client/.next/cache/images/hR-PCppFrkMV9FXGwIGBgE++CbaAqyU4Qt5r9qv0Lls=/60.1766425283385.TWCSvREp1w0m9Bf4-fmlK-z0iUKTn1RTE06RfTAvkf0=.webp
new file mode 100644
index 0000000..155da65
Binary files /dev/null and b/client/.next/cache/images/hR-PCppFrkMV9FXGwIGBgE++CbaAqyU4Qt5r9qv0Lls=/60.1766425283385.TWCSvREp1w0m9Bf4-fmlK-z0iUKTn1RTE06RfTAvkf0=.webp differ
diff --git a/client/.next/cache/images/hf7wrykwG+UW78vlHO0Rz4NqsdQh-Jt6kSpvvO6xAJ8=/60.1766426035446.pY6X9mznWOGU-UsdNwIX4ezsXiXMw+sLHPXBs4Hw-yU=.webp b/client/.next/cache/images/hf7wrykwG+UW78vlHO0Rz4NqsdQh-Jt6kSpvvO6xAJ8=/60.1766426035446.pY6X9mznWOGU-UsdNwIX4ezsXiXMw+sLHPXBs4Hw-yU=.webp
new file mode 100644
index 0000000..e737396
Binary files /dev/null and b/client/.next/cache/images/hf7wrykwG+UW78vlHO0Rz4NqsdQh-Jt6kSpvvO6xAJ8=/60.1766426035446.pY6X9mznWOGU-UsdNwIX4ezsXiXMw+sLHPXBs4Hw-yU=.webp differ
diff --git a/client/.next/cache/images/huDDQiuqpVDN0T65SV1cShxjnr6corOzHV6fE7809Xk=/60.1766426036034.qj-tQMTUcXu1dE5FNFo67t4WfOof16QK67i9MR-tmzg=.webp b/client/.next/cache/images/huDDQiuqpVDN0T65SV1cShxjnr6corOzHV6fE7809Xk=/60.1766426036034.qj-tQMTUcXu1dE5FNFo67t4WfOof16QK67i9MR-tmzg=.webp
new file mode 100644
index 0000000..3eba3e6
Binary files /dev/null and b/client/.next/cache/images/huDDQiuqpVDN0T65SV1cShxjnr6corOzHV6fE7809Xk=/60.1766426036034.qj-tQMTUcXu1dE5FNFo67t4WfOof16QK67i9MR-tmzg=.webp differ
diff --git a/client/.next/cache/images/iPexMzssD+JkZB4YNuSVNQMhxWUgporhHW7JRtSSTig=/60.1766420086316.MvGmnPOiK36k7SODRQFz4F1w--2I3zHOK3todLnK-1Y=.webp b/client/.next/cache/images/iPexMzssD+JkZB4YNuSVNQMhxWUgporhHW7JRtSSTig=/60.1766420086316.MvGmnPOiK36k7SODRQFz4F1w--2I3zHOK3todLnK-1Y=.webp
new file mode 100644
index 0000000..8deb083
Binary files /dev/null and b/client/.next/cache/images/iPexMzssD+JkZB4YNuSVNQMhxWUgporhHW7JRtSSTig=/60.1766420086316.MvGmnPOiK36k7SODRQFz4F1w--2I3zHOK3todLnK-1Y=.webp differ
diff --git a/client/.next/cache/images/iaqlFA2FRYilfN5hTQ2eUxdm0oB3xramQ-UR+qM0z04=/60.1766426035703.1C4l5bNYROjep3BtdDNbi3s33OyJvZ8IC9h0pxbC5T8=.webp b/client/.next/cache/images/iaqlFA2FRYilfN5hTQ2eUxdm0oB3xramQ-UR+qM0z04=/60.1766426035703.1C4l5bNYROjep3BtdDNbi3s33OyJvZ8IC9h0pxbC5T8=.webp
new file mode 100644
index 0000000..ae68b74
Binary files /dev/null and b/client/.next/cache/images/iaqlFA2FRYilfN5hTQ2eUxdm0oB3xramQ-UR+qM0z04=/60.1766426035703.1C4l5bNYROjep3BtdDNbi3s33OyJvZ8IC9h0pxbC5T8=.webp differ
diff --git a/client/.next/cache/images/kAA9dYhUJUI1QcUHuhsMJGqzo6kEMxhDH5XgGl3pih0=/60.1766425405668.UpLwvMRTWuOHb9pd5Z1t2TCzje+zYONI9pvYvUIsDCs=.webp b/client/.next/cache/images/kAA9dYhUJUI1QcUHuhsMJGqzo6kEMxhDH5XgGl3pih0=/60.1766425405668.UpLwvMRTWuOHb9pd5Z1t2TCzje+zYONI9pvYvUIsDCs=.webp
new file mode 100644
index 0000000..3da5096
Binary files /dev/null and b/client/.next/cache/images/kAA9dYhUJUI1QcUHuhsMJGqzo6kEMxhDH5XgGl3pih0=/60.1766425405668.UpLwvMRTWuOHb9pd5Z1t2TCzje+zYONI9pvYvUIsDCs=.webp differ
diff --git a/client/.next/cache/images/kn-471ew3qG+iCmiU710ixaXZJWJa7oDivV73Kp1DCM=/60.1766426374388.65u8ms2Wcbs4XY8mxnt6rvkoc8EyNW8klP82-aXwigw=.webp b/client/.next/cache/images/kn-471ew3qG+iCmiU710ixaXZJWJa7oDivV73Kp1DCM=/60.1766426374388.65u8ms2Wcbs4XY8mxnt6rvkoc8EyNW8klP82-aXwigw=.webp
new file mode 100644
index 0000000..9acbddb
Binary files /dev/null and b/client/.next/cache/images/kn-471ew3qG+iCmiU710ixaXZJWJa7oDivV73Kp1DCM=/60.1766426374388.65u8ms2Wcbs4XY8mxnt6rvkoc8EyNW8klP82-aXwigw=.webp differ
diff --git a/client/.next/cache/images/krD-qHIUrqu4Eo64A8x0PsDjGAYRLQEJM19VzslSjw4=/60.1766425368425.eErSb7LyKcMU5uS4Ka-337ryeurFdQHFb+kgItkDaOc=.webp b/client/.next/cache/images/krD-qHIUrqu4Eo64A8x0PsDjGAYRLQEJM19VzslSjw4=/60.1766425368425.eErSb7LyKcMU5uS4Ka-337ryeurFdQHFb+kgItkDaOc=.webp
new file mode 100644
index 0000000..fef0703
Binary files /dev/null and b/client/.next/cache/images/krD-qHIUrqu4Eo64A8x0PsDjGAYRLQEJM19VzslSjw4=/60.1766425368425.eErSb7LyKcMU5uS4Ka-337ryeurFdQHFb+kgItkDaOc=.webp differ
diff --git a/client/.next/cache/images/m1Qc0ugH9mULxcpxTSGFp+7Mv4em9hnKKHUs6YcloXo=/60.1766426035367.+eiPYYwfmcFv47hB84xAiI+s9-G2zZfXuyqtUEXs53U=.webp b/client/.next/cache/images/m1Qc0ugH9mULxcpxTSGFp+7Mv4em9hnKKHUs6YcloXo=/60.1766426035367.+eiPYYwfmcFv47hB84xAiI+s9-G2zZfXuyqtUEXs53U=.webp
new file mode 100644
index 0000000..7f98da7
Binary files /dev/null and b/client/.next/cache/images/m1Qc0ugH9mULxcpxTSGFp+7Mv4em9hnKKHUs6YcloXo=/60.1766426035367.+eiPYYwfmcFv47hB84xAiI+s9-G2zZfXuyqtUEXs53U=.webp differ
diff --git a/client/.next/cache/images/mWx9wphEPWJYou1WxwPxhpP2-OGHMOK5RUu9GA0Am+s=/60.1766425389643.-5aN3Qa4WWhSIfudoy-IQtMf1eNvaE6ZBYKWm+Ox7Jg=.webp b/client/.next/cache/images/mWx9wphEPWJYou1WxwPxhpP2-OGHMOK5RUu9GA0Am+s=/60.1766425389643.-5aN3Qa4WWhSIfudoy-IQtMf1eNvaE6ZBYKWm+Ox7Jg=.webp
new file mode 100644
index 0000000..99b07b0
Binary files /dev/null and b/client/.next/cache/images/mWx9wphEPWJYou1WxwPxhpP2-OGHMOK5RUu9GA0Am+s=/60.1766425389643.-5aN3Qa4WWhSIfudoy-IQtMf1eNvaE6ZBYKWm+Ox7Jg=.webp differ
diff --git a/client/.next/cache/images/mZlCbQd7VTPHRSwf7PM2MG624Mn8wr+H1q-SwTSEd-E=/60.1766426035430.euBG7s9KS3jwNQHs+IhwZaj2cxUy1TCYQiymPoEP-9Q=.webp b/client/.next/cache/images/mZlCbQd7VTPHRSwf7PM2MG624Mn8wr+H1q-SwTSEd-E=/60.1766426035430.euBG7s9KS3jwNQHs+IhwZaj2cxUy1TCYQiymPoEP-9Q=.webp
new file mode 100644
index 0000000..9850da8
Binary files /dev/null and b/client/.next/cache/images/mZlCbQd7VTPHRSwf7PM2MG624Mn8wr+H1q-SwTSEd-E=/60.1766426035430.euBG7s9KS3jwNQHs+IhwZaj2cxUy1TCYQiymPoEP-9Q=.webp differ
diff --git a/client/.next/cache/images/mh1yPsW5HynaCWApcJXK5saGq5NFA109ZfnUdphi268=/60.1766421724494.f3asQGMRdD1-AZ+3YSF3Wn32tat3u+ahLBYDB+ZC-BI=.webp b/client/.next/cache/images/mh1yPsW5HynaCWApcJXK5saGq5NFA109ZfnUdphi268=/60.1766421724494.f3asQGMRdD1-AZ+3YSF3Wn32tat3u+ahLBYDB+ZC-BI=.webp
new file mode 100644
index 0000000..96b0b22
Binary files /dev/null and b/client/.next/cache/images/mh1yPsW5HynaCWApcJXK5saGq5NFA109ZfnUdphi268=/60.1766421724494.f3asQGMRdD1-AZ+3YSF3Wn32tat3u+ahLBYDB+ZC-BI=.webp differ
diff --git a/client/.next/cache/images/msZdNW1juYAeUyDgG71amID048Qp-WYL7wu9tBTRcBw=/60.1766420980617.CsqRR6owxrTIBj1XmQ7fVzsBzT4TR++cYZeNaETHMLg=.webp b/client/.next/cache/images/msZdNW1juYAeUyDgG71amID048Qp-WYL7wu9tBTRcBw=/60.1766420980617.CsqRR6owxrTIBj1XmQ7fVzsBzT4TR++cYZeNaETHMLg=.webp
new file mode 100644
index 0000000..fd62f2d
Binary files /dev/null and b/client/.next/cache/images/msZdNW1juYAeUyDgG71amID048Qp-WYL7wu9tBTRcBw=/60.1766420980617.CsqRR6owxrTIBj1XmQ7fVzsBzT4TR++cYZeNaETHMLg=.webp differ
diff --git a/client/.next/cache/images/nkP2Y2zdfS+u8Jc2hXpnLYNJWCtlo2qvJzXxjyMcW5s=/60.1766425311660.D++5mV3y1IKgfofXwwoVb9ZSl5qEpxIHJ3EuZ0srlsU=.webp b/client/.next/cache/images/nkP2Y2zdfS+u8Jc2hXpnLYNJWCtlo2qvJzXxjyMcW5s=/60.1766425311660.D++5mV3y1IKgfofXwwoVb9ZSl5qEpxIHJ3EuZ0srlsU=.webp
new file mode 100644
index 0000000..14fcb60
Binary files /dev/null and b/client/.next/cache/images/nkP2Y2zdfS+u8Jc2hXpnLYNJWCtlo2qvJzXxjyMcW5s=/60.1766425311660.D++5mV3y1IKgfofXwwoVb9ZSl5qEpxIHJ3EuZ0srlsU=.webp differ
diff --git a/client/.next/cache/images/oZgnz3lHmN6eGC-t1HL1d0ZSWt2yqtb1Mm3Gs9grBLQ=/60.1766426035816.+eiPYYwfmcFv47hB84xAiI+s9-G2zZfXuyqtUEXs53U=.webp b/client/.next/cache/images/oZgnz3lHmN6eGC-t1HL1d0ZSWt2yqtb1Mm3Gs9grBLQ=/60.1766426035816.+eiPYYwfmcFv47hB84xAiI+s9-G2zZfXuyqtUEXs53U=.webp
new file mode 100644
index 0000000..7f98da7
Binary files /dev/null and b/client/.next/cache/images/oZgnz3lHmN6eGC-t1HL1d0ZSWt2yqtb1Mm3Gs9grBLQ=/60.1766426035816.+eiPYYwfmcFv47hB84xAiI+s9-G2zZfXuyqtUEXs53U=.webp differ
diff --git a/client/.next/cache/images/ow4X7Lb1LDibXP6D6wyOtpbCzxAP1U0AzTz02RF6eVc=/60.1766422450818.CF6E94Ijy69f49+6ol0UMUyuwezplpvQCcEM9fNO9vQ=.webp b/client/.next/cache/images/ow4X7Lb1LDibXP6D6wyOtpbCzxAP1U0AzTz02RF6eVc=/60.1766422450818.CF6E94Ijy69f49+6ol0UMUyuwezplpvQCcEM9fNO9vQ=.webp
new file mode 100644
index 0000000..5e4bf87
Binary files /dev/null and b/client/.next/cache/images/ow4X7Lb1LDibXP6D6wyOtpbCzxAP1U0AzTz02RF6eVc=/60.1766422450818.CF6E94Ijy69f49+6ol0UMUyuwezplpvQCcEM9fNO9vQ=.webp differ
diff --git a/client/.next/cache/images/p7H+wRVWVc1hwk+SzPlq1IWR0uHmpf0Q6nuBFqRSYmY=/60.1766425393009.DEc2qNJN+ei5RCwIPrGFxeyR92loPC--d0uLk1fz234=.webp b/client/.next/cache/images/p7H+wRVWVc1hwk+SzPlq1IWR0uHmpf0Q6nuBFqRSYmY=/60.1766425393009.DEc2qNJN+ei5RCwIPrGFxeyR92loPC--d0uLk1fz234=.webp
new file mode 100644
index 0000000..84fd0ae
Binary files /dev/null and b/client/.next/cache/images/p7H+wRVWVc1hwk+SzPlq1IWR0uHmpf0Q6nuBFqRSYmY=/60.1766425393009.DEc2qNJN+ei5RCwIPrGFxeyR92loPC--d0uLk1fz234=.webp differ
diff --git a/client/.next/cache/images/pAqU9MlIXOzxEQM2YibSI9ojpKfEeLGAFcLpdS8YXds=/60.1766425236618.nZaSjLWo6HwQ10dJF0tCgqQxLMWBgqJA4iWaUYHNDFE=.webp b/client/.next/cache/images/pAqU9MlIXOzxEQM2YibSI9ojpKfEeLGAFcLpdS8YXds=/60.1766425236618.nZaSjLWo6HwQ10dJF0tCgqQxLMWBgqJA4iWaUYHNDFE=.webp
new file mode 100644
index 0000000..d34ba1d
Binary files /dev/null and b/client/.next/cache/images/pAqU9MlIXOzxEQM2YibSI9ojpKfEeLGAFcLpdS8YXds=/60.1766425236618.nZaSjLWo6HwQ10dJF0tCgqQxLMWBgqJA4iWaUYHNDFE=.webp differ
diff --git a/client/.next/cache/images/pqLj2ipCCTJaGFa2n1o9bLWbjaSb0135oJn9oxPnsds=/60.1766425340908.jF-ur-73o-etCsS5WW2AKBgPdQ0y4hzTXdzq-TCyN2U=.webp b/client/.next/cache/images/pqLj2ipCCTJaGFa2n1o9bLWbjaSb0135oJn9oxPnsds=/60.1766425340908.jF-ur-73o-etCsS5WW2AKBgPdQ0y4hzTXdzq-TCyN2U=.webp
new file mode 100644
index 0000000..f59c4f2
Binary files /dev/null and b/client/.next/cache/images/pqLj2ipCCTJaGFa2n1o9bLWbjaSb0135oJn9oxPnsds=/60.1766425340908.jF-ur-73o-etCsS5WW2AKBgPdQ0y4hzTXdzq-TCyN2U=.webp differ
diff --git a/client/.next/cache/images/q8+7t9OpEYorxZ6oa7klgSEXtFCWNLWNvVt0viHucq8=/60.1766422130126.fXE3eiByPtAlqdxj1EhMmUo9fTqdc2MOBWE7+wGgyxA=.webp b/client/.next/cache/images/q8+7t9OpEYorxZ6oa7klgSEXtFCWNLWNvVt0viHucq8=/60.1766422130126.fXE3eiByPtAlqdxj1EhMmUo9fTqdc2MOBWE7+wGgyxA=.webp
new file mode 100644
index 0000000..cdaf0ed
Binary files /dev/null and b/client/.next/cache/images/q8+7t9OpEYorxZ6oa7klgSEXtFCWNLWNvVt0viHucq8=/60.1766422130126.fXE3eiByPtAlqdxj1EhMmUo9fTqdc2MOBWE7+wGgyxA=.webp differ
diff --git a/client/.next/cache/images/rsW-PuqYqH43bZ3zASjd9EqYZX91hUr-XNiVOt1USz8=/60.1766425244892.I8NItMll5HSqhiObSYB95WCqlla1VLWWi-FDyS2Lg20=.webp b/client/.next/cache/images/rsW-PuqYqH43bZ3zASjd9EqYZX91hUr-XNiVOt1USz8=/60.1766425244892.I8NItMll5HSqhiObSYB95WCqlla1VLWWi-FDyS2Lg20=.webp
new file mode 100644
index 0000000..a88b878
Binary files /dev/null and b/client/.next/cache/images/rsW-PuqYqH43bZ3zASjd9EqYZX91hUr-XNiVOt1USz8=/60.1766425244892.I8NItMll5HSqhiObSYB95WCqlla1VLWWi-FDyS2Lg20=.webp differ
diff --git a/client/.next/cache/images/sF7RIykkIDFKbdna3tCSm6e5juFrpyeR3YXSyT2-8iQ=/60.1766426035696.qj-tQMTUcXu1dE5FNFo67t4WfOof16QK67i9MR-tmzg=.webp b/client/.next/cache/images/sF7RIykkIDFKbdna3tCSm6e5juFrpyeR3YXSyT2-8iQ=/60.1766426035696.qj-tQMTUcXu1dE5FNFo67t4WfOof16QK67i9MR-tmzg=.webp
new file mode 100644
index 0000000..3eba3e6
Binary files /dev/null and b/client/.next/cache/images/sF7RIykkIDFKbdna3tCSm6e5juFrpyeR3YXSyT2-8iQ=/60.1766426035696.qj-tQMTUcXu1dE5FNFo67t4WfOof16QK67i9MR-tmzg=.webp differ
diff --git a/client/.next/cache/images/sN8py5ExqYOlJZ1iwhoFZUwsysN3TPEt2lYEmL9Lgjo=/60.1766422307232.QcOBRqfHjtq2589IYhvx-UouD-OakcbFw9Ab3+lOMVg=.webp b/client/.next/cache/images/sN8py5ExqYOlJZ1iwhoFZUwsysN3TPEt2lYEmL9Lgjo=/60.1766422307232.QcOBRqfHjtq2589IYhvx-UouD-OakcbFw9Ab3+lOMVg=.webp
new file mode 100644
index 0000000..896a708
Binary files /dev/null and b/client/.next/cache/images/sN8py5ExqYOlJZ1iwhoFZUwsysN3TPEt2lYEmL9Lgjo=/60.1766422307232.QcOBRqfHjtq2589IYhvx-UouD-OakcbFw9Ab3+lOMVg=.webp differ
diff --git a/client/.next/cache/images/sqrBIkTvuiTBvOkwE1LdReqEx52AIrsIpGWtlmU+v9s=/60.1766426035719.euBG7s9KS3jwNQHs+IhwZaj2cxUy1TCYQiymPoEP-9Q=.webp b/client/.next/cache/images/sqrBIkTvuiTBvOkwE1LdReqEx52AIrsIpGWtlmU+v9s=/60.1766426035719.euBG7s9KS3jwNQHs+IhwZaj2cxUy1TCYQiymPoEP-9Q=.webp
new file mode 100644
index 0000000..9850da8
Binary files /dev/null and b/client/.next/cache/images/sqrBIkTvuiTBvOkwE1LdReqEx52AIrsIpGWtlmU+v9s=/60.1766426035719.euBG7s9KS3jwNQHs+IhwZaj2cxUy1TCYQiymPoEP-9Q=.webp differ
diff --git a/client/.next/cache/images/tRZfeHtGrwEiLpzflvySXherKo8gZBLgrfN01qSzarY=/60.1766422121840.-p7LiyLUIaSOTCb4K2IebIneaBSWPaCfiZo6QSO6bqA=.webp b/client/.next/cache/images/tRZfeHtGrwEiLpzflvySXherKo8gZBLgrfN01qSzarY=/60.1766422121840.-p7LiyLUIaSOTCb4K2IebIneaBSWPaCfiZo6QSO6bqA=.webp
new file mode 100644
index 0000000..adc2885
Binary files /dev/null and b/client/.next/cache/images/tRZfeHtGrwEiLpzflvySXherKo8gZBLgrfN01qSzarY=/60.1766422121840.-p7LiyLUIaSOTCb4K2IebIneaBSWPaCfiZo6QSO6bqA=.webp differ
diff --git a/client/.next/cache/images/tnwmDdtyjfgcvQPEqMLKtgoYs0L1YIg3zwTapSQclJU=/60.1766425244784.I8NItMll5HSqhiObSYB95WCqlla1VLWWi-FDyS2Lg20=.webp b/client/.next/cache/images/tnwmDdtyjfgcvQPEqMLKtgoYs0L1YIg3zwTapSQclJU=/60.1766425244784.I8NItMll5HSqhiObSYB95WCqlla1VLWWi-FDyS2Lg20=.webp
new file mode 100644
index 0000000..a88b878
Binary files /dev/null and b/client/.next/cache/images/tnwmDdtyjfgcvQPEqMLKtgoYs0L1YIg3zwTapSQclJU=/60.1766425244784.I8NItMll5HSqhiObSYB95WCqlla1VLWWi-FDyS2Lg20=.webp differ
diff --git a/client/.next/cache/images/ucGH5nKeO2+neFsPApotLK5R3pLKs9idN-dBosBlGp0=/60.1766425244752.jF-ur-73o-etCsS5WW2AKBgPdQ0y4hzTXdzq-TCyN2U=.webp b/client/.next/cache/images/ucGH5nKeO2+neFsPApotLK5R3pLKs9idN-dBosBlGp0=/60.1766425244752.jF-ur-73o-etCsS5WW2AKBgPdQ0y4hzTXdzq-TCyN2U=.webp
new file mode 100644
index 0000000..f59c4f2
Binary files /dev/null and b/client/.next/cache/images/ucGH5nKeO2+neFsPApotLK5R3pLKs9idN-dBosBlGp0=/60.1766425244752.jF-ur-73o-etCsS5WW2AKBgPdQ0y4hzTXdzq-TCyN2U=.webp differ
diff --git a/client/.next/cache/images/vNmWnGZfDT1vyFnIfMoHoT037NRXiL1Nbt4p6-ud76Y=/60.1766426021842.GcMqgMs+F7Y3Z+Cxtocv8ZuANtWdOwvEh0ZCBJGq2Ds=.webp b/client/.next/cache/images/vNmWnGZfDT1vyFnIfMoHoT037NRXiL1Nbt4p6-ud76Y=/60.1766426021842.GcMqgMs+F7Y3Z+Cxtocv8ZuANtWdOwvEh0ZCBJGq2Ds=.webp
new file mode 100644
index 0000000..4054882
Binary files /dev/null and b/client/.next/cache/images/vNmWnGZfDT1vyFnIfMoHoT037NRXiL1Nbt4p6-ud76Y=/60.1766426021842.GcMqgMs+F7Y3Z+Cxtocv8ZuANtWdOwvEh0ZCBJGq2Ds=.webp differ
diff --git a/client/.next/cache/images/wKGgF0ssNC9xrIIQzuT9nrK3A8BHB9errxy7ZeMFxbQ=/60.1766425283208.Z6ex2-QF9whYOv2YVzs3JifdTNSJwkkOfL791DuXhNE=.webp b/client/.next/cache/images/wKGgF0ssNC9xrIIQzuT9nrK3A8BHB9errxy7ZeMFxbQ=/60.1766425283208.Z6ex2-QF9whYOv2YVzs3JifdTNSJwkkOfL791DuXhNE=.webp
new file mode 100644
index 0000000..a87ad40
Binary files /dev/null and b/client/.next/cache/images/wKGgF0ssNC9xrIIQzuT9nrK3A8BHB9errxy7ZeMFxbQ=/60.1766425283208.Z6ex2-QF9whYOv2YVzs3JifdTNSJwkkOfL791DuXhNE=.webp differ
diff --git a/client/.next/cache/images/wVgTNGvn-hAbMiIqLevOzknNP86nbd9ah0cZlBqJTzg=/60.1766425236020.CQoQ0DW0b3Wtcujv3ZcLZbkH-tX+EX9hY0jGTsPG-U8=.webp b/client/.next/cache/images/wVgTNGvn-hAbMiIqLevOzknNP86nbd9ah0cZlBqJTzg=/60.1766425236020.CQoQ0DW0b3Wtcujv3ZcLZbkH-tX+EX9hY0jGTsPG-U8=.webp
new file mode 100644
index 0000000..7acd0da
Binary files /dev/null and b/client/.next/cache/images/wVgTNGvn-hAbMiIqLevOzknNP86nbd9ah0cZlBqJTzg=/60.1766425236020.CQoQ0DW0b3Wtcujv3ZcLZbkH-tX+EX9hY0jGTsPG-U8=.webp differ
diff --git a/client/.next/cache/images/xFFyn0ohh7eqjD323LhR22l-fG1pHTiT1myeOvv0AM4=/60.1766425359888.z3vISxKqaSWxBGXARtkdR0GabI9teEhgQyDk+cBe4Zk=.webp b/client/.next/cache/images/xFFyn0ohh7eqjD323LhR22l-fG1pHTiT1myeOvv0AM4=/60.1766425359888.z3vISxKqaSWxBGXARtkdR0GabI9teEhgQyDk+cBe4Zk=.webp
new file mode 100644
index 0000000..278e6f9
Binary files /dev/null and b/client/.next/cache/images/xFFyn0ohh7eqjD323LhR22l-fG1pHTiT1myeOvv0AM4=/60.1766425359888.z3vISxKqaSWxBGXARtkdR0GabI9teEhgQyDk+cBe4Zk=.webp differ
diff --git a/client/.next/cache/images/yAqa9nEwz30pElgFZ9pCmwuoPUMjoQM2-eTiIpVQlgc=/60.1766425311354.RKGesY9r4K9hYAf3fAUERdYwu9123P2DL8Ie3EDyuZc=.webp b/client/.next/cache/images/yAqa9nEwz30pElgFZ9pCmwuoPUMjoQM2-eTiIpVQlgc=/60.1766425311354.RKGesY9r4K9hYAf3fAUERdYwu9123P2DL8Ie3EDyuZc=.webp
new file mode 100644
index 0000000..e6a465c
Binary files /dev/null and b/client/.next/cache/images/yAqa9nEwz30pElgFZ9pCmwuoPUMjoQM2-eTiIpVQlgc=/60.1766425311354.RKGesY9r4K9hYAf3fAUERdYwu9123P2DL8Ie3EDyuZc=.webp differ
diff --git a/client/.next/cache/images/yeJR7CjgHblvNzjvdIRmbn+0-0LqrQfYv-iYjN8ki1E=/60.1766425284007.Z6ex2-QF9whYOv2YVzs3JifdTNSJwkkOfL791DuXhNE=.webp b/client/.next/cache/images/yeJR7CjgHblvNzjvdIRmbn+0-0LqrQfYv-iYjN8ki1E=/60.1766425284007.Z6ex2-QF9whYOv2YVzs3JifdTNSJwkkOfL791DuXhNE=.webp
new file mode 100644
index 0000000..a87ad40
Binary files /dev/null and b/client/.next/cache/images/yeJR7CjgHblvNzjvdIRmbn+0-0LqrQfYv-iYjN8ki1E=/60.1766425284007.Z6ex2-QF9whYOv2YVzs3JifdTNSJwkkOfL791DuXhNE=.webp differ
diff --git a/client/.next/cache/images/ykduO4Qelq4uY4vpVEJEik9aiwUbVb4ZW-iPdvqO6us=/60.1766425235351.gYSBPVuPu+0d7RdjsplvzdZFRz8h2i+C2gfQVX3Yi3s=.webp b/client/.next/cache/images/ykduO4Qelq4uY4vpVEJEik9aiwUbVb4ZW-iPdvqO6us=/60.1766425235351.gYSBPVuPu+0d7RdjsplvzdZFRz8h2i+C2gfQVX3Yi3s=.webp
new file mode 100644
index 0000000..8d93dc0
Binary files /dev/null and b/client/.next/cache/images/ykduO4Qelq4uY4vpVEJEik9aiwUbVb4ZW-iPdvqO6us=/60.1766425235351.gYSBPVuPu+0d7RdjsplvzdZFRz8h2i+C2gfQVX3Yi3s=.webp differ
diff --git a/client/.next/cache/images/ysIumchxVp7etOeJViKRftJM-0gWgu2ElS4pzKB3Gro=/60.1766426015375.uJwdJacO0mb1V5KNXJExglNr1Ruv1o-7VvdiBUMODWc=.webp b/client/.next/cache/images/ysIumchxVp7etOeJViKRftJM-0gWgu2ElS4pzKB3Gro=/60.1766426015375.uJwdJacO0mb1V5KNXJExglNr1Ruv1o-7VvdiBUMODWc=.webp
new file mode 100644
index 0000000..ef06321
Binary files /dev/null and b/client/.next/cache/images/ysIumchxVp7etOeJViKRftJM-0gWgu2ElS4pzKB3Gro=/60.1766426015375.uJwdJacO0mb1V5KNXJExglNr1Ruv1o-7VvdiBUMODWc=.webp differ
diff --git a/client/.next/cache/images/z1KlcQAoK7ofUt3j8G9ULvsf5Re0B0YnjCW7lAsGAQA=/60.1766426019740.NOtNuioNeMdRnU-aBuXnVeh4lA5sQl3mD4N3dJ0XOl0=.webp b/client/.next/cache/images/z1KlcQAoK7ofUt3j8G9ULvsf5Re0B0YnjCW7lAsGAQA=/60.1766426019740.NOtNuioNeMdRnU-aBuXnVeh4lA5sQl3mD4N3dJ0XOl0=.webp
new file mode 100644
index 0000000..0488d42
Binary files /dev/null and b/client/.next/cache/images/z1KlcQAoK7ofUt3j8G9ULvsf5Re0B0YnjCW7lAsGAQA=/60.1766426019740.NOtNuioNeMdRnU-aBuXnVeh4lA5sQl3mD4N3dJ0XOl0=.webp differ
diff --git a/client/.next/cache/images/z3I9QglScTnmYcLvs2CfKHOH75cgiTZmn9tLg3sOg0Q=/60.1766425381230.y4GBX9wNHIoWJMk6Sox50h+nwYW3gzEr4fPZKZ81Mm4=.webp b/client/.next/cache/images/z3I9QglScTnmYcLvs2CfKHOH75cgiTZmn9tLg3sOg0Q=/60.1766425381230.y4GBX9wNHIoWJMk6Sox50h+nwYW3gzEr4fPZKZ81Mm4=.webp
new file mode 100644
index 0000000..26174f3
Binary files /dev/null and b/client/.next/cache/images/z3I9QglScTnmYcLvs2CfKHOH75cgiTZmn9tLg3sOg0Q=/60.1766425381230.y4GBX9wNHIoWJMk6Sox50h+nwYW3gzEr4fPZKZ81Mm4=.webp differ
diff --git a/client/.next/cache/images/zPZ-zzpRytXeBipCZj27JAUAyVCR5x8AfaLfHencogk=/60.1766425389926.z3vISxKqaSWxBGXARtkdR0GabI9teEhgQyDk+cBe4Zk=.webp b/client/.next/cache/images/zPZ-zzpRytXeBipCZj27JAUAyVCR5x8AfaLfHencogk=/60.1766425389926.z3vISxKqaSWxBGXARtkdR0GabI9teEhgQyDk+cBe4Zk=.webp
new file mode 100644
index 0000000..278e6f9
Binary files /dev/null and b/client/.next/cache/images/zPZ-zzpRytXeBipCZj27JAUAyVCR5x8AfaLfHencogk=/60.1766425389926.z3vISxKqaSWxBGXARtkdR0GabI9teEhgQyDk+cBe4Zk=.webp differ
diff --git a/client/.next/cache/webpack/client-development/0.pack.gz b/client/.next/cache/webpack/client-development/0.pack.gz
new file mode 100644
index 0000000..43e474b
Binary files /dev/null and b/client/.next/cache/webpack/client-development/0.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/1.pack.gz b/client/.next/cache/webpack/client-development/1.pack.gz
new file mode 100644
index 0000000..e319900
Binary files /dev/null and b/client/.next/cache/webpack/client-development/1.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/10.pack.gz b/client/.next/cache/webpack/client-development/10.pack.gz
new file mode 100644
index 0000000..2de4b55
Binary files /dev/null and b/client/.next/cache/webpack/client-development/10.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/2.pack.gz b/client/.next/cache/webpack/client-development/2.pack.gz
new file mode 100644
index 0000000..3e6778e
Binary files /dev/null and b/client/.next/cache/webpack/client-development/2.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/3.pack.gz b/client/.next/cache/webpack/client-development/3.pack.gz
new file mode 100644
index 0000000..f008cfe
Binary files /dev/null and b/client/.next/cache/webpack/client-development/3.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/4.pack.gz b/client/.next/cache/webpack/client-development/4.pack.gz
new file mode 100644
index 0000000..49eed3e
Binary files /dev/null and b/client/.next/cache/webpack/client-development/4.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/5.pack.gz b/client/.next/cache/webpack/client-development/5.pack.gz
new file mode 100644
index 0000000..f4f68fa
Binary files /dev/null and b/client/.next/cache/webpack/client-development/5.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/6.pack.gz b/client/.next/cache/webpack/client-development/6.pack.gz
new file mode 100644
index 0000000..754d9ac
Binary files /dev/null and b/client/.next/cache/webpack/client-development/6.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/7.pack.gz b/client/.next/cache/webpack/client-development/7.pack.gz
new file mode 100644
index 0000000..1ddc6d9
Binary files /dev/null and b/client/.next/cache/webpack/client-development/7.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/8.pack.gz b/client/.next/cache/webpack/client-development/8.pack.gz
new file mode 100644
index 0000000..dfb4920
Binary files /dev/null and b/client/.next/cache/webpack/client-development/8.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/9.pack.gz b/client/.next/cache/webpack/client-development/9.pack.gz
new file mode 100644
index 0000000..8755f27
Binary files /dev/null and b/client/.next/cache/webpack/client-development/9.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/index.pack.gz b/client/.next/cache/webpack/client-development/index.pack.gz
new file mode 100644
index 0000000..034518c
Binary files /dev/null and b/client/.next/cache/webpack/client-development/index.pack.gz differ
diff --git a/client/.next/cache/webpack/client-development/index.pack.gz.old b/client/.next/cache/webpack/client-development/index.pack.gz.old
new file mode 100644
index 0000000..9f2d710
Binary files /dev/null and b/client/.next/cache/webpack/client-development/index.pack.gz.old differ
diff --git a/client/.next/cache/webpack/client-production/0.pack b/client/.next/cache/webpack/client-production/0.pack
new file mode 100644
index 0000000..f638a77
Binary files /dev/null and b/client/.next/cache/webpack/client-production/0.pack differ
diff --git a/client/.next/cache/webpack/client-production/index.pack b/client/.next/cache/webpack/client-production/index.pack
new file mode 100644
index 0000000..66d968e
Binary files /dev/null and b/client/.next/cache/webpack/client-production/index.pack differ
diff --git a/client/.next/cache/webpack/server-development/0.pack.gz b/client/.next/cache/webpack/server-development/0.pack.gz
new file mode 100644
index 0000000..eadc978
Binary files /dev/null and b/client/.next/cache/webpack/server-development/0.pack.gz differ
diff --git a/client/.next/cache/webpack/server-development/1.pack.gz b/client/.next/cache/webpack/server-development/1.pack.gz
new file mode 100644
index 0000000..2ad7bfc
Binary files /dev/null and b/client/.next/cache/webpack/server-development/1.pack.gz differ
diff --git a/client/.next/cache/webpack/server-development/2.pack.gz b/client/.next/cache/webpack/server-development/2.pack.gz
new file mode 100644
index 0000000..1ea735c
Binary files /dev/null and b/client/.next/cache/webpack/server-development/2.pack.gz differ
diff --git a/client/.next/cache/webpack/server-development/3.pack.gz b/client/.next/cache/webpack/server-development/3.pack.gz
new file mode 100644
index 0000000..f9eabab
Binary files /dev/null and b/client/.next/cache/webpack/server-development/3.pack.gz differ
diff --git a/client/.next/cache/webpack/server-development/4.pack.gz b/client/.next/cache/webpack/server-development/4.pack.gz
new file mode 100644
index 0000000..f0d3f12
Binary files /dev/null and b/client/.next/cache/webpack/server-development/4.pack.gz differ
diff --git a/client/.next/cache/webpack/server-development/5.pack.gz b/client/.next/cache/webpack/server-development/5.pack.gz
new file mode 100644
index 0000000..f23f44f
Binary files /dev/null and b/client/.next/cache/webpack/server-development/5.pack.gz differ
diff --git a/client/.next/cache/webpack/server-development/6.pack.gz b/client/.next/cache/webpack/server-development/6.pack.gz
new file mode 100644
index 0000000..36b75d8
Binary files /dev/null and b/client/.next/cache/webpack/server-development/6.pack.gz differ
diff --git a/client/.next/cache/webpack/server-development/7.pack.gz b/client/.next/cache/webpack/server-development/7.pack.gz
new file mode 100644
index 0000000..3f8e68d
Binary files /dev/null and b/client/.next/cache/webpack/server-development/7.pack.gz differ
diff --git a/client/.next/cache/webpack/server-development/8.pack.gz b/client/.next/cache/webpack/server-development/8.pack.gz
new file mode 100644
index 0000000..975145a
Binary files /dev/null and b/client/.next/cache/webpack/server-development/8.pack.gz differ
diff --git a/client/.next/cache/webpack/server-development/index.pack.gz b/client/.next/cache/webpack/server-development/index.pack.gz
new file mode 100644
index 0000000..7eef204
Binary files /dev/null and b/client/.next/cache/webpack/server-development/index.pack.gz differ
diff --git a/client/.next/cache/webpack/server-development/index.pack.gz.old b/client/.next/cache/webpack/server-development/index.pack.gz.old
new file mode 100644
index 0000000..22d8180
Binary files /dev/null and b/client/.next/cache/webpack/server-development/index.pack.gz.old differ
diff --git a/client/.next/cache/webpack/server-production/0.pack b/client/.next/cache/webpack/server-production/0.pack
new file mode 100644
index 0000000..4d1d632
Binary files /dev/null and b/client/.next/cache/webpack/server-production/0.pack differ
diff --git a/client/.next/cache/webpack/server-production/index.pack b/client/.next/cache/webpack/server-production/index.pack
new file mode 100644
index 0000000..6828db9
Binary files /dev/null and b/client/.next/cache/webpack/server-production/index.pack differ
diff --git a/client/.next/export-marker.json b/client/.next/export-marker.json
new file mode 100644
index 0000000..07328d6
--- /dev/null
+++ b/client/.next/export-marker.json
@@ -0,0 +1 @@
+{"version":1,"hasExportPathMap":false,"exportTrailingSlash":false,"isNextImageImported":false}
\ No newline at end of file
diff --git a/client/.next/images-manifest.json b/client/.next/images-manifest.json
new file mode 100644
index 0000000..3be0467
--- /dev/null
+++ b/client/.next/images-manifest.json
@@ -0,0 +1 @@
+{"version":1,"images":{"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":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"inline","remotePatterns":[],"unoptimized":false,"sizes":[640,750,828,1080,1200,1920,2048,3840,16,32,48,64,96,128,256,384]}}
\ No newline at end of file
diff --git a/client/.next/next-minimal-server.js.nft.json b/client/.next/next-minimal-server.js.nft.json
new file mode 100644
index 0000000..9e8eb3a
--- /dev/null
+++ b/client/.next/next-minimal-server.js.nft.json
@@ -0,0 +1 @@
+{"version":1,"files":["../node_modules/styled-jsx/index.js","../node_modules/styled-jsx/package.json","../node_modules/styled-jsx/dist/index/index.js","../node_modules/react/package.json","../node_modules/react/index.js","../node_modules/client-only/package.json","../node_modules/react/cjs/react.production.min.js","../node_modules/client-only/index.js","../node_modules/styled-jsx/style.js","../node_modules/next/dist/compiled/next-server/server.runtime.prod.js","../node_modules/next/package.json","../node_modules/next/dist/server/body-streams.js","../node_modules/next/dist/shared/lib/constants.js","../node_modules/next/dist/server/web/utils.js","../node_modules/next/dist/client/components/app-router-headers.js","../node_modules/next/dist/server/lib/trace/tracer.js","../node_modules/next/dist/server/lib/trace/constants.js","../node_modules/next/dist/shared/lib/modern-browserslist-target.js","../node_modules/next/dist/shared/lib/runtime-config.external.js","../node_modules/next/dist/compiled/ws/package.json","../node_modules/@swc/helpers/_/_interop_require_default/package.json","../node_modules/next/dist/compiled/ws/index.js","../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../node_modules/@swc/helpers/package.json","../node_modules/next/dist/compiled/jsonwebtoken/package.json","../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../node_modules/next/dist/compiled/jsonwebtoken/index.js","../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../node_modules/next/dist/lib/semver-noop.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/amp-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/head-manager-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/html-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/image-config-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/router-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/server-inserted-html.js","../node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/app-router-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/hooks-client-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/html-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/image-config-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/router-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/server-inserted-html.js","../node_modules/next/dist/server/future/route-modules/pages/module.compiled.js"]}
\ No newline at end of file
diff --git a/client/.next/next-server.js.nft.json b/client/.next/next-server.js.nft.json
new file mode 100644
index 0000000..a4ac3ed
--- /dev/null
+++ b/client/.next/next-server.js.nft.json
@@ -0,0 +1 @@
+{"version":1,"files":["../node_modules/styled-jsx/index.js","../node_modules/styled-jsx/package.json","../node_modules/styled-jsx/dist/index/index.js","../node_modules/react/package.json","../node_modules/react/index.js","../node_modules/client-only/package.json","../node_modules/react/cjs/react.production.min.js","../node_modules/client-only/index.js","../node_modules/styled-jsx/style.js","../node_modules/next/dist/server/next-server.js","../node_modules/next/package.json","../node_modules/next/dist/server/base-server.js","../node_modules/next/dist/server/node-environment.js","../node_modules/next/dist/server/require-hook.js","../node_modules/next/dist/server/node-polyfill-crypto.js","../node_modules/next/dist/server/request-meta.js","../node_modules/next/dist/lib/find-pages-dir.js","../node_modules/next/dist/server/send-payload.js","../node_modules/next/dist/server/require.js","../node_modules/next/dist/server/load-components.js","../node_modules/next/dist/lib/is-error.js","../node_modules/next/dist/server/body-streams.js","../node_modules/next/dist/server/setup-http-agent-env.js","../node_modules/next/dist/lib/constants.js","../node_modules/next/dist/server/pipe-readable.js","../node_modules/next/dist/server/load-manifest.js","../node_modules/next/dist/server/image-optimizer.js","../node_modules/next/dist/server/serve-static.js","../node_modules/next/dist/lib/format-server-error.js","../node_modules/next/dist/lib/picocolors.js","../node_modules/next/dist/shared/lib/utils.js","../node_modules/next/dist/shared/lib/constants.js","../node_modules/next/dist/server/base-http/node.js","../node_modules/next/dist/build/output/log.js","../node_modules/next/dist/server/web/utils.js","../node_modules/next/dist/server/lib/node-fs-methods.js","../node_modules/next/dist/server/lib/mock-request.js","../node_modules/next/dist/client/components/app-router-headers.js","../node_modules/next/dist/experimental/testmode/server.js","../node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js","../node_modules/next/dist/shared/lib/page-path/normalize-page-path.js","../node_modules/next/dist/server/future/route-matches/pages-api-route-match.js","../node_modules/next/dist/server/lib/trace/tracer.js","../node_modules/next/dist/server/lib/trace/constants.js","../node_modules/next/dist/server/lib/server-ipc/invoke-request.js","../node_modules/next/dist/server/lib/server-ipc/utils.js","../node_modules/next/dist/shared/lib/router/utils/route-matcher.js","../node_modules/next/dist/shared/lib/router/utils/parse-url.js","../node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js","../node_modules/next/dist/shared/lib/router/utils/querystring.js","../node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","../node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js","../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../node_modules/next/dist/shared/lib/router/utils/route-regex.js","../node_modules/next/dist/server/web/spec-extension/adapters/next-request.js","../node_modules/next/dist/server/future/helpers/module-loader/route-module-loader.js","../node_modules/next/dist/server/future/route-modules/app-page/module.render.js","../node_modules/next/dist/server/future/route-modules/pages/module.render.js","../node_modules/next/dist/client/components/request-async-storage.external.js","../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../node_modules/next/dist/server/api-utils/index.js","../node_modules/next/dist/server/response-cache/index.js","../node_modules/next/dist/server/lib/incremental-cache/index.js","../node_modules/next/dist/server/web/sandbox/index.js","../node_modules/next/dist/lib/interop-default.js","../node_modules/next/dist/lib/wait.js","../node_modules/next/dist/lib/detached-promise.js","../node_modules/@next/env/package.json","../node_modules/next/dist/server/lib/revalidate.js","../node_modules/next/dist/server/lib/etag.js","../node_modules/next/dist/shared/lib/is-plain-object.js","../node_modules/next/dist/shared/lib/image-blur-svg.js","../node_modules/next/dist/shared/lib/match-remote-pattern.js","../node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js","../node_modules/next/dist/server/lib/squoosh/main.js","../node_modules/next/dist/lib/is-edge-runtime.js","../node_modules/next/dist/lib/redirect-status.js","../node_modules/next/dist/server/utils.js","../node_modules/next/dist/server/render-result.js","../node_modules/next/dist/server/server-utils.js","../node_modules/next/dist/server/send-response.js","../node_modules/next/dist/server/internal-utils.js","../node_modules/next/dist/shared/lib/modern-browserslist-target.js","../node_modules/next/dist/server/base-http/index.js","../node_modules/next/dist/server/lib/format-hostname.js","../node_modules/next/dist/shared/lib/runtime-config.external.js","../node_modules/next/dist/shared/lib/get-hostname.js","../node_modules/next/dist/server/lib/match-next-data-pathname.js","../node_modules/next/dist/server/app-render/strip-flight-headers.js","../node_modules/next/dist/server/future/route-kind.js","../node_modules/next/dist/server/future/normalizers/locale-route-normalizer.js","../node_modules/next/dist/server/future/route-matcher-managers/default-route-matcher-manager.js","../node_modules/next/dist/server/future/route-matcher-providers/app-page-route-matcher-provider.js","../node_modules/next/dist/server/future/route-matcher-providers/app-route-route-matcher-provider.js","../node_modules/next/dist/server/future/route-matcher-providers/pages-route-matcher-provider.js","../node_modules/next/dist/server/future/route-matcher-providers/pages-api-route-matcher-provider.js","../node_modules/next/dist/server/future/helpers/i18n-provider.js","../node_modules/next/dist/server/future/route-modules/checks.js","../node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js","../node_modules/next/dist/server/api-utils/node/try-get-preview-data.js","../node_modules/next/dist/client/components/async-local-storage.js","../node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js","../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../node_modules/@next/env/dist/index.js","../node_modules/next/dist/shared/lib/segment.js","../node_modules/next/dist/shared/lib/escape-regexp.js","../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js","../node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js","../node_modules/next/dist/server/future/route-modules/helpers/response-handlers.js","../node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js","../node_modules/next/dist/server/future/normalizers/request/rsc.js","../node_modules/next/dist/server/future/normalizers/request/postponed.js","../node_modules/next/dist/server/future/normalizers/request/prefetch-rsc.js","../node_modules/next/dist/server/future/normalizers/request/next-data.js","../node_modules/next/dist/lib/scheduler.js","../node_modules/next/dist/lib/batcher.js","../node_modules/next/dist/server/future/helpers/interception-routes.js","../node_modules/next/dist/server/web/spec-extension/request.js","../node_modules/next/dist/server/future/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js","../node_modules/next/dist/server/response-cache/types.js","../node_modules/next/dist/server/response-cache/utils.js","../node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js","../node_modules/next/dist/shared/lib/router/utils/prepare-destination.js","../node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js","../node_modules/next/dist/server/future/helpers/module-loader/node-module-loader.js","../node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js","../node_modules/next/dist/server/future/route-modules/pages/module.compiled.js","../node_modules/next/dist/server/web/spec-extension/adapters/headers.js","../node_modules/next/dist/server/lib/incremental-cache/fetch-cache.js","../node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js","../node_modules/next/dist/shared/lib/isomorphic/path.js","../node_modules/next/dist/server/lib/server-ipc/request-utils.js","../node_modules/next/dist/server/web/sandbox/sandbox.js","../node_modules/next/dist/server/web/sandbox/context.js","../node_modules/next/dist/shared/lib/router/utils/index.js","../node_modules/next/dist/compiled/ws/package.json","../node_modules/next/dist/compiled/lru-cache/package.json","../node_modules/next/dist/compiled/fresh/package.json","../node_modules/next/dist/compiled/send/package.json","../node_modules/next/dist/compiled/image-size/package.json","../node_modules/next/dist/compiled/content-disposition/package.json","../node_modules/react-dom/package.json","../node_modules/next/dist/compiled/is-animated/package.json","../node_modules/next/dist/compiled/get-orientation/package.json","../node_modules/next/dist/server/stream-utils/node-web-streams-helper.js","../node_modules/next/dist/server/api-utils/get-cookie-parser.js","../node_modules/next/dist/compiled/@hapi/accept/package.json","../node_modules/next/dist/server/lib/is-ipv6.js","../node_modules/@swc/helpers/_/_interop_require_default/package.json","../node_modules/next/dist/lib/is-app-page-route.js","../node_modules/next/dist/lib/is-app-route-route.js","../node_modules/next/dist/lib/is-api-route.js","../node_modules/next/dist/server/accept-header.js","../node_modules/next/dist/server/crypto-utils.js","../node_modules/next/dist/shared/lib/router/utils/path-match.js","../node_modules/react-dom/server.browser.js","../node_modules/next/dist/server/future/route-matchers/locale-route-matcher.js","../node_modules/next/dist/server/future/route-matchers/app-page-route-matcher.js","../node_modules/next/dist/server/future/route-matcher-providers/manifest-route-matcher-provider.js","../node_modules/next/dist/server/future/route-matchers/app-route-route-matcher.js","../node_modules/next/dist/server/future/route-matchers/pages-route-matcher.js","../node_modules/next/dist/server/future/route-matchers/pages-api-route-matcher.js","../node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js","../node_modules/next/dist/server/web/spec-extension/cookies.js","../node_modules/next/dist/compiled/ws/index.js","../node_modules/next/dist/compiled/lru-cache/index.js","../node_modules/next/dist/compiled/fresh/index.js","../node_modules/next/dist/server/web/next-url.js","../node_modules/next/dist/server/web/error.js","../node_modules/next/dist/compiled/send/index.js","../node_modules/next/dist/compiled/image-size/index.js","../node_modules/next/dist/compiled/content-disposition/index.js","../node_modules/next/dist/compiled/is-animated/index.js","../node_modules/next/dist/compiled/get-orientation/index.js","../node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json","../node_modules/next/dist/shared/lib/router/utils/format-url.js","../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../node_modules/@swc/helpers/package.json","../node_modules/next/dist/compiled/node-html-parser/package.json","../node_modules/next/dist/compiled/jsonwebtoken/package.json","../node_modules/next/dist/compiled/cookie/package.json","../node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js","../node_modules/next/dist/shared/lib/router/utils/is-dynamic.js","../node_modules/next/dist/server/future/normalizers/request/suffix.js","../node_modules/next/dist/server/future/normalizers/request/prefix.js","../node_modules/next/dist/lib/pick.js","../node_modules/next/dist/compiled/@hapi/accept/index.js","../node_modules/next/dist/shared/lib/router/utils/parse-path.js","../node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js","../node_modules/next/dist/server/web/sandbox/resource-managers.js","../node_modules/next/dist/server/web/spec-extension/adapters/reflect.js","../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../node_modules/next/dist/compiled/node-html-parser/index.js","../node_modules/next/dist/compiled/jsonwebtoken/index.js","../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../node_modules/next/dist/compiled/cookie/index.js","../node_modules/next/dist/shared/lib/router/utils/sorted-routes.js","../node_modules/next/dist/server/future/normalizers/built/app/index.js","../node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js","../node_modules/next/dist/server/future/normalizers/built/pages/index.js","../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../node_modules/next/dist/server/stream-utils/encode-decode.js","../node_modules/next/dist/compiled/micromatch/package.json","../node_modules/next/dist/server/future/route-matchers/route-matcher.js","../node_modules/next/dist/compiled/micromatch/index.js","../node_modules/next/dist/server/future/route-matcher-providers/helpers/cached-route-matcher-provider.js","../node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js","../node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js","../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js","../node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js","../node_modules/next/dist/server/future/route-modules/app-page/module.js","../node_modules/next/dist/server/future/route-modules/pages/module.js","../node_modules/next/dist/compiled/path-browserify/package.json","../node_modules/next/dist/compiled/edge-runtime/package.json","../node_modules/next/dist/compiled/path-to-regexp/index.js","../node_modules/next/dist/compiled/path-browserify/index.js","../node_modules/next/dist/compiled/edge-runtime/index.js","../node_modules/next/dist/server/future/normalizers/built/app/app-bundle-path-normalizer.js","../node_modules/next/dist/server/future/normalizers/built/app/app-filename-normalizer.js","../node_modules/next/dist/server/future/normalizers/built/app/app-page-normalizer.js","../node_modules/next/dist/server/future/normalizers/built/app/app-pathname-normalizer.js","../node_modules/next/dist/server/future/normalizers/built/pages/pages-page-normalizer.js","../node_modules/next/dist/server/future/normalizers/built/pages/pages-bundle-path-normalizer.js","../node_modules/next/dist/server/future/normalizers/built/pages/pages-filename-normalizer.js","../node_modules/next/dist/server/future/normalizers/built/pages/pages-pathname-normalizer.js","../node_modules/next/dist/compiled/debug/package.json","../node_modules/next/dist/compiled/@edge-runtime/cookies/package.json","../node_modules/@swc/helpers/_/_interop_require_wildcard/package.json","../node_modules/next/dist/lib/semver-noop.js","../node_modules/next/dist/server/render.js","../node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","../node_modules/next/dist/shared/lib/router/utils/add-locale.js","../node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js","../node_modules/next/dist/server/app-render/app-render.js","../node_modules/next/dist/compiled/debug/index.js","../node_modules/next/dist/server/future/route-modules/route-module.js","../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/entrypoints.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/entrypoints.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.js","../node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../node_modules/next/dist/server/future/normalizers/normalizers.js","../node_modules/next/dist/server/future/normalizers/prefixing-normalizer.js","../node_modules/next/dist/server/future/normalizers/absolute-filename-normalizer.js","../node_modules/next/dist/server/future/normalizers/wrap-normalizer-fn.js","../node_modules/next/dist/server/future/normalizers/underscore-normalizer.js","../node_modules/next/dist/lib/is-serializable-props.js","../node_modules/next/dist/server/post-process.js","../node_modules/next/dist/shared/lib/amp-mode.js","../node_modules/next/dist/shared/lib/head.js","../node_modules/next/dist/shared/lib/amp-context.shared-runtime.js","../node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js","../node_modules/next/dist/shared/lib/router-context.shared-runtime.js","../node_modules/next/dist/shared/lib/loadable.shared-runtime.js","../node_modules/next/dist/shared/lib/html-context.shared-runtime.js","../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js","../node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js","../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js","../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js","../node_modules/next/dist/shared/lib/router/adapters.js","../node_modules/next/dist/server/app-render/create-server-components-renderer.js","../node_modules/next/dist/client/components/match-segments.js","../node_modules/next/dist/server/async-storage/static-generation-async-storage-wrapper.js","../node_modules/next/dist/client/components/not-found.js","../node_modules/next/dist/lib/metadata/metadata.js","../node_modules/next/dist/server/async-storage/request-async-storage-wrapper.js","../node_modules/next/dist/client/components/redirect.js","../node_modules/next/dist/server/lib/patch-fetch.js","../node_modules/next/dist/client/components/get-redirect-status-code-from-error.js","../node_modules/next/dist/server/app-render/flight-render-result.js","../node_modules/next/dist/server/app-render/create-error-handler.js","../node_modules/next/dist/server/app-render/get-segment-param.js","../node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js","../node_modules/next/dist/server/app-render/get-script-nonce-from-header.js","../node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js","../node_modules/next/dist/server/app-render/validate-url.js","../node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js","../node_modules/next/dist/server/app-render/action-handler.js","../node_modules/next/dist/server/app-render/required-scripts.js","../node_modules/next/dist/server/app-render/server-inserted-html.js","../node_modules/next/dist/server/app-render/make-get-server-inserted-html.js","../node_modules/next/dist/server/app-render/get-asset-query-string.js","../node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js","../node_modules/next/dist/server/app-render/create-component-tree.js","../node_modules/next/dist/server/app-render/action-encryption-utils.js","../node_modules/next/dist/server/app-render/is-missing-postpone-error.js","../node_modules/next/dist/client/components/dev-root-not-found-boundary.js","../node_modules/next/dist/shared/lib/lazy-dynamic/no-ssr-error.js","../node_modules/next/dist/server/app-render/static/static-renderer.js","../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js","../node_modules/next/dist/lib/non-nullable.js","../node_modules/next/dist/server/optimize-amp.js","../node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js","../node_modules/next/dist/shared/lib/side-effect.js","../node_modules/next/dist/shared/lib/image-config.js","../node_modules/next/dist/server/htmlescape.js","../node_modules/next/dist/lib/client-reference.js","../node_modules/next/dist/compiled/strip-ansi/package.json","../node_modules/next/dist/compiled/react-is/package.json","../node_modules/next/dist/shared/lib/utils/warn-once.js","../node_modules/next/dist/server/app-render/use-flight-response.js","../node_modules/next/dist/lib/metadata/resolve-metadata.js","../node_modules/next/dist/lib/metadata/default-metadata.js","../node_modules/next/dist/server/async-storage/draft-mode-provider.js","../node_modules/next/dist/client/components/maybe-postpone.js","../node_modules/next/dist/client/components/hooks-server-context.js","../node_modules/next/dist/server/dev/log-app-dir-error.js","../node_modules/next/dist/server/app-render/types.js","../node_modules/next/dist/server/app-render/react-server.node.js","../node_modules/next/dist/server/lib/app-dir-module.js","../node_modules/next/dist/server/app-render/interop-default.js","../node_modules/next/dist/server/app-render/parse-loader-tree.js","../node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js","../node_modules/next/dist/server/app-render/preload-component.js","../node_modules/next/dist/server/app-render/get-layer-assets.js","../node_modules/next/dist/server/app-render/has-loading-component-in-tree.js","../node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js","../node_modules/next/dist/server/app-render/get-preloadable-fonts.js","../node_modules/next/dist/client/components/not-found-boundary.js","../node_modules/next/dist/lib/metadata/generate/basic.js","../node_modules/next/dist/lib/metadata/generate/alternate.js","../node_modules/next/dist/lib/metadata/generate/icons.js","../node_modules/next/dist/lib/metadata/generate/opengraph.js","../node_modules/next/dist/lib/metadata/generate/meta.js","../node_modules/next/dist/compiled/nanoid/package.json","../node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js","../node_modules/next/dist/compiled/strip-ansi/index.js","../node_modules/next/dist/compiled/react-is/index.js","../node_modules/next/dist/compiled/nanoid/index.cjs","../node_modules/react/jsx-runtime.js","../node_modules/react/jsx-dev-runtime.js","../node_modules/next/dist/lib/metadata/get-metadata-route.js","../node_modules/busboy/package.json","../node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js","../node_modules/next/dist/lib/metadata/clone-metadata.js","../node_modules/next/dist/client/components/navigation.js","../node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js","../node_modules/next/dist/lib/metadata/resolvers/resolve-title.js","../node_modules/next/dist/lib/metadata/generate/utils.js","../node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js","../node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js","../node_modules/busboy/lib/index.js","../node_modules/next/dist/lib/metadata/constants.js","../node_modules/next/dist/compiled/string-hash/package.json","../node_modules/next/dist/compiled/superstruct/package.json","../node_modules/next/dist/compiled/bytes/package.json","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react-jsx-dev-runtime.production.min.js","../node_modules/next/dist/compiled/react-is/cjs/react-is.production.min.js","../node_modules/next/dist/compiled/react-is/cjs/react-is.development.js","../node_modules/next/dist/compiled/string-hash/index.js","../node_modules/next/dist/compiled/superstruct/index.cjs","../node_modules/next/dist/compiled/bytes/index.js","../node_modules/next/dist/lib/metadata/is-metadata-route.js","../node_modules/next/dist/shared/lib/hash.js","../node_modules/busboy/lib/utils.js","../node_modules/busboy/lib/types/multipart.js","../node_modules/busboy/lib/types/urlencoded.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/next/dist/client/components/client-hook-in-server-component-error.js","../node_modules/next/dist/client/components/bailout-to-client-rendering.js","../node_modules/next/dist/lib/metadata/resolvers/resolve-url.js","../node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js","../node_modules/scheduler/package.json","../node_modules/streamsearch/package.json","../node_modules/scheduler/index.js","../node_modules/streamsearch/lib/sbmh.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/cjs/scheduler.development.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/amp-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/head-manager-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/html-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/image-config-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/router-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/server-inserted-html.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/app-router-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/hooks-client-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/html-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/image-config-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/router-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/server-inserted-html.js"]}
\ No newline at end of file
diff --git a/client/.next/package.json b/client/.next/package.json
new file mode 100644
index 0000000..7156107
--- /dev/null
+++ b/client/.next/package.json
@@ -0,0 +1 @@
+{"type": "commonjs"}
\ No newline at end of file
diff --git a/client/.next/prerender-manifest.js b/client/.next/prerender-manifest.js
new file mode 100644
index 0000000..23d3bd5
--- /dev/null
+++ b/client/.next/prerender-manifest.js
@@ -0,0 +1 @@
+self.__PRERENDER_MANIFEST="{\"version\":4,\"routes\":{\"/\":{\"experimentalBypassFor\":[{\"type\":\"header\",\"key\":\"Next-Action\"},{\"type\":\"header\",\"key\":\"content-type\",\"value\":\"multipart/form-data\"}],\"initialRevalidateSeconds\":false,\"srcRoute\":\"/\",\"dataRoute\":\"/index.rsc\"},\"/dashboard\":{\"experimentalBypassFor\":[{\"type\":\"header\",\"key\":\"Next-Action\"},{\"type\":\"header\",\"key\":\"content-type\",\"value\":\"multipart/form-data\"}],\"initialRevalidateSeconds\":false,\"srcRoute\":\"/dashboard\",\"dataRoute\":\"/dashboard.rsc\"}},\"dynamicRoutes\":{},\"notFoundRoutes\":[],\"preview\":{\"previewModeId\":\"78a2fa25f8c81bf2028da6c49ffad9f5\",\"previewModeSigningKey\":\"3ac4a158c03d6e7ff756fc11e61da3584a4fe052d832a88da9bdb3186df2e128\",\"previewModeEncryptionKey\":\"3b47c1bfb52812aaa8584045296ef6ca6bd2d92e1acab58e63ee8a76b5380645\"}}"
\ No newline at end of file
diff --git a/client/.next/prerender-manifest.json b/client/.next/prerender-manifest.json
new file mode 100644
index 0000000..7a05136
--- /dev/null
+++ b/client/.next/prerender-manifest.json
@@ -0,0 +1 @@
+{"version":4,"routes":{"/":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data"}],"initialRevalidateSeconds":false,"srcRoute":"/","dataRoute":"/index.rsc"},"/dashboard":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data"}],"initialRevalidateSeconds":false,"srcRoute":"/dashboard","dataRoute":"/dashboard.rsc"}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"78a2fa25f8c81bf2028da6c49ffad9f5","previewModeSigningKey":"3ac4a158c03d6e7ff756fc11e61da3584a4fe052d832a88da9bdb3186df2e128","previewModeEncryptionKey":"3b47c1bfb52812aaa8584045296ef6ca6bd2d92e1acab58e63ee8a76b5380645"}}
\ No newline at end of file
diff --git a/client/.next/react-loadable-manifest.json b/client/.next/react-loadable-manifest.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/client/.next/react-loadable-manifest.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/client/.next/required-server-files.json b/client/.next/required-server-files.json
new file mode 100644
index 0000000..5dd67f2
--- /dev/null
+++ b/client/.next/required-server-files.json
@@ -0,0 +1 @@
+{"version":1,"config":{"env":{},"webpack":null,"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"distDir":".next","cleanDistDir":true,"assetPrefix":"","configOrigin":"next.config.js","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"analyticsId":"","images":{"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":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"inline","remotePatterns":[],"unoptimized":false},"devIndicators":{"buildActivity":true,"buildActivityPosition":"bottom-right"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"optimizeFonts":true,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"httpAgentOptions":{"keepAlive":true},"outputFileTracing":true,"staticPageGenerationTimeout":60,"swcMinify":true,"modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"date-fns":{"transform":"date-fns/{{member}}"},"lodash":{"transform":"lodash/{{member}}"},"lodash-es":{"transform":"lodash-es/{{member}}"},"ramda":{"transform":"ramda/es/{{member}}"},"react-bootstrap":{"transform":{"useAccordionButton":"modularize-import-loader?name=useAccordionButton&from=named&as=default!react-bootstrap/AccordionButton","*":"react-bootstrap/{{member}}"}},"antd":{"transform":"antd/es/{{kebabCase member}}"},"ahooks":{"transform":{"createUpdateEffect":"modularize-import-loader?name=createUpdateEffect&from=named&as=default!ahooks/es/createUpdateEffect","*":"ahooks/es/{{member}}"}},"@ant-design/icons":{"transform":{"IconProvider":"modularize-import-loader?name=IconProvider&from=named&as=default!@ant-design/icons","createFromIconfontCN":"@ant-design/icons/es/components/IconFont","getTwoToneColor":"modularize-import-loader?name=getTwoToneColor&from=named&as=default!@ant-design/icons/es/components/twoTonePrimaryColor","setTwoToneColor":"modularize-import-loader?name=setTwoToneColor&from=named&as=default!@ant-design/icons/es/components/twoTonePrimaryColor","*":"@ant-design/icons/lib/icons/{{member}}"}},"next/server":{"transform":"next/dist/server/web/exports/{{ kebabCase member }}"}},"experimental":{"windowHistorySupport":false,"serverMinification":true,"serverSourceMaps":false,"caseSensitiveRoutes":false,"useDeploymentId":false,"useDeploymentIdServerActions":false,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":15,"memoryBasedWorkersCount":false,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"isrMemoryCacheSize":52428800,"fullySpecified":false,"outputFileTracingRoot":"/home/marti/Documentos/Gitea/resistencia/client","swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"adjustFontFallbacks":false,"adjustFontFallbacksWithSizeAdjust":false,"typedRoutes":false,"instrumentationHook":false,"bundlePagesExternals":false,"ppr":false,"optimizePackageImports":["lucide-react","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"configFileName":"next.config.js"},"appDir":"/home/marti/Documentos/Gitea/resistencia/client","relativeAppDir":"","files":[".next/routes-manifest.json",".next/server/pages-manifest.json",".next/build-manifest.json",".next/prerender-manifest.json",".next/prerender-manifest.js",".next/server/middleware-manifest.json",".next/server/middleware-build-manifest.js",".next/server/middleware-react-loadable-manifest.js",".next/server/app-paths-manifest.json",".next/app-path-routes-manifest.json",".next/app-build-manifest.json",".next/server/server-reference-manifest.js",".next/server/server-reference-manifest.json",".next/react-loadable-manifest.json",".next/server/font-manifest.json",".next/BUILD_ID",".next/server/next-font-manifest.js",".next/server/next-font-manifest.json"],"ignore":["node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/**/*"]}
\ No newline at end of file
diff --git a/client/.next/routes-manifest.json b/client/.next/routes-manifest.json
new file mode 100644
index 0000000..ddeb6f9
--- /dev/null
+++ b/client/.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":"/","regex":"^/(?:/)?$","routeKeys":{},"namedRegex":"^/(?:/)?$"},{"page":"/_not-found","regex":"^/_not\\-found(?:/)?$","routeKeys":{},"namedRegex":"^/_not\\-found(?:/)?$"},{"page":"/dashboard","regex":"^/dashboard(?:/)?$","routeKeys":{},"namedRegex":"^/dashboard(?:/)?$"}],"dataRoutes":[],"rsc":{"header":"RSC","varyHeader":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Url","prefetchHeader":"Next-Router-Prefetch","didPostponeHeader":"x-nextjs-postponed","contentTypeHeader":"text/x-component","suffix":".rsc","prefetchSuffix":".prefetch.rsc"},"rewrites":[]}
\ No newline at end of file
diff --git a/client/.next/server/app-paths-manifest.json b/client/.next/server/app-paths-manifest.json
new file mode 100644
index 0000000..9bb9754
--- /dev/null
+++ b/client/.next/server/app-paths-manifest.json
@@ -0,0 +1,5 @@
+{
+ "/not-found": "app/not-found.js",
+ "/dashboard/page": "app/dashboard/page.js",
+ "/page": "app/page.js"
+}
\ No newline at end of file
diff --git a/client/.next/server/app/_not-found.html b/client/.next/server/app/_not-found.html
new file mode 100644
index 0000000..6a1b206
--- /dev/null
+++ b/client/.next/server/app/_not-found.html
@@ -0,0 +1 @@
+
404: This page could not be found. Francia Ocupada: WWII 404
This page could not be found.
\ No newline at end of file
diff --git a/client/.next/server/app/_not-found.js b/client/.next/server/app/_not-found.js
new file mode 100644
index 0000000..19acf14
--- /dev/null
+++ b/client/.next/server/app/_not-found.js
@@ -0,0 +1 @@
+(()=>{var e={};e.id=165,e.ids=[165],e.modules={2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},5403:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},4749:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},7632:(e,t,n)=>{"use strict";n.r(t),n.d(t,{GlobalError:()=>i.a,__next_app__:()=>p,originalPathname:()=>c,pages:()=>u,routeModule:()=>m,tree:()=>d});var r=n(7096),s=n(6132),o=n(7284),i=n.n(o),a=n(2564),l={};for(let e in a)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>a[e]);n.d(t,l);let d=["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(n.t.bind(n,9291,23)),"next/dist/client/components/not-found-error"]}]},{layout:[()=>Promise.resolve().then(n.bind(n,9113)),"/home/marti/Documentos/Gitea/resistencia/client/src/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(n.t.bind(n,9291,23)),"next/dist/client/components/not-found-error"]}],u=[],c="/_not-found",p={require:n,loadChunk:()=>Promise.resolve()},m=new r.AppPageRouteModule({definition:{kind:s.x.APP_PAGE,page:"/_not-found",pathname:"/_not-found",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},4326:(e,t,n)=>{Promise.resolve().then(n.t.bind(n,3579,23)),Promise.resolve().then(n.t.bind(n,619,23)),Promise.resolve().then(n.t.bind(n,1459,23)),Promise.resolve().then(n.t.bind(n,3456,23)),Promise.resolve().then(n.t.bind(n,847,23)),Promise.resolve().then(n.t.bind(n,7303,23))},7745:()=>{},9113:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,metadata:()=>i});var r=n(4656),s=n(177),o=n.n(s);n(5023);let i={title:"Francia Ocupada: WWII",description:"Juego de deducci\xf3n social ambientado en la Segunda Guerra Mundial"};function a({children:e}){return r.jsx("html",{lang:"es",children:r.jsx("body",{className:o().className,children:e})})}},5023:()=>{}};var t=require("../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[673],()=>n(7632));module.exports=r})();
\ No newline at end of file
diff --git a/client/.next/server/app/_not-found.js.nft.json b/client/.next/server/app/_not-found.js.nft.json
new file mode 100644
index 0000000..565c026
--- /dev/null
+++ b/client/.next/server/app/_not-found.js.nft.json
@@ -0,0 +1 @@
+{"version":1,"files":["../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.cjs.dev.js","../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.cjs.js","../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.cjs.prod.js","../../../node_modules/@emotion/is-prop-valid/package.json","../../../node_modules/@emotion/memoize/dist/memoize.cjs.dev.js","../../../node_modules/@emotion/memoize/dist/memoize.cjs.js","../../../node_modules/@emotion/memoize/dist/memoize.cjs.prod.js","../../../node_modules/@emotion/memoize/package.json","../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../node_modules/next/dist/client/components/async-local-storage.js","../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/package.json","../../package.json","../chunks/316.js","../chunks/673.js","../chunks/687.js","../chunks/font-manifest.json","../webpack-runtime.js","_not-found_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/client/.next/server/app/_not-found.meta b/client/.next/server/app/_not-found.meta
new file mode 100644
index 0000000..fc1dcd9
--- /dev/null
+++ b/client/.next/server/app/_not-found.meta
@@ -0,0 +1,5 @@
+{
+ "headers": {
+ "x-next-cache-tags": "_N_T_/layout,_N_T_/_not-found/layout,_N_T_/_not-found"
+ }
+}
\ No newline at end of file
diff --git a/client/.next/server/app/_not-found.rsc b/client/.next/server/app/_not-found.rsc
new file mode 100644
index 0000000..59c4b2d
--- /dev/null
+++ b/client/.next/server/app/_not-found.rsc
@@ -0,0 +1,12 @@
+1:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
+2:HL["/_next/static/css/5bcff5e654940d99.css","style",{"crossOrigin":""}]
+0:["Q-zfVzSkdLG_GvHabv8Ax",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L3",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/5bcff5e654940d99.css","precedence":"next","crossOrigin":""}]],"$L4"]]]]
+5:I[6954,[],""]
+6:I[7264,[],""]
+8:{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"}
+9:{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"}
+a:{"display":"inline-block"}
+b:{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0}
+3:[null,["$","html",null,{"lang":"es","children":["$","body",null,{"className":"__className_f367f3","children":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","loadingScripts":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"initialChildNode":["$L7",[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$8","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$9","children":"404"}],["$","div",null,{"style":"$a","children":["$","h2",null,{"style":"$b","children":"This page could not be found."}]}]]}]}]],null],"childPropSegment":"__PAGE__","styles":null}]}]}],null]
+4:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Francia Ocupada: WWII"}],["$","meta","3",{"name":"description","content":"Juego de deducción social ambientado en la Segunda Guerra Mundial"}],["$","meta","4",{"name":"next-size-adjust"}]]
+7:null
diff --git a/client/.next/server/app/_not-found_client-reference-manifest.js b/client/.next/server/app/_not-found_client-reference-manifest.js
new file mode 100644
index 0000000..66de942
--- /dev/null
+++ b/client/.next/server/app/_not-found_client-reference-manifest.js
@@ -0,0 +1 @@
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(ssr)/./src/app/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/app/client/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":"(app-pages-browser)/./node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/app/client/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/app/client/src/app/page.tsx":{"id":"(app-pages-browser)/./src/app/page.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false}},"entryCSSFiles":{"/app/client/src/app/layout":["static/css/app/layout.css"],"/app/client/src/app/page":[],"/app/client/src/app/not-found":[]}}
\ No newline at end of file
diff --git a/client/.next/server/app/dashboard.html b/client/.next/server/app/dashboard.html
new file mode 100644
index 0000000..820b3c3
--- /dev/null
+++ b/client/.next/server/app/dashboard.html
@@ -0,0 +1 @@
+Francia Ocupada: WWII
Acceso Admin Panel de Control de La Resistencia
\ No newline at end of file
diff --git a/client/.next/server/app/dashboard.meta b/client/.next/server/app/dashboard.meta
new file mode 100644
index 0000000..1e4d246
--- /dev/null
+++ b/client/.next/server/app/dashboard.meta
@@ -0,0 +1,5 @@
+{
+ "headers": {
+ "x-next-cache-tags": "_N_T_/layout,_N_T_/dashboard/layout,_N_T_/dashboard/page,_N_T_/dashboard"
+ }
+}
\ No newline at end of file
diff --git a/client/.next/server/app/dashboard.rsc b/client/.next/server/app/dashboard.rsc
new file mode 100644
index 0000000..e61ad69
--- /dev/null
+++ b/client/.next/server/app/dashboard.rsc
@@ -0,0 +1,10 @@
+1:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
+2:HL["/_next/static/css/5bcff5e654940d99.css","style",{"crossOrigin":""}]
+0:["Q-zfVzSkdLG_GvHabv8Ax",[[["",{"children":["dashboard",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L3",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/5bcff5e654940d99.css","precedence":"next","crossOrigin":""}]],"$L4"]]]]
+5:I[6954,[],""]
+6:I[7264,[],""]
+8:I[8297,[],""]
+9:I[6086,["59","static/chunks/59-20c16c1e6a3d3cb9.js","871","static/chunks/871-1cc055b4fcdd50d7.js","702","static/chunks/app/dashboard/page-cb159b23d35dbb02.js"],""]
+3:[null,["$","html",null,{"lang":"es","children":["$","body",null,{"className":"__className_f367f3","children":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","loadingScripts":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"initialChildNode":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"loading":"$undefined","loadingStyles":"$undefined","loadingScripts":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","initialChildNode":["$L7",["$","$L8",null,{"propsForComponent":{"params":{}},"Component":"$9","isStaticGeneration":true}],null],"childPropSegment":"__PAGE__","styles":null}],"childPropSegment":"dashboard","styles":null}]}]}],null]
+4:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Francia Ocupada: WWII"}],["$","meta","3",{"name":"description","content":"Juego de deducción social ambientado en la Segunda Guerra Mundial"}],["$","meta","4",{"name":"next-size-adjust"}]]
+7:null
diff --git a/client/.next/server/app/dashboard/page.js b/client/.next/server/app/dashboard/page.js
new file mode 100644
index 0000000..8b66696
--- /dev/null
+++ b/client/.next/server/app/dashboard/page.js
@@ -0,0 +1,390 @@
+/*
+ * ATTENTION: An "eval-source-map" devtool has been used.
+ * This devtool is neither made for production nor for readable output files.
+ * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
+ * or disable the default devtool with "devtool: false".
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
+ */
+(() => {
+var exports = {};
+exports.id = "app/dashboard/page";
+exports.ids = ["app/dashboard/page"];
+exports.modules = {
+
+/***/ "../../client/components/action-async-storage.external":
+/*!*******************************************************************************!*\
+ !*** external "next/dist/client/components/action-async-storage.external.js" ***!
+ \*******************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/action-async-storage.external.js");
+
+/***/ }),
+
+/***/ "./request-async-storage.external":
+/*!*****************************************************************************!*\
+ !*** external "next/dist/client/components/request-async-storage.external" ***!
+ \*****************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/request-async-storage.external");
+
+/***/ }),
+
+/***/ "../../client/components/request-async-storage.external":
+/*!********************************************************************************!*\
+ !*** external "next/dist/client/components/request-async-storage.external.js" ***!
+ \********************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/request-async-storage.external.js");
+
+/***/ }),
+
+/***/ "./static-generation-async-storage.external":
+/*!***************************************************************************************!*\
+ !*** external "next/dist/client/components/static-generation-async-storage.external" ***!
+ \***************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/static-generation-async-storage.external");
+
+/***/ }),
+
+/***/ "../../client/components/static-generation-async-storage.external":
+/*!******************************************************************************************!*\
+ !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
+ \******************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
+
+/***/ }),
+
+/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
+/*!*************************************************************************!*\
+ !*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
+ \*************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");
+
+/***/ }),
+
+/***/ "buffer":
+/*!*************************!*\
+ !*** external "buffer" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("buffer");
+
+/***/ }),
+
+/***/ "child_process":
+/*!********************************!*\
+ !*** external "child_process" ***!
+ \********************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("child_process");
+
+/***/ }),
+
+/***/ "crypto":
+/*!*************************!*\
+ !*** external "crypto" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("crypto");
+
+/***/ }),
+
+/***/ "events":
+/*!*************************!*\
+ !*** external "events" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("events");
+
+/***/ }),
+
+/***/ "fs":
+/*!*********************!*\
+ !*** external "fs" ***!
+ \*********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("fs");
+
+/***/ }),
+
+/***/ "http":
+/*!***********************!*\
+ !*** external "http" ***!
+ \***********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("http");
+
+/***/ }),
+
+/***/ "https":
+/*!************************!*\
+ !*** external "https" ***!
+ \************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("https");
+
+/***/ }),
+
+/***/ "net":
+/*!**********************!*\
+ !*** external "net" ***!
+ \**********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("net");
+
+/***/ }),
+
+/***/ "os":
+/*!*********************!*\
+ !*** external "os" ***!
+ \*********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("os");
+
+/***/ }),
+
+/***/ "stream":
+/*!*************************!*\
+ !*** external "stream" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("stream");
+
+/***/ }),
+
+/***/ "tls":
+/*!**********************!*\
+ !*** external "tls" ***!
+ \**********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("tls");
+
+/***/ }),
+
+/***/ "tty":
+/*!**********************!*\
+ !*** external "tty" ***!
+ \**********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("tty");
+
+/***/ }),
+
+/***/ "url":
+/*!**********************!*\
+ !*** external "url" ***!
+ \**********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("url");
+
+/***/ }),
+
+/***/ "util":
+/*!***********************!*\
+ !*** external "util" ***!
+ \***********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("util");
+
+/***/ }),
+
+/***/ "zlib":
+/*!***********************!*\
+ !*** external "zlib" ***!
+ \***********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("zlib");
+
+/***/ }),
+
+/***/ "?32c4":
+/*!****************************!*\
+ !*** bufferutil (ignored) ***!
+ \****************************/
+/***/ (() => {
+
+/* (ignored) */
+
+/***/ }),
+
+/***/ "?66e9":
+/*!********************************!*\
+ !*** utf-8-validate (ignored) ***!
+ \********************************/
+/***/ (() => {
+
+/* (ignored) */
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fpage&page=%2Fdashboard%2Fpage&appPaths=%2Fdashboard%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fpage.tsx&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
+/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fpage&page=%2Fdashboard%2Fpage&appPaths=%2Fdashboard%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fpage.tsx&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
+ \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?5bc9\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: [\n 'dashboard',\n {\n children: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/dashboard/page.tsx */ \"(rsc)/./src/app/dashboard/page.tsx\")), \"/app/client/src/app/dashboard/page.tsx\"],\n \n }]\n },\n {\n \n \n }\n ]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\")), \"/app/client/src/app/layout.tsx\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n \n }\n ]\n }.children;\nconst pages = [\"/app/client/src/app/dashboard/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/dashboard/page\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/dashboard/page\",\n pathname: \"/dashboard\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZkYXNoYm9hcmQlMkZwYWdlJnBhZ2U9JTJGZGFzaGJvYXJkJTJGcGFnZSZhcHBQYXRocz0lMkZkYXNoYm9hcmQlMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGZGFzaGJvYXJkJTJGcGFnZS50c3gmYXBwRGlyPSUyRmFwcCUyRmNsaWVudCUyRnNyYyUyRmFwcCZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzJnJvb3REaXI9JTJGYXBwJTJGY2xpZW50JmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsYUFBYSxzQkFBc0I7QUFDaUU7QUFDckM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDLHVCQUF1QixvS0FBMkU7QUFDbEc7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSx5QkFBeUIsb0pBQW1FO0FBQzVGLG9CQUFvQiwwTkFBZ0Y7QUFDcEc7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ3VCO0FBQzZEO0FBQ3BGLDZCQUE2QixtQkFBbUI7QUFDaEQ7QUFDTztBQUNBO0FBQ1A7QUFDQTtBQUNBO0FBQ3VEO0FBQ3ZEO0FBQ08sd0JBQXdCLDhHQUFrQjtBQUNqRDtBQUNBLGNBQWMseUVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9yZXNpc3RlbmNpYS1jbGllbnQvP2JkYjUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJUVVJCT1BBQ0sgeyB0cmFuc2l0aW9uOiBuZXh0LXNzciB9XCI7XG5pbXBvcnQgeyBBcHBQYWdlUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuY29tcGlsZWRcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kXCI7XG4vLyBXZSBpbmplY3QgdGhlIHRyZWUgYW5kIHBhZ2VzIGhlcmUgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZW0gaW4gdGhlIHJvdXRlXG4vLyBtb2R1bGUuXG5jb25zdCB0cmVlID0ge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAnJyxcbiAgICAgICAge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAnZGFzaGJvYXJkJyxcbiAgICAgICAge1xuICAgICAgICBjaGlsZHJlbjogWydfX1BBR0VfXycsIHt9LCB7XG4gICAgICAgICAgcGFnZTogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvc3JjL2FwcC9kYXNoYm9hcmQvcGFnZS50c3hcIiksIFwiL2FwcC9jbGllbnQvc3JjL2FwcC9kYXNoYm9hcmQvcGFnZS50c3hcIl0sXG4gICAgICAgICAgXG4gICAgICAgIH1dXG4gICAgICB9LFxuICAgICAgICB7XG4gICAgICAgIFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgJ2xheW91dCc6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9hcHAvY2xpZW50L3NyYy9hcHAvbGF5b3V0LnRzeFwiKSwgXCIvYXBwL2NsaWVudC9zcmMvYXBwL2xheW91dC50c3hcIl0sXG4nbm90LWZvdW5kJzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiKSwgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCJdLFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtcIi9hcHAvY2xpZW50L3NyYy9hcHAvZGFzaGJvYXJkL3BhZ2UudHN4XCJdO1xuZXhwb3J0IHsgdHJlZSwgcGFnZXMgfTtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmFsRXJyb3IgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCI7XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBvcmlnaW5hbFBhdGhuYW1lID0gXCIvZGFzaGJvYXJkL3BhZ2VcIjtcbmV4cG9ydCBjb25zdCBfX25leHRfYXBwX18gPSB7XG4gICAgcmVxdWlyZTogX19uZXh0X2FwcF9yZXF1aXJlX18sXG4gICAgbG9hZENodW5rOiBfX25leHRfYXBwX2xvYWRfY2h1bmtfX1xufTtcbmV4cG9ydCAqIGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvZW50cnktYmFzZVwiO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUGFnZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgcGFnZTogXCIvZGFzaGJvYXJkL3BhZ2VcIixcbiAgICAgICAgcGF0aG5hbWU6IFwiL2Rhc2hib2FyZFwiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcIlwiLFxuICAgICAgICBhcHBQYXRoczogW11cbiAgICB9LFxuICAgIHVzZXJsYW5kOiB7XG4gICAgICAgIGxvYWRlclRyZWU6IHRyZWVcbiAgICB9XG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXBhZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fpage&page=%2Fdashboard%2Fpage&appPaths=%2Fdashboard%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fpage.tsx&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!":
+/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true! ***!
+ \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGYXBwJTJGY2xpZW50JTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGYXBwLXJvdXRlci5qcyZtb2R1bGVzPSUyRmFwcCUyRmNsaWVudCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmVycm9yLWJvdW5kYXJ5LmpzJm1vZHVsZXM9JTJGYXBwJTJGY2xpZW50JTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyZtb2R1bGVzPSUyRmFwcCUyRmNsaWVudCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRm5vdC1mb3VuZC1ib3VuZGFyeS5qcyZtb2R1bGVzPSUyRmFwcCUyRmNsaWVudCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRnJlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMmbW9kdWxlcz0lMkZhcHAlMkZjbGllbnQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZzdGF0aWMtZ2VuZXJhdGlvbi1zZWFyY2hwYXJhbXMtYmFpbG91dC1wcm92aWRlci5qcyZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQXVHO0FBQ3ZHLDBPQUEyRztBQUMzRyx3T0FBMEc7QUFDMUcsa1BBQStHO0FBQy9HLHNRQUF5SDtBQUN6SCIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8/YzA0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9hcHAvY2xpZW50L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeS5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvYXBwL2NsaWVudC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1ib3VuZGFyeS5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvYXBwL2NsaWVudC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLXNlYXJjaHBhcmFtcy1iYWlsb3V0LXByb3ZpZGVyLmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fglobals.css&server=true!":
+/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fglobals.css&server=true! ***!
+ \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ (() => {
+
+
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fdashboard%2Fpage.tsx&server=true!":
+/*!*****************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fdashboard%2Fpage.tsx&server=true! ***!
+ \*****************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/dashboard/page.tsx */ \"(ssr)/./src/app/dashboard/page.tsx\"))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGYXBwJTJGY2xpZW50JTJGc3JjJTJGYXBwJTJGZGFzaGJvYXJkJTJGcGFnZS50c3gmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Lz80YjNhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvc3JjL2FwcC9kYXNoYm9hcmQvcGFnZS50c3hcIikiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fdashboard%2Fpage.tsx&server=true!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/app/dashboard/page.tsx":
+/*!************************************!*\
+ !*** ./src/app/dashboard/page.tsx ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Dashboard)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-jsx/style */ \"(ssr)/./node_modules/styled-jsx/style.js\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/motion.mjs\");\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\");\n/* harmony import */ var _hooks_useSocket__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../hooks/useSocket */ \"(ssr)/./src/hooks/useSocket.ts\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/gamepad-2.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/users.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/history.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/shield.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/key.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/log-out.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/user-minus.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\nconst ADMIN_PASSWORD = \"admin123\";\nfunction Dashboard() {\n const { socket, isConnected } = (0,_hooks_useSocket__WEBPACK_IMPORTED_MODULE_3__.useSocket)();\n const [password, setPassword] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n const [isAuthenticated, setIsAuthenticated] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [activeGames, setActiveGames] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([]);\n const [gameHistory, setGameHistory] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([]);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{\n const savedSession = false ? 0 : null;\n if (savedSession === \"active\") {\n setIsAuthenticated(true);\n }\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{\n if (isAuthenticated && socket) {\n socket.emit(\"admin_get_data\");\n const handleAdminData = (data)=>{\n setActiveGames(data.activeGames);\n setGameHistory(data.history);\n };\n const handleSuccess = ()=>{\n socket.emit(\"admin_get_data\");\n };\n socket.on(\"admin_data\", handleAdminData);\n socket.on(\"admin_action_success\", handleSuccess);\n return ()=>{\n socket.off(\"admin_data\", handleAdminData);\n socket.off(\"admin_action_success\", handleSuccess);\n };\n }\n }, [\n isAuthenticated,\n socket\n ]);\n const handleLogin = (e)=>{\n e.preventDefault();\n if (password === ADMIN_PASSWORD) {\n setIsAuthenticated(true);\n localStorage.setItem(\"resistencia_admin_session\", \"active\");\n setError(\"\");\n } else {\n setError(\"Acceso Denegado: Contrase\\xf1a incorrecta\");\n }\n };\n const handleLogout = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(()=>{\n localStorage.removeItem(\"resistencia_admin_session\");\n setIsAuthenticated(false);\n setPassword(\"\");\n }, []);\n const closeGame = (roomId)=>{\n if (false) {}\n };\n const kickPlayer = (roomId, socketId)=>{\n if (false) {}\n };\n const stats = [\n {\n label: \"Partidas Activas\",\n value: activeGames.length,\n color: \"text-red-500\",\n icon: _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n {\n label: \"Agentes Online\",\n value: activeGames.reduce((acc, g)=>acc + g.currentPlayers, 0),\n color: \"text-blue-400\",\n icon: _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n },\n {\n label: \"Misiones Registradas\",\n value: gameHistory.length,\n color: \"text-orange-400\",\n icon: _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n },\n {\n label: \"Estado\",\n value: isConnected ? \"100%\" : \"0%\",\n color: \"text-green-400\",\n icon: _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n }\n ];\n if (!isAuthenticated) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-[#0a0a0c] flex items-center justify-center p-4 font-['Inter',sans-serif]\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.95\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n className: \"bg-[#121216] border border-white/10 p-10 rounded-3xl w-full max-w-md shadow-[0_20px_50px_rgba(0,0,0,0.5)] relative overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-red-600 via-zinc-800 to-red-600\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 122,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center mb-8 relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-red-500/20 blur-2xl rounded-full\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 125,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n size: 64,\n className: \"text-red-500 relative z-10\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 126,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 124,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-3xl font-black text-white text-center mb-2 uppercase tracking-tight\",\n children: \"Acceso Admin\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 129,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-400 text-center text-sm mb-10 font-medium\",\n children: \"Panel de Control de La Resistencia\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 130,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleLogin,\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n size: 18,\n className: \"absolute left-4 top-1/2 -translate-y-1/2 text-gray-500\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 134,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"password\",\n autoFocus: true,\n value: password,\n onChange: (e)=>setPassword(e.target.value),\n placeholder: \"Introduce la contrase\\xf1a\",\n className: \"w-full bg-[#1a1a20] border border-white/5 rounded-2xl pl-12 pr-6 py-4 text-white focus:outline-none focus:ring-2 focus:ring-red-600/50 transition-all placeholder:text-gray-600 font-medium\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 135,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 133,\n columnNumber: 25\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.p, {\n initial: {\n opacity: 0,\n y: -10\n },\n animate: {\n opacity: 1,\n y: 0\n },\n className: \"text-red-500 text-xs font-bold text-center mt-2 flex items-center justify-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"w-1.5 h-1.5 bg-red-500 rounded-full animate-pulse\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 151,\n columnNumber: 33\n }, this),\n error\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 146,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"w-full bg-red-600 hover:bg-red-500 text-white font-black py-4 rounded-2xl shadow-xl shadow-red-600/10 transition-all uppercase tracking-[0.2em] text-xs hover:scale-[1.02] active:scale-[0.98]\",\n children: \"Entrar en Sistema\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 156,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 132,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 117,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 116,\n columnNumber: 13\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"min-h-screen bg-[#0a0a0c] text-white p-4 md:p-10 font-['Inter',sans-serif]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"max-w-7xl mx-auto flex flex-col md:flex-row justify-between items-start md:items-center mb-12 gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-3 text-red-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"p-2 bg-red-500/10 rounded-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n size: 22\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 175,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 174,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[10px] font-black uppercase tracking-[0.4em] opacity-80\",\n children: \"Seguimiento de Operaciones\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 177,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 173,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-5xl font-black tracking-tighter uppercase italic text-transparent bg-clip-text bg-gradient-to-r from-white via-white to-gray-500\",\n children: \"Comandante\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 179,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 172,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-6 bg-[#121216] border border-white/10 px-8 py-4 rounded-3xl shadow-xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex flex-col items-end\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[10px] text-gray-500 uppercase font-black tracking-widest mb-1\",\n children: \"Status Servidor\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 184,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + `w-2.5 h-2.5 rounded-full ${isConnected ? \"bg-green-500 shadow-[0_0_15px_rgba(34,197,94,0.6)] animate-pulse\" : \"bg-red-500\"}`\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 186,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-xs font-mono font-black tracking-widest\",\n children: isConnected ? \"OPERATIVO\" : \"DESCONECTADO\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 187,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 185,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 183,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"w-px h-8 bg-white/10 mx-2\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 191,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleLogout,\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-2 px-5 py-2.5 bg-zinc-800 hover:bg-red-600 text-gray-300 hover:text-white rounded-xl transition-all font-black text-[10px] uppercase tracking-widest group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n size: 16,\n className: \"group-hover:translate-x-1 transition-transform\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 197,\n columnNumber: 25\n }, this),\n \"Desconectar\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 193,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 182,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 171,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-12 gap-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"lg:col-span-12 grid grid-cols-2 md:grid-cols-4 gap-4 mb-2\",\n children: stats.map((stat, i)=>{\n const Icon = stat.icon;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"bg-[#121216] border border-white/5 p-6 rounded-2xl flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[10px] uppercase font-black tracking-widest text-gray-500 mb-1\",\n children: stat.label\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 212,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + `text-2xl font-black ${stat.color}`,\n children: stat.value\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 213,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 211,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n size: 32,\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"opacity-10\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 215,\n columnNumber: 33\n }, this)\n ]\n }, i, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 210,\n columnNumber: 29\n }, this);\n })\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 206,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"lg:col-span-8 space-y-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-4 mb-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-xl font-black text-white uppercase tracking-tighter italic border-l-4 border-red-600 pl-4\",\n children: \"Canales de Radio Activos\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 225,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 224,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"grid gap-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_12__.AnimatePresence, {\n mode: \"popLayout\",\n children: activeGames.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n className: \"bg-[#121216]/40 border border-dashed border-white/10 rounded-3xl p-20 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n size: 48,\n className: \"mx-auto mb-6 text-gray-700\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 237,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-lg font-bold text-gray-600 uppercase tracking-widest\",\n children: \"Silencio Radioel\\xe9ctrico\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 238,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-xs text-gray-700 font-medium\",\n children: \"Buscando se\\xf1ales de misiones activas...\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 239,\n columnNumber: 41\n }, this)\n ]\n }, \"empty-state\", true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 231,\n columnNumber: 37\n }, this) : activeGames.map((game)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n layout: true,\n initial: {\n opacity: 0,\n x: -20\n },\n animate: {\n opacity: 1,\n x: 0\n },\n exit: {\n opacity: 0,\n scale: 0.95\n },\n className: \"bg-[#121216] border border-white/10 rounded-3xl p-8 hover:bg-[#16161c] transition-all group shadow-xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex flex-col md:flex-row justify-between items-start md:items-center gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-3 mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-2xl font-black text-white italic uppercase tracking-tighter leading-none\",\n children: game.name\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 254,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[10px] font-bold px-2 py-0.5 bg-red-500/10 text-red-500 rounded border border-red-500/20\",\n children: game.status\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 255,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 253,\n columnNumber: 53\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-4 text-[10px] uppercase font-black tracking-widest text-gray-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n size: 12,\n className: \"text-red-500\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 259,\n columnNumber: 61\n }, this),\n game.currentPlayers,\n \" / \",\n game.maxPlayers,\n \" Agentes Movilizados\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 258,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-gray-800\",\n children: \"|\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 262,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: [\n \"ID: \",\n game.id.slice(0, 8)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 263,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 257,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 252,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>closeGame(game.id),\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"px-6 py-3 bg-zinc-900 hover:bg-red-600 text-gray-400 hover:text-white rounded-2xl text-[10px] font-black uppercase tracking-[0.2em] transition-all border border-white/5 active:scale-95 whitespace-nowrap\",\n children: \"Abortar Misi\\xf3n\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 267,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 251,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"mt-8 pt-8 border-t border-white/5\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4\",\n children: game.players.map((player)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"bg-black/40 p-4 rounded-2xl border border-white/5 flex items-center justify-between group/player hover:border-red-500/30 transition-all\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"w-10 h-10 rounded-xl bg-white/5 flex items-center justify-center font-black text-red-500 border border-white/5 group-hover/player:bg-red-500 group-hover/player:text-white transition-all\",\n children: player.name[0].toUpperCase()\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 281,\n columnNumber: 65\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-sm font-black text-white leading-none mb-1\",\n children: player.name\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 285,\n columnNumber: 69\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[9px] opacity-30 font-mono italic\",\n children: [\n \"AG-\",\n player.id.slice(0, 4)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 286,\n columnNumber: 69\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 284,\n columnNumber: 65\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 280,\n columnNumber: 61\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>kickPlayer(game.id, player.id),\n title: \"Expulsar de la zona\",\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"p-2.5 text-gray-700 hover:text-red-500 hover:bg-red-500/10 rounded-xl transition-all opacity-0 group-hover/player:opacity-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n size: 18\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 294,\n columnNumber: 65\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 289,\n columnNumber: 61\n }, this)\n ]\n }, player.id, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 279,\n columnNumber: 57\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 277,\n columnNumber: 49\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 276,\n columnNumber: 45\n }, this)\n ]\n }, game.id, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 243,\n columnNumber: 41\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 229,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 228,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 223,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 222,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"lg:col-span-4 space-y-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"sticky top-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-4 mb-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-xl font-black text-white uppercase tracking-tighter italic border-l-4 border-gray-600 pl-4\",\n children: \"Informe Forense\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 312,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 311,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"bg-[#121216] border border-white/10 rounded-3xl overflow-hidden shadow-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"p-6 bg-white/5 border-b border-white/5\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[10px] uppercase font-black tracking-widest text-gray-400\",\n children: \"\\xdaltimos Informes Desclasificados\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 317,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 316,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"max-h-[60vh] overflow-y-auto custom-scrollbar p-6 space-y-6\",\n children: gameHistory.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-center py-20 opacity-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n size: 40,\n className: \"mx-auto mb-4\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 323,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-xs italic font-bold\",\n children: \"Sin archivos registrados\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 324,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 322,\n columnNumber: 37\n }, this) : gameHistory.map((entry)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n className: \"group relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex justify-between items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-sm font-black text-gray-200 uppercase tracking-tight group-hover:text-white transition-colors leading-none mb-1\",\n children: entry.room_name\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 336,\n columnNumber: 53\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-2 text-[9px] text-gray-600 font-bold uppercase tracking-widest\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: entry.host_name\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 338,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: \"•\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 339,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: new Date(entry.created_at).toLocaleDateString()\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 340,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 337,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 335,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + `text-[9px] font-black uppercase px-2 py-1 rounded shadow-sm ${entry.winner === \"resistance\" ? \"bg-green-500/20 text-green-500\" : entry.winner === \"spies\" ? \"bg-red-500/20 text-red-500\" : \"bg-gray-700/20 text-gray-500\"}`,\n children: entry.winner ? entry.winner === \"resistance\" ? \"RES\" : \"SPIES\" : \"LOGOUT\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 343,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 334,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"mt-2 flex items-center gap-3 text-[9px] opacity-40 group-hover:opacity-60 transition-opacity\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-1 font-mono\",\n children: [\n entry.players.split(\",\").length,\n \" Agtes\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 350,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"w-1 h-1 bg-white/20 rounded-full\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 351,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: new Date(entry.created_at).toLocaleTimeString()\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 352,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 349,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"absolute -left-6 top-1.5 w-1 h-0 group-hover:h-3 bg-red-600 transition-all rounded-full\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 354,\n columnNumber: 45\n }, this)\n ]\n }, entry.id, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 328,\n columnNumber: 41\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 320,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"p-6 bg-white/5 border-t border-white/5\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[9px] font-bold text-center text-gray-600 uppercase tracking-widest\",\n children: \"Fin del Informe Forense\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 361,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 360,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 315,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 310,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 309,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 203,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"fdcac8fe30296e2f\",\n children: '@import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700;900&display=swap\");body{background-color:#0a0a0c;cursor:crosshair}.custom-scrollbar::-webkit-scrollbar{width:3px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.05);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.1)}'\n }, void 0, false, void 0, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 169,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QU0sSUFBSThCLEtBQUtKLE1BQU1LLFVBQVUsRUFBRUksa0JBQWtCOzs7Ozs7Ozs7Ozs7c0VBRXhELDhEQUFDckQ7c0dBQWM7Ozs7Ozs7bURBdkJWNEMsTUFBTU4sRUFBRTs7Ozs7Ozs7OztzREE2QjdCLDhEQUFDdEM7c0ZBQWM7c0RBQ1gsNEVBQUNROzBGQUFZOzBEQUEyRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUErQnhIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Ly4vc3JjL2FwcC9kYXNoYm9hcmQvcGFnZS50c3g/YzE1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgbW90aW9uLCBBbmltYXRlUHJlc2VuY2UgfSBmcm9tICdmcmFtZXItbW90aW9uJztcbmltcG9ydCB7IHVzZVNvY2tldCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNvY2tldCc7XG5pbXBvcnQgeyBTaGllbGQsIFVzZXJzLCBHYW1lcGFkMiwgTG9nT3V0LCBDbG9jaywgSGlzdG9yeSwgVXNlck1pbnVzLCBLZXksIEx1Y2lkZUljb24gfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuXG5jb25zdCBBRE1JTl9QQVNTV09SRCA9IFwiYWRtaW4xMjNcIjtcblxuaW50ZXJmYWNlIEFkbWluUGxheWVyRGF0YSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBBZG1pbkdhbWVEYXRhIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzdGF0dXM6IHN0cmluZztcbiAgICBjdXJyZW50UGxheWVyczogbnVtYmVyO1xuICAgIG1heFBsYXllcnM6IG51bWJlcjtcbiAgICBwbGF5ZXJzOiBBZG1pblBsYXllckRhdGFbXTtcbn1cblxuaW50ZXJmYWNlIEdhbWVIaXN0b3J5RW50cnkge1xuICAgIGlkOiBudW1iZXI7XG4gICAgcm9vbV9uYW1lOiBzdHJpbmc7XG4gICAgaG9zdF9uYW1lOiBzdHJpbmc7XG4gICAgcGxheWVyczogc3RyaW5nO1xuICAgIHdpbm5lcjogc3RyaW5nIHwgbnVsbDtcbiAgICBjcmVhdGVkX2F0OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTdGF0SXRlbSB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGNvbG9yOiBzdHJpbmc7XG4gICAgaWNvbjogTHVjaWRlSWNvbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRGFzaGJvYXJkKCkge1xuICAgIGNvbnN0IHsgc29ja2V0LCBpc0Nvbm5lY3RlZCB9ID0gdXNlU29ja2V0KCk7XG4gICAgY29uc3QgW3Bhc3N3b3JkLCBzZXRQYXNzd29yZF0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgW2lzQXV0aGVudGljYXRlZCwgc2V0SXNBdXRoZW50aWNhdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbYWN0aXZlR2FtZXMsIHNldEFjdGl2ZUdhbWVzXSA9IHVzZVN0YXRlPEFkbWluR2FtZURhdGFbXT4oW10pO1xuICAgIGNvbnN0IFtnYW1lSGlzdG9yeSwgc2V0R2FtZUhpc3RvcnldID0gdXNlU3RhdGU8R2FtZUhpc3RvcnlFbnRyeVtdPihbXSk7XG4gICAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZSgnJyk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBzYXZlZFNlc3Npb24gPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyZXNpc3RlbmNpYV9hZG1pbl9zZXNzaW9uJykgOiBudWxsO1xuICAgICAgICBpZiAoc2F2ZWRTZXNzaW9uID09PSAnYWN0aXZlJykge1xuICAgICAgICAgICAgc2V0SXNBdXRoZW50aWNhdGVkKHRydWUpO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGlzQXV0aGVudGljYXRlZCAmJiBzb2NrZXQpIHtcbiAgICAgICAgICAgIHNvY2tldC5lbWl0KCdhZG1pbl9nZXRfZGF0YScpO1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVBZG1pbkRhdGEgPSAoZGF0YTogeyBhY3RpdmVHYW1lczogQWRtaW5HYW1lRGF0YVtdLCBoaXN0b3J5OiBHYW1lSGlzdG9yeUVudHJ5W10gfSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUdhbWVzKGRhdGEuYWN0aXZlR2FtZXMpO1xuICAgICAgICAgICAgICAgIHNldEdhbWVIaXN0b3J5KGRhdGEuaGlzdG9yeSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVTdWNjZXNzID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNvY2tldC5lbWl0KCdhZG1pbl9nZXRfZGF0YScpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgc29ja2V0Lm9uKCdhZG1pbl9kYXRhJywgaGFuZGxlQWRtaW5EYXRhKTtcbiAgICAgICAgICAgIHNvY2tldC5vbignYWRtaW5fYWN0aW9uX3N1Y2Nlc3MnLCBoYW5kbGVTdWNjZXNzKTtcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBzb2NrZXQub2ZmKCdhZG1pbl9kYXRhJywgaGFuZGxlQWRtaW5EYXRhKTtcbiAgICAgICAgICAgICAgICBzb2NrZXQub2ZmKCdhZG1pbl9hY3Rpb25fc3VjY2VzcycsIGhhbmRsZVN1Y2Nlc3MpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0sIFtpc0F1dGhlbnRpY2F0ZWQsIHNvY2tldF0pO1xuXG4gICAgY29uc3QgaGFuZGxlTG9naW4gPSAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHBhc3N3b3JkID09PSBBRE1JTl9QQVNTV09SRCkge1xuICAgICAgICAgICAgc2V0SXNBdXRoZW50aWNhdGVkKHRydWUpO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Jlc2lzdGVuY2lhX2FkbWluX3Nlc3Npb24nLCAnYWN0aXZlJyk7XG4gICAgICAgICAgICBzZXRFcnJvcignJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRFcnJvcignQWNjZXNvIERlbmVnYWRvOiBDb250cmFzZcOxYSBpbmNvcnJlY3RhJyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTG9nb3V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncmVzaXN0ZW5jaWFfYWRtaW5fc2Vzc2lvbicpO1xuICAgICAgICBzZXRJc0F1dGhlbnRpY2F0ZWQoZmFsc2UpO1xuICAgICAgICBzZXRQYXNzd29yZCgnJyk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgY2xvc2VHYW1lID0gKHJvb21JZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuY29uZmlybSgnwr9TZWd1cm8gcXVlIHF1aWVyZXMgZm9yemFyIGVsIGNpZXJyZSBkZSBlc3RhIHBhcnRpZGE/JykpIHtcbiAgICAgICAgICAgIHNvY2tldD8uZW1pdCgnYWRtaW5fY2xvc2VfZ2FtZScsIHsgcm9vbUlkIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGtpY2tQbGF5ZXIgPSAocm9vbUlkOiBzdHJpbmcsIHNvY2tldElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25maXJtKCfCv1NlZ3VybyBxdWUgcXVpZXJlcyBleHB1bHNhciBhIGVzdGUganVnYWRvcj8nKSkge1xuICAgICAgICAgICAgc29ja2V0Py5lbWl0KCdhZG1pbl9raWNrX3BsYXllcicsIHsgcm9vbUlkLCB0YXJnZXRTb2NrZXRJZDogc29ja2V0SWQgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc3RhdHM6IFN0YXRJdGVtW10gPSBbXG4gICAgICAgIHsgbGFiZWw6ICdQYXJ0aWRhcyBBY3RpdmFzJywgdmFsdWU6IGFjdGl2ZUdhbWVzLmxlbmd0aCwgY29sb3I6ICd0ZXh0LXJlZC01MDAnLCBpY29uOiBHYW1lcGFkMiB9LFxuICAgICAgICB7IGxhYmVsOiAnQWdlbnRlcyBPbmxpbmUnLCB2YWx1ZTogYWN0aXZlR2FtZXMucmVkdWNlKChhY2MsIGcpID0+IGFjYyArIGcuY3VycmVudFBsYXllcnMsIDApLCBjb2xvcjogJ3RleHQtYmx1ZS00MDAnLCBpY29uOiBVc2VycyB9LFxuICAgICAgICB7IGxhYmVsOiAnTWlzaW9uZXMgUmVnaXN0cmFkYXMnLCB2YWx1ZTogZ2FtZUhpc3RvcnkubGVuZ3RoLCBjb2xvcjogJ3RleHQtb3JhbmdlLTQwMCcsIGljb246IEhpc3RvcnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ0VzdGFkbycsIHZhbHVlOiBpc0Nvbm5lY3RlZCA/ICcxMDAlJyA6ICcwJScsIGNvbG9yOiAndGV4dC1ncmVlbi00MDAnLCBpY29uOiBDbG9jayB9XG4gICAgXTtcblxuICAgIGlmICghaXNBdXRoZW50aWNhdGVkKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1bIzBhMGEwY10gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcC00IGZvbnQtWydJbnRlcicsc2Fucy1zZXJpZl1cIj5cbiAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgc2NhbGU6IDEgfX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctWyMxMjEyMTZdIGJvcmRlciBib3JkZXItd2hpdGUvMTAgcC0xMCByb3VuZGVkLTN4bCB3LWZ1bGwgbWF4LXctbWQgc2hhZG93LVswXzIwcHhfNTBweF9yZ2JhKDAsMCwwLDAuNSldIHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0wIGxlZnQtMCB3LWZ1bGwgaC0xIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1yZWQtNjAwIHZpYS16aW5jLTgwMCB0by1yZWQtNjAwXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktY2VudGVyIG1iLTggcmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBiZy1yZWQtNTAwLzIwIGJsdXItMnhsIHJvdW5kZWQtZnVsbFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNoaWVsZCBzaXplPXs2NH0gY2xhc3NOYW1lPVwidGV4dC1yZWQtNTAwIHJlbGF0aXZlIHotMTBcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ibGFjayB0ZXh0LXdoaXRlIHRleHQtY2VudGVyIG1iLTIgdXBwZXJjYXNlIHRyYWNraW5nLXRpZ2h0XCI+QWNjZXNvIEFkbWluPC9oMT5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCB0ZXh0LWNlbnRlciB0ZXh0LXNtIG1iLTEwIGZvbnQtbWVkaXVtXCI+UGFuZWwgZGUgQ29udHJvbCBkZSBMYSBSZXNpc3RlbmNpYTwvcD5cblxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSBvblN1Ym1pdD17aGFuZGxlTG9naW59IGNsYXNzTmFtZT1cInNwYWNlLXktNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxLZXkgc2l6ZT17MTh9IGNsYXNzTmFtZT1cImFic29sdXRlIGxlZnQtNCB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgdGV4dC1ncmF5LTUwMFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cGFzc3dvcmR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0UGFzc3dvcmQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkludHJvZHVjZSBsYSBjb250cmFzZcOxYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBiZy1bIzFhMWEyMF0gYm9yZGVyIGJvcmRlci13aGl0ZS81IHJvdW5kZWQtMnhsIHBsLTEyIHByLTYgcHktNCB0ZXh0LXdoaXRlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1yZWQtNjAwLzUwIHRyYW5zaXRpb24tYWxsIHBsYWNlaG9sZGVyOnRleHQtZ3JheS02MDAgZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAge2Vycm9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLnBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCB5OiAtMTAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCB0ZXh0LXhzIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBtdC0yIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInctMS41IGgtMS41IGJnLXJlZC01MDAgcm91bmRlZC1mdWxsIGFuaW1hdGUtcHVsc2VcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtlcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5wPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBiZy1yZWQtNjAwIGhvdmVyOmJnLXJlZC01MDAgdGV4dC13aGl0ZSBmb250LWJsYWNrIHB5LTQgcm91bmRlZC0yeGwgc2hhZG93LXhsIHNoYWRvdy1yZWQtNjAwLzEwIHRyYW5zaXRpb24tYWxsIHVwcGVyY2FzZSB0cmFja2luZy1bMC4yZW1dIHRleHQteHMgaG92ZXI6c2NhbGUtWzEuMDJdIGFjdGl2ZTpzY2FsZS1bMC45OF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudHJhciBlbiBTaXN0ZW1hXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLVsjMGEwYTBjXSB0ZXh0LXdoaXRlIHAtNCBtZDpwLTEwIGZvbnQtWydJbnRlcicsc2Fucy1zZXJpZl1cIj5cbiAgICAgICAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICAgICAgICA8aGVhZGVyIGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvIGZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLXN0YXJ0IG1kOml0ZW1zLWNlbnRlciBtYi0xMiBnYXAtNlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdGV4dC1yZWQtNTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtMiBiZy1yZWQtNTAwLzEwIHJvdW5kZWQtbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpZWxkIHNpemU9ezIyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LVsxMHB4XSBmb250LWJsYWNrIHVwcGVyY2FzZSB0cmFja2luZy1bMC40ZW1dIG9wYWNpdHktODBcIj5TZWd1aW1pZW50byBkZSBPcGVyYWNpb25lczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTV4bCBmb250LWJsYWNrIHRyYWNraW5nLXRpZ2h0ZXIgdXBwZXJjYXNlIGl0YWxpYyB0ZXh0LXRyYW5zcGFyZW50IGJnLWNsaXAtdGV4dCBiZy1ncmFkaWVudC10by1yIGZyb20td2hpdGUgdmlhLXdoaXRlIHRvLWdyYXktNTAwXCI+Q29tYW5kYW50ZTwvaDE+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC02IGJnLVsjMTIxMjE2XSBib3JkZXIgYm9yZGVyLXdoaXRlLzEwIHB4LTggcHktNCByb3VuZGVkLTN4bCBzaGFkb3cteGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1bMTBweF0gdGV4dC1ncmF5LTUwMCB1cHBlcmNhc2UgZm9udC1ibGFjayB0cmFja2luZy13aWRlc3QgbWItMVwiPlN0YXR1cyBTZXJ2aWRvcjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHctMi41IGgtMi41IHJvdW5kZWQtZnVsbCAke2lzQ29ubmVjdGVkID8gJ2JnLWdyZWVuLTUwMCBzaGFkb3ctWzBfMF8xNXB4X3JnYmEoMzQsMTk3LDk0LDAuNildIGFuaW1hdGUtcHVsc2UnIDogJ2JnLXJlZC01MDAnfWB9PjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tb25vIGZvbnQtYmxhY2sgdHJhY2tpbmctd2lkZXN0XCI+e2lzQ29ubmVjdGVkID8gJ09QRVJBVElWTycgOiAnREVTQ09ORUNUQURPJ308L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LXB4IGgtOCBiZy13aGl0ZS8xMCBteC0yXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlTG9nb3V0fVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgcHgtNSBweS0yLjUgYmctemluYy04MDAgaG92ZXI6YmctcmVkLTYwMCB0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgcm91bmRlZC14bCB0cmFuc2l0aW9uLWFsbCBmb250LWJsYWNrIHRleHQtWzEwcHhdIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3QgZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TG9nT3V0IHNpemU9ezE2fSBjbGFzc05hbWU9XCJncm91cC1ob3Zlcjp0cmFuc2xhdGUteC0xIHRyYW5zaXRpb24tdHJhbnNmb3JtXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2NvbmVjdGFyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgICAgIDxtYWluIGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvIGdyaWQgZ3JpZC1jb2xzLTEgbGc6Z3JpZC1jb2xzLTEyIGdhcC0xMFwiPlxuXG4gICAgICAgICAgICAgICAgey8qIFBhbmVsIExhdGlubzogRXN0YWTDrXN0aWNhcyBSw6FwaWRhcyAqL31cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxnOmNvbC1zcGFuLTEyIGdyaWQgZ3JpZC1jb2xzLTIgbWQ6Z3JpZC1jb2xzLTQgZ2FwLTQgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICB7c3RhdHMubWFwKChzdGF0LCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJY29uID0gc3RhdC5pY29uO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aX0gY2xhc3NOYW1lPVwiYmctWyMxMjEyMTZdIGJvcmRlciBib3JkZXItd2hpdGUvNSBwLTYgcm91bmRlZC0yeGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LVsxMHB4XSB1cHBlcmNhc2UgZm9udC1ibGFjayB0cmFja2luZy13aWRlc3QgdGV4dC1ncmF5LTUwMCBtYi0xXCI+e3N0YXQubGFiZWx9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXtgdGV4dC0yeGwgZm9udC1ibGFjayAke3N0YXQuY29sb3J9YH0+e3N0YXQudmFsdWV9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gY2xhc3NOYW1lPVwib3BhY2l0eS0xMFwiIHNpemU9ezMyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICB7LyogQ29sdW1uYSBQcmluY2lwYWw6IFBhcnRpZGFzIEFjdGl2YXMgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZzpjb2wtc3Bhbi04IHNwYWNlLXktOFwiPlxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQgbWItOFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYmxhY2sgdGV4dC13aGl0ZSB1cHBlcmNhc2UgdHJhY2tpbmctdGlnaHRlciBpdGFsaWMgYm9yZGVyLWwtNCBib3JkZXItcmVkLTYwMCBwbC00XCI+Q2FuYWxlcyBkZSBSYWRpbyBBY3Rpdm9zPC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ2FwLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QW5pbWF0ZVByZXNlbmNlIG1vZGU9XCJwb3BMYXlvdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FjdGl2ZUdhbWVzLmxlbmd0aCA9PT0gMCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PVwiZW1wdHktc3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLVsjMTIxMjE2XS80MCBib3JkZXIgYm9yZGVyLWRhc2hlZCBib3JkZXItd2hpdGUvMTAgcm91bmRlZC0zeGwgcC0yMCB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENsb2NrIHNpemU9ezQ4fSBjbGFzc05hbWU9XCJteC1hdXRvIG1iLTYgdGV4dC1ncmF5LTcwMFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LWJvbGQgdGV4dC1ncmF5LTYwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0XCI+U2lsZW5jaW8gUmFkaW9lbMOpY3RyaWNvPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTcwMCBmb250LW1lZGl1bVwiPkJ1c2NhbmRvIHNlw7FhbGVzIGRlIG1pc2lvbmVzIGFjdGl2YXMuLi48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVHYW1lcy5tYXAoKGdhbWUpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2dhbWUuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHg6IC0yMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHg6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdD17eyBvcGFjaXR5OiAwLCBzY2FsZTogMC45NSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1bIzEyMTIxNl0gYm9yZGVyIGJvcmRlci13aGl0ZS8xMCByb3VuZGVkLTN4bCBwLTggaG92ZXI6YmctWyMxNjE2MWNdIHRyYW5zaXRpb24tYWxsIGdyb3VwIHNoYWRvdy14bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLXN0YXJ0IG1kOml0ZW1zLWNlbnRlciBnYXAtNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYmxhY2sgdGV4dC13aGl0ZSBpdGFsaWMgdXBwZXJjYXNlIHRyYWNraW5nLXRpZ2h0ZXIgbGVhZGluZy1ub25lXCI+e2dhbWUubmFtZX08L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LVsxMHB4XSBmb250LWJvbGQgcHgtMiBweS0wLjUgYmctcmVkLTUwMC8xMCB0ZXh0LXJlZC01MDAgcm91bmRlZCBib3JkZXIgYm9yZGVyLXJlZC01MDAvMjBcIj57Z2FtZS5zdGF0dXN9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQgdGV4dC1bMTBweF0gdXBwZXJjYXNlIGZvbnQtYmxhY2sgdHJhY2tpbmctd2lkZXN0IHRleHQtZ3JheS01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFVzZXJzIHNpemU9ezEyfSBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDBcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2dhbWUuY3VycmVudFBsYXllcnN9IC8ge2dhbWUubWF4UGxheWVyc30gQWdlbnRlcyBNb3ZpbGl6YWRvc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtZ3JheS04MDBcIj58PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5JRDoge2dhbWUuaWQuc2xpY2UoMCwgOCl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjbG9zZUdhbWUoZ2FtZS5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicHgtNiBweS0zIGJnLXppbmMtOTAwIGhvdmVyOmJnLXJlZC02MDAgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHJvdW5kZWQtMnhsIHRleHQtWzEwcHhdIGZvbnQtYmxhY2sgdXBwZXJjYXNlIHRyYWNraW5nLVswLjJlbV0gdHJhbnNpdGlvbi1hbGwgYm9yZGVyIGJvcmRlci13aGl0ZS81IGFjdGl2ZTpzY2FsZS05NSB3aGl0ZXNwYWNlLW5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWJvcnRhciBNaXNpw7NuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFN1YnBhbmVsOiBKdWdhZG9yZXMgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtOCBwdC04IGJvcmRlci10IGJvcmRlci13aGl0ZS81XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTIgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2FtZS5wbGF5ZXJzLm1hcCgocGxheWVyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtwbGF5ZXIuaWR9IGNsYXNzTmFtZT1cImJnLWJsYWNrLzQwIHAtNCByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXdoaXRlLzUgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdyb3VwL3BsYXllciBob3Zlcjpib3JkZXItcmVkLTUwMC8zMCB0cmFuc2l0aW9uLWFsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xMCBoLTEwIHJvdW5kZWQteGwgYmctd2hpdGUvNSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmb250LWJsYWNrIHRleHQtcmVkLTUwMCBib3JkZXIgYm9yZGVyLXdoaXRlLzUgZ3JvdXAtaG92ZXIvcGxheWVyOmJnLXJlZC01MDAgZ3JvdXAtaG92ZXIvcGxheWVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BsYXllci5uYW1lWzBdLnRvVXBwZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LWJsYWNrIHRleHQtd2hpdGUgbGVhZGluZy1ub25lIG1iLTFcIj57cGxheWVyLm5hbWV9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LVs5cHhdIG9wYWNpdHktMzAgZm9udC1tb25vIGl0YWxpY1wiPkFHLXtwbGF5ZXIuaWQuc2xpY2UoMCwgNCl9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ga2lja1BsYXllcihnYW1lLmlkLCBwbGF5ZXIuaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMi41IHRleHQtZ3JheS03MDAgaG92ZXI6dGV4dC1yZWQtNTAwIGhvdmVyOmJnLXJlZC01MDAvMTAgcm91bmRlZC14bCB0cmFuc2l0aW9uLWFsbCBvcGFjaXR5LTAgZ3JvdXAtaG92ZXIvcGxheWVyOm9wYWNpdHktMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkV4cHVsc2FyIGRlIGxhIHpvbmFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxVc2VyTWludXMgc2l6ZT17MTh9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICB7LyogQ29sdW1uYSBMYXRlcmFsOiBBcmNoaXZvIEhpc3TDs3JpY28gKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZzpjb2wtc3Bhbi00IHNwYWNlLXktOFwiPlxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJzdGlja3kgdG9wLTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00IG1iLThcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJsYWNrIHRleHQtd2hpdGUgdXBwZXJjYXNlIHRyYWNraW5nLXRpZ2h0ZXIgaXRhbGljIGJvcmRlci1sLTQgYm9yZGVyLWdyYXktNjAwIHBsLTRcIj5JbmZvcm1lIEZvcmVuc2U8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctWyMxMjEyMTZdIGJvcmRlciBib3JkZXItd2hpdGUvMTAgcm91bmRlZC0zeGwgb3ZlcmZsb3ctaGlkZGVuIHNoYWRvdy0yeGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNiBiZy13aGl0ZS81IGJvcmRlci1iIGJvcmRlci13aGl0ZS81XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtWzEwcHhdIHVwcGVyY2FzZSBmb250LWJsYWNrIHRyYWNraW5nLXdpZGVzdCB0ZXh0LWdyYXktNDAwXCI+w5psdGltb3MgSW5mb3JtZXMgRGVzY2xhc2lmaWNhZG9zPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtaC1bNjB2aF0gb3ZlcmZsb3cteS1hdXRvIGN1c3RvbS1zY3JvbGxiYXIgcC02IHNwYWNlLXktNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2FtZUhpc3RvcnkubGVuZ3RoID09PSAwID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBweS0yMCBvcGFjaXR5LTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpc3Rvcnkgc2l6ZT17NDB9IGNsYXNzTmFtZT1cIm14LWF1dG8gbWItNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyBpdGFsaWMgZm9udC1ib2xkXCI+U2luIGFyY2hpdm9zIHJlZ2lzdHJhZG9zPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYW1lSGlzdG9yeS5tYXAoKGVudHJ5KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2VudHJ5LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJncm91cCByZWxhdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtYmxhY2sgdGV4dC1ncmF5LTIwMCB1cHBlcmNhc2UgdHJhY2tpbmctdGlnaHQgZ3JvdXAtaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyBsZWFkaW5nLW5vbmUgbWItMVwiPntlbnRyeS5yb29tX25hbWV9PC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtWzlweF0gdGV4dC1ncmF5LTYwMCBmb250LWJvbGQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57ZW50cnkuaG9zdF9uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+4oCiPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57bmV3IERhdGUoZW50cnkuY3JlYXRlZF9hdCkudG9Mb2NhbGVEYXRlU3RyaW5nKCl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHRleHQtWzlweF0gZm9udC1ibGFjayB1cHBlcmNhc2UgcHgtMiBweS0xIHJvdW5kZWQgc2hhZG93LXNtICR7ZW50cnkud2lubmVyID09PSAncmVzaXN0YW5jZScgPyAnYmctZ3JlZW4tNTAwLzIwIHRleHQtZ3JlZW4tNTAwJyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5Lndpbm5lciA9PT0gJ3NwaWVzJyA/ICdiZy1yZWQtNTAwLzIwIHRleHQtcmVkLTUwMCcgOiAnYmctZ3JheS03MDAvMjAgdGV4dC1ncmF5LTUwMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2VudHJ5Lndpbm5lciA/IChlbnRyeS53aW5uZXIgPT09ICdyZXNpc3RhbmNlJyA/ICdSRVMnIDogJ1NQSUVTJykgOiAnTE9HT1VUJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0yIGZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHRleHQtWzlweF0gb3BhY2l0eS00MCBncm91cC1ob3ZlcjpvcGFjaXR5LTYwIHRyYW5zaXRpb24tb3BhY2l0eVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgZm9udC1tb25vXCI+e2VudHJ5LnBsYXllcnMuc3BsaXQoJywnKS5sZW5ndGh9IEFndGVzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTEgaC0xIGJnLXdoaXRlLzIwIHJvdW5kZWQtZnVsbFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e25ldyBEYXRlKGVudHJ5LmNyZWF0ZWRfYXQpLnRvTG9jYWxlVGltZVN0cmluZygpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgLWxlZnQtNiB0b3AtMS41IHctMSBoLTAgZ3JvdXAtaG92ZXI6aC0zIGJnLXJlZC02MDAgdHJhbnNpdGlvbi1hbGwgcm91bmRlZC1mdWxsXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC02IGJnLXdoaXRlLzUgYm9yZGVyLXQgYm9yZGVyLXdoaXRlLzVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1bOXB4XSBmb250LWJvbGQgdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTYwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0XCI+RmluIGRlbCBJbmZvcm1lIEZvcmVuc2U8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYWluPlxuXG4gICAgICAgICAgICA8c3R5bGUganN4IGdsb2JhbD57YFxuICAgICAgICAgICAgICAgIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOndnaHRANDAwOzcwMDs5MDAmZGlzcGxheT1zd2FwJyk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgYm9keSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwYTBhMGM7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jdXN0b20tc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jdXN0b20tc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuY3VzdG9tLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuY3VzdG9tLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYH08L3N0eWxlPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuIl0sIm5hbWVzIjpbInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlQ2FsbGJhY2siLCJtb3Rpb24iLCJBbmltYXRlUHJlc2VuY2UiLCJ1c2VTb2NrZXQiLCJTaGllbGQiLCJVc2VycyIsIkdhbWVwYWQyIiwiTG9nT3V0IiwiQ2xvY2siLCJIaXN0b3J5IiwiVXNlck1pbnVzIiwiS2V5IiwiQURNSU5fUEFTU1dPUkQiLCJEYXNoYm9hcmQiLCJzb2NrZXQiLCJpc0Nvbm5lY3RlZCIsInBhc3N3b3JkIiwic2V0UGFzc3dvcmQiLCJpc0F1dGhlbnRpY2F0ZWQiLCJzZXRJc0F1dGhlbnRpY2F0ZWQiLCJhY3RpdmVHYW1lcyIsInNldEFjdGl2ZUdhbWVzIiwiZ2FtZUhpc3RvcnkiLCJzZXRHYW1lSGlzdG9yeSIsImVycm9yIiwic2V0RXJyb3IiLCJzYXZlZFNlc3Npb24iLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwiZW1pdCIsImhhbmRsZUFkbWluRGF0YSIsImRhdGEiLCJoaXN0b3J5IiwiaGFuZGxlU3VjY2VzcyIsIm9uIiwib2ZmIiwiaGFuZGxlTG9naW4iLCJlIiwicHJldmVudERlZmF1bHQiLCJzZXRJdGVtIiwiaGFuZGxlTG9nb3V0IiwicmVtb3ZlSXRlbSIsImNsb3NlR2FtZSIsInJvb21JZCIsIndpbmRvdyIsImNvbmZpcm0iLCJraWNrUGxheWVyIiwic29ja2V0SWQiLCJ0YXJnZXRTb2NrZXRJZCIsInN0YXRzIiwibGFiZWwiLCJ2YWx1ZSIsImxlbmd0aCIsImNvbG9yIiwiaWNvbiIsInJlZHVjZSIsImFjYyIsImciLCJjdXJyZW50UGxheWVycyIsImRpdiIsImNsYXNzTmFtZSIsImluaXRpYWwiLCJvcGFjaXR5Iiwic2NhbGUiLCJhbmltYXRlIiwic2l6ZSIsImgxIiwicCIsImZvcm0iLCJvblN1Ym1pdCIsImlucHV0IiwidHlwZSIsImF1dG9Gb2N1cyIsIm9uQ2hhbmdlIiwidGFyZ2V0IiwicGxhY2Vob2xkZXIiLCJ5Iiwic3BhbiIsImJ1dHRvbiIsImhlYWRlciIsIm9uQ2xpY2siLCJtYWluIiwibWFwIiwic3RhdCIsImkiLCJJY29uIiwic2VjdGlvbiIsImgyIiwibW9kZSIsImdhbWUiLCJsYXlvdXQiLCJ4IiwiZXhpdCIsImgzIiwibmFtZSIsInN0YXR1cyIsIm1heFBsYXllcnMiLCJpZCIsInNsaWNlIiwicGxheWVycyIsInBsYXllciIsInRvVXBwZXJDYXNlIiwidGl0bGUiLCJlbnRyeSIsImg0Iiwicm9vbV9uYW1lIiwiaG9zdF9uYW1lIiwiRGF0ZSIsImNyZWF0ZWRfYXQiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJ3aW5uZXIiLCJzcGxpdCIsInRvTG9jYWxlVGltZVN0cmluZyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/app/dashboard/page.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/hooks/useSocket.ts":
+/*!********************************!*\
+ !*** ./src/hooks/useSocket.ts ***!
+ \********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSocket: () => (/* binding */ useSocket)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! socket.io-client */ \"(ssr)/./node_modules/socket.io-client/build/esm-debug/index.js\");\n\n\nconst SOCKET_URL = \"http://192.168.1.131:4000\" || 0;\nconst useSocket = ()=>{\n const [socket, setSocket] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n const [gameState, setGameState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n const [isConnected, setIsConnected] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n const [roomsList, setRoomsList] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n const socketInstance = (0,socket_io_client__WEBPACK_IMPORTED_MODULE_1__.io)(SOCKET_URL);\n socketInstance.on(\"connect\", ()=>{\n console.log(\"[SOCKET] Conectado exitosamente\");\n setIsConnected(true);\n });\n socketInstance.on(\"disconnect\", ()=>{\n console.log(\"[SOCKET] Desconectado del servidor\");\n setIsConnected(false);\n });\n socketInstance.on(\"game_state\", (newState)=>{\n setGameState(newState);\n });\n socketInstance.on(\"rooms_list\", (rooms)=>{\n setRoomsList(rooms);\n });\n socketInstance.on(\"game_joined\", ({ state })=>{\n setGameState(state);\n });\n socketInstance.on(\"error\", (msg)=>{\n console.error(\"[SOCKET ERROR]\", msg);\n // Evitamos alert() por ser mala práctica en producción y disparar linters\n });\n socketInstance.on(\"game_finalized\", ()=>{\n setGameState(null);\n });\n socketInstance.on(\"player_left_game\", ({ playerName })=>{\n console.log(`[INFO] Agente ${playerName} fuera de combate.`);\n });\n setSocket(socketInstance);\n return ()=>{\n socketInstance.disconnect();\n };\n }, []);\n const actions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>({\n createGame: (hostName, maxPlayers, password)=>{\n socket?.emit(\"create_game\", {\n hostName,\n maxPlayers,\n password\n });\n },\n joinGame: (roomId, playerName, password)=>{\n socket?.emit(\"join_game\", {\n roomId,\n playerName,\n password\n });\n },\n refreshRooms: ()=>{\n socket?.emit(\"get_rooms\");\n },\n startGame: ()=>{\n socket?.emit(\"start_game\", {\n roomId: gameState?.roomId\n });\n },\n proposeTeam: (teamIds)=>{\n socket?.emit(\"propose_team\", {\n roomId: gameState?.roomId,\n teamIds\n });\n },\n voteTeam: (approve)=>{\n socket?.emit(\"vote_team\", {\n roomId: gameState?.roomId,\n approve\n });\n },\n voteMission: (success)=>{\n socket?.emit(\"vote_mission\", {\n roomId: gameState?.roomId,\n success\n });\n },\n voteLeader: (approve)=>socket?.emit(\"vote_leader\", {\n roomId: gameState?.roomId,\n approve\n }),\n assassinKill: (targetId)=>{\n socket?.emit(\"assassin_kill\", {\n roomId: gameState?.roomId,\n targetId\n });\n },\n leaveGame: ()=>{\n socket?.emit(\"leave_game\", {\n roomId: gameState?.roomId\n });\n },\n reconnectSession: (sessionData)=>{\n socket?.emit(\"reconnect_session\", sessionData);\n },\n finishIntro: ()=>socket?.emit(\"finish_intro\", {\n roomId: gameState?.roomId\n }),\n finishReveal: ()=>socket?.emit(\"finish_reveal\", {\n roomId: gameState?.roomId\n }),\n finishRollCall: ()=>socket?.emit(\"finish_roll_call\", {\n roomId: gameState?.roomId\n }),\n finishMissionReveal: ()=>socket?.emit(\"finish_reveal\", {\n roomId: gameState?.roomId\n }),\n finishMissionResult: ()=>socket?.emit(\"finish_mission_result\", {\n roomId: gameState?.roomId\n }),\n restartGame: ()=>socket?.emit(\"restart_game\", {\n roomId: gameState?.roomId\n }),\n finalizeGame: ()=>socket?.emit(\"finalize_game\", {\n roomId: gameState?.roomId\n })\n }), [\n socket,\n gameState?.roomId\n ]);\n return {\n socket,\n isConnected,\n gameState,\n roomsList,\n actions\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQUNDO2dCQUNmeEMsUUFBUXdCLEtBQUsscUJBQXFCZ0I7WUFDdEM7WUFDQUMsYUFBYSxJQUFNekMsUUFBUXdCLEtBQUssZ0JBQWdCO29CQUFFRSxRQUFReEIsV0FBV3dCO2dCQUFPO1lBQzVFZ0IsY0FBYyxJQUFNMUMsUUFBUXdCLEtBQUssaUJBQWlCO29CQUFFRSxRQUFReEIsV0FBV3dCO2dCQUFPO1lBQzlFaUIsZ0JBQWdCLElBQU0zQyxRQUFRd0IsS0FBSyxvQkFBb0I7b0JBQUVFLFFBQVF4QixXQUFXd0I7Z0JBQU87WUFDbkZrQixxQkFBcUIsSUFBTTVDLFFBQVF3QixLQUFLLGlCQUFpQjtvQkFBRUUsUUFBUXhCLFdBQVd3QjtnQkFBTztZQUNyRm1CLHFCQUFxQixJQUFNN0MsUUFBUXdCLEtBQUsseUJBQXlCO29CQUFFRSxRQUFReEIsV0FBV3dCO2dCQUFPO1lBQzdGb0IsYUFBYSxJQUFNOUMsUUFBUXdCLEtBQUssZ0JBQWdCO29CQUFFRSxRQUFReEIsV0FBV3dCO2dCQUFPO1lBQzVFcUIsY0FBYyxJQUFNL0MsUUFBUXdCLEtBQUssaUJBQWlCO29CQUFFRSxRQUFReEIsV0FBV3dCO2dCQUFPO1FBQ2xGLElBQUk7UUFBQzFCO1FBQVFFLFdBQVd3QjtLQUFPO0lBRS9CLE9BQU87UUFDSDFCO1FBQ0FJO1FBQ0FGO1FBQ0FJO1FBQ0FhO0lBQ0o7QUFDSixFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Ly4vc3JjL2hvb2tzL3VzZVNvY2tldC50cz8wNDY5Il0sInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpbywgU29ja2V0IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5pbXBvcnQgeyBHYW1lU3RhdGUsIEdhbWVSb29tIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuY29uc3QgU09DS0VUX1VSTCA9IHByb2Nlc3MuZW52Lk5FWFRfUFVCTElDX0FQSV9VUkwgfHwgJ2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMCc7XG5cbmV4cG9ydCBjb25zdCB1c2VTb2NrZXQgPSAoKSA9PiB7XG4gICAgY29uc3QgW3NvY2tldCwgc2V0U29ja2V0XSA9IHVzZVN0YXRlPFNvY2tldCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFtnYW1lU3RhdGUsIHNldEdhbWVTdGF0ZV0gPSB1c2VTdGF0ZTxHYW1lU3RhdGUgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbaXNDb25uZWN0ZWQsIHNldElzQ29ubmVjdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbcm9vbXNMaXN0LCBzZXRSb29tc0xpc3RdID0gdXNlU3RhdGU8R2FtZVJvb21bXT4oW10pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3Qgc29ja2V0SW5zdGFuY2UgPSBpbyhTT0NLRVRfVVJMKTtcblxuICAgICAgICBzb2NrZXRJbnN0YW5jZS5vbignY29ubmVjdCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbU09DS0VUXSBDb25lY3RhZG8gZXhpdG9zYW1lbnRlJyk7XG4gICAgICAgICAgICBzZXRJc0Nvbm5lY3RlZCh0cnVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc29ja2V0SW5zdGFuY2Uub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW1NPQ0tFVF0gRGVzY29uZWN0YWRvIGRlbCBzZXJ2aWRvcicpO1xuICAgICAgICAgICAgc2V0SXNDb25uZWN0ZWQoZmFsc2UpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzb2NrZXRJbnN0YW5jZS5vbignZ2FtZV9zdGF0ZScsIChuZXdTdGF0ZTogR2FtZVN0YXRlKSA9PiB7XG4gICAgICAgICAgICBzZXRHYW1lU3RhdGUobmV3U3RhdGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzb2NrZXRJbnN0YW5jZS5vbigncm9vbXNfbGlzdCcsIChyb29tczogR2FtZVJvb21bXSkgPT4ge1xuICAgICAgICAgICAgc2V0Um9vbXNMaXN0KHJvb21zKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc29ja2V0SW5zdGFuY2Uub24oJ2dhbWVfam9pbmVkJywgKHsgc3RhdGUgfTogeyByb29tSWQ6IHN0cmluZywgc3RhdGU6IEdhbWVTdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBzZXRHYW1lU3RhdGUoc3RhdGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzb2NrZXRJbnN0YW5jZS5vbignZXJyb3InLCAobXNnOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTT0NLRVQgRVJST1JdJywgbXNnKTtcbiAgICAgICAgICAgIC8vIEV2aXRhbW9zIGFsZXJ0KCkgcG9yIHNlciBtYWxhIHByw6FjdGljYSBlbiBwcm9kdWNjacOzbiB5IGRpc3BhcmFyIGxpbnRlcnNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc29ja2V0SW5zdGFuY2Uub24oJ2dhbWVfZmluYWxpemVkJywgKCkgPT4ge1xuICAgICAgICAgICAgc2V0R2FtZVN0YXRlKG51bGwpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzb2NrZXRJbnN0YW5jZS5vbigncGxheWVyX2xlZnRfZ2FtZScsICh7IHBsYXllck5hbWUgfTogeyBwbGF5ZXJOYW1lOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFtJTkZPXSBBZ2VudGUgJHtwbGF5ZXJOYW1lfSBmdWVyYSBkZSBjb21iYXRlLmApO1xuICAgICAgICB9KTtcblxuICAgICAgICBzZXRTb2NrZXQoc29ja2V0SW5zdGFuY2UpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzb2NrZXRJbnN0YW5jZS5kaXNjb25uZWN0KCk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgYWN0aW9ucyA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgY3JlYXRlR2FtZTogKGhvc3ROYW1lOiBzdHJpbmcsIG1heFBsYXllcnM6IG51bWJlciwgcGFzc3dvcmQ/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHNvY2tldD8uZW1pdCgnY3JlYXRlX2dhbWUnLCB7IGhvc3ROYW1lLCBtYXhQbGF5ZXJzLCBwYXNzd29yZCB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgam9pbkdhbWU6IChyb29tSWQ6IHN0cmluZywgcGxheWVyTmFtZTogc3RyaW5nLCBwYXNzd29yZD86IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgc29ja2V0Py5lbWl0KCdqb2luX2dhbWUnLCB7IHJvb21JZCwgcGxheWVyTmFtZSwgcGFzc3dvcmQgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2hSb29tczogKCkgPT4ge1xuICAgICAgICAgICAgc29ja2V0Py5lbWl0KCdnZXRfcm9vbXMnKTtcbiAgICAgICAgfSxcbiAgICAgICAgc3RhcnRHYW1lOiAoKSA9PiB7XG4gICAgICAgICAgICBzb2NrZXQ/LmVtaXQoJ3N0YXJ0X2dhbWUnLCB7IHJvb21JZDogZ2FtZVN0YXRlPy5yb29tSWQgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHByb3Bvc2VUZWFtOiAodGVhbUlkczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgICAgIHNvY2tldD8uZW1pdCgncHJvcG9zZV90ZWFtJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkLCB0ZWFtSWRzIH0pO1xuICAgICAgICB9LFxuICAgICAgICB2b3RlVGVhbTogKGFwcHJvdmU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIHNvY2tldD8uZW1pdCgndm90ZV90ZWFtJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkLCBhcHByb3ZlIH0pO1xuICAgICAgICB9LFxuICAgICAgICB2b3RlTWlzc2lvbjogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIHNvY2tldD8uZW1pdCgndm90ZV9taXNzaW9uJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkLCBzdWNjZXNzIH0pO1xuICAgICAgICB9LFxuICAgICAgICB2b3RlTGVhZGVyOiAoYXBwcm92ZTogYm9vbGVhbikgPT4gc29ja2V0Py5lbWl0KCd2b3RlX2xlYWRlcicsIHsgcm9vbUlkOiBnYW1lU3RhdGU/LnJvb21JZCwgYXBwcm92ZSB9KSxcbiAgICAgICAgYXNzYXNzaW5LaWxsOiAodGFyZ2V0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgc29ja2V0Py5lbWl0KCdhc3Nhc3Npbl9raWxsJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkLCB0YXJnZXRJZCB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbGVhdmVHYW1lOiAoKSA9PiB7XG4gICAgICAgICAgICBzb2NrZXQ/LmVtaXQoJ2xlYXZlX2dhbWUnLCB7IHJvb21JZDogZ2FtZVN0YXRlPy5yb29tSWQgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlY29ubmVjdFNlc3Npb246IChzZXNzaW9uRGF0YTogeyBwbGF5ZXJOYW1lOiBzdHJpbmc7IHJvb21JZD86IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICBzb2NrZXQ/LmVtaXQoJ3JlY29ubmVjdF9zZXNzaW9uJywgc2Vzc2lvbkRhdGEpO1xuICAgICAgICB9LFxuICAgICAgICBmaW5pc2hJbnRybzogKCkgPT4gc29ja2V0Py5lbWl0KCdmaW5pc2hfaW50cm8nLCB7IHJvb21JZDogZ2FtZVN0YXRlPy5yb29tSWQgfSksXG4gICAgICAgIGZpbmlzaFJldmVhbDogKCkgPT4gc29ja2V0Py5lbWl0KCdmaW5pc2hfcmV2ZWFsJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkIH0pLFxuICAgICAgICBmaW5pc2hSb2xsQ2FsbDogKCkgPT4gc29ja2V0Py5lbWl0KCdmaW5pc2hfcm9sbF9jYWxsJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkIH0pLFxuICAgICAgICBmaW5pc2hNaXNzaW9uUmV2ZWFsOiAoKSA9PiBzb2NrZXQ/LmVtaXQoJ2ZpbmlzaF9yZXZlYWwnLCB7IHJvb21JZDogZ2FtZVN0YXRlPy5yb29tSWQgfSksXG4gICAgICAgIGZpbmlzaE1pc3Npb25SZXN1bHQ6ICgpID0+IHNvY2tldD8uZW1pdCgnZmluaXNoX21pc3Npb25fcmVzdWx0JywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkIH0pLFxuICAgICAgICByZXN0YXJ0R2FtZTogKCkgPT4gc29ja2V0Py5lbWl0KCdyZXN0YXJ0X2dhbWUnLCB7IHJvb21JZDogZ2FtZVN0YXRlPy5yb29tSWQgfSksXG4gICAgICAgIGZpbmFsaXplR2FtZTogKCkgPT4gc29ja2V0Py5lbWl0KCdmaW5hbGl6ZV9nYW1lJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkIH0pXG4gICAgfSksIFtzb2NrZXQsIGdhbWVTdGF0ZT8ucm9vbUlkXSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzb2NrZXQsXG4gICAgICAgIGlzQ29ubmVjdGVkLFxuICAgICAgICBnYW1lU3RhdGUsXG4gICAgICAgIHJvb21zTGlzdCxcbiAgICAgICAgYWN0aW9uc1xuICAgIH07XG59O1xuIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidXNlTWVtbyIsImlvIiwiU09DS0VUX1VSTCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BVQkxJQ19BUElfVVJMIiwidXNlU29ja2V0Iiwic29ja2V0Iiwic2V0U29ja2V0IiwiZ2FtZVN0YXRlIiwic2V0R2FtZVN0YXRlIiwiaXNDb25uZWN0ZWQiLCJzZXRJc0Nvbm5lY3RlZCIsInJvb21zTGlzdCIsInNldFJvb21zTGlzdCIsInNvY2tldEluc3RhbmNlIiwib24iLCJjb25zb2xlIiwibG9nIiwibmV3U3RhdGUiLCJyb29tcyIsInN0YXRlIiwibXNnIiwiZXJyb3IiLCJwbGF5ZXJOYW1lIiwiZGlzY29ubmVjdCIsImFjdGlvbnMiLCJjcmVhdGVHYW1lIiwiaG9zdE5hbWUiLCJtYXhQbGF5ZXJzIiwicGFzc3dvcmQiLCJlbWl0Iiwiam9pbkdhbWUiLCJyb29tSWQiLCJyZWZyZXNoUm9vbXMiLCJzdGFydEdhbWUiLCJwcm9wb3NlVGVhbSIsInRlYW1JZHMiLCJ2b3RlVGVhbSIsImFwcHJvdmUiLCJ2b3RlTWlzc2lvbiIsInN1Y2Nlc3MiLCJ2b3RlTGVhZGVyIiwiYXNzYXNzaW5LaWxsIiwidGFyZ2V0SWQiLCJsZWF2ZUdhbWUiLCJyZWNvbm5lY3RTZXNzaW9uIiwic2Vzc2lvbkRhdGEiLCJmaW5pc2hJbnRybyIsImZpbmlzaFJldmVhbCIsImZpbmlzaFJvbGxDYWxsIiwiZmluaXNoTWlzc2lvblJldmVhbCIsImZpbmlzaE1pc3Npb25SZXN1bHQiLCJyZXN0YXJ0R2FtZSIsImZpbmFsaXplR2FtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/hooks/useSocket.ts\n");
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/globals.css":
+/*!*****************************!*\
+ !*** ./src/app/globals.css ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"955ec95b3e6f\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Ly4vc3JjL2FwcC9nbG9iYWxzLmNzcz9jMTA2Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiOTU1ZWM5NWIzZTZmXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n");
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/dashboard/page.tsx":
+/*!************************************!*\
+ !*** ./src/app/dashboard/page.tsx ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
+/* harmony export */ __esModule: () => (/* binding */ __esModule),
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");
+
+const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/app/client/src/app/dashboard/page.tsx`)
+
+// Accessing the __esModule property and exporting $$typeof are required here.
+// The __esModule getter forces the proxy target to create the default export
+// and the $$typeof value is for rendering logic to determine if the module
+// is a client boundary.
+const { __esModule, $$typeof } = proxy;
+const __default__ = proxy.default;
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/layout.tsx":
+/*!****************************!*\
+ !*** ./src/app/layout.tsx ***!
+ \****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"} */ \"(rsc)/./node_modules/next/font/google/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"Inter\\\",\\\"arguments\\\":[{\\\"subsets\\\":[\\\"latin\\\"]}],\\\"variableName\\\":\\\"inter\\\"}\");\n/* harmony import */ var next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\n\nconst metadata = {\n title: \"Francia Ocupada: WWII\",\n description: \"Juego de deducci\\xf3n social ambientado en la Segunda Guerra Mundial\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"es\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: (next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2___default().className),\n children: children\n }, void 0, false, {\n fileName: \"/app/client/src/app/layout.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/layout.tsx\",\n lineNumber: 18,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJTUE7QUFGZ0I7QUFJZixNQUFNQyxXQUFxQjtJQUM5QkMsT0FBTztJQUNQQyxhQUFhO0FBQ2pCLEVBQUM7QUFFYyxTQUFTQyxXQUFXLEVBQy9CQyxRQUFRLEVBR1g7SUFDRyxxQkFDSSw4REFBQ0M7UUFBS0MsTUFBSztrQkFDUCw0RUFBQ0M7WUFBS0MsV0FBV1QsK0pBQWU7c0JBQUdLOzs7Ozs7Ozs7OztBQUcvQyIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8uL3NyYy9hcHAvbGF5b3V0LnRzeD81N2E5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWV0YWRhdGEgfSBmcm9tICduZXh0J1xuaW1wb3J0IHsgSW50ZXIgfSBmcm9tICduZXh0L2ZvbnQvZ29vZ2xlJ1xuaW1wb3J0ICcuL2dsb2JhbHMuY3NzJ1xuXG5jb25zdCBpbnRlciA9IEludGVyKHsgc3Vic2V0czogWydsYXRpbiddIH0pXG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YTogTWV0YWRhdGEgPSB7XG4gICAgdGl0bGU6ICdGcmFuY2lhIE9jdXBhZGE6IFdXSUknLFxuICAgIGRlc2NyaXB0aW9uOiAnSnVlZ28gZGUgZGVkdWNjacOzbiBzb2NpYWwgYW1iaWVudGFkbyBlbiBsYSBTZWd1bmRhIEd1ZXJyYSBNdW5kaWFsJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7XG4gICAgY2hpbGRyZW4sXG59OiB7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxodG1sIGxhbmc9XCJlc1wiPlxuICAgICAgICAgICAgPGJvZHkgY2xhc3NOYW1lPXtpbnRlci5jbGFzc05hbWV9PntjaGlsZHJlbn08L2JvZHk+XG4gICAgICAgIDwvaHRtbD5cbiAgICApXG59XG4iXSwibmFtZXMiOlsiaW50ZXIiLCJtZXRhZGF0YSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJodG1sIiwibGFuZyIsImJvZHkiLCJjbGFzc05hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n");
+
+/***/ })
+
+};
+;
+
+// load runtime
+var __webpack_require__ = require("../../webpack-runtime.js");
+__webpack_require__.C(exports);
+var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
+var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc","vendor-chunks/framer-motion","vendor-chunks/ws","vendor-chunks/engine.io-client","vendor-chunks/socket.io-client","vendor-chunks/socket.io-parser","vendor-chunks/xmlhttprequest-ssl","vendor-chunks/engine.io-parser","vendor-chunks/@socket.io","vendor-chunks/ms","vendor-chunks/supports-color","vendor-chunks/has-flag","vendor-chunks/lucide-react","vendor-chunks/styled-jsx"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fpage&page=%2Fdashboard%2Fpage&appPaths=%2Fdashboard%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fpage.tsx&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
+module.exports = __webpack_exports__;
+
+})();
\ No newline at end of file
diff --git a/client/.next/server/app/dashboard/page.js.nft.json b/client/.next/server/app/dashboard/page.js.nft.json
new file mode 100644
index 0000000..59e3c7c
--- /dev/null
+++ b/client/.next/server/app/dashboard/page.js.nft.json
@@ -0,0 +1 @@
+{"version":1,"files":["../../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.cjs.dev.js","../../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.cjs.js","../../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.cjs.prod.js","../../../../node_modules/@emotion/is-prop-valid/package.json","../../../../node_modules/@emotion/memoize/dist/memoize.cjs.dev.js","../../../../node_modules/@emotion/memoize/dist/memoize.cjs.js","../../../../node_modules/@emotion/memoize/dist/memoize.cjs.prod.js","../../../../node_modules/@emotion/memoize/package.json","../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/package.json","../../../../package.json","../../../package.json","../../chunks/316.js","../../chunks/673.js","../../chunks/687.js","../../chunks/font-manifest.json","../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/client/.next/server/app/dashboard/page_client-reference-manifest.js b/client/.next/server/app/dashboard/page_client-reference-manifest.js
new file mode 100644
index 0000000..8c99563
--- /dev/null
+++ b/client/.next/server/app/dashboard/page_client-reference-manifest.js
@@ -0,0 +1 @@
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/dashboard/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(ssr)/./src/app/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/dashboard/page.tsx":{"*":{"id":"(ssr)/./src/app/dashboard/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/app/client/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":"(app-pages-browser)/./node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/app/client/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/app/client/src/app/page.tsx":{"id":"(app-pages-browser)/./src/app/page.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/app/client/src/app/dashboard/page.tsx":{"id":"(app-pages-browser)/./src/app/dashboard/page.tsx","name":"*","chunks":["app/dashboard/page","static/chunks/app/dashboard/page.js"],"async":false}},"entryCSSFiles":{"/app/client/src/app/layout":["static/css/app/layout.css"],"/app/client/src/app/page":[],"/app/client/src/app/not-found":[],"/app/client/src/app/dashboard/page":[]}}
\ No newline at end of file
diff --git a/client/.next/server/app/index.html b/client/.next/server/app/index.html
new file mode 100644
index 0000000..c0f7af7
--- /dev/null
+++ b/client/.next/server/app/index.html
@@ -0,0 +1 @@
+Francia Ocupada: WWII Francia Ocupada ● BUSCANDO SEÑAL...
\ No newline at end of file
diff --git a/client/.next/server/app/index.meta b/client/.next/server/app/index.meta
new file mode 100644
index 0000000..4bb6676
--- /dev/null
+++ b/client/.next/server/app/index.meta
@@ -0,0 +1,5 @@
+{
+ "headers": {
+ "x-next-cache-tags": "_N_T_/layout,_N_T_/page,_N_T_/"
+ }
+}
\ No newline at end of file
diff --git a/client/.next/server/app/index.rsc b/client/.next/server/app/index.rsc
new file mode 100644
index 0000000..58ef986
--- /dev/null
+++ b/client/.next/server/app/index.rsc
@@ -0,0 +1,10 @@
+1:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
+2:HL["/_next/static/css/5bcff5e654940d99.css","style",{"crossOrigin":""}]
+0:["Q-zfVzSkdLG_GvHabv8Ax",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L3",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/5bcff5e654940d99.css","precedence":"next","crossOrigin":""}]],"$L4"]]]]
+5:I[6954,[],""]
+6:I[7264,[],""]
+8:I[8297,[],""]
+9:I[9434,["59","static/chunks/59-20c16c1e6a3d3cb9.js","691","static/chunks/691-4b36160f3a2c27d5.js","931","static/chunks/app/page-db461075176a3285.js"],""]
+3:[null,["$","html",null,{"lang":"es","children":["$","body",null,{"className":"__className_f367f3","children":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","loadingScripts":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"initialChildNode":["$L7",["$","$L8",null,{"propsForComponent":{"params":{}},"Component":"$9","isStaticGeneration":true}],null],"childPropSegment":"__PAGE__","styles":null}]}]}],null]
+4:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Francia Ocupada: WWII"}],["$","meta","3",{"name":"description","content":"Juego de deducción social ambientado en la Segunda Guerra Mundial"}],["$","meta","4",{"name":"next-size-adjust"}]]
+7:null
diff --git a/client/.next/server/app/not-found.js b/client/.next/server/app/not-found.js
new file mode 100644
index 0000000..7272b2a
--- /dev/null
+++ b/client/.next/server/app/not-found.js
@@ -0,0 +1,144 @@
+/*
+ * ATTENTION: An "eval-source-map" devtool has been used.
+ * This devtool is neither made for production nor for readable output files.
+ * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
+ * or disable the default devtool with "devtool: false".
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
+ */
+(() => {
+var exports = {};
+exports.id = "app/not-found";
+exports.ids = ["app/not-found"];
+exports.modules = {
+
+/***/ "../../client/components/action-async-storage.external":
+/*!*******************************************************************************!*\
+ !*** external "next/dist/client/components/action-async-storage.external.js" ***!
+ \*******************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/action-async-storage.external.js");
+
+/***/ }),
+
+/***/ "./request-async-storage.external":
+/*!*****************************************************************************!*\
+ !*** external "next/dist/client/components/request-async-storage.external" ***!
+ \*****************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/request-async-storage.external");
+
+/***/ }),
+
+/***/ "../../client/components/request-async-storage.external":
+/*!********************************************************************************!*\
+ !*** external "next/dist/client/components/request-async-storage.external.js" ***!
+ \********************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/request-async-storage.external.js");
+
+/***/ }),
+
+/***/ "./static-generation-async-storage.external":
+/*!***************************************************************************************!*\
+ !*** external "next/dist/client/components/static-generation-async-storage.external" ***!
+ \***************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/static-generation-async-storage.external");
+
+/***/ }),
+
+/***/ "../../client/components/static-generation-async-storage.external":
+/*!******************************************************************************************!*\
+ !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
+ \******************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
+
+/***/ }),
+
+/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
+/*!*************************************************************************!*\
+ !*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
+ \*************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fnot-found&page=%2Fnot-found&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
+/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fnot-found&page=%2Fnot-found&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
+ \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?5bc9\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: [\n '__DEFAULT__',\n {},\n {\n defaultPage: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/parallel-route-default */ \"(rsc)/./node_modules/next/dist/client/components/parallel-route-default.js\", 23)), \"next/dist/client/components/parallel-route-default\"],\n }\n ]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\")), \"/app/client/src/app/layout.tsx\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n \n }\n ]\n }.children;\nconst pages = [];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/not-found\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/not-found\",\n pathname: \"/not-found\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZub3QtZm91bmQmcGFnZT0lMkZub3QtZm91bmQmYXBwUGF0aHM9JnBhZ2VQYXRoPS4uJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWVycm9yLmpzJmFwcERpcj0lMkZhcHAlMkZjbGllbnQlMkZzcmMlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRmFwcCUyRmNsaWVudCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGFBQWEsc0JBQXNCO0FBQ2lFO0FBQ3JDO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQSxnQ0FBZ0Msd09BQXVGO0FBQ3ZIO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSx5QkFBeUIsb0pBQW1FO0FBQzVGLG9CQUFvQiwwTkFBZ0Y7QUFDcEc7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ3VCO0FBQzZEO0FBQ3BGLDZCQUE2QixtQkFBbUI7QUFDaEQ7QUFDTztBQUNBO0FBQ1A7QUFDQTtBQUNBO0FBQ3VEO0FBQ3ZEO0FBQ08sd0JBQXdCLDhHQUFrQjtBQUNqRDtBQUNBLGNBQWMseUVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9yZXNpc3RlbmNpYS1jbGllbnQvPzc5ZDEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJUVVJCT1BBQ0sgeyB0cmFuc2l0aW9uOiBuZXh0LXNzciB9XCI7XG5pbXBvcnQgeyBBcHBQYWdlUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuY29tcGlsZWRcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kXCI7XG4vLyBXZSBpbmplY3QgdGhlIHRyZWUgYW5kIHBhZ2VzIGhlcmUgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZW0gaW4gdGhlIHJvdXRlXG4vLyBtb2R1bGUuXG5jb25zdCB0cmVlID0ge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAnJyxcbiAgICAgICAge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICdfX0RFRkFVTFRfXycsXG4gICAgICAgICAge30sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGVmYXVsdFBhZ2U6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9wYXJhbGxlbC1yb3V0ZS1kZWZhdWx0XCIpLCBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9wYXJhbGxlbC1yb3V0ZS1kZWZhdWx0XCJdLFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAnbGF5b3V0JzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvc3JjL2FwcC9sYXlvdXQudHN4XCIpLCBcIi9hcHAvY2xpZW50L3NyYy9hcHAvbGF5b3V0LnRzeFwiXSxcbidub3QtZm91bmQnOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCIpLCBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIl0sXG4gICAgICAgIFxuICAgICAgfVxuICAgICAgXVxuICAgICAgfS5jaGlsZHJlbjtcbmNvbnN0IHBhZ2VzID0gW107XG5leHBvcnQgeyB0cmVlLCBwYWdlcyB9O1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHbG9iYWxFcnJvciB9IGZyb20gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnlcIjtcbmNvbnN0IF9fbmV4dF9hcHBfcmVxdWlyZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfX1xuY29uc3QgX19uZXh0X2FwcF9sb2FkX2NodW5rX18gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoKVxuZXhwb3J0IGNvbnN0IG9yaWdpbmFsUGF0aG5hbWUgPSBcIi9ub3QtZm91bmRcIjtcbmV4cG9ydCBjb25zdCBfX25leHRfYXBwX18gPSB7XG4gICAgcmVxdWlyZTogX19uZXh0X2FwcF9yZXF1aXJlX18sXG4gICAgbG9hZENodW5rOiBfX25leHRfYXBwX2xvYWRfY2h1bmtfX1xufTtcbmV4cG9ydCAqIGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvZW50cnktYmFzZVwiO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUGFnZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgcGFnZTogXCIvbm90LWZvdW5kXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9ub3QtZm91bmRcIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiBcIlwiLFxuICAgICAgICBmaWxlbmFtZTogXCJcIixcbiAgICAgICAgYXBwUGF0aHM6IFtdXG4gICAgfSxcbiAgICB1c2VybGFuZDoge1xuICAgICAgICBsb2FkZXJUcmVlOiB0cmVlXG4gICAgfVxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1wYWdlLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fnot-found&page=%2Fnot-found&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!":
+/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true! ***!
+ \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGYXBwJTJGY2xpZW50JTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGYXBwLXJvdXRlci5qcyZtb2R1bGVzPSUyRmFwcCUyRmNsaWVudCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmVycm9yLWJvdW5kYXJ5LmpzJm1vZHVsZXM9JTJGYXBwJTJGY2xpZW50JTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyZtb2R1bGVzPSUyRmFwcCUyRmNsaWVudCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRm5vdC1mb3VuZC1ib3VuZGFyeS5qcyZtb2R1bGVzPSUyRmFwcCUyRmNsaWVudCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRnJlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMmbW9kdWxlcz0lMkZhcHAlMkZjbGllbnQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZzdGF0aWMtZ2VuZXJhdGlvbi1zZWFyY2hwYXJhbXMtYmFpbG91dC1wcm92aWRlci5qcyZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQXVHO0FBQ3ZHLDBPQUEyRztBQUMzRyx3T0FBMEc7QUFDMUcsa1BBQStHO0FBQy9HLHNRQUF5SDtBQUN6SCIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8/YzA0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9hcHAvY2xpZW50L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeS5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvYXBwL2NsaWVudC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1ib3VuZGFyeS5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvYXBwL2NsaWVudC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLXNlYXJjaHBhcmFtcy1iYWlsb3V0LXByb3ZpZGVyLmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fglobals.css&server=true!":
+/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fglobals.css&server=true! ***!
+ \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ (() => {
+
+
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/globals.css":
+/*!*****************************!*\
+ !*** ./src/app/globals.css ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"955ec95b3e6f\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Ly4vc3JjL2FwcC9nbG9iYWxzLmNzcz9jMTA2Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiOTU1ZWM5NWIzZTZmXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n");
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/layout.tsx":
+/*!****************************!*\
+ !*** ./src/app/layout.tsx ***!
+ \****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"} */ \"(rsc)/./node_modules/next/font/google/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"Inter\\\",\\\"arguments\\\":[{\\\"subsets\\\":[\\\"latin\\\"]}],\\\"variableName\\\":\\\"inter\\\"}\");\n/* harmony import */ var next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\n\nconst metadata = {\n title: \"Francia Ocupada: WWII\",\n description: \"Juego de deducci\\xf3n social ambientado en la Segunda Guerra Mundial\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"es\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: (next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2___default().className),\n children: children\n }, void 0, false, {\n fileName: \"/app/client/src/app/layout.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/layout.tsx\",\n lineNumber: 18,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJTUE7QUFGZ0I7QUFJZixNQUFNQyxXQUFxQjtJQUM5QkMsT0FBTztJQUNQQyxhQUFhO0FBQ2pCLEVBQUM7QUFFYyxTQUFTQyxXQUFXLEVBQy9CQyxRQUFRLEVBR1g7SUFDRyxxQkFDSSw4REFBQ0M7UUFBS0MsTUFBSztrQkFDUCw0RUFBQ0M7WUFBS0MsV0FBV1QsK0pBQWU7c0JBQUdLOzs7Ozs7Ozs7OztBQUcvQyIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8uL3NyYy9hcHAvbGF5b3V0LnRzeD81N2E5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWV0YWRhdGEgfSBmcm9tICduZXh0J1xuaW1wb3J0IHsgSW50ZXIgfSBmcm9tICduZXh0L2ZvbnQvZ29vZ2xlJ1xuaW1wb3J0ICcuL2dsb2JhbHMuY3NzJ1xuXG5jb25zdCBpbnRlciA9IEludGVyKHsgc3Vic2V0czogWydsYXRpbiddIH0pXG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YTogTWV0YWRhdGEgPSB7XG4gICAgdGl0bGU6ICdGcmFuY2lhIE9jdXBhZGE6IFdXSUknLFxuICAgIGRlc2NyaXB0aW9uOiAnSnVlZ28gZGUgZGVkdWNjacOzbiBzb2NpYWwgYW1iaWVudGFkbyBlbiBsYSBTZWd1bmRhIEd1ZXJyYSBNdW5kaWFsJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7XG4gICAgY2hpbGRyZW4sXG59OiB7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxodG1sIGxhbmc9XCJlc1wiPlxuICAgICAgICAgICAgPGJvZHkgY2xhc3NOYW1lPXtpbnRlci5jbGFzc05hbWV9PntjaGlsZHJlbn08L2JvZHk+XG4gICAgICAgIDwvaHRtbD5cbiAgICApXG59XG4iXSwibmFtZXMiOlsiaW50ZXIiLCJtZXRhZGF0YSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJodG1sIiwibGFuZyIsImJvZHkiLCJjbGFzc05hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n");
+
+/***/ })
+
+};
+;
+
+// load runtime
+var __webpack_require__ = require("../webpack-runtime.js");
+__webpack_require__.C(exports);
+var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
+var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fnot-found&page=%2Fnot-found&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
+module.exports = __webpack_exports__;
+
+})();
\ No newline at end of file
diff --git a/client/.next/server/app/not-found_client-reference-manifest.js b/client/.next/server/app/not-found_client-reference-manifest.js
new file mode 100644
index 0000000..74ac94d
--- /dev/null
+++ b/client/.next/server/app/not-found_client-reference-manifest.js
@@ -0,0 +1 @@
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/not-found"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(ssr)/./src/app/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/app/client/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":"(app-pages-browser)/./node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/app/client/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/app/client/src/app/page.tsx":{"id":"(app-pages-browser)/./src/app/page.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false}},"entryCSSFiles":{"/app/client/src/app/layout":["static/css/app/layout.css"],"/app/client/src/app/page":[],"/app/client/src/app/not-found":[]}}
\ No newline at end of file
diff --git a/client/.next/server/app/page.js b/client/.next/server/app/page.js
new file mode 100644
index 0000000..6a8f05c
--- /dev/null
+++ b/client/.next/server/app/page.js
@@ -0,0 +1,489 @@
+/*
+ * ATTENTION: An "eval-source-map" devtool has been used.
+ * This devtool is neither made for production nor for readable output files.
+ * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
+ * or disable the default devtool with "devtool: false".
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
+ */
+(() => {
+var exports = {};
+exports.id = "app/page";
+exports.ids = ["app/page"];
+exports.modules = {
+
+/***/ "../../client/components/action-async-storage.external":
+/*!*******************************************************************************!*\
+ !*** external "next/dist/client/components/action-async-storage.external.js" ***!
+ \*******************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/action-async-storage.external.js");
+
+/***/ }),
+
+/***/ "./request-async-storage.external":
+/*!*****************************************************************************!*\
+ !*** external "next/dist/client/components/request-async-storage.external" ***!
+ \*****************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/request-async-storage.external");
+
+/***/ }),
+
+/***/ "../../client/components/request-async-storage.external":
+/*!********************************************************************************!*\
+ !*** external "next/dist/client/components/request-async-storage.external.js" ***!
+ \********************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/request-async-storage.external.js");
+
+/***/ }),
+
+/***/ "./static-generation-async-storage.external":
+/*!***************************************************************************************!*\
+ !*** external "next/dist/client/components/static-generation-async-storage.external" ***!
+ \***************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/static-generation-async-storage.external");
+
+/***/ }),
+
+/***/ "../../client/components/static-generation-async-storage.external":
+/*!******************************************************************************************!*\
+ !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
+ \******************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
+
+/***/ }),
+
+/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
+/*!*************************************************************************!*\
+ !*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
+ \*************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");
+
+/***/ }),
+
+/***/ "buffer":
+/*!*************************!*\
+ !*** external "buffer" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("buffer");
+
+/***/ }),
+
+/***/ "child_process":
+/*!********************************!*\
+ !*** external "child_process" ***!
+ \********************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("child_process");
+
+/***/ }),
+
+/***/ "crypto":
+/*!*************************!*\
+ !*** external "crypto" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("crypto");
+
+/***/ }),
+
+/***/ "events":
+/*!*************************!*\
+ !*** external "events" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("events");
+
+/***/ }),
+
+/***/ "fs":
+/*!*********************!*\
+ !*** external "fs" ***!
+ \*********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("fs");
+
+/***/ }),
+
+/***/ "http":
+/*!***********************!*\
+ !*** external "http" ***!
+ \***********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("http");
+
+/***/ }),
+
+/***/ "https":
+/*!************************!*\
+ !*** external "https" ***!
+ \************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("https");
+
+/***/ }),
+
+/***/ "net":
+/*!**********************!*\
+ !*** external "net" ***!
+ \**********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("net");
+
+/***/ }),
+
+/***/ "os":
+/*!*********************!*\
+ !*** external "os" ***!
+ \*********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("os");
+
+/***/ }),
+
+/***/ "path":
+/*!***********************!*\
+ !*** external "path" ***!
+ \***********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("path");
+
+/***/ }),
+
+/***/ "stream":
+/*!*************************!*\
+ !*** external "stream" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("stream");
+
+/***/ }),
+
+/***/ "tls":
+/*!**********************!*\
+ !*** external "tls" ***!
+ \**********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("tls");
+
+/***/ }),
+
+/***/ "tty":
+/*!**********************!*\
+ !*** external "tty" ***!
+ \**********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("tty");
+
+/***/ }),
+
+/***/ "url":
+/*!**********************!*\
+ !*** external "url" ***!
+ \**********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("url");
+
+/***/ }),
+
+/***/ "util":
+/*!***********************!*\
+ !*** external "util" ***!
+ \***********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("util");
+
+/***/ }),
+
+/***/ "zlib":
+/*!***********************!*\
+ !*** external "zlib" ***!
+ \***********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("zlib");
+
+/***/ }),
+
+/***/ "?32c4":
+/*!****************************!*\
+ !*** bufferutil (ignored) ***!
+ \****************************/
+/***/ (() => {
+
+/* (ignored) */
+
+/***/ }),
+
+/***/ "?66e9":
+/*!********************************!*\
+ !*** utf-8-validate (ignored) ***!
+ \********************************/
+/***/ (() => {
+
+/* (ignored) */
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
+/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
+ \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?5bc9\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(rsc)/./src/app/page.tsx\")), \"/app/client/src/app/page.tsx\"],\n \n }]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\")), \"/app/client/src/app/layout.tsx\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n \n }\n ]\n }.children;\nconst pages = [\"/app/client/src/app/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/page\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/page\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZwYWdlJnBhZ2U9JTJGcGFnZSZhcHBQYXRocz0lMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGcGFnZS50c3gmYXBwRGlyPSUyRmFwcCUyRmNsaWVudCUyRnNyYyUyRmFwcCZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzJnJvb3REaXI9JTJGYXBwJTJGY2xpZW50JmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsYUFBYSxzQkFBc0I7QUFDaUU7QUFDckM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDLHVCQUF1QixnSkFBaUU7QUFDeEY7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0EseUJBQXlCLG9KQUFtRTtBQUM1RixvQkFBb0IsME5BQWdGO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUN1QjtBQUM2RDtBQUNwRiw2QkFBNkIsbUJBQW1CO0FBQ2hEO0FBQ087QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUN1RDtBQUN2RDtBQUNPLHdCQUF3Qiw4R0FBa0I7QUFDakQ7QUFDQSxjQUFjLHlFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Lz85MjBkIl0sInNvdXJjZXNDb250ZW50IjpbIlwiVFVSQk9QQUNLIHsgdHJhbnNpdGlvbjogbmV4dC1zc3IgfVwiO1xuaW1wb3J0IHsgQXBwUGFnZVJvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuLy8gV2UgaW5qZWN0IHRoZSB0cmVlIGFuZCBwYWdlcyBoZXJlIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGVtIGluIHRoZSByb3V0ZVxuLy8gbW9kdWxlLlxuY29uc3QgdHJlZSA9IHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJycsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFsnX19QQUdFX18nLCB7fSwge1xuICAgICAgICAgIHBhZ2U6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9hcHAvY2xpZW50L3NyYy9hcHAvcGFnZS50c3hcIiksIFwiL2FwcC9jbGllbnQvc3JjL2FwcC9wYWdlLnRzeFwiXSxcbiAgICAgICAgICBcbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgJ2xheW91dCc6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9hcHAvY2xpZW50L3NyYy9hcHAvbGF5b3V0LnRzeFwiKSwgXCIvYXBwL2NsaWVudC9zcmMvYXBwL2xheW91dC50c3hcIl0sXG4nbm90LWZvdW5kJzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiKSwgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCJdLFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtcIi9hcHAvY2xpZW50L3NyYy9hcHAvcGFnZS50c3hcIl07XG5leHBvcnQgeyB0cmVlLCBwYWdlcyB9O1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHbG9iYWxFcnJvciB9IGZyb20gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnlcIjtcbmNvbnN0IF9fbmV4dF9hcHBfcmVxdWlyZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfX1xuY29uc3QgX19uZXh0X2FwcF9sb2FkX2NodW5rX18gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoKVxuZXhwb3J0IGNvbnN0IG9yaWdpbmFsUGF0aG5hbWUgPSBcIi9wYWdlXCI7XG5leHBvcnQgY29uc3QgX19uZXh0X2FwcF9fID0ge1xuICAgIHJlcXVpcmU6IF9fbmV4dF9hcHBfcmVxdWlyZV9fLFxuICAgIGxvYWRDaHVuazogX19uZXh0X2FwcF9sb2FkX2NodW5rX19cbn07XG5leHBvcnQgKiBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIjtcbi8vIENyZWF0ZSBhbmQgZXhwb3J0IHRoZSByb3V0ZSBtb2R1bGUgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuZXhwb3J0IGNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IEFwcFBhZ2VSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgIHBhZ2U6IFwiL3BhZ2VcIixcbiAgICAgICAgcGF0aG5hbWU6IFwiL1wiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcIlwiLFxuICAgICAgICBhcHBQYXRoczogW11cbiAgICB9LFxuICAgIHVzZXJsYW5kOiB7XG4gICAgICAgIGxvYWRlclRyZWU6IHRyZWVcbiAgICB9XG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXBhZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!":
+/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true! ***!
+ \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGYXBwJTJGY2xpZW50JTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGYXBwLXJvdXRlci5qcyZtb2R1bGVzPSUyRmFwcCUyRmNsaWVudCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmVycm9yLWJvdW5kYXJ5LmpzJm1vZHVsZXM9JTJGYXBwJTJGY2xpZW50JTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyZtb2R1bGVzPSUyRmFwcCUyRmNsaWVudCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRm5vdC1mb3VuZC1ib3VuZGFyeS5qcyZtb2R1bGVzPSUyRmFwcCUyRmNsaWVudCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRnJlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMmbW9kdWxlcz0lMkZhcHAlMkZjbGllbnQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZzdGF0aWMtZ2VuZXJhdGlvbi1zZWFyY2hwYXJhbXMtYmFpbG91dC1wcm92aWRlci5qcyZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQXVHO0FBQ3ZHLDBPQUEyRztBQUMzRyx3T0FBMEc7QUFDMUcsa1BBQStHO0FBQy9HLHNRQUF5SDtBQUN6SCIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8/YzA0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9hcHAvY2xpZW50L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeS5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvYXBwL2NsaWVudC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1ib3VuZGFyeS5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvYXBwL2NsaWVudC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLXNlYXJjaHBhcmFtcy1iYWlsb3V0LXByb3ZpZGVyLmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fglobals.css&server=true!":
+/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fglobals.css&server=true! ***!
+ \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ (() => {
+
+
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fpage.tsx&server=true!":
+/*!*****************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fpage.tsx&server=true! ***!
+ \*****************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(ssr)/./src/app/page.tsx\"))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGYXBwJTJGY2xpZW50JTJGc3JjJTJGYXBwJTJGcGFnZS50c3gmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Lz8yOWE3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2FwcC9jbGllbnQvc3JjL2FwcC9wYWdlLnRzeFwiKSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fapp%2Fclient%2Fsrc%2Fapp%2Fpage.tsx&server=true!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/app/page.tsx":
+/*!**************************!*\
+ !*** ./src/app/page.tsx ***!
+ \**************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Home)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _hooks_useSocket__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/useSocket */ \"(ssr)/./src/hooks/useSocket.ts\");\n/* harmony import */ var _hooks_useSessionStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/useSessionStorage */ \"(ssr)/./src/hooks/useSessionStorage.ts\");\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\");\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/motion.mjs\");\n/* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/image */ \"(ssr)/./node_modules/next/image.js\");\n/* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_image__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _components_GameBoard__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/GameBoard */ \"(ssr)/./src/components/GameBoard.tsx\");\n/* harmony import */ var _components_LogoutButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/LogoutButton */ \"(ssr)/./src/components/LogoutButton.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\n\n\n// Constantes de apellidos\nconst SURNAMES = [\n // Franceses\n \"Dubois\",\n \"Leroy\",\n \"Moreau\",\n \"Petit\",\n \"Lefebvre\",\n \"Michel\",\n \"Durand\",\n // Británicos\n \"Smith\",\n \"Jones\",\n \"Williams\",\n \"Brown\",\n \"Taylor\",\n \"Wilson\",\n \"Evans\",\n // Americanos\n \"Miller\",\n \"Davis\",\n \"Garcia\",\n \"Rodriguez\",\n \"Martinez\",\n \"Hernandez\"\n];\nfunction Home() {\n const { isConnected, gameState, roomsList, actions, socket } = (0,_hooks_useSocket__WEBPACK_IMPORTED_MODULE_2__.useSocket)();\n const { session, saveSession, updateSession, clearSession } = (0,_hooks_useSessionStorage__WEBPACK_IMPORTED_MODULE_3__.useSessionStorage)();\n // Estados locales de UI\n const [view, setView] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"login\");\n const [playerName, setPlayerName] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n // El apellido se genera al loguearse\n const [fullPlayerName, setFullPlayerName] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n // UI Create/Join\n const [showCreateModal, setShowCreateModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [createConfig, setCreateConfig] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n maxPlayers: 5,\n password: \"\"\n });\n const [passwordPromptRoomId, setPasswordPromptRoomId] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [joinPassword, setJoinPassword] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [hasReconnected, setHasReconnected] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Restaurar sesión al cargar - SOLO UNA VEZ\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (session && isConnected && !hasReconnected) {\n setPlayerName(session.playerName);\n setFullPlayerName(session.fullPlayerName);\n setView(session.currentView);\n // Si había una partida activa, intentar reconectar\n if (session.roomId && session.currentView === \"game\") {\n actions.reconnectSession({\n playerName: session.fullPlayerName,\n roomId: session.roomId\n });\n } else if (session.currentView === \"lobby\") {\n actions.refreshRooms();\n }\n setHasReconnected(true);\n }\n }, [\n session,\n isConnected,\n hasReconnected,\n actions,\n setPlayerName,\n setFullPlayerName,\n setView,\n setHasReconnected\n ]);\n // Efecto para cambiar a vista de juego cuando el servidor nos une\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (gameState?.roomId) {\n setView(\"game\");\n // Guardar en sesión\n updateSession({\n currentView: \"game\",\n roomId: gameState.roomId\n });\n } else if (view === \"game\" && !gameState) {\n // Si estábamos en juego y volvemos a null, volver al lobby\n // Pero solo si no estamos esperando una reconexión inicial\n if (hasReconnected) {\n setView(\"lobby\");\n updateSession({\n currentView: \"lobby\",\n roomId: undefined\n });\n }\n }\n }, [\n gameState,\n view,\n hasReconnected,\n updateSession,\n setView\n ]);\n // Listener para errores de socket que deben expulsar al lobby\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!socket) return;\n const handleError = (msg)=>{\n if (msg === \"La partida ya no existe\" || msg === \"No se pudo reconectar a la partida\") {\n setView(\"lobby\");\n updateSession({\n currentView: \"lobby\",\n roomId: undefined\n });\n }\n };\n socket.on(\"error\", handleError);\n return ()=>{\n socket.off(\"error\", handleError);\n };\n }, [\n socket,\n updateSession,\n setView\n ]);\n const handleLogin = (e)=>{\n e.preventDefault();\n if (playerName) {\n // Generar apellido aleatorio\n const randomSurname = SURNAMES[Math.floor(Math.random() * SURNAMES.length)];\n const fullName = `${playerName} ${randomSurname}`;\n setFullPlayerName(fullName);\n // Guardar sesión\n saveSession({\n playerName,\n fullPlayerName: fullName,\n currentView: \"lobby\"\n });\n setView(\"lobby\");\n actions.refreshRooms();\n }\n };\n const handleLogout = ()=>{\n clearSession();\n setView(\"login\");\n setPlayerName(\"\");\n setFullPlayerName(\"\");\n // Si está en una partida, salir\n if (gameState?.roomId) {\n actions.leaveGame();\n }\n };\n const handleCreateGame = (e)=>{\n e.preventDefault();\n actions.createGame(fullPlayerName, createConfig.maxPlayers, createConfig.password);\n setShowCreateModal(false);\n };\n const requestJoinGame = (room)=>{\n if (room.isPrivate) {\n setPasswordPromptRoomId(room.id);\n setJoinPassword(\"\");\n } else {\n actions.joinGame(room.id, fullPlayerName);\n }\n };\n const submitJoinPassword = ()=>{\n if (passwordPromptRoomId) {\n actions.joinGame(passwordPromptRoomId, fullPlayerName, joinPassword);\n setPasswordPromptRoomId(null);\n }\n };\n // --- RENDER DE JUEGO O SALA DE ESPERA ---\n if (view === \"game\" && gameState && socket) {\n // ¿Estamos en fase de lobby dentro de la partida?\n if (gameState.phase === \"lobby\") {\n const isHost = gameState.hostId === socket.id;\n // Podríamos obtener maxPlayers del array players si no lo tenemos en gameState,\n // pero lo ideal sería tenerlo. Por ahora asumimos que si ya estamos dentro,\n // sabemos cuantos somos.\n // NOTA: GameState no tiene maxPlayers explicitamente, pero podemos deducirlo o añadirlo.\n // Por simplicidad, usaremos el length para validar minimo.\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"relative min-h-screen flex flex-col items-center justify-center overflow-hidden bg-zinc-900 font-mono text-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 z-0 opacity-40\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_4___default()), {\n src: \"/assets/images/ui/bg_game.png\",\n alt: \"War Room\",\n fill: true,\n className: \"object-cover\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 160,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/70\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 161,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 159,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"z-10 bg-black/80 p-8 rounded border border-white/20 max-w-2xl w-full mx-4 backdrop-blur-md\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl font-bold text-yellow-500 mb-2 uppercase tracking-widest\",\n children: \"Sala de Espera\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 166,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl font-bold text-white mb-1\",\n children: gameState.roomName\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 167,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-400\",\n children: \"Operaci\\xf3n en curso. Esperando activaci\\xf3n...\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 168,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 165,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 gap-4 mb-8\",\n children: gameState.players.map((player)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/5 p-3 rounded flex items-center gap-3 border border-white/10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-3 h-3 rounded-full ${player.id === socket.id ? \"bg-green-500 shadow-green-500/50 shadow-lg\" : \"bg-gray-500\"}`\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 174,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: player.id === socket.id ? \"font-bold text-white\" : \"text-gray-300\",\n children: player.name\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 175,\n columnNumber: 37\n }, this),\n player.id === gameState.hostId && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[10px] bg-yellow-900/50 text-yellow-500 px-2 py-0.5 rounded ml-auto\",\n children: \"HOST\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 179,\n columnNumber: 41\n }, this)\n ]\n }, player.id, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 173,\n columnNumber: 33\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 171,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-4 border-t border-white/10 pt-6\",\n children: isHost ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-400 mb-2\",\n children: [\n \"Jugadores: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-white font-bold\",\n children: gameState.players.length\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 190,\n columnNumber: 52\n }, this),\n gameState.players.length < 5 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-red-400 ml-2\",\n children: \"(M\\xednimo 5 requeridos)\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 191,\n columnNumber: 74\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 189,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>actions.startGame(),\n disabled: gameState.players.length < 5,\n className: \"w-full max-w-md bg-yellow-600 hover:bg-yellow-500 disabled:bg-gray-700 disabled:cursor-not-allowed text-white font-bold py-4 rounded uppercase tracking-[0.2em] transition-all shadow-lg\",\n children: \"INICIAR MISI\\xd3N\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 193,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center animate-pulse\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-yellow-500 font-bold uppercase tracking-wider\",\n children: \"Esperando al Comandante...\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 203,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-gray-500 mt-2\",\n children: \"La misi\\xf3n comenzar\\xe1 cuando el l\\xedder d\\xe9 la orden.\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 204,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 202,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 186,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 164,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 158,\n columnNumber: 17\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_GameBoard__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n gameState: gameState,\n currentPlayerId: socket.id || \"\",\n actions: actions,\n fullPlayerName: fullPlayerName\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 214,\n columnNumber: 13\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"relative min-h-screen flex flex-col items-center overflow-hidden bg-zinc-900 font-mono text-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 z-0 opacity-40\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_4___default()), {\n src: \"/assets/images/ui/bg_lobby.png\",\n alt: \"Lobby Background\",\n fill: true,\n className: \"object-cover\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 228,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-gradient-to-t from-black via-black/50 to-transparent\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 234,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 227,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"z-10 w-full p-4 flex justify-between items-center max-w-6xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_4___default()), {\n src: \"/assets/images/ui/logo.png\",\n alt: \"Logo\",\n width: 150,\n height: 50,\n className: \"object-contain filter drop-shadow hidden md:block\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 240,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-bold tracking-widest uppercase text-yellow-600\",\n children: \"Francia Ocupada\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 241,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 239,\n columnNumber: 17\n }, this),\n view === \"lobby\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3 bg-black/50 px-4 py-2 rounded border border-white/10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-gray-400\",\n children: \"AGENTE:\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 248,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-bold text-yellow-500\",\n children: fullPlayerName\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 249,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 247,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_LogoutButton__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n onClick: handleLogout\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 251,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 246,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 238,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"z-10 w-full flex-1 flex flex-col items-center justify-center p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_7__.AnimatePresence, {\n mode: \"wait\",\n children: [\n view === \"login\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.form, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n exit: {\n opacity: 0,\n y: -20\n },\n onSubmit: handleLogin,\n className: \"bg-black/80 p-8 rounded border border-white/20 shadow-2xl max-w-md w-full backdrop-blur-md\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xl text-center mb-6 uppercase tracking-[0.2em] text-white\",\n children: \"Identificaci\\xf3n\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 269,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"text-xs uppercase text-gray-500 block mb-1\",\n children: \"Nombre en Clave\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 273,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n required: true,\n value: playerName,\n onChange: (e)=>setPlayerName(e.target.value),\n className: \"w-full bg-white/10 border border-white/20 p-3 rounded text-white focus:outline-none focus:border-yellow-500 transition-colors\",\n placeholder: \"Ej: Agente\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 274,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 272,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"w-full bg-yellow-700 hover:bg-yellow-600 text-white font-bold py-3 mt-4 rounded uppercase tracking-wider transition-all\",\n children: \"Acceder al Cuartel\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 284,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 271,\n columnNumber: 29\n }, this)\n ]\n }, \"login-form\", true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 261,\n columnNumber: 25\n }, this),\n view === \"lobby\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n exit: {\n opacity: 0\n },\n className: \"w-full max-w-5xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-end mb-6 border-b border-white/20 pb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl font-light text-white\",\n children: \"MISIONES ACTIVAS\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 305,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-400 text-sm mt-1\",\n children: \"Selecciona una operaci\\xf3n o inicia una nueva.\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 306,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 304,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowCreateModal(true),\n className: \"bg-blue-800 hover:bg-blue-700 text-white px-6 py-2 rounded uppercase text-sm font-bold tracking-wider shadow-lg border border-blue-600 transition-all\",\n children: \"+ Crear Operaci\\xf3n\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 308,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 303,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\",\n children: roomsList.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"col-span-full py-20 text-center text-gray-500 bg-black/30 rounded border border-white/5 border-dashed\",\n children: \"No hay misiones activas en este momento.\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 318,\n columnNumber: 37\n }, this) : roomsList.map((room)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n scale: 0.95,\n opacity: 0\n },\n animate: {\n scale: 1,\n opacity: 1\n },\n className: \"bg-black/60 border border-white/10 p-5 rounded hover:border-yellow-700/50 transition-colors group relative overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-0 right-0 p-2\",\n children: room.isPrivate ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n title: \"Privada\",\n className: \"text-red-400\",\n children: \"\\uD83D\\uDD12\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 331,\n columnNumber: 53\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n title: \"P\\xfablica\",\n className: \"text-green-400/50\",\n children: \"\\uD83D\\uDD13\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 333,\n columnNumber: 53\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 329,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-bold text-yellow-500 mb-1 group-hover:text-yellow-400 transition-colors\",\n children: room.name\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 337,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-400 mb-4 flex gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"bg-white/10 px-2 py-0.5 rounded textxs\",\n children: \"HOST:\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 342,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-white\",\n children: [\n room.hostId.substring(0, 6),\n \"...\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 345,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 341,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center mt-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-end gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-3xl font-bold text-white\",\n children: room.currentPlayers\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 350,\n columnNumber: 53\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-gray-500 mb-1\",\n children: [\n \"/ \",\n room.maxPlayers\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 351,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 349,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n disabled: room.currentPlayers >= room.maxPlayers || room.status !== \"waiting\",\n onClick: ()=>requestJoinGame(room),\n className: \"bg-white/10 hover:bg-white/20 text-white px-4 py-2 rounded text-xs uppercase font-bold transition-colors disabled:opacity-30 disabled:cursor-not-allowed\",\n children: room.status === \"playing\" ? \"EN CURSO\" : room.currentPlayers >= room.maxPlayers ? \"LLENA\" : \"UNIRSE\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 354,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 348,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute bottom-0 left-0 h-1 bg-yellow-900/40 w-full\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full bg-yellow-600 transition-all duration-500\",\n style: {\n width: `${room.currentPlayers / room.maxPlayers * 100}%`\n }\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 365,\n columnNumber: 49\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 364,\n columnNumber: 45\n }, this)\n ]\n }, room.id, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 323,\n columnNumber: 41\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 316,\n columnNumber: 29\n }, this)\n ]\n }, \"lobby-list\", true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 296,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 257,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 256,\n columnNumber: 13\n }, this),\n showCreateModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n scale: 0.9\n },\n animate: {\n scale: 1\n },\n className: \"bg-zinc-800 p-6 rounded border border-white/20 w-full max-w-sm shadow-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-bold text-white mb-4 uppercase\",\n children: \"Configurar Operaci\\xf3n\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 388,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleCreateGame,\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-xs uppercase text-gray-400 mb-1\",\n children: \"N\\xba Jugadores\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 391,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: createConfig.maxPlayers,\n onChange: (e)=>setCreateConfig({\n ...createConfig,\n maxPlayers: Number(e.target.value)\n }),\n className: \"w-full bg-black/40 border border-white/10 p-2 rounded text-white\",\n children: [\n 5,\n 6,\n 7,\n 8,\n 9,\n 10\n ].map((n)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: n,\n children: [\n n,\n \" Jugadores\"\n ]\n }, n, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 398,\n columnNumber: 41\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 392,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 390,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-xs uppercase text-gray-400 mb-1\",\n children: \"Contrase\\xf1a (Opcional)\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 403,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"password\",\n value: createConfig.password,\n onChange: (e)=>setCreateConfig({\n ...createConfig,\n password: e.target.value\n }),\n className: \"w-full bg-black/40 border border-white/10 p-2 rounded text-white font-mono\",\n placeholder: \"Dejar vac\\xedo para p\\xfablica\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 404,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 402,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2 mt-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowCreateModal(false),\n className: \"flex-1 py-2 text-gray-400 hover:text-white transition-colors\",\n children: \"Cancelar\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 413,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"flex-1 py-2 bg-yellow-700 hover:bg-yellow-600 text-white rounded font-bold uppercase\",\n children: \"Crear\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 414,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 412,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 389,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 384,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 383,\n columnNumber: 17\n }, this),\n passwordPromptRoomId && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n scale: 0.9\n },\n animate: {\n scale: 1\n },\n className: \"bg-zinc-800 p-6 rounded border border-red-900/50 w-full max-w-sm shadow-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-bold text-red-400 mb-2 uppercase flex items-center gap-2\",\n children: \"\\uD83D\\uDD12 Acceso Restringido\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 428,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-gray-400 mb-4\",\n children: \"Esta operaci\\xf3n es clasificada. Introduce la clave de acceso.\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 431,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"password\",\n autoFocus: true,\n value: joinPassword,\n onChange: (e)=>setJoinPassword(e.target.value),\n onKeyDown: (e)=>e.key === \"Enter\" && submitJoinPassword(),\n className: \"w-full bg-black/40 border border-red-900/30 p-2 rounded text-white font-mono mb-4 focus:border-red-500 outline-none\",\n placeholder: \"Clave de acceso...\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 433,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setPasswordPromptRoomId(null),\n className: \"flex-1 py-2 text-gray-400 hover:text-white\",\n children: \"Cancelar\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 444,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: submitJoinPassword,\n className: \"flex-1 py-2 bg-red-900 hover:bg-red-800 text-white rounded font-bold uppercase\",\n children: \"Acceder\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 445,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 443,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 424,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 423,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute bottom-2 right-4 text-[10px] text-gray-600 font-mono\",\n children: isConnected ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-green-900\",\n children: \"● CONEXI\\xd3N SEGURA\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 452,\n columnNumber: 32\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-red-900\",\n children: \"● BUSCANDO SE\\xd1AL...\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 452,\n columnNumber: 92\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 451,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/page.tsx\",\n lineNumber: 224,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Ozs7OztZQVExSXRDLHNDQUNHLDhEQUFDdUM7Z0JBQUlELFdBQVU7MEJBQ1gsNEVBQUNsRSxpREFBTUEsQ0FBQ21FLEdBQUc7b0JBQ1BzQixTQUFTO3dCQUFFYyxPQUFPO29CQUFJO29CQUFHWCxTQUFTO3dCQUFFVyxPQUFPO29CQUFFO29CQUM3Q3JDLFdBQVU7O3NDQUVWLDhEQUFDdUM7NEJBQUd2QyxXQUFVO3NDQUF3RTs7Ozs7O3NDQUd0Riw4REFBQ007NEJBQUVOLFdBQVU7c0NBQTZCOzs7Ozs7c0NBRTFDLDhEQUFDOEI7NEJBQ0dNLE1BQUs7NEJBQ0xZLFNBQVM7NEJBQ1RoQixPQUFPcEU7NEJBQ1BxRSxVQUFVdkQsQ0FBQUEsSUFBS2IsZ0JBQWdCYSxFQUFFd0QsTUFBTSxDQUFDRixLQUFLOzRCQUM3Q2lCLFdBQVd2RSxDQUFBQSxJQUFLQSxFQUFFd0UsR0FBRyxLQUFLLFdBQVd2RDs0QkFDckNLLFdBQVU7NEJBQ1ZtQyxhQUFZOzs7Ozs7c0NBR2hCLDhEQUFDbEM7NEJBQUlELFdBQVU7OzhDQUNYLDhEQUFDYTtvQ0FBT0MsU0FBUyxJQUFNbkQsd0JBQXdCO29DQUFPcUMsV0FBVTs4Q0FBNkM7Ozs7Ozs4Q0FDN0csOERBQUNhO29DQUFPQyxTQUFTbkI7b0NBQW9CSyxXQUFVOzhDQUFpRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBTWhKLDhEQUFDQztnQkFBSUQsV0FBVTswQkFDVjNELDRCQUFjLDhEQUFDc0U7b0JBQUtYLFdBQVU7OEJBQWlCOzs7Ozt5Q0FBMkIsOERBQUNXO29CQUFLWCxXQUFVOzhCQUFlOzs7Ozs7Ozs7Ozs7Ozs7OztBQUkxSCIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8uL3NyYy9hcHAvcGFnZS50c3g/ZjY4YSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTb2NrZXQgfSBmcm9tICcuLi9ob29rcy91c2VTb2NrZXQnO1xuaW1wb3J0IHsgdXNlU2Vzc2lvblN0b3JhZ2UgfSBmcm9tICcuLi9ob29rcy91c2VTZXNzaW9uU3RvcmFnZSc7XG5pbXBvcnQgeyBtb3Rpb24sIEFuaW1hdGVQcmVzZW5jZSB9IGZyb20gJ2ZyYW1lci1tb3Rpb24nO1xuaW1wb3J0IEltYWdlIGZyb20gJ25leHQvaW1hZ2UnO1xuaW1wb3J0IEdhbWVCb2FyZCBmcm9tICcuLi9jb21wb25lbnRzL0dhbWVCb2FyZCc7XG5pbXBvcnQgTG9nb3V0QnV0dG9uIGZyb20gJy4uL2NvbXBvbmVudHMvTG9nb3V0QnV0dG9uJztcbmltcG9ydCB7IEdhbWVSb29tIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuLy8gQ29uc3RhbnRlcyBkZSBhcGVsbGlkb3NcbmNvbnN0IFNVUk5BTUVTID0gW1xuICAgIC8vIEZyYW5jZXNlc1xuICAgICdEdWJvaXMnLCAnTGVyb3knLCAnTW9yZWF1JywgJ1BldGl0JywgJ0xlZmVidnJlJywgJ01pY2hlbCcsICdEdXJhbmQnLFxuICAgIC8vIEJyaXTDoW5pY29zXG4gICAgJ1NtaXRoJywgJ0pvbmVzJywgJ1dpbGxpYW1zJywgJ0Jyb3duJywgJ1RheWxvcicsICdXaWxzb24nLCAnRXZhbnMnLFxuICAgIC8vIEFtZXJpY2Fub3NcbiAgICAnTWlsbGVyJywgJ0RhdmlzJywgJ0dhcmNpYScsICdSb2RyaWd1ZXonLCAnTWFydGluZXonLCAnSGVybmFuZGV6J1xuXTtcblxudHlwZSBWaWV3U3RhdGUgPSAnbG9naW4nIHwgJ2xvYmJ5JyB8ICdnYW1lJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSG9tZSgpIHtcbiAgICBjb25zdCB7IGlzQ29ubmVjdGVkLCBnYW1lU3RhdGUsIHJvb21zTGlzdCwgYWN0aW9ucywgc29ja2V0IH0gPSB1c2VTb2NrZXQoKTtcbiAgICBjb25zdCB7IHNlc3Npb24sIHNhdmVTZXNzaW9uLCB1cGRhdGVTZXNzaW9uLCBjbGVhclNlc3Npb24gfSA9IHVzZVNlc3Npb25TdG9yYWdlKCk7XG5cbiAgICAvLyBFc3RhZG9zIGxvY2FsZXMgZGUgVUlcbiAgICBjb25zdCBbdmlldywgc2V0Vmlld10gPSB1c2VTdGF0ZTxWaWV3U3RhdGU+KCdsb2dpbicpO1xuICAgIGNvbnN0IFtwbGF5ZXJOYW1lLCBzZXRQbGF5ZXJOYW1lXSA9IHVzZVN0YXRlKCcnKTtcbiAgICAvLyBFbCBhcGVsbGlkbyBzZSBnZW5lcmEgYWwgbG9ndWVhcnNlXG4gICAgY29uc3QgW2Z1bGxQbGF5ZXJOYW1lLCBzZXRGdWxsUGxheWVyTmFtZV0gPSB1c2VTdGF0ZSgnJyk7XG5cbiAgICAvLyBVSSBDcmVhdGUvSm9pblxuICAgIGNvbnN0IFtzaG93Q3JlYXRlTW9kYWwsIHNldFNob3dDcmVhdGVNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2NyZWF0ZUNvbmZpZywgc2V0Q3JlYXRlQ29uZmlnXSA9IHVzZVN0YXRlKHsgbWF4UGxheWVyczogNSwgcGFzc3dvcmQ6ICcnIH0pO1xuXG4gICAgY29uc3QgW3Bhc3N3b3JkUHJvbXB0Um9vbUlkLCBzZXRQYXNzd29yZFByb21wdFJvb21JZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbam9pblBhc3N3b3JkLCBzZXRKb2luUGFzc3dvcmRdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFtoYXNSZWNvbm5lY3RlZCwgc2V0SGFzUmVjb25uZWN0ZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgLy8gUmVzdGF1cmFyIHNlc2nDs24gYWwgY2FyZ2FyIC0gU09MTyBVTkEgVkVaXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHNlc3Npb24gJiYgaXNDb25uZWN0ZWQgJiYgIWhhc1JlY29ubmVjdGVkKSB7XG4gICAgICAgICAgICBzZXRQbGF5ZXJOYW1lKHNlc3Npb24ucGxheWVyTmFtZSk7XG4gICAgICAgICAgICBzZXRGdWxsUGxheWVyTmFtZShzZXNzaW9uLmZ1bGxQbGF5ZXJOYW1lKTtcbiAgICAgICAgICAgIHNldFZpZXcoc2Vzc2lvbi5jdXJyZW50Vmlldyk7XG5cbiAgICAgICAgICAgIC8vIFNpIGhhYsOtYSB1bmEgcGFydGlkYSBhY3RpdmEsIGludGVudGFyIHJlY29uZWN0YXJcbiAgICAgICAgICAgIGlmIChzZXNzaW9uLnJvb21JZCAmJiBzZXNzaW9uLmN1cnJlbnRWaWV3ID09PSAnZ2FtZScpIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zLnJlY29ubmVjdFNlc3Npb24oeyBwbGF5ZXJOYW1lOiBzZXNzaW9uLmZ1bGxQbGF5ZXJOYW1lLCByb29tSWQ6IHNlc3Npb24ucm9vbUlkIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzZXNzaW9uLmN1cnJlbnRWaWV3ID09PSAnbG9iYnknKSB7XG4gICAgICAgICAgICAgICAgYWN0aW9ucy5yZWZyZXNoUm9vbXMoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0SGFzUmVjb25uZWN0ZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbc2Vzc2lvbiwgaXNDb25uZWN0ZWQsIGhhc1JlY29ubmVjdGVkLCBhY3Rpb25zLCBzZXRQbGF5ZXJOYW1lLCBzZXRGdWxsUGxheWVyTmFtZSwgc2V0Vmlldywgc2V0SGFzUmVjb25uZWN0ZWRdKTtcblxuICAgIC8vIEVmZWN0byBwYXJhIGNhbWJpYXIgYSB2aXN0YSBkZSBqdWVnbyBjdWFuZG8gZWwgc2Vydmlkb3Igbm9zIHVuZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChnYW1lU3RhdGU/LnJvb21JZCkge1xuICAgICAgICAgICAgc2V0VmlldygnZ2FtZScpO1xuICAgICAgICAgICAgLy8gR3VhcmRhciBlbiBzZXNpw7NuXG4gICAgICAgICAgICB1cGRhdGVTZXNzaW9uKHsgY3VycmVudFZpZXc6ICdnYW1lJywgcm9vbUlkOiBnYW1lU3RhdGUucm9vbUlkIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHZpZXcgPT09ICdnYW1lJyAmJiAhZ2FtZVN0YXRlKSB7XG4gICAgICAgICAgICAvLyBTaSBlc3TDoWJhbW9zIGVuIGp1ZWdvIHkgdm9sdmVtb3MgYSBudWxsLCB2b2x2ZXIgYWwgbG9iYnlcbiAgICAgICAgICAgIC8vIFBlcm8gc29sbyBzaSBubyBlc3RhbW9zIGVzcGVyYW5kbyB1bmEgcmVjb25leGnDs24gaW5pY2lhbFxuICAgICAgICAgICAgaWYgKGhhc1JlY29ubmVjdGVkKSB7XG4gICAgICAgICAgICAgICAgc2V0VmlldygnbG9iYnknKTtcbiAgICAgICAgICAgICAgICB1cGRhdGVTZXNzaW9uKHsgY3VycmVudFZpZXc6ICdsb2JieScsIHJvb21JZDogdW5kZWZpbmVkIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW2dhbWVTdGF0ZSwgdmlldywgaGFzUmVjb25uZWN0ZWQsIHVwZGF0ZVNlc3Npb24sIHNldFZpZXddKTtcblxuICAgIC8vIExpc3RlbmVyIHBhcmEgZXJyb3JlcyBkZSBzb2NrZXQgcXVlIGRlYmVuIGV4cHVsc2FyIGFsIGxvYmJ5XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFzb2NrZXQpIHJldHVybjtcblxuICAgICAgICBjb25zdCBoYW5kbGVFcnJvciA9IChtc2c6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKG1zZyA9PT0gJ0xhIHBhcnRpZGEgeWEgbm8gZXhpc3RlJyB8fCBtc2cgPT09ICdObyBzZSBwdWRvIHJlY29uZWN0YXIgYSBsYSBwYXJ0aWRhJykge1xuICAgICAgICAgICAgICAgIHNldFZpZXcoJ2xvYmJ5Jyk7XG4gICAgICAgICAgICAgICAgdXBkYXRlU2Vzc2lvbih7IGN1cnJlbnRWaWV3OiAnbG9iYnknLCByb29tSWQ6IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBzb2NrZXQub24oJ2Vycm9yJywgaGFuZGxlRXJyb3IpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgc29ja2V0Lm9mZignZXJyb3InLCBoYW5kbGVFcnJvcik7XG4gICAgICAgIH07XG4gICAgfSwgW3NvY2tldCwgdXBkYXRlU2Vzc2lvbiwgc2V0Vmlld10pO1xuXG4gICAgY29uc3QgaGFuZGxlTG9naW4gPSAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHBsYXllck5hbWUpIHtcbiAgICAgICAgICAgIC8vIEdlbmVyYXIgYXBlbGxpZG8gYWxlYXRvcmlvXG4gICAgICAgICAgICBjb25zdCByYW5kb21TdXJuYW1lID0gU1VSTkFNRVNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogU1VSTkFNRVMubGVuZ3RoKV07XG4gICAgICAgICAgICBjb25zdCBmdWxsTmFtZSA9IGAke3BsYXllck5hbWV9ICR7cmFuZG9tU3VybmFtZX1gO1xuICAgICAgICAgICAgc2V0RnVsbFBsYXllck5hbWUoZnVsbE5hbWUpO1xuXG4gICAgICAgICAgICAvLyBHdWFyZGFyIHNlc2nDs25cbiAgICAgICAgICAgIHNhdmVTZXNzaW9uKHtcbiAgICAgICAgICAgICAgICBwbGF5ZXJOYW1lLFxuICAgICAgICAgICAgICAgIGZ1bGxQbGF5ZXJOYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50VmlldzogJ2xvYmJ5J1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHNldFZpZXcoJ2xvYmJ5Jyk7XG4gICAgICAgICAgICBhY3Rpb25zLnJlZnJlc2hSb29tcygpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxvZ291dCA9ICgpID0+IHtcbiAgICAgICAgY2xlYXJTZXNzaW9uKCk7XG4gICAgICAgIHNldFZpZXcoJ2xvZ2luJyk7XG4gICAgICAgIHNldFBsYXllck5hbWUoJycpO1xuICAgICAgICBzZXRGdWxsUGxheWVyTmFtZSgnJyk7XG4gICAgICAgIC8vIFNpIGVzdMOhIGVuIHVuYSBwYXJ0aWRhLCBzYWxpclxuICAgICAgICBpZiAoZ2FtZVN0YXRlPy5yb29tSWQpIHtcbiAgICAgICAgICAgIGFjdGlvbnMubGVhdmVHYW1lKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ3JlYXRlR2FtZSA9IChlOiBSZWFjdC5Gb3JtRXZlbnQpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBhY3Rpb25zLmNyZWF0ZUdhbWUoZnVsbFBsYXllck5hbWUsIGNyZWF0ZUNvbmZpZy5tYXhQbGF5ZXJzLCBjcmVhdGVDb25maWcucGFzc3dvcmQpO1xuICAgICAgICBzZXRTaG93Q3JlYXRlTW9kYWwoZmFsc2UpO1xuICAgIH07XG5cbiAgICBjb25zdCByZXF1ZXN0Sm9pbkdhbWUgPSAocm9vbTogR2FtZVJvb20pID0+IHtcbiAgICAgICAgaWYgKHJvb20uaXNQcml2YXRlKSB7XG4gICAgICAgICAgICBzZXRQYXNzd29yZFByb21wdFJvb21JZChyb29tLmlkKTtcbiAgICAgICAgICAgIHNldEpvaW5QYXNzd29yZCgnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY3Rpb25zLmpvaW5HYW1lKHJvb20uaWQsIGZ1bGxQbGF5ZXJOYW1lKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzdWJtaXRKb2luUGFzc3dvcmQgPSAoKSA9PiB7XG4gICAgICAgIGlmIChwYXNzd29yZFByb21wdFJvb21JZCkge1xuICAgICAgICAgICAgYWN0aW9ucy5qb2luR2FtZShwYXNzd29yZFByb21wdFJvb21JZCwgZnVsbFBsYXllck5hbWUsIGpvaW5QYXNzd29yZCk7XG4gICAgICAgICAgICBzZXRQYXNzd29yZFByb21wdFJvb21JZChudWxsKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyAtLS0gUkVOREVSIERFIEpVRUdPIE8gU0FMQSBERSBFU1BFUkEgLS0tXG4gICAgaWYgKHZpZXcgPT09ICdnYW1lJyAmJiBnYW1lU3RhdGUgJiYgc29ja2V0KSB7XG4gICAgICAgIC8vIMK/RXN0YW1vcyBlbiBmYXNlIGRlIGxvYmJ5IGRlbnRybyBkZSBsYSBwYXJ0aWRhP1xuICAgICAgICBpZiAoZ2FtZVN0YXRlLnBoYXNlID09PSAnbG9iYnknKSB7XG4gICAgICAgICAgICBjb25zdCBpc0hvc3QgPSBnYW1lU3RhdGUuaG9zdElkID09PSBzb2NrZXQuaWQ7XG4gICAgICAgICAgICAvLyBQb2Ryw61hbW9zIG9idGVuZXIgbWF4UGxheWVycyBkZWwgYXJyYXkgcGxheWVycyBzaSBubyBsbyB0ZW5lbW9zIGVuIGdhbWVTdGF0ZSxcbiAgICAgICAgICAgIC8vIHBlcm8gbG8gaWRlYWwgc2Vyw61hIHRlbmVybG8uIFBvciBhaG9yYSBhc3VtaW1vcyBxdWUgc2kgeWEgZXN0YW1vcyBkZW50cm8sXG4gICAgICAgICAgICAvLyBzYWJlbW9zIGN1YW50b3Mgc29tb3MuXG4gICAgICAgICAgICAvLyBOT1RBOiBHYW1lU3RhdGUgbm8gdGllbmUgbWF4UGxheWVycyBleHBsaWNpdGFtZW50ZSwgcGVybyBwb2RlbW9zIGRlZHVjaXJsbyBvIGHDsWFkaXJsby5cbiAgICAgICAgICAgIC8vIFBvciBzaW1wbGljaWRhZCwgdXNhcmVtb3MgZWwgbGVuZ3RoIHBhcmEgdmFsaWRhciBtaW5pbW8uXG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPG1haW4gY2xhc3NOYW1lPVwicmVsYXRpdmUgbWluLWgtc2NyZWVuIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG92ZXJmbG93LWhpZGRlbiBiZy16aW5jLTkwMCBmb250LW1vbm8gdGV4dC1ncmF5LTIwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgei0wIG9wYWNpdHktNDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZSBzcmM9XCIvYXNzZXRzL2ltYWdlcy91aS9iZ19nYW1lLnBuZ1wiIGFsdD1cIldhciBSb29tXCIgZmlsbCBjbGFzc05hbWU9XCJvYmplY3QtY292ZXJcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzcwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ6LTEwIGJnLWJsYWNrLzgwIHAtOCByb3VuZGVkIGJvcmRlciBib3JkZXItd2hpdGUvMjAgbWF4LXctMnhsIHctZnVsbCBteC00IGJhY2tkcm9wLWJsdXItbWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgbWItOFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBmb250LWJvbGQgdGV4dC15ZWxsb3ctNTAwIG1iLTIgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdFwiPlNhbGEgZGUgRXNwZXJhPC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTFcIj57Z2FtZVN0YXRlLnJvb21OYW1lfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwXCI+T3BlcmFjacOzbiBlbiBjdXJzby4gRXNwZXJhbmRvIGFjdGl2YWNpw7NuLi4uPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMiBnYXAtNCBtYi04XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5wbGF5ZXJzLm1hcChwbGF5ZXIgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17cGxheWVyLmlkfSBjbGFzc05hbWU9XCJiZy13aGl0ZS81IHAtMyByb3VuZGVkIGZsZXggaXRlbXMtY2VudGVyIGdhcC0zIGJvcmRlciBib3JkZXItd2hpdGUvMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdy0zIGgtMyByb3VuZGVkLWZ1bGwgJHtwbGF5ZXIuaWQgPT09IHNvY2tldC5pZCA/ICdiZy1ncmVlbi01MDAgc2hhZG93LWdyZWVuLTUwMC81MCBzaGFkb3ctbGcnIDogJ2JnLWdyYXktNTAwJ31gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtwbGF5ZXIuaWQgPT09IHNvY2tldC5pZCA/ICdmb250LWJvbGQgdGV4dC13aGl0ZScgOiAndGV4dC1ncmF5LTMwMCd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwbGF5ZXIubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwbGF5ZXIuaWQgPT09IGdhbWVTdGF0ZS5ob3N0SWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzEwcHhdIGJnLXllbGxvdy05MDAvNTAgdGV4dC15ZWxsb3ctNTAwIHB4LTIgcHktMC41IHJvdW5kZWQgbWwtYXV0b1wiPkhPU1Q8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogUmVsbGVuYXIgaHVlY29zIHZhY8Otb3MgdmlzdWFsbWVudGUgc2kgcXVpc2llcmFtb3MgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtNCBib3JkZXItdCBib3JkZXItd2hpdGUvMTAgcHQtNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0hvc3QgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEp1Z2Fkb3JlczogPHNwYW4gY2xhc3NOYW1lPVwidGV4dC13aGl0ZSBmb250LWJvbGRcIj57Z2FtZVN0YXRlLnBsYXllcnMubGVuZ3RofTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2FtZVN0YXRlLnBsYXllcnMubGVuZ3RoIDwgNSAmJiA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJlZC00MDAgbWwtMlwiPihNw61uaW1vIDUgcmVxdWVyaWRvcyk8L3NwYW4+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGFjdGlvbnMuc3RhcnRHYW1lKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2dhbWVTdGF0ZS5wbGF5ZXJzLmxlbmd0aCA8IDV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIG1heC13LW1kIGJnLXllbGxvdy02MDAgaG92ZXI6YmcteWVsbG93LTUwMCBkaXNhYmxlZDpiZy1ncmF5LTcwMCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgdGV4dC13aGl0ZSBmb250LWJvbGQgcHktNCByb3VuZGVkIHVwcGVyY2FzZSB0cmFja2luZy1bMC4yZW1dIHRyYW5zaXRpb24tYWxsIHNoYWRvdy1sZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5JQ0lBUiBNSVNJw5NOXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBhbmltYXRlLXB1bHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXllbGxvdy01MDAgZm9udC1ib2xkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPkVzcGVyYW5kbyBhbCBDb21hbmRhbnRlLi4uPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTJcIj5MYSBtaXNpw7NuIGNvbWVuemFyw6EgY3VhbmRvIGVsIGzDrWRlciBkw6kgbGEgb3JkZW4uPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEdhbWVCb2FyZFxuICAgICAgICAgICAgICAgIGdhbWVTdGF0ZT17Z2FtZVN0YXRlfVxuICAgICAgICAgICAgICAgIGN1cnJlbnRQbGF5ZXJJZD17c29ja2V0LmlkIHx8ICcnfVxuICAgICAgICAgICAgICAgIGFjdGlvbnM9e2FjdGlvbnN9XG4gICAgICAgICAgICAgICAgZnVsbFBsYXllck5hbWU9e2Z1bGxQbGF5ZXJOYW1lfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBtaW4taC1zY3JlZW4gZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuIGJnLXppbmMtOTAwIGZvbnQtbW9ubyB0ZXh0LWdyYXktMjAwXCI+XG5cbiAgICAgICAgICAgIHsvKiBGT05ETyBDT03Dmk4gTE9CQlkvTE9HSU4gKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgei0wIG9wYWNpdHktNDBcIj5cbiAgICAgICAgICAgICAgICA8SW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2Fzc2V0cy9pbWFnZXMvdWkvYmdfbG9iYnkucG5nXCJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiTG9iYnkgQmFja2dyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib2JqZWN0LWNvdmVyXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBiZy1ncmFkaWVudC10by10IGZyb20tYmxhY2sgdmlhLWJsYWNrLzUwIHRvLXRyYW5zcGFyZW50XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogSEVBREVSIC8gTE9HTyAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiei0xMCB3LWZ1bGwgcC00IGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBtYXgtdy02eGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICAgIDxJbWFnZSBzcmM9XCIvYXNzZXRzL2ltYWdlcy91aS9sb2dvLnBuZ1wiIGFsdD1cIkxvZ29cIiB3aWR0aD17MTUwfSBoZWlnaHQ9ezUwfSBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpbiBmaWx0ZXIgZHJvcC1zaGFkb3cgaGlkZGVuIG1kOmJsb2NrXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZCB0cmFja2luZy13aWRlc3QgdXBwZXJjYXNlIHRleHQteWVsbG93LTYwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgRnJhbmNpYSBPY3VwYWRhXG4gICAgICAgICAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAge3ZpZXcgPT09ICdsb2JieScgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIGJnLWJsYWNrLzUwIHB4LTQgcHktMiByb3VuZGVkIGJvcmRlciBib3JkZXItd2hpdGUvMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTQwMFwiPkFHRU5URTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1ib2xkIHRleHQteWVsbG93LTUwMFwiPntmdWxsUGxheWVyTmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxMb2dvdXRCdXR0b24gb25DbGljaz17aGFuZGxlTG9nb3V0fSAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiei0xMCB3LWZ1bGwgZmxleC0xIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtNFwiPlxuICAgICAgICAgICAgICAgIDxBbmltYXRlUHJlc2VuY2UgbW9kZT1cIndhaXRcIj5cblxuICAgICAgICAgICAgICAgICAgICB7LyogLS0tIFBBTlRBTExBIERFIExPR0lOIC0tLSAqL31cbiAgICAgICAgICAgICAgICAgICAge3ZpZXcgPT09ICdsb2dpbicgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5mb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PVwibG9naW4tZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCB5OiAyMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgeTogMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCwgeTogLTIwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZUxvZ2lufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLWJsYWNrLzgwIHAtOCByb3VuZGVkIGJvcmRlciBib3JkZXItd2hpdGUvMjAgc2hhZG93LTJ4bCBtYXgtdy1tZCB3LWZ1bGwgYmFja2Ryb3AtYmx1ci1tZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQteGwgdGV4dC1jZW50ZXIgbWItNiB1cHBlcmNhc2UgdHJhY2tpbmctWzAuMmVtXSB0ZXh0LXdoaXRlXCI+SWRlbnRpZmljYWNpw7NuPC9oMj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwidGV4dC14cyB1cHBlcmNhc2UgdGV4dC1ncmF5LTUwMCBibG9jayBtYi0xXCI+Tm9tYnJlIGVuIENsYXZlPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BsYXllck5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gc2V0UGxheWVyTmFtZShlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXdoaXRlLzEwIGJvcmRlciBib3JkZXItd2hpdGUvMjAgcC0zIHJvdW5kZWQgdGV4dC13aGl0ZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLXllbGxvdy01MDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRWo6IEFnZW50ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIEFQRUxMSURPIEVMSU1JTkFETyAtIFNFIEdFTkVSQSBBVVRPTcOBVElDQU1FTlRFICovfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXllbGxvdy03MDAgaG92ZXI6YmcteWVsbG93LTYwMCB0ZXh0LXdoaXRlIGZvbnQtYm9sZCBweS0zIG10LTQgcm91bmRlZCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NlZGVyIGFsIEN1YXJ0ZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5mb3JtPlxuICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgICAgIHsvKiAtLS0gUEFOVEFMTEEgREUgTE9CQlkgKExJU1RBIERFIFNBTEFTKSAtLS0gKi99XG4gICAgICAgICAgICAgICAgICAgIHt2aWV3ID09PSAnbG9iYnknICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PVwibG9iYnktbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIG1heC13LTV4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1lbmQgbWItNiBib3JkZXItYiBib3JkZXItd2hpdGUvMjAgcGItNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtM3hsIGZvbnQtbGlnaHQgdGV4dC13aGl0ZVwiPk1JU0lPTkVTIEFDVElWQVM8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCB0ZXh0LXNtIG10LTFcIj5TZWxlY2Npb25hIHVuYSBvcGVyYWNpw7NuIG8gaW5pY2lhIHVuYSBudWV2YS48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93Q3JlYXRlTW9kYWwodHJ1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1ibHVlLTgwMCBob3ZlcjpiZy1ibHVlLTcwMCB0ZXh0LXdoaXRlIHB4LTYgcHktMiByb3VuZGVkIHVwcGVyY2FzZSB0ZXh0LXNtIGZvbnQtYm9sZCB0cmFja2luZy13aWRlciBzaGFkb3ctbGcgYm9yZGVyIGJvcmRlci1ibHVlLTYwMCB0cmFuc2l0aW9uLWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQ3JlYXIgT3BlcmFjacOzblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtMyBnYXAtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cm9vbXNMaXN0Lmxlbmd0aCA9PT0gMCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLXNwYW4tZnVsbCBweS0yMCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIGJnLWJsYWNrLzMwIHJvdW5kZWQgYm9yZGVyIGJvcmRlci13aGl0ZS81IGJvcmRlci1kYXNoZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObyBoYXkgbWlzaW9uZXMgYWN0aXZhcyBlbiBlc3RlIG1vbWVudG8uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb21zTGlzdC5tYXAoKHJvb20pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3Jvb20uaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgc2NhbGU6IDAuOTUsIG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBzY2FsZTogMSwgb3BhY2l0eTogMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1ibGFjay82MCBib3JkZXIgYm9yZGVyLXdoaXRlLzEwIHAtNSByb3VuZGVkIGhvdmVyOmJvcmRlci15ZWxsb3ctNzAwLzUwIHRyYW5zaXRpb24tY29sb3JzIGdyb3VwIHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0wIHJpZ2h0LTAgcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cm9vbS5pc1ByaXZhdGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJQcml2YWRhXCIgY2xhc3NOYW1lPVwidGV4dC1yZWQtNDAwXCI+8J+Ukjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJQw7pibGljYVwiIGNsYXNzTmFtZT1cInRleHQtZ3JlZW4tNDAwLzUwXCI+8J+Ukzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LXllbGxvdy01MDAgbWItMSBncm91cC1ob3Zlcjp0ZXh0LXllbGxvdy00MDAgdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyb29tLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgbWItNCBmbGV4IGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJiZy13aGl0ZS8xMCBweC0yIHB5LTAuNSByb3VuZGVkIHRleHR4c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhPU1Q6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXdoaXRlXCI+e3Jvb20uaG9zdElkLnN1YnN0cmluZygwLCA2KX0uLi48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIG10LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1lbmQgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBmb250LWJvbGQgdGV4dC13aGl0ZVwiPntyb29tLmN1cnJlbnRQbGF5ZXJzfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS01MDAgbWItMVwiPi8ge3Jvb20ubWF4UGxheWVyc308L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtyb29tLmN1cnJlbnRQbGF5ZXJzID49IHJvb20ubWF4UGxheWVycyB8fCByb29tLnN0YXR1cyAhPT0gJ3dhaXRpbmcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHJlcXVlc3RKb2luR2FtZShyb29tKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy13aGl0ZS8xMCBob3ZlcjpiZy13aGl0ZS8yMCB0ZXh0LXdoaXRlIHB4LTQgcHktMiByb3VuZGVkIHRleHQteHMgdXBwZXJjYXNlIGZvbnQtYm9sZCB0cmFuc2l0aW9uLWNvbG9ycyBkaXNhYmxlZDpvcGFjaXR5LTMwIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Jvb20uc3RhdHVzID09PSAncGxheWluZycgPyAnRU4gQ1VSU08nIDogKHJvb20uY3VycmVudFBsYXllcnMgPj0gcm9vbS5tYXhQbGF5ZXJzID8gJ0xMRU5BJyA6ICdVTklSU0UnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogQmFycmEgZGUgcHJvZ3Jlc28gdmlzdWFsICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCBoLTEgYmcteWVsbG93LTkwMC80MCB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLWZ1bGwgYmcteWVsbG93LTYwMCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi01MDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBgJHsocm9vbS5jdXJyZW50UGxheWVycyAvIHJvb20ubWF4UGxheWVycykgKiAxMDB9JWAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9BbmltYXRlUHJlc2VuY2U+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIC0tLSBNT0RBTEVTIC0tLSAqL31cblxuICAgICAgICAgICAgey8qIE1vZGFsIENyZWFyICovfVxuICAgICAgICAgICAge3Nob3dDcmVhdGVNb2RhbCAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIHotNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctYmxhY2svODAgYmFja2Ryb3AtYmx1ci1zbVwiPlxuICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBzY2FsZTogMC45IH19IGFuaW1hdGU9e3sgc2NhbGU6IDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXppbmMtODAwIHAtNiByb3VuZGVkIGJvcmRlciBib3JkZXItd2hpdGUvMjAgdy1mdWxsIG1heC13LXNtIHNoYWRvdy0yeGxcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi00IHVwcGVyY2FzZVwiPkNvbmZpZ3VyYXIgT3BlcmFjacOzbjwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBvblN1Ym1pdD17aGFuZGxlQ3JlYXRlR2FtZX0gY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQteHMgdXBwZXJjYXNlIHRleHQtZ3JheS00MDAgbWItMVwiPk7CuiBKdWdhZG9yZXM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y3JlYXRlQ29uZmlnLm1heFBsYXllcnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBzZXRDcmVhdGVDb25maWcoeyAuLi5jcmVhdGVDb25maWcsIG1heFBsYXllcnM6IE51bWJlcihlLnRhcmdldC52YWx1ZSkgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgYmctYmxhY2svNDAgYm9yZGVyIGJvcmRlci13aGl0ZS8xMCBwLTIgcm91bmRlZCB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1s1LCA2LCA3LCA4LCA5LCAxMF0ubWFwKG4gPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtufSB2YWx1ZT17bn0+e259IEp1Z2Fkb3Jlczwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXhzIHVwcGVyY2FzZSB0ZXh0LWdyYXktNDAwIG1iLTFcIj5Db250cmFzZcOxYSAoT3BjaW9uYWwpPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NyZWF0ZUNvbmZpZy5wYXNzd29yZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHNldENyZWF0ZUNvbmZpZyh7IC4uLmNyZWF0ZUNvbmZpZywgcGFzc3dvcmQ6IGUudGFyZ2V0LnZhbHVlIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLWJsYWNrLzQwIGJvcmRlciBib3JkZXItd2hpdGUvMTAgcC0yIHJvdW5kZWQgdGV4dC13aGl0ZSBmb250LW1vbm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJEZWphciB2YWPDrW8gcGFyYSBww7pibGljYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0yIG10LTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gc2V0U2hvd0NyZWF0ZU1vZGFsKGZhbHNlKX0gY2xhc3NOYW1lPVwiZmxleC0xIHB5LTIgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+Q2FuY2VsYXI8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3NOYW1lPVwiZmxleC0xIHB5LTIgYmcteWVsbG93LTcwMCBob3ZlcjpiZy15ZWxsb3ctNjAwIHRleHQtd2hpdGUgcm91bmRlZCBmb250LWJvbGQgdXBwZXJjYXNlXCI+Q3JlYXI8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgey8qIE1vZGFsIFBhc3N3b3JkICovfVxuICAgICAgICAgICAge3Bhc3N3b3JkUHJvbXB0Um9vbUlkICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgei01MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1ibGFjay84MCBiYWNrZHJvcC1ibHVyLXNtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IHNjYWxlOiAwLjkgfX0gYW5pbWF0ZT17eyBzY2FsZTogMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctemluYy04MDAgcC02IHJvdW5kZWQgYm9yZGVyIGJvcmRlci1yZWQtOTAwLzUwIHctZnVsbCBtYXgtdy1zbSBzaGFkb3ctMnhsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1ib2xkIHRleHQtcmVkLTQwMCBtYi0yIHVwcGVyY2FzZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIPCflJIgQWNjZXNvIFJlc3RyaW5naWRvXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNDAwIG1iLTRcIj5Fc3RhIG9wZXJhY2nDs24gZXMgY2xhc2lmaWNhZGEuIEludHJvZHVjZSBsYSBjbGF2ZSBkZSBhY2Nlc28uPC9wPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtqb2luUGFzc3dvcmR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gc2V0Sm9pblBhc3N3b3JkKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2UgPT4gZS5rZXkgPT09ICdFbnRlcicgJiYgc3VibWl0Sm9pblBhc3N3b3JkKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLWJsYWNrLzQwIGJvcmRlciBib3JkZXItcmVkLTkwMC8zMCBwLTIgcm91bmRlZCB0ZXh0LXdoaXRlIGZvbnQtbW9ubyBtYi00IGZvY3VzOmJvcmRlci1yZWQtNTAwIG91dGxpbmUtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDbGF2ZSBkZSBhY2Nlc28uLi5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBzZXRQYXNzd29yZFByb21wdFJvb21JZChudWxsKX0gY2xhc3NOYW1lPVwiZmxleC0xIHB5LTIgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlXCI+Q2FuY2VsYXI8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uQ2xpY2s9e3N1Ym1pdEpvaW5QYXNzd29yZH0gY2xhc3NOYW1lPVwiZmxleC0xIHB5LTIgYmctcmVkLTkwMCBob3ZlcjpiZy1yZWQtODAwIHRleHQtd2hpdGUgcm91bmRlZCBmb250LWJvbGQgdXBwZXJjYXNlXCI+QWNjZWRlcjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgYm90dG9tLTIgcmlnaHQtNCB0ZXh0LVsxMHB4XSB0ZXh0LWdyYXktNjAwIGZvbnQtbW9ub1wiPlxuICAgICAgICAgICAgICAgIHtpc0Nvbm5lY3RlZCA/IDxzcGFuIGNsYXNzTmFtZT1cInRleHQtZ3JlZW4tOTAwXCI+4pePIENPTkVYScOTTiBTRUdVUkE8L3NwYW4+IDogPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1yZWQtOTAwXCI+4pePIEJVU0NBTkRPIFNFw5FBTC4uLjwvc3Bhbj59XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYWluPlxuICAgICk7XG59XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VTb2NrZXQiLCJ1c2VTZXNzaW9uU3RvcmFnZSIsIm1vdGlvbiIsIkFuaW1hdGVQcmVzZW5jZSIsIkltYWdlIiwiR2FtZUJvYXJkIiwiTG9nb3V0QnV0dG9uIiwiU1VSTkFNRVMiLCJIb21lIiwiaXNDb25uZWN0ZWQiLCJnYW1lU3RhdGUiLCJyb29tc0xpc3QiLCJhY3Rpb25zIiwic29ja2V0Iiwic2Vzc2lvbiIsInNhdmVTZXNzaW9uIiwidXBkYXRlU2Vzc2lvbiIsImNsZWFyU2Vzc2lvbiIsInZpZXciLCJzZXRWaWV3IiwicGxheWVyTmFtZSIsInNldFBsYXllck5hbWUiLCJmdWxsUGxheWVyTmFtZSIsInNldEZ1bGxQbGF5ZXJOYW1lIiwic2hvd0NyZWF0ZU1vZGFsIiwic2V0U2hvd0NyZWF0ZU1vZGFsIiwiY3JlYXRlQ29uZmlnIiwic2V0Q3JlYXRlQ29uZmlnIiwibWF4UGxheWVycyIsInBhc3N3b3JkIiwicGFzc3dvcmRQcm9tcHRSb29tSWQiLCJzZXRQYXNzd29yZFByb21wdFJvb21JZCIsImpvaW5QYXNzd29yZCIsInNldEpvaW5QYXNzd29yZCIsImhhc1JlY29ubmVjdGVkIiwic2V0SGFzUmVjb25uZWN0ZWQiLCJjdXJyZW50VmlldyIsInJvb21JZCIsInJlY29ubmVjdFNlc3Npb24iLCJyZWZyZXNoUm9vbXMiLCJ1bmRlZmluZWQiLCJoYW5kbGVFcnJvciIsIm1zZyIsIm9uIiwib2ZmIiwiaGFuZGxlTG9naW4iLCJlIiwicHJldmVudERlZmF1bHQiLCJyYW5kb21TdXJuYW1lIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwibGVuZ3RoIiwiZnVsbE5hbWUiLCJoYW5kbGVMb2dvdXQiLCJsZWF2ZUdhbWUiLCJoYW5kbGVDcmVhdGVHYW1lIiwiY3JlYXRlR2FtZSIsInJlcXVlc3RKb2luR2FtZSIsInJvb20iLCJpc1ByaXZhdGUiLCJpZCIsImpvaW5HYW1lIiwic3VibWl0Sm9pblBhc3N3b3JkIiwicGhhc2UiLCJpc0hvc3QiLCJob3N0SWQiLCJtYWluIiwiY2xhc3NOYW1lIiwiZGl2Iiwic3JjIiwiYWx0IiwiZmlsbCIsImgyIiwicCIsInJvb21OYW1lIiwicGxheWVycyIsIm1hcCIsInBsYXllciIsInNwYW4iLCJuYW1lIiwiYnV0dG9uIiwib25DbGljayIsInN0YXJ0R2FtZSIsImRpc2FibGVkIiwiY3VycmVudFBsYXllcklkIiwid2lkdGgiLCJoZWlnaHQiLCJoMSIsIm1vZGUiLCJmb3JtIiwiaW5pdGlhbCIsIm9wYWNpdHkiLCJ5IiwiYW5pbWF0ZSIsImV4aXQiLCJvblN1Ym1pdCIsImxhYmVsIiwiaW5wdXQiLCJyZXF1aXJlZCIsInZhbHVlIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJwbGFjZWhvbGRlciIsInR5cGUiLCJzY2FsZSIsInRpdGxlIiwiaDMiLCJzdWJzdHJpbmciLCJjdXJyZW50UGxheWVycyIsInN0YXR1cyIsInN0eWxlIiwic2VsZWN0IiwiTnVtYmVyIiwibiIsIm9wdGlvbiIsImF1dG9Gb2N1cyIsIm9uS2V5RG93biIsImtleSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/app/page.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/ExitGameButton.tsx":
+/*!*******************************************!*\
+ !*** ./src/components/ExitGameButton.tsx ***!
+ \*******************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ExitGameButton)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/motion.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nfunction ExitGameButton({ onExit, playerName }) {\n const [showConfirm, setShowConfirm] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const handleConfirmExit = ()=>{\n setShowConfirm(false);\n onExit();\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.button, {\n onClick: ()=>setShowConfirm(true),\n whileHover: {\n scale: 1.05\n },\n whileTap: {\n scale: 0.95\n },\n className: \"fixed top-4 right-0 z-50 bg-gradient-to-l from-green-600 to-green-700 hover:from-green-500 hover:to-green-600 text-white rounded-l-lg px-2 py-3 shadow-lg border-2 border-green-500 border-r-0 transition-all hover:shadow-green-500/50\",\n title: \"Volver al lobby\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 3,\n stroke: \"currentColor\",\n className: \"w-4 h-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 34,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 26,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this),\n showConfirm && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 z-[100] flex items-center justify-center bg-black/80 backdrop-blur-sm\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n scale: 0.9,\n opacity: 0\n },\n animate: {\n scale: 1,\n opacity: 1\n },\n className: \"bg-zinc-900 p-6 rounded-lg border border-red-700/50 w-full max-w-md mx-4 shadow-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-bold text-red-400 mb-4 uppercase flex items-center gap-2\",\n children: \"⚠️ Abandonar Partida\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 50,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-300 mb-2\",\n children: \"\\xbfEst\\xe1s seguro de que quieres abandonar la partida?\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 53,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-400 mb-6\",\n children: \"La partida se cerrar\\xe1 para todos los jugadores y se perder\\xe1 todo el progreso.\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 56,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowConfirm(false),\n className: \"flex-1 py-3 bg-gray-700 hover:bg-gray-600 text-white rounded font-bold uppercase text-sm transition-colors\",\n children: \"Cancelar\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 61,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleConfirmExit,\n className: \"flex-1 py-3 bg-red-900 hover:bg-red-800 text-white rounded font-bold uppercase text-sm transition-colors\",\n children: \"Salir\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 67,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 60,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 45,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/ExitGameButton.tsx\",\n lineNumber: 44,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9FeGl0R2FtZUJ1dHRvbi50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUF1QztBQUNOO0FBT2xCLFNBQVNFLGVBQWUsRUFBRUMsTUFBTSxFQUFFQyxVQUFVLEVBQXVCO0lBQzlFLE1BQU0sQ0FBQ0MsYUFBYUMsZUFBZSxHQUFHTCwrQ0FBUUEsQ0FBQztJQUUvQyxNQUFNTSxvQkFBb0I7UUFDdEJELGVBQWU7UUFDZkg7SUFDSjtJQUVBLHFCQUNJOzswQkFDSSw4REFBQ0gsaURBQU1BLENBQUNRLE1BQU07Z0JBQ1ZDLFNBQVMsSUFBTUgsZUFBZTtnQkFDOUJJLFlBQVk7b0JBQUVDLE9BQU87Z0JBQUs7Z0JBQzFCQyxVQUFVO29CQUFFRCxPQUFPO2dCQUFLO2dCQUN4QkUsV0FBVTtnQkFDVkMsT0FBTTswQkFFTiw0RUFBQ0M7b0JBQ0dDLE9BQU07b0JBQ05DLE1BQUs7b0JBQ0xDLFNBQVE7b0JBQ1JDLGFBQWE7b0JBQ2JDLFFBQU87b0JBQ1BQLFdBQVU7OEJBRVYsNEVBQUNRO3dCQUNHQyxlQUFjO3dCQUNkQyxnQkFBZTt3QkFDZkMsR0FBRTs7Ozs7Ozs7Ozs7Ozs7OztZQU1ibkIsNkJBQ0csOERBQUNvQjtnQkFBSVosV0FBVTswQkFDWCw0RUFBQ2IsaURBQU1BLENBQUN5QixHQUFHO29CQUNQQyxTQUFTO3dCQUFFZixPQUFPO3dCQUFLZ0IsU0FBUztvQkFBRTtvQkFDbENDLFNBQVM7d0JBQUVqQixPQUFPO3dCQUFHZ0IsU0FBUztvQkFBRTtvQkFDaENkLFdBQVU7O3NDQUVWLDhEQUFDZ0I7NEJBQUdoQixXQUFVO3NDQUF3RTs7Ozs7O3NDQUd0Riw4REFBQ2lCOzRCQUFFakIsV0FBVTtzQ0FBcUI7Ozs7OztzQ0FHbEMsOERBQUNpQjs0QkFBRWpCLFdBQVU7c0NBQTZCOzs7Ozs7c0NBSTFDLDhEQUFDWTs0QkFBSVosV0FBVTs7OENBQ1gsOERBQUNMO29DQUNHQyxTQUFTLElBQU1ILGVBQWU7b0NBQzlCTyxXQUFVOzhDQUNiOzs7Ozs7OENBR0QsOERBQUNMO29DQUNHQyxTQUFTRjtvQ0FDVE0sV0FBVTs4Q0FDYjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVM3QiIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8uL3NyYy9jb21wb25lbnRzL0V4aXRHYW1lQnV0dG9uLnRzeD9mYWZkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vdGlvbiB9IGZyb20gJ2ZyYW1lci1tb3Rpb24nO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmludGVyZmFjZSBFeGl0R2FtZUJ1dHRvblByb3BzIHtcbiAgICBvbkV4aXQ6ICgpID0+IHZvaWQ7XG4gICAgcGxheWVyTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBFeGl0R2FtZUJ1dHRvbih7IG9uRXhpdCwgcGxheWVyTmFtZSB9OiBFeGl0R2FtZUJ1dHRvblByb3BzKSB7XG4gICAgY29uc3QgW3Nob3dDb25maXJtLCBzZXRTaG93Q29uZmlybV0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICBjb25zdCBoYW5kbGVDb25maXJtRXhpdCA9ICgpID0+IHtcbiAgICAgICAgc2V0U2hvd0NvbmZpcm0oZmFsc2UpO1xuICAgICAgICBvbkV4aXQoKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxtb3Rpb24uYnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0NvbmZpcm0odHJ1ZSl9XG4gICAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyBzY2FsZTogMS4wNSB9fVxuICAgICAgICAgICAgICAgIHdoaWxlVGFwPXt7IHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQgdG9wLTQgcmlnaHQtMCB6LTUwIGJnLWdyYWRpZW50LXRvLWwgZnJvbS1ncmVlbi02MDAgdG8tZ3JlZW4tNzAwIGhvdmVyOmZyb20tZ3JlZW4tNTAwIGhvdmVyOnRvLWdyZWVuLTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQtbC1sZyBweC0yIHB5LTMgc2hhZG93LWxnIGJvcmRlci0yIGJvcmRlci1ncmVlbi01MDAgYm9yZGVyLXItMCB0cmFuc2l0aW9uLWFsbCBob3ZlcjpzaGFkb3ctZ3JlZW4tNTAwLzUwXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlZvbHZlciBhbCBsb2JieVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezN9XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctNCBoLTRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi4yNSAxMmw4Ljk1NC04Ljk1NWMuNDQtLjQzOSAxLjE1Mi0uNDM5IDEuNTkxIDBMMjEuNzUgMTJNNC41IDkuNzV2MTAuMTI1YzAgLjYyMS41MDQgMS4xMjUgMS4xMjUgMS4xMjVIOS43NXYtNC44NzVjMC0uNjIxLjUwNC0xLjEyNSAxLjEyNS0xLjEyNWgyLjI1Yy42MjEgMCAxLjEyNS41MDQgMS4xMjUgMS4xMjVWMjFoNC4xMjVjLjYyMSAwIDEuMTI1LS41MDQgMS4xMjUtMS4xMjVWOS43NU04LjI1IDIxaDguMjVcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9tb3Rpb24uYnV0dG9uPlxuXG4gICAgICAgICAgICB7LyogTW9kYWwgZGUgY29uZmlybWFjacOzbiAqL31cbiAgICAgICAgICAgIHtzaG93Q29uZmlybSAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIHotWzEwMF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctYmxhY2svODAgYmFja2Ryb3AtYmx1ci1zbVwiPlxuICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBzY2FsZTogMC45LCBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IHNjYWxlOiAxLCBvcGFjaXR5OiAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy16aW5jLTkwMCBwLTYgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXJlZC03MDAvNTAgdy1mdWxsIG1heC13LW1kIG14LTQgc2hhZG93LTJ4bFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LXJlZC00MDAgbWItNCB1cHBlcmNhc2UgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDimqDvuI8gQWJhbmRvbmFyIFBhcnRpZGFcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktMzAwIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDCv0VzdMOhcyBzZWd1cm8gZGUgcXVlIHF1aWVyZXMgYWJhbmRvbmFyIGxhIHBhcnRpZGE/XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgbWItNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhIHBhcnRpZGEgc2UgY2VycmFyw6EgcGFyYSB0b2RvcyBsb3MganVnYWRvcmVzIHkgc2UgcGVyZGVyw6EgdG9kbyBlbCBwcm9ncmVzby5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93Q29uZmlybShmYWxzZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBweS0zIGJnLWdyYXktNzAwIGhvdmVyOmJnLWdyYXktNjAwIHRleHQtd2hpdGUgcm91bmRlZCBmb250LWJvbGQgdXBwZXJjYXNlIHRleHQtc20gdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNvbmZpcm1FeGl0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgcHktMyBiZy1yZWQtOTAwIGhvdmVyOmJnLXJlZC04MDAgdGV4dC13aGl0ZSByb3VuZGVkIGZvbnQtYm9sZCB1cHBlcmNhc2UgdGV4dC1zbSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTYWxpclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvPlxuICAgICk7XG59XG4iXSwibmFtZXMiOlsibW90aW9uIiwidXNlU3RhdGUiLCJFeGl0R2FtZUJ1dHRvbiIsIm9uRXhpdCIsInBsYXllck5hbWUiLCJzaG93Q29uZmlybSIsInNldFNob3dDb25maXJtIiwiaGFuZGxlQ29uZmlybUV4aXQiLCJidXR0b24iLCJvbkNsaWNrIiwid2hpbGVIb3ZlciIsInNjYWxlIiwid2hpbGVUYXAiLCJjbGFzc05hbWUiLCJ0aXRsZSIsInN2ZyIsInhtbG5zIiwiZmlsbCIsInZpZXdCb3giLCJzdHJva2VXaWR0aCIsInN0cm9rZSIsInBhdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJkIiwiZGl2IiwiaW5pdGlhbCIsIm9wYWNpdHkiLCJhbmltYXRlIiwiaDMiLCJwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ExitGameButton.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/GameBoard.tsx":
+/*!**************************************!*\
+ !*** ./src/components/GameBoard.tsx ***!
+ \**************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GameBoard)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/motion.mjs\");\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\");\n/* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/image */ \"(ssr)/./node_modules/next/image.js\");\n/* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_image__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _shared_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../shared/types */ \"(ssr)/../shared/types.ts\");\n/* harmony import */ var _MissionReveal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./MissionReveal */ \"(ssr)/./src/components/MissionReveal.tsx\");\n/* harmony import */ var _MissionResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./MissionResult */ \"(ssr)/./src/components/MissionResult.tsx\");\n/* harmony import */ var _VictoryScreen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./VictoryScreen */ \"(ssr)/./src/components/VictoryScreen.tsx\");\n/* harmony import */ var _ExitGameButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ExitGameButton */ \"(ssr)/./src/components/ExitGameButton.tsx\");\n\n\n\n\n\n\n\n\n\nfunction GameBoard({ gameState, currentPlayerId, actions, fullPlayerName }) {\n const [selectedTeam, setSelectedTeam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n // Hooks para FASE REVEAL ROLE\n const [revealCard, setRevealCard] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Orden aleatorio de cartas de misión (se genera una vez)\n const [cardOrder] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(()=>Math.random() > 0.5);\n // Track del voto de misión del jugador\n const [missionVote, setMissionVote] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [expandedMission, setExpandedMission] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n // Estado para controlar el colapso del panel de jugadores\n const [isPlayersCollapsed, setIsPlayersCollapsed] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n // Estado para controlar el colapso del historial de misiones\n const [isHistoryCollapsed, setIsHistoryCollapsed] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n // Timer para avanzar automáticamente en REVEAL_ROLE\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (gameState.phase === \"reveal_role\") {\n const timer = setTimeout(()=>{\n actions.finishReveal();\n }, 10000);\n return ()=>clearTimeout(timer);\n }\n }, [\n gameState.phase,\n actions\n ]);\n // Reset missionVote cuando cambia la fase\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (gameState.phase !== _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.MISSION) {\n setMissionVote(null);\n }\n }, [\n gameState.phase\n ]);\n // Reset selectedTeam cuando no estamos en TEAM_BUILDING o cambia el líder\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (gameState.phase !== _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.TEAM_BUILDING) {\n setSelectedTeam([]);\n }\n }, [\n gameState.phase,\n gameState.currentLeaderId\n ]);\n // Estado para controlar cuándo mostrar el tablero\n const [showBoard, setShowBoard] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Mostrar tablero durante MISSION_RESULT\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.MISSION_RESULT) {\n setShowBoard(true);\n } else {\n setShowBoard(false);\n }\n }, [\n gameState.phase\n ]);\n const currentPlayer = gameState.players.find((p)=>p.id === currentPlayerId);\n const isLeader = gameState.currentLeaderId === currentPlayerId; // FIX: Usar currentLeaderId del estado\n const config = _shared_types__WEBPACK_IMPORTED_MODULE_3__.GAME_CONFIG[gameState.players.length];\n const currentQuestSize = config?.quests[gameState.currentRound - 1];\n // Manejar selección de equipo\n const toggleTeamSelection = (playerId)=>{\n if (selectedTeam.includes(playerId)) {\n setSelectedTeam(selectedTeam.filter((id)=>id !== playerId));\n } else {\n if (selectedTeam.length < currentQuestSize) {\n setSelectedTeam([\n ...selectedTeam,\n playerId\n ]);\n }\n }\n };\n const handleMissionVote = (vote)=>{\n setMissionVote(vote);\n actions.voteMission(vote);\n };\n // Coordenadas porcentuales de los hexágonos de misión en el mapa\n const missionCoords = [\n {\n left: \"18%\",\n top: \"60%\"\n },\n {\n left: \"25%\",\n top: \"18%\"\n },\n {\n left: \"50%\",\n top: \"75%\"\n },\n {\n left: \"50%\",\n top: \"30%\"\n },\n {\n left: \"80%\",\n top: \"45%\"\n }\n ];\n // Nombres de las misiones\n const missionNames = [\n \"Sabotaje en el Tren\",\n \"Rescate del Prisionero\",\n \"Destrucci\\xf3n del Puente\",\n \"Robo de Documentos\",\n \"Asalto al Cuartel General\"\n ];\n // --- UI/Efectos para FASES TEMPRANAS ---\n const isHost = gameState.hostId === currentPlayerId;\n // FASE INTRO\n if (gameState.phase === \"intro\") {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-screen flex flex-col items-center justify-center bg-black overflow-hidden text-white\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 z-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/ui/bg_intro.png\",\n alt: \"Battlefield\",\n fill: true,\n className: \"object-cover\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 122,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/40\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 123,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 121,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"z-10 text-[2.55rem] font-bold uppercase tracking-[0.3em] mb-8 text-yellow-500 drop-shadow-lg text-center\",\n children: \"Traici\\xf3n en Par\\xeds\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 126,\n columnNumber: 17\n }, this),\n isHost && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"audio\", {\n src: \"/assets/audio/Intro.ogg\",\n autoPlay: true,\n onEnded: ()=>actions.finishIntro()\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 132,\n columnNumber: 21\n }, this),\n isHost && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>actions.finishIntro(),\n className: \"z-10 bg-white/20 hover:bg-white/40 border border-white px-6 py-2 rounded text-sm uppercase tracking-widest backdrop-blur-sm transition-all\",\n children: \"Omitir Introducci\\xf3n\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 140,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 120,\n columnNumber: 13\n }, this);\n }\n // FASE REVEAL ROLE NO HOOKS HERE\n if (gameState.phase === \"reveal_role\") {\n // Determinar imagen basada en el rol\n // Mapeo actualizado: \n // Marlene -> good_merlin.png\n // Capitán Philippe -> good_percival.png\n // Partisano -> good_soldier_X.png (random)\n // Francotirador -> evil_assassin.png\n // Agente Doble -> evil_morgana.png\n // Comandante Schmidt -> evil_mordred.png\n // Infiltrado -> evil_oberon.png\n // Colaboracionista -> evil_minion_X.png\n let roleImage = \"/assets/images/characters/good_soldier_1.png\"; // Default\n const role = currentPlayer?.role;\n if (role === \"marlene\") roleImage = \"/assets/images/characters/good_merlin.png\";\n else if (role === \"francotirador\") roleImage = \"/assets/images/characters/evil_assassin.png\";\n else if (role === \"capitan_philippe\") roleImage = \"/assets/images/characters/good_percival.png\";\n else if (role === \"agente_doble\") roleImage = \"/assets/images/characters/evil_morgana.png\";\n else if (role === \"comandante_schmidt\") roleImage = \"/assets/images/characters/evil_mordred.png\";\n else if (role === \"infiltrado\") roleImage = \"/assets/images/characters/evil_oberon.png\";\n else if (role === \"partisano\") {\n // Random soldier 1-5\n const idx = currentPlayerId.charCodeAt(0) % 5 + 1;\n roleImage = `/assets/images/characters/good_soldier_${idx}.png`;\n } else if (role === \"colaboracionista\") {\n // Random minion 1-3\n const idx = currentPlayerId.charCodeAt(0) % 3 + 1;\n roleImage = `/assets/images/characters/evil_minion_${idx}.png`;\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-screen flex flex-col items-center justify-center bg-black overflow-hidden text-white font-mono\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 z-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/ui/bg_roll_call.png\",\n alt: \"Resistance HQ\",\n fill: true,\n className: \"object-cover\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 189,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/70\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 190,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 188,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"z-10 flex flex-col items-center gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl uppercase tracking-[0.2em] text-gray-300\",\n children: \"Tu Identidad Secreta\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 194,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-400 mb-4 animate-pulse\",\n children: \"Desliza hacia arriba para revelar\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 198,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-64 h-96 perspective-1000\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 w-full h-full rounded-xl overflow-hidden shadow-2xl border-4 border-yellow-600 bg-gray-900 flex items-center justify-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: roleImage,\n alt: \"Role\",\n fill: true,\n className: \"object-cover\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 205,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute bottom-0 w-full bg-black/80 text-center py-2 font-bold text-yellow-500 uppercase\",\n children: role?.replace(\"_\", \" \")\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 211,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 204,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n drag: \"y\",\n dragConstraints: {\n top: -300,\n bottom: 0\n },\n dragElastic: 0.5,\n dragSnapToOrigin: true,\n whileHover: {\n scale: 1.02\n },\n whileTap: {\n scale: 0.98,\n cursor: \"grabbing\"\n },\n className: \"absolute inset-0 w-full h-full rounded-xl overflow-hidden shadow-2xl z-20 cursor-grab active:cursor-grabbing hover:ring-2 hover:ring-white/50 transition-all\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/characters/card_back.png\",\n alt: \"Card Back\",\n fill: true,\n className: \"object-cover pointer-events-none\" // Importante: pointer-events-none en la imagen para que no capture el drag\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 226,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 217,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 202,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 193,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 186,\n columnNumber: 13\n }, this);\n }\n // FASE ROLL CALL\n if (gameState.phase === \"roll_call\") {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-screen flex flex-col bg-black overflow-hidden text-white font-mono\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 z-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/ui/bg_roll_call.png\",\n alt: \"Resistance HQ\",\n fill: true,\n className: \"object-cover\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 248,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/70\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 249,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 247,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative z-10 w-full h-[20vh] flex items-center justify-center px-4 border-b border-gray-600/50 bg-black/20 backdrop-blur-sm\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl md:text-3xl lg:text-4xl text-center uppercase tracking-[0.2em] text-gray-300 drop-shadow-lg\",\n children: \"Pasando Lista...\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 254,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 253,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative z-10 w-full flex-1 overflow-y-auto p-4 flex flex-col items-center\",\n children: [\n isHost && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"audio\", {\n src: \"/assets/audio/Rondas.mp3\",\n autoPlay: true,\n onEnded: ()=>actions.finishRollCall()\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 262,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-6xl grid grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3 md:gap-8 justify-items-center content-center py-4\",\n children: gameState.players.map((p, i)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.8\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n transition: {\n delay: i * 0.3\n },\n className: \"flex flex-col items-center gap-1 md:gap-3 w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 md:w-32 md:h-32 rounded-full border-2 md:border-4 border-gray-400 overflow-hidden relative shadow-2xl bg-black\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: `/assets/images/characters/${p.avatar}`,\n alt: \"Avatar\",\n fill: true,\n className: \"object-cover grayscale contrast-125\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 281,\n columnNumber: 41\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 280,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-black/80 px-2 py-0.5 md:px-4 md:py-1 rounded border border-white/20 text-xs md:text-xl font-bold text-yellow-500 uppercase text-center w-full truncate max-w-[120px] md:max-w-none\",\n children: p.name\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 289,\n columnNumber: 37\n }, this)\n ]\n }, p.id, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 272,\n columnNumber: 33\n }, this);\n })\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 269,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 260,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 244,\n columnNumber: 13\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-screen flex flex-col overflow-hidden\",\n children: [\n gameState.phase !== _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.ALLIED_WIN && gameState.phase !== _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.NAZIS_WIN && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ExitGameButton__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onExit: ()=>actions.leaveGame(),\n playerName: fullPlayerName\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 305,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 z-0 opacity-40\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.ALLIED_WIN ? \"/assets/images/tokens/mission_success.png\" : gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.NAZIS_WIN ? \"/assets/images/tokens/mission_fail.png\" : \"/assets/images/ui/bg_game.png\",\n alt: \"Game Background\",\n fill: true,\n className: \"object-cover\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 313,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/60\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 325,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 312,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative z-10 w-full flex flex-col items-center pb-32\",\n children: [\n gameState.phase !== _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.ALLIED_WIN && gameState.phase !== _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.NAZIS_WIN && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full max-w-5xl aspect-video mt-4 shadow-2xl border-4 border-gray-800 rounded-lg overflow-hidden bg-[#2a2a2a]\",\n children: gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.ASSASSIN_PHASE ? /* IMAGEN LASTSHOT PARA ASSASSIN_PHASE */ /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/lastshot.jpg\",\n alt: \"Last Shot\",\n fill: true,\n className: \"object-cover\",\n priority: true\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 338,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/40\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 346,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-1/3 left-0 right-0 flex flex-col items-center z-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-5xl font-bold text-red-600 mb-2 drop-shadow-[0_4px_8px_rgba(0,0,0,0.9)]\",\n children: \"\\xa1\\xdaLTIMA OPORTUNIDAD!\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 350,\n columnNumber: 37\n }, this),\n currentPlayer?.role === \"francotirador\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-white drop-shadow-[0_2px_4px_rgba(0,0,0,0.9)] font-bold\",\n children: [\n \"Francotirador, elige a qui\\xe9n crees que es \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-yellow-400\",\n children: \"MARLENE\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 355,\n columnNumber: 87\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 354,\n columnNumber: 41\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl text-gray-300 drop-shadow-[0_2px_4px_rgba(0,0,0,0.9)] font-bold\",\n children: \"El Francotirador est\\xe1 decidiendo...\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 358,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 349,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true) : showBoard ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/ui/board_map.jpg\",\n alt: \"Tactical Map\",\n fill: true,\n className: \"object-contain\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 367,\n columnNumber: 33\n }, this),\n missionCoords.map((coord, idx)=>{\n const result = gameState.questResults[idx];\n const isCurrent = gameState.currentRound === idx + 1;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute w-[10%] aspect-square flex items-center justify-center\",\n style: {\n left: coord.left,\n top: coord.top,\n transform: \"translate(-50%, -50%)\"\n },\n children: [\n isCurrent && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n layoutId: \"round-marker\",\n className: \"absolute inset-0 z-10\",\n initial: {\n scale: 1.5,\n opacity: 0\n },\n animate: {\n scale: 1,\n opacity: 1\n },\n transition: {\n type: \"spring\",\n stiffness: 300,\n damping: 20\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/marker_round.png\",\n alt: \"Current Round\",\n fill: true,\n className: \"object-contain drop-shadow-lg\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 398,\n columnNumber: 53\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 391,\n columnNumber: 49\n }, this),\n result === true && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n scale: 0\n },\n animate: {\n scale: 1\n },\n className: \"absolute inset-0 z-20 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-[80%] h-[80%] relative\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/marker_score_blue.png\",\n alt: \"Success\",\n fill: true,\n className: \"object-contain drop-shadow-lg\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 414,\n columnNumber: 57\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 413,\n columnNumber: 53\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 409,\n columnNumber: 49\n }, this),\n result === false && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n scale: 0\n },\n animate: {\n scale: 1\n },\n className: \"absolute inset-0 z-20 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-[80%] h-[80%] relative\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/marker_score_red.png\",\n alt: \"Fail\",\n fill: true,\n className: \"object-contain drop-shadow-lg\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 424,\n columnNumber: 57\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 423,\n columnNumber: 53\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 419,\n columnNumber: 49\n }, this)\n ]\n }, idx, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 380,\n columnNumber: 41\n }, this);\n })\n ]\n }, void 0, true) : /* CARTA DE MISIÓN CON TÍTULO */ /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: `/assets/images/missions/mission${gameState.currentRound}.png`,\n alt: `Mission ${gameState.currentRound}`,\n fill: true,\n className: \"object-contain\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 435,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-4 left-0 right-0 flex flex-col items-center z-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-4xl font-bold text-white drop-shadow-[0_4px_8px_rgba(0,0,0,0.8)] mb-2 uppercase tracking-wider\",\n children: [\n \"Misi\\xf3n \",\n gameState.currentRound\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 443,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl font-semibold text-yellow-400 drop-shadow-[0_4px_8px_rgba(0,0,0,0.8)] uppercase tracking-wide\",\n children: missionNames[gameState.currentRound - 1]\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 446,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 442,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 334,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 w-full max-w-6xl relative mt-4 px-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_9__.AnimatePresence, {\n mode: \"wait\",\n children: [\n gameState.phase === \"vote_leader\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.9\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n className: \"flex flex-col items-center gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-black/80 p-4 rounded text-white text-center border border-yellow-500/50 relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-mono mb-2 text-yellow-500 uppercase tracking-widest\",\n children: \"Confirmar L\\xedder\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 468,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold mb-2\",\n children: [\n \"\\xbfAceptas a \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-yellow-400\",\n children: gameState.players.find((p)=>p.id === gameState.currentLeaderId)?.name\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 472,\n columnNumber: 52\n }, this),\n \" como L\\xedder?\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 471,\n columnNumber: 37\n }, this),\n !gameState.leaderVotes?.[currentPlayerId] && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(VotingTimer, {}, gameState.currentLeaderId, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 477,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 467,\n columnNumber: 33\n }, this),\n gameState.leaderVotes?.[currentPlayerId] === undefined ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>actions.voteLeader(true),\n className: \"group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-32 h-32 bg-white rounded-lg shadow-xl flex items-center justify-center border-4 border-transparent group-hover:border-green-500 transition-all transform group-hover:-translate-y-4 relative overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/accept_leader.png\",\n alt: \"Accept Leader\",\n fill: true,\n className: \"object-contain\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 485,\n columnNumber: 49\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 484,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"block text-center text-white mt-2 font-bold bg-green-600 px-2 rounded uppercase tracking-widest\",\n children: \"ACEPTAR\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 487,\n columnNumber: 45\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 483,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>actions.voteLeader(false),\n className: \"group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-32 h-32 bg-white rounded-lg shadow-xl flex items-center justify-center border-4 border-transparent group-hover:border-red-500 transition-all transform group-hover:-translate-y-4 relative overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/deny_leader.png\",\n alt: \"Deny Leader\",\n fill: true,\n className: \"object-contain\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 491,\n columnNumber: 49\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 490,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"block text-center text-white mt-2 font-bold bg-red-600 px-2 rounded uppercase tracking-widest\",\n children: \"RECHAZAR\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 493,\n columnNumber: 45\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 489,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 482,\n columnNumber: 37\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-white text-xl font-mono animate-pulse bg-black/50 px-6 py-3 rounded-full border border-white/20\",\n children: \"VOTO REGISTRADO. ESPERANDO AL RESTO...\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 497,\n columnNumber: 37\n }, this)\n ]\n }, \"vote-leader\", true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 461,\n columnNumber: 29\n }, this),\n gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.TEAM_BUILDING && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n exit: {\n opacity: 0,\n y: -20\n },\n className: \"flex flex-col items-center gap-6 w-full max-w-4xl\",\n children: [\n !isLeader && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-yellow-600/90 text-black p-2 rounded-lg shadow-xl border-4 border-yellow-400 w-full text-center mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center gap-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs uppercase tracking-wider font-bold\",\n children: \"L\\xedder Actual\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 519,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xl font-bold\",\n children: gameState.players.find((p)=>p.id === gameState.currentLeaderId)?.name || \"Desconocido\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 520,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 518,\n columnNumber: 45\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 517,\n columnNumber: 41\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 516,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-paper-bg text-black p-4 md:p-6 rounded shadow-2xl w-full text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xl md:text-2xl font-bold font-mono mb-2 uppercase text-resistance-blue\",\n children: isLeader ? \"\\uD83C\\uDFAF TU TURNO: ELIGE TU EQUIPO\" : \"⏳ ESPERANDO AL L\\xcdDER...\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 531,\n columnNumber: 37\n }, this),\n isLeader && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mb-4 font-serif italic text-gray-700\",\n children: [\n \"Se necesitan \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-bold text-red-700 text-xl\",\n children: [\n currentQuestSize,\n \" agentes\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 536,\n columnNumber: 58\n }, this),\n \" para la misi\\xf3n #\",\n gameState.currentRound,\n \".\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 535,\n columnNumber: 41\n }, this),\n isLeader && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4 text-lg font-bold\",\n children: [\n \"Seleccionados: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: selectedTeam.length === currentQuestSize ? \"text-green-600\" : \"text-orange-600\",\n children: [\n selectedTeam.length,\n \" / \",\n currentQuestSize\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 543,\n columnNumber: 60\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 542,\n columnNumber: 41\n }, this),\n isLeader && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>actions.proposeTeam(selectedTeam),\n disabled: selectedTeam.length !== currentQuestSize,\n className: \"w-full bg-resistance-blue text-white font-bold py-3 px-4 rounded hover:bg-blue-900 transition-colors disabled:opacity-50 disabled:cursor-not-allowed uppercase tracking-widest shadow-lg\",\n children: selectedTeam.length === currentQuestSize ? \"✓ CONFIRMAR EQUIPO\" : `Selecciona ${currentQuestSize - selectedTeam.length} más`\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 550,\n columnNumber: 41\n }, this),\n !isLeader && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-600 animate-pulse\",\n children: \"El l\\xedder est\\xe1 seleccionando el equipo de misi\\xf3n...\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 560,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 530,\n columnNumber: 33\n }, this)\n ]\n }, \"team-building\", true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 506,\n columnNumber: 29\n }, this),\n gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.VOTING_TEAM && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n scale: 0.8,\n opacity: 0\n },\n animate: {\n scale: 1,\n opacity: 1\n },\n className: \"flex flex-col items-center gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-black/80 p-4 rounded text-white text-center border border-white/20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-mono mb-2 text-yellow-500\",\n children: \"PROPUESTA DE MISI\\xd3N\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 577,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2 justify-center\",\n children: gameState.proposedTeam.map((id)=>{\n const p = gameState.players.find((pl)=>pl.id === id);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white/10 px-3 py-1 rounded text-sm\",\n children: p?.name\n }, id, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 582,\n columnNumber: 49\n }, this);\n })\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 578,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 576,\n columnNumber: 33\n }, this),\n gameState.teamVotes[currentPlayerId] === undefined ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>actions.voteTeam(true),\n className: \"group\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-32 h-48 bg-white rounded-lg shadow-xl flex flex-col items-center justify-center border-2 border-blue-500 group-hover:border-blue-400 group-hover:shadow-blue-500/50 transition-all transform group-hover:-translate-y-4 relative overflow-hidden p-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-blue-600 font-bold text-sm uppercase tracking-wider mb-1 z-10\",\n children: \"\\xc9xito\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 594,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-full flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/vote_approve.png\",\n alt: \"Approve\",\n fill: true,\n className: \"object-contain\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 596,\n columnNumber: 53\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 595,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 593,\n columnNumber: 45\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 592,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>actions.voteTeam(false),\n className: \"group\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-32 h-48 bg-white rounded-lg shadow-xl flex flex-col items-center justify-center border-2 border-red-500 group-hover:border-red-400 group-hover:shadow-red-500/50 transition-all transform group-hover:-translate-y-4 relative overflow-hidden p-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-red-600 font-bold text-sm uppercase tracking-wider mb-1 z-10\",\n children: \"Fracaso\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 602,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-full flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/vote_reject.png\",\n alt: \"Reject\",\n fill: true,\n className: \"object-contain\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 604,\n columnNumber: 53\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 603,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 601,\n columnNumber: 45\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 600,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 591,\n columnNumber: 37\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-white text-xl font-mono animate-pulse\",\n children: \"VOTO REGISTRADO. ESPERANDO AL RESTO... ```\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 610,\n columnNumber: 37\n }, this)\n ]\n }, \"voting\", true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 570,\n columnNumber: 29\n }, this),\n gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.MISSION && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n className: \"fixed inset-0 flex items-start justify-center bg-black/90 z-50 pt-20\",\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n children: gameState.proposedTeam.includes(currentPlayerId) ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-4 w-full max-w-6xl px-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-4xl md:text-5xl font-bold text-white mb-2 drop-shadow-2xl text-center uppercase tracking-wider animate-pulse\",\n children: \"\\uD83C\\uDFAF REALIZA LA MISI\\xd3N\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 628,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-white text-xl mb-2 text-center\",\n children: \"Elige si quieres un \\xe9xito o un fracaso\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 631,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-12 flex-wrap justify-center\",\n children: cardOrder ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleMissionVote(true),\n className: `group transition-opacity ${missionVote === true ? \"opacity-100\" : \"opacity-50\"}`,\n disabled: missionVote !== null,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n className: \"w-32 h-48 bg-gradient-to-br from-blue-600 to-blue-900 rounded-2xl shadow-2xl border-4 border-blue-400 flex flex-col items-center justify-center p-4 transform transition-all hover:scale-110 hover:rotate-3 hover:shadow-blue-500/50\",\n whileHover: {\n scale: 1.1,\n rotate: 3\n },\n whileTap: {\n scale: 0.95\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/vote_approve.png\",\n alt: \"Success\",\n width: 80,\n height: 80,\n className: \"drop-shadow-2xl\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 650,\n columnNumber: 61\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"mt-2 text-white font-bold text-lg tracking-widest uppercase\",\n children: \"\\xc9XITO\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 651,\n columnNumber: 61\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 645,\n columnNumber: 57\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 640,\n columnNumber: 53\n }, this),\n currentPlayer?.faction === _shared_types__WEBPACK_IMPORTED_MODULE_3__.Faction.ALEMANES && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleMissionVote(false),\n className: `group transition-opacity ${missionVote === false ? \"opacity-100\" : \"opacity-50\"}`,\n disabled: missionVote !== null,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n className: \"w-32 h-48 bg-gradient-to-br from-red-600 to-red-900 rounded-2xl shadow-2xl border-4 border-red-400 flex flex-col items-center justify-center p-4 transform transition-all hover:scale-110 hover:-rotate-3 hover:shadow-red-500/50\",\n whileHover: {\n scale: 1.1,\n rotate: -3\n },\n whileTap: {\n scale: 0.95\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/vote_reject.png\",\n alt: \"Fail\",\n width: 80,\n height: 80,\n className: \"drop-shadow-2xl\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 667,\n columnNumber: 65\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"mt-2 text-white font-bold text-lg tracking-widest uppercase\",\n children: \"SABOTAJE\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 668,\n columnNumber: 65\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 662,\n columnNumber: 61\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 657,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n currentPlayer?.faction === _shared_types__WEBPACK_IMPORTED_MODULE_3__.Faction.ALEMANES && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleMissionVote(false),\n className: `group transition-opacity ${missionVote === false ? \"opacity-100\" : \"opacity-50\"}`,\n disabled: missionVote !== null,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n className: \"w-32 h-48 bg-gradient-to-br from-red-600 to-red-900 rounded-2xl shadow-2xl border-4 border-red-400 flex flex-col items-center justify-center p-4 transform transition-all hover:scale-110 hover:-rotate-3 hover:shadow-red-500/50\",\n whileHover: {\n scale: 1.1,\n rotate: -3\n },\n whileTap: {\n scale: 0.95\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/vote_reject.png\",\n alt: \"Fail\",\n width: 80,\n height: 80,\n className: \"drop-shadow-2xl\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 687,\n columnNumber: 65\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"mt-2 text-white font-bold text-lg tracking-widest uppercase\",\n children: \"SABOTAJE\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 688,\n columnNumber: 65\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 682,\n columnNumber: 61\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 677,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleMissionVote(true),\n className: `group transition-opacity ${missionVote === true ? \"opacity-100\" : \"opacity-50\"}`,\n disabled: missionVote !== null,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n className: \"w-32 h-48 bg-gradient-to-br from-blue-600 to-blue-900 rounded-2xl shadow-2xl border-4 border-blue-400 flex flex-col items-center justify-center p-4 transform transition-all hover:scale-110 hover:rotate-3 hover:shadow-blue-500/50\",\n whileHover: {\n scale: 1.1,\n rotate: 3\n },\n whileTap: {\n scale: 0.95\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: \"/assets/images/tokens/vote_approve.png\",\n alt: \"Success\",\n width: 80,\n height: 80,\n className: \"drop-shadow-2xl\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 704,\n columnNumber: 61\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"mt-2 text-white font-bold text-lg tracking-widest uppercase\",\n children: \"\\xc9XITO\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 705,\n columnNumber: 61\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 699,\n columnNumber: 57\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 694,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 636,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 627,\n columnNumber: 37\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-white text-3xl font-mono bg-black/70 p-8 rounded-xl border-2 border-white/20 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-pulse mb-4 text-5xl\",\n children: \"⏳\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 714,\n columnNumber: 41\n }, this),\n \"La misi\\xf3n est\\xe1 en curso...\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 715,\n columnNumber: 67\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-lg text-gray-400 mt-2 block\",\n children: \"Esperando a que el equipo complete su votaci\\xf3n.\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 716,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 713,\n columnNumber: 37\n }, this)\n }, \"mission\", false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 620,\n columnNumber: 29\n }, this),\n gameState.phase === \"mission_reveal\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_MissionReveal__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n votes: gameState.revealedVotes || [],\n onFinished: ()=>actions.finishMissionReveal()\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 724,\n columnNumber: 29\n }, this),\n gameState.phase === \"mission_result\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_MissionResult__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n gameState: gameState,\n isHost: isHost,\n onContinue: ()=>isHost && actions.finishMissionResult()\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 732,\n columnNumber: 29\n }, this),\n gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.ASSASSIN_PHASE && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n className: \"w-full flex flex-col items-center gap-6\",\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n children: [\n currentPlayer?.role === \"francotirador\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4 max-w-4xl\",\n children: gameState.players.filter((p)=>p.faction === _shared_types__WEBPACK_IMPORTED_MODULE_3__.Faction.ALIADOS) // Solo jugadores Aliados\n .map((player)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.button, {\n onClick: ()=>actions.assassinKill(player.id),\n className: \"bg-black/60 hover:bg-red-600/70 border-2 border-white/30 hover:border-red-500 p-3 rounded-lg transition-all backdrop-blur-sm flex flex-col items-center gap-2\",\n whileHover: {\n scale: 1.05\n },\n whileTap: {\n scale: 0.95\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 rounded-full border-2 border-white/50 overflow-hidden bg-black relative shadow-xl\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: `/assets/images/characters/${player.avatar}`,\n alt: player.name,\n fill: true,\n className: \"object-cover\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 759,\n columnNumber: 57\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 758,\n columnNumber: 53\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-white font-bold text-sm drop-shadow-[0_2px_4px_rgba(0,0,0,0.8)]\",\n children: player.name\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 766,\n columnNumber: 53\n }, this)\n ]\n }, player.id, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 751,\n columnNumber: 49\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 747,\n columnNumber: 37\n }, this),\n currentPlayer?.role !== \"francotirador\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-white text-xl font-mono bg-black/50 px-6 py-3 rounded-full border border-white/20 animate-pulse\",\n children: \"El Francotirador est\\xe1 decidiendo...\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 773,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 741,\n columnNumber: 29\n }, this),\n gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.NAZIS_WIN && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_VictoryScreen__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n gameState: gameState,\n isHost: isHost,\n onRestart: ()=>actions.restartGame(),\n onFinalize: ()=>actions.finalizeGame()\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 782,\n columnNumber: 29\n }, this),\n gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.ALLIED_WIN && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_VictoryScreen__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n gameState: gameState,\n isHost: isHost,\n onRestart: ()=>actions.restartGame(),\n onFinalize: ()=>actions.finalizeGame()\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 792,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 457,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 456,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n className: \"fixed bottom-0 left-0 right-0 z-50 bg-black/80 border-t border-white/10 backdrop-blur-md\",\n initial: false,\n animate: {\n y: isPlayersCollapsed ? \"100%\" : \"0%\"\n },\n transition: {\n type: \"spring\",\n stiffness: 300,\n damping: 30\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute -top-10 left-1/2 transform -translate-x-1/2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setIsPlayersCollapsed(!isPlayersCollapsed),\n className: \"bg-gradient-to-b from-yellow-600 to-yellow-700 hover:from-yellow-500 hover:to-yellow-600 text-white rounded-t-lg px-6 py-2 shadow-lg border-2 border-yellow-500 border-b-0 transition-all hover:shadow-yellow-500/50 flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.svg, {\n xmlns: \"http://www.w3.org/2000/svg\",\n className: \"h-5 w-5\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n animate: {\n rotate: isPlayersCollapsed ? 180 : 0\n },\n transition: {\n duration: 0.3\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 3,\n d: \"M19 9l-7 7-7-7\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 827,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 818,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-bold uppercase tracking-wider\",\n children: isPlayersCollapsed ? \"Mostrar\" : \"Ocultar\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 829,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 814,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 813,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full px-4 py-2 flex flex-wrap items-center justify-center gap-4\",\n children: gameState.players.map((player)=>{\n const isSelected = selectedTeam.includes(player.id);\n const isMe = player.id === currentPlayerId;\n // Avatar logic\n const avatarSrc = `/assets/images/characters/${player.avatar}`;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n onClick: ()=>isLeader && gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.TEAM_BUILDING && toggleTeamSelection(player.id),\n className: `\n relative flex flex-col items-center cursor-pointer transition-all duration-300 group\n ${isSelected ? \"scale-110 z-10\" : \"scale-100 opacity-70 hover:opacity-100 hover:scale-105\"}\n `,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative rounded-full border-2 overflow-hidden shadow-lg bg-black transition-all w-16 h-16 ${isSelected ? 'border-yellow-400 ring-4 ring-yellow-400/30 shadow-yellow-400/20' : 'border-gray-500 group-hover:border-gray-300'} ${gameState.currentLeaderId === player.id ? 'ring-2 ring-white' : ''} \",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: avatarSrc,\n alt: player.name,\n fill: true,\n className: \"object-cover\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 857,\n columnNumber: 41\n }, this),\n gameState.currentLeaderId === player.id && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute bottom-0 right-0 bg-yellow-500 rounded-full p-1 w-6 h-6 flex items-center justify-center text-[10px] text-black font-bold border border-white z-20 shadow-sm\",\n children: \"L\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 866,\n columnNumber: 45\n }, this),\n gameState.proposedTeam.includes(player.id) && (gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.VOTING_TEAM || gameState.phase === _shared_types__WEBPACK_IMPORTED_MODULE_3__.GamePhase.MISSION || gameState.phase === \"mission_reveal\" || gameState.phase === \"mission_result\") && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-0 left-0 bg-green-500 rounded-full p-1 w-6 h-6 flex items-center justify-center text-xs text-white font-bold border border-white z-20\",\n children: \"⭐\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 878,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 853,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `\n mt-1 text-xs font-mono px-2 py-0.5 rounded shadow-sm whitespace-nowrap max-w-[100px] truncate\n ${isMe ? \"bg-blue-600 text-white font-bold\" : \"bg-black/60 text-gray-300 border border-white/10\"}\n `,\n children: player.name\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 885,\n columnNumber: 37\n }, this)\n ]\n }, player.id, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 844,\n columnNumber: 33\n }, this);\n })\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 835,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 804,\n columnNumber: 17\n }, this),\n gameState.missionHistory.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n className: \"fixed top-[60px] right-0 z-50\",\n initial: false,\n animate: {\n x: isHistoryCollapsed ? \"0%\" : \"0%\"\n },\n transition: {\n type: \"spring\",\n stiffness: 300,\n damping: 30\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.button, {\n onClick: ()=>setIsHistoryCollapsed(!isHistoryCollapsed),\n className: \"absolute top-0 bg-gradient-to-l from-yellow-600 to-yellow-700 hover:from-yellow-500 hover:to-yellow-600 text-white rounded-l-lg px-2 py-3 shadow-lg border-2 border-yellow-500 border-r-0 transition-all hover:shadow-yellow-500/50 flex items-center\",\n initial: false,\n animate: {\n right: isHistoryCollapsed ? \"0px\" : \"100%\"\n },\n transition: {\n type: \"spring\",\n stiffness: 300,\n damping: 30\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.svg, {\n xmlns: \"http://www.w3.org/2000/svg\",\n className: \"h-4 w-4\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n animate: {\n rotate: isHistoryCollapsed ? 0 : 180\n },\n transition: {\n duration: 0.3\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 3,\n d: \"M15 19l-7-7 7-7\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 926,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 917,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 908,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n className: \"bg-black/80 p-3 rounded-lg border border-white/20 backdrop-blur-sm\",\n initial: false,\n animate: {\n x: isHistoryCollapsed ? \"100%\" : \"0%\"\n },\n transition: {\n type: \"spring\",\n stiffness: 300,\n damping: 30\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-[10px] text-gray-400 uppercase mb-2 text-center font-bold tracking-wider\",\n children: \"Historial\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 939,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2\",\n children: gameState.missionHistory.map((mission, idx)=>{\n const isExpanded = expandedMission === idx;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold border-2 cursor-pointer transition-all hover:scale-110 ${mission.isSuccess ? \"bg-blue-600 border-blue-400 text-white\" : \"bg-red-600 border-red-400 text-white\"} ${isExpanded ? \"ring-2 ring-yellow-400 relative z-[60]\" : \"\"}`,\n title: `Misión ${mission.round}: ${mission.isSuccess ? \"\\xc9xito\" : \"Fracaso\"} (${mission.successes}✓ ${mission.fails}✗)`,\n onClick: (e)=>{\n e.stopPropagation();\n console.log(\"Click en misi\\xf3n\", idx);\n setExpandedMission((prev)=>prev === idx ? null : idx);\n },\n children: mission.round\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 946,\n columnNumber: 45\n }, this),\n isExpanded && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-10 right-0 bg-black/95 p-2 rounded border border-white/30 min-w-max z-[100]\",\n children: mission.team.map((playerId)=>{\n const player = gameState.players.find((p)=>p.id === playerId);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-white whitespace-nowrap\",\n children: player?.name || playerId\n }, playerId, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 967,\n columnNumber: 61\n }, this);\n })\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 963,\n columnNumber: 49\n }, this)\n ]\n }, idx, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 945,\n columnNumber: 41\n }, this);\n })\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 940,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 931,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 899,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 329,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 302,\n columnNumber: 9\n }, this);\n}\n// Subcomponente para el Timer de Votación (solo visual, el servidor controla el timeout real)\nfunction VotingTimer() {\n const [timeLeft, setTimeLeft] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(10);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (timeLeft <= 0) {\n return; // El servidor se encargará de forzar la resolución\n }\n const interval = setInterval(()=>setTimeLeft((t)=>t - 1), 1000);\n return ()=>clearInterval(interval);\n }, [\n timeLeft\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed top-5 left-5 bg-red-600/80 text-white w-16 h-16 rounded-full flex items-center justify-center border-4 border-red-400 animate-pulse text-2xl font-bold font-mono\",\n children: timeLeft\n }, void 0, false, {\n fileName: \"/app/client/src/components/GameBoard.tsx\",\n lineNumber: 999,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVMsR0FBRyxhQUFVLFVBQVUsRUFBRSxFQUFFRixRQUFRSyxTQUFTLENBQUMsRUFBRSxFQUFFTCxRQUFRTSxLQUFLLENBQUMsRUFBRSxDQUFDO3dEQUN0SHBHLFNBQVMsQ0FBQ3FHOzREQUNOQSxFQUFFQyxlQUFlOzREQUNqQkMsUUFBUUMsR0FBRyxDQUFDLHNCQUFtQnJHOzREQUMvQnRELG1CQUFtQjRKLENBQUFBLE9BQVFBLFNBQVN0RyxNQUFNLE9BQU9BO3dEQUNyRDtrRUFFQzJGLFFBQVFJLEtBQUs7Ozs7OztvREFJakJILDRCQUNHLDhEQUFDMUc7d0RBQUlDLFdBQVU7a0VBQ1Z3RyxRQUFRWSxJQUFJLENBQUN6RixHQUFHLENBQUMsQ0FBQ3hDOzREQUNmLE1BQU0rRixTQUFTekksVUFBVStCLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFQyxFQUFFLEtBQUtROzREQUNwRCxxQkFDSSw4REFBQ1k7Z0VBQW1CQyxXQUFVOzBFQUN6QmtGLFFBQVEvQyxRQUFRaEQ7K0RBRFhBOzs7Ozt3REFJbEI7Ozs7Ozs7K0NBMUJGMEI7Ozs7O3dDQStCbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFoQztBQUVBLDhGQUE4RjtBQUM5RixTQUFTNEM7SUFDTCxNQUFNLENBQUM0RCxVQUFVQyxZQUFZLEdBQUcxTCwrQ0FBUUEsQ0FBQztJQUV6Q0MsZ0RBQVNBLENBQUM7UUFDTixJQUFJd0wsWUFBWSxHQUFHO1lBQ2YsUUFBUSxtREFBbUQ7UUFDL0Q7UUFDQSxNQUFNRSxXQUFXQyxZQUFZLElBQU1GLFlBQVlHLENBQUFBLElBQUtBLElBQUksSUFBSTtRQUM1RCxPQUFPLElBQU1DLGNBQWNIO0lBQy9CLEdBQUc7UUFBQ0Y7S0FBUztJQUViLHFCQUNJLDhEQUFDdEg7UUFBSUMsV0FBVTtrQkFDVnFIOzs7Ozs7QUFHYiIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8uL3NyYy9jb21wb25lbnRzL0dhbWVCb2FyZC50c3g/ZjRhYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgbW90aW9uLCBBbmltYXRlUHJlc2VuY2UgfSBmcm9tICdmcmFtZXItbW90aW9uJztcbmltcG9ydCBJbWFnZSBmcm9tICduZXh0L2ltYWdlJztcbmltcG9ydCB7IEdhbWVTdGF0ZSwgR2FtZVBoYXNlLCBQbGF5ZXIsIEdBTUVfQ09ORklHLCBGYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCBNaXNzaW9uUmV2ZWFsIGZyb20gJy4vTWlzc2lvblJldmVhbCc7XG5pbXBvcnQgTWlzc2lvblJlc3VsdCBmcm9tICcuL01pc3Npb25SZXN1bHQnO1xuaW1wb3J0IFZpY3RvcnlTY3JlZW4gZnJvbSAnLi9WaWN0b3J5U2NyZWVuJztcbmltcG9ydCBFeGl0R2FtZUJ1dHRvbiBmcm9tICcuL0V4aXRHYW1lQnV0dG9uJztcblxuaW50ZXJmYWNlIEdhbWVCb2FyZFByb3BzIHtcbiAgICBnYW1lU3RhdGU6IEdhbWVTdGF0ZTtcbiAgICBjdXJyZW50UGxheWVySWQ6IHN0cmluZztcbiAgICBhY3Rpb25zOiBhbnk7XG4gICAgZnVsbFBsYXllck5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR2FtZUJvYXJkKHsgZ2FtZVN0YXRlLCBjdXJyZW50UGxheWVySWQsIGFjdGlvbnMsIGZ1bGxQbGF5ZXJOYW1lIH06IEdhbWVCb2FyZFByb3BzKSB7XG4gICAgY29uc3QgW3NlbGVjdGVkVGVhbSwgc2V0U2VsZWN0ZWRUZWFtXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSk7XG5cbiAgICAvLyBIb29rcyBwYXJhIEZBU0UgUkVWRUFMIFJPTEVcbiAgICBjb25zdCBbcmV2ZWFsQ2FyZCwgc2V0UmV2ZWFsQ2FyZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICAvLyBPcmRlbiBhbGVhdG9yaW8gZGUgY2FydGFzIGRlIG1pc2nDs24gKHNlIGdlbmVyYSB1bmEgdmV6KVxuICAgIGNvbnN0IFtjYXJkT3JkZXJdID0gdXNlU3RhdGUoKCkgPT4gTWF0aC5yYW5kb20oKSA+IDAuNSk7XG5cbiAgICAvLyBUcmFjayBkZWwgdm90byBkZSBtaXNpw7NuIGRlbCBqdWdhZG9yXG4gICAgY29uc3QgW21pc3Npb25Wb3RlLCBzZXRNaXNzaW9uVm90ZV0gPSB1c2VTdGF0ZTxib29sZWFuIHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgW2V4cGFuZGVkTWlzc2lvbiwgc2V0RXhwYW5kZWRNaXNzaW9uXSA9IHVzZVN0YXRlPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gICAgLy8gRXN0YWRvIHBhcmEgY29udHJvbGFyIGVsIGNvbGFwc28gZGVsIHBhbmVsIGRlIGp1Z2Fkb3Jlc1xuICAgIGNvbnN0IFtpc1BsYXllcnNDb2xsYXBzZWQsIHNldElzUGxheWVyc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZSh0cnVlKTtcblxuICAgIC8vIEVzdGFkbyBwYXJhIGNvbnRyb2xhciBlbCBjb2xhcHNvIGRlbCBoaXN0b3JpYWwgZGUgbWlzaW9uZXNcbiAgICBjb25zdCBbaXNIaXN0b3J5Q29sbGFwc2VkLCBzZXRJc0hpc3RvcnlDb2xsYXBzZWRdID0gdXNlU3RhdGUodHJ1ZSk7XG5cblxuICAgIC8vIFRpbWVyIHBhcmEgYXZhbnphciBhdXRvbcOhdGljYW1lbnRlIGVuIFJFVkVBTF9ST0xFXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGdhbWVTdGF0ZS5waGFzZSA9PT0gJ3JldmVhbF9yb2xlJyBhcyBhbnkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9ucy5maW5pc2hSZXZlYWwoKTtcbiAgICAgICAgICAgIH0sIDEwMDAwKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgICB9XG4gICAgfSwgW2dhbWVTdGF0ZS5waGFzZSwgYWN0aW9uc10pO1xuXG4gICAgLy8gUmVzZXQgbWlzc2lvblZvdGUgY3VhbmRvIGNhbWJpYSBsYSBmYXNlXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGdhbWVTdGF0ZS5waGFzZSAhPT0gR2FtZVBoYXNlLk1JU1NJT04pIHtcbiAgICAgICAgICAgIHNldE1pc3Npb25Wb3RlKG51bGwpO1xuICAgICAgICB9XG4gICAgfSwgW2dhbWVTdGF0ZS5waGFzZV0pO1xuXG4gICAgLy8gUmVzZXQgc2VsZWN0ZWRUZWFtIGN1YW5kbyBubyBlc3RhbW9zIGVuIFRFQU1fQlVJTERJTkcgbyBjYW1iaWEgZWwgbMOtZGVyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGdhbWVTdGF0ZS5waGFzZSAhPT0gR2FtZVBoYXNlLlRFQU1fQlVJTERJTkcpIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkVGVhbShbXSk7XG4gICAgICAgIH1cbiAgICB9LCBbZ2FtZVN0YXRlLnBoYXNlLCBnYW1lU3RhdGUuY3VycmVudExlYWRlcklkXSk7XG5cbiAgICAvLyBFc3RhZG8gcGFyYSBjb250cm9sYXIgY3XDoW5kbyBtb3N0cmFyIGVsIHRhYmxlcm9cbiAgICBjb25zdCBbc2hvd0JvYXJkLCBzZXRTaG93Qm9hcmRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgLy8gTW9zdHJhciB0YWJsZXJvIGR1cmFudGUgTUlTU0lPTl9SRVNVTFRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZ2FtZVN0YXRlLnBoYXNlID09PSBHYW1lUGhhc2UuTUlTU0lPTl9SRVNVTFQpIHtcbiAgICAgICAgICAgIHNldFNob3dCb2FyZCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFNob3dCb2FyZChmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9LCBbZ2FtZVN0YXRlLnBoYXNlXSk7XG5cblxuICAgIGNvbnN0IGN1cnJlbnRQbGF5ZXIgPSBnYW1lU3RhdGUucGxheWVycy5maW5kKHAgPT4gcC5pZCA9PT0gY3VycmVudFBsYXllcklkKTtcbiAgICBjb25zdCBpc0xlYWRlciA9IGdhbWVTdGF0ZS5jdXJyZW50TGVhZGVySWQgPT09IGN1cnJlbnRQbGF5ZXJJZDsgLy8gRklYOiBVc2FyIGN1cnJlbnRMZWFkZXJJZCBkZWwgZXN0YWRvXG4gICAgY29uc3QgY29uZmlnID0gR0FNRV9DT05GSUdbZ2FtZVN0YXRlLnBsYXllcnMubGVuZ3RoIGFzIGtleW9mIHR5cGVvZiBHQU1FX0NPTkZJR107XG4gICAgY29uc3QgY3VycmVudFF1ZXN0U2l6ZSA9IGNvbmZpZz8ucXVlc3RzW2dhbWVTdGF0ZS5jdXJyZW50Um91bmQgLSAxXTtcblxuICAgIC8vIE1hbmVqYXIgc2VsZWNjacOzbiBkZSBlcXVpcG9cbiAgICBjb25zdCB0b2dnbGVUZWFtU2VsZWN0aW9uID0gKHBsYXllcklkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkVGVhbS5pbmNsdWRlcyhwbGF5ZXJJZCkpIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkVGVhbShzZWxlY3RlZFRlYW0uZmlsdGVyKGlkID0+IGlkICE9PSBwbGF5ZXJJZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkVGVhbS5sZW5ndGggPCBjdXJyZW50UXVlc3RTaXplKSB7XG4gICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRUZWFtKFsuLi5zZWxlY3RlZFRlYW0sIHBsYXllcklkXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTWlzc2lvblZvdGUgPSAodm90ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICBzZXRNaXNzaW9uVm90ZSh2b3RlKTtcbiAgICAgICAgYWN0aW9ucy52b3RlTWlzc2lvbih2b3RlKTtcbiAgICB9O1xuXG5cbiAgICAvLyBDb29yZGVuYWRhcyBwb3JjZW50dWFsZXMgZGUgbG9zIGhleMOhZ29ub3MgZGUgbWlzacOzbiBlbiBlbCBtYXBhXG4gICAgY29uc3QgbWlzc2lvbkNvb3JkcyA9IFtcbiAgICAgICAgeyBsZWZ0OiAnMTglJywgdG9wOiAnNjAlJyB9LCAvLyBNaXNpw7NuIDEgLSBBYmFqbyBpenF1aWVyZGFcbiAgICAgICAgeyBsZWZ0OiAnMjUlJywgdG9wOiAnMTglJyB9LCAvLyBNaXNpw7NuIDIgLSBBcnJpYmEgaXpxdWllcmRhXG4gICAgICAgIHsgbGVmdDogJzUwJScsIHRvcDogJzc1JScgfSwgLy8gTWlzacOzbiAzIC0gQWJham8gY2VudHJvXG4gICAgICAgIHsgbGVmdDogJzUwJScsIHRvcDogJzMwJScgfSwgLy8gTWlzacOzbiA0IC0gQ2VudHJvXG4gICAgICAgIHsgbGVmdDogJzgwJScsIHRvcDogJzQ1JScgfSwgLy8gTWlzacOzbiA1IC0gRGVyZWNoYVxuICAgIF07XG5cbiAgICAvLyBOb21icmVzIGRlIGxhcyBtaXNpb25lc1xuICAgIGNvbnN0IG1pc3Npb25OYW1lcyA9IFtcbiAgICAgICAgJ1NhYm90YWplIGVuIGVsIFRyZW4nLFxuICAgICAgICAnUmVzY2F0ZSBkZWwgUHJpc2lvbmVybycsXG4gICAgICAgICdEZXN0cnVjY2nDs24gZGVsIFB1ZW50ZScsXG4gICAgICAgICdSb2JvIGRlIERvY3VtZW50b3MnLFxuICAgICAgICAnQXNhbHRvIGFsIEN1YXJ0ZWwgR2VuZXJhbCdcbiAgICBdO1xuXG4gICAgLy8gLS0tIFVJL0VmZWN0b3MgcGFyYSBGQVNFUyBURU1QUkFOQVMgLS0tXG4gICAgY29uc3QgaXNIb3N0ID0gZ2FtZVN0YXRlLmhvc3RJZCA9PT0gY3VycmVudFBsYXllcklkO1xuXG4gICAgLy8gRkFTRSBJTlRST1xuICAgIGlmIChnYW1lU3RhdGUucGhhc2UgPT09ICdpbnRybycgYXMgYW55KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLXNjcmVlbiBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1ibGFjayBvdmVyZmxvdy1oaWRkZW4gdGV4dC13aGl0ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCB6LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPEltYWdlIHNyYz1cIi9hc3NldHMvaW1hZ2VzL3VpL2JnX2ludHJvLnBuZ1wiIGFsdD1cIkJhdHRsZWZpZWxkXCIgZmlsbCBjbGFzc05hbWU9XCJvYmplY3QtY292ZXJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgYmctYmxhY2svNDBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInotMTAgdGV4dC1bMi41NXJlbV0gZm9udC1ib2xkIHVwcGVyY2FzZSB0cmFja2luZy1bMC4zZW1dIG1iLTggdGV4dC15ZWxsb3ctNTAwIGRyb3Atc2hhZG93LWxnIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIFRyYWljacOzbiBlbiBQYXLDrXNcbiAgICAgICAgICAgICAgICA8L2gxPlxuXG4gICAgICAgICAgICAgICAgey8qIEF1ZGlvIEF1dG8tUGxheSAtIFNvbG8gcGFyYSBlbCBob3N0ICovfVxuICAgICAgICAgICAgICAgIHtpc0hvc3QgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8YXVkaW9cbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9hc3NldHMvYXVkaW8vSW50cm8ub2dnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9QbGF5XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkVuZGVkPXsoKSA9PiBhY3Rpb25zLmZpbmlzaEludHJvKCl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgIHtpc0hvc3QgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBhY3Rpb25zLmZpbmlzaEludHJvKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ6LTEwIGJnLXdoaXRlLzIwIGhvdmVyOmJnLXdoaXRlLzQwIGJvcmRlciBib3JkZXItd2hpdGUgcHgtNiBweS0yIHJvdW5kZWQgdGV4dC1zbSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IGJhY2tkcm9wLWJsdXItc20gdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBPbWl0aXIgSW50cm9kdWNjacOzblxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRkFTRSBSRVZFQUwgUk9MRSBOTyBIT09LUyBIRVJFXG5cbiAgICBpZiAoZ2FtZVN0YXRlLnBoYXNlID09PSAncmV2ZWFsX3JvbGUnIGFzIGFueSkge1xuICAgICAgICAvLyBEZXRlcm1pbmFyIGltYWdlbiBiYXNhZGEgZW4gZWwgcm9sXG4gICAgICAgIC8vIE1hcGVvIGFjdHVhbGl6YWRvOiBcbiAgICAgICAgLy8gTWFybGVuZSAtPiBnb29kX21lcmxpbi5wbmdcbiAgICAgICAgLy8gQ2FwaXTDoW4gUGhpbGlwcGUgLT4gZ29vZF9wZXJjaXZhbC5wbmdcbiAgICAgICAgLy8gUGFydGlzYW5vIC0+IGdvb2Rfc29sZGllcl9YLnBuZyAocmFuZG9tKVxuICAgICAgICAvLyBGcmFuY290aXJhZG9yIC0+IGV2aWxfYXNzYXNzaW4ucG5nXG4gICAgICAgIC8vIEFnZW50ZSBEb2JsZSAtPiBldmlsX21vcmdhbmEucG5nXG4gICAgICAgIC8vIENvbWFuZGFudGUgU2NobWlkdCAtPiBldmlsX21vcmRyZWQucG5nXG4gICAgICAgIC8vIEluZmlsdHJhZG8gLT4gZXZpbF9vYmVyb24ucG5nXG4gICAgICAgIC8vIENvbGFib3JhY2lvbmlzdGEgLT4gZXZpbF9taW5pb25fWC5wbmdcblxuICAgICAgICBsZXQgcm9sZUltYWdlID0gJy9hc3NldHMvaW1hZ2VzL2NoYXJhY3RlcnMvZ29vZF9zb2xkaWVyXzEucG5nJzsgLy8gRGVmYXVsdFxuXG4gICAgICAgIGNvbnN0IHJvbGUgPSBjdXJyZW50UGxheWVyPy5yb2xlO1xuICAgICAgICBpZiAocm9sZSA9PT0gJ21hcmxlbmUnKSByb2xlSW1hZ2UgPSAnL2Fzc2V0cy9pbWFnZXMvY2hhcmFjdGVycy9nb29kX21lcmxpbi5wbmcnO1xuICAgICAgICBlbHNlIGlmIChyb2xlID09PSAnZnJhbmNvdGlyYWRvcicpIHJvbGVJbWFnZSA9ICcvYXNzZXRzL2ltYWdlcy9jaGFyYWN0ZXJzL2V2aWxfYXNzYXNzaW4ucG5nJztcbiAgICAgICAgZWxzZSBpZiAocm9sZSA9PT0gJ2NhcGl0YW5fcGhpbGlwcGUnKSByb2xlSW1hZ2UgPSAnL2Fzc2V0cy9pbWFnZXMvY2hhcmFjdGVycy9nb29kX3BlcmNpdmFsLnBuZyc7XG4gICAgICAgIGVsc2UgaWYgKHJvbGUgPT09ICdhZ2VudGVfZG9ibGUnKSByb2xlSW1hZ2UgPSAnL2Fzc2V0cy9pbWFnZXMvY2hhcmFjdGVycy9ldmlsX21vcmdhbmEucG5nJztcbiAgICAgICAgZWxzZSBpZiAocm9sZSA9PT0gJ2NvbWFuZGFudGVfc2NobWlkdCcpIHJvbGVJbWFnZSA9ICcvYXNzZXRzL2ltYWdlcy9jaGFyYWN0ZXJzL2V2aWxfbW9yZHJlZC5wbmcnO1xuICAgICAgICBlbHNlIGlmIChyb2xlID09PSAnaW5maWx0cmFkbycpIHJvbGVJbWFnZSA9ICcvYXNzZXRzL2ltYWdlcy9jaGFyYWN0ZXJzL2V2aWxfb2Jlcm9uLnBuZyc7XG4gICAgICAgIGVsc2UgaWYgKHJvbGUgPT09ICdwYXJ0aXNhbm8nKSB7XG4gICAgICAgICAgICAvLyBSYW5kb20gc29sZGllciAxLTVcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IChjdXJyZW50UGxheWVySWQuY2hhckNvZGVBdCgwKSAlIDUpICsgMTtcbiAgICAgICAgICAgIHJvbGVJbWFnZSA9IGAvYXNzZXRzL2ltYWdlcy9jaGFyYWN0ZXJzL2dvb2Rfc29sZGllcl8ke2lkeH0ucG5nYDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChyb2xlID09PSAnY29sYWJvcmFjaW9uaXN0YScpIHtcbiAgICAgICAgICAgIC8vIFJhbmRvbSBtaW5pb24gMS0zXG4gICAgICAgICAgICBjb25zdCBpZHggPSAoY3VycmVudFBsYXllcklkLmNoYXJDb2RlQXQoMCkgJSAzKSArIDE7XG4gICAgICAgICAgICByb2xlSW1hZ2UgPSBgL2Fzc2V0cy9pbWFnZXMvY2hhcmFjdGVycy9ldmlsX21pbmlvbl8ke2lkeH0ucG5nYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLXNjcmVlbiBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1ibGFjayBvdmVyZmxvdy1oaWRkZW4gdGV4dC13aGl0ZSBmb250LW1vbm9cIj5cbiAgICAgICAgICAgICAgICB7LyogRk9ORE8gKE1pc21vIHF1ZSBSb2xsIENhbGwpICovfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCB6LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPEltYWdlIHNyYz1cIi9hc3NldHMvaW1hZ2VzL3VpL2JnX3JvbGxfY2FsbC5wbmdcIiBhbHQ9XCJSZXNpc3RhbmNlIEhRXCIgZmlsbCBjbGFzc05hbWU9XCJvYmplY3QtY292ZXJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgYmctYmxhY2svNzBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ6LTEwIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC04XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCB1cHBlcmNhc2UgdHJhY2tpbmctWzAuMmVtXSB0ZXh0LWdyYXktMzAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBUdSBJZGVudGlkYWQgU2VjcmV0YVxuICAgICAgICAgICAgICAgICAgICA8L2gyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTQwMCBtYi00IGFuaW1hdGUtcHVsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2xpemEgaGFjaWEgYXJyaWJhIHBhcmEgcmV2ZWxhclxuICAgICAgICAgICAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSB3LTY0IGgtOTYgcGVyc3BlY3RpdmUtMTAwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIENhcnRhIFJldmVsYWRhIChGb25kbykgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgdy1mdWxsIGgtZnVsbCByb3VuZGVkLXhsIG92ZXJmbG93LWhpZGRlbiBzaGFkb3ctMnhsIGJvcmRlci00IGJvcmRlci15ZWxsb3ctNjAwIGJnLWdyYXktOTAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17cm9sZUltYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY292ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBib3R0b20tMCB3LWZ1bGwgYmctYmxhY2svODAgdGV4dC1jZW50ZXIgcHktMiBmb250LWJvbGQgdGV4dC15ZWxsb3ctNTAwIHVwcGVyY2FzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cm9sZT8ucmVwbGFjZSgnXycsICcgJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIFJldmVyc28gZGUgQ2FydGEgKERyYWdnYWJsZSkgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWc9XCJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnQ29uc3RyYWludHM9e3sgdG9wOiAtMzAwLCBib3R0b206IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnRWxhc3RpYz17MC41fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdTbmFwVG9PcmlnaW49e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyBzY2FsZTogMS4wMiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlVGFwPXt7IHNjYWxlOiAwLjk4LCBjdXJzb3I6ICdncmFiYmluZycgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHctZnVsbCBoLWZ1bGwgcm91bmRlZC14bCBvdmVyZmxvdy1oaWRkZW4gc2hhZG93LTJ4bCB6LTIwIGN1cnNvci1ncmFiIGFjdGl2ZTpjdXJzb3ItZ3JhYmJpbmcgaG92ZXI6cmluZy0yIGhvdmVyOnJpbmctd2hpdGUvNTAgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvYXNzZXRzL2ltYWdlcy9jaGFyYWN0ZXJzL2NhcmRfYmFjay5wbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJDYXJkIEJhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm9iamVjdC1jb3ZlciBwb2ludGVyLWV2ZW50cy1ub25lXCIgLy8gSW1wb3J0YW50ZTogcG9pbnRlci1ldmVudHMtbm9uZSBlbiBsYSBpbWFnZW4gcGFyYSBxdWUgbm8gY2FwdHVyZSBlbCBkcmFnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRkFTRSBST0xMIENBTExcbiAgICBpZiAoZ2FtZVN0YXRlLnBoYXNlID09PSAncm9sbF9jYWxsJyBhcyBhbnkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgdy1mdWxsIGgtc2NyZWVuIGZsZXggZmxleC1jb2wgYmctYmxhY2sgb3ZlcmZsb3ctaGlkZGVuIHRleHQtd2hpdGUgZm9udC1tb25vXCI+XG5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCB6LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPEltYWdlIHNyYz1cIi9hc3NldHMvaW1hZ2VzL3VpL2JnX3JvbGxfY2FsbC5wbmdcIiBhbHQ9XCJSZXNpc3RhbmNlIEhRXCIgZmlsbCBjbGFzc05hbWU9XCJvYmplY3QtY292ZXJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgYmctYmxhY2svNzBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgey8qIC0tLSAxLiBTRUNDScOTTiBTVVBFUklPUjogVMONVFVMTyAoMjAtMjUlIGFsdHVyYSkgLS0tICovfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgei0xMCB3LWZ1bGwgaC1bMjB2aF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtNCBib3JkZXItYiBib3JkZXItZ3JheS02MDAvNTAgYmctYmxhY2svMjAgYmFja2Ryb3AtYmx1ci1zbVwiPlxuICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC0yeGwgbWQ6dGV4dC0zeGwgbGc6dGV4dC00eGwgdGV4dC1jZW50ZXIgdXBwZXJjYXNlIHRyYWNraW5nLVswLjJlbV0gdGV4dC1ncmF5LTMwMCBkcm9wLXNoYWRvdy1sZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgUGFzYW5kbyBMaXN0YS4uLlxuICAgICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgey8qIC0tLSAyLiBTRUNDScOTTiBJTkZFUklPUjogSlVHQURPUkVTIChSZXN0byBkZSBhbHR1cmEpIC0tLSAqL31cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHotMTAgdy1mdWxsIGZsZXgtMSBvdmVyZmxvdy15LWF1dG8gcC00IGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIHtpc0hvc3QgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGF1ZGlvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2Fzc2V0cy9hdWRpby9Sb25kYXMubXAzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvUGxheVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRW5kZWQ9eygpID0+IGFjdGlvbnMuZmluaXNoUm9sbENhbGwoKX0gLy8gSG9zdCBhdmFuemEgY3VhbmRvIGFjYWJhIGF1ZGlvXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIG1heC13LTZ4bCBncmlkIGdyaWQtY29scy0zIG1kOmdyaWQtY29scy00IGxnOmdyaWQtY29scy01IGdhcC0zIG1kOmdhcC04IGp1c3RpZnktaXRlbXMtY2VudGVyIGNvbnRlbnQtY2VudGVyIHB5LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtnYW1lU3RhdGUucGxheWVycy5tYXAoKHAsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtwLmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCBzY2FsZTogMC44IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHNjYWxlOiAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGRlbGF5OiBpICogMC4zIH19IC8vIEFwYXJlY2VuIHVubyBhIHVub1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTEgbWQ6Z2FwLTMgdy1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIEF2YXRhciBSZXNwb25zaXZlICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTIwIGgtMjAgbWQ6dy0zMiBtZDpoLTMyIHJvdW5kZWQtZnVsbCBib3JkZXItMiBtZDpib3JkZXItNCBib3JkZXItZ3JheS00MDAgb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlIHNoYWRvdy0yeGwgYmctYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtgL2Fzc2V0cy9pbWFnZXMvY2hhcmFjdGVycy8ke3AuYXZhdGFyfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkF2YXRhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib2JqZWN0LWNvdmVyIGdyYXlzY2FsZSBjb250cmFzdC0xMjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBOb21icmUgUmVzcG9uc2l2ZSAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctYmxhY2svODAgcHgtMiBweS0wLjUgbWQ6cHgtNCBtZDpweS0xIHJvdW5kZWQgYm9yZGVyIGJvcmRlci13aGl0ZS8yMCB0ZXh0LXhzIG1kOnRleHQteGwgZm9udC1ib2xkIHRleHQteWVsbG93LTUwMCB1cHBlcmNhc2UgdGV4dC1jZW50ZXIgdy1mdWxsIHRydW5jYXRlIG1heC13LVsxMjBweF0gbWQ6bWF4LXctbm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLXNjcmVlbiBmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgey8qIEJvdMOzbiBkZSBTYWxpciBkZSBsYSBQYXJ0aWRhIC0gTm8gbW9zdHJhciBlbiBwYW50YWxsYXMgZGUgdmljdG9yaWEgKi99XG4gICAgICAgICAgICB7Z2FtZVN0YXRlLnBoYXNlICE9PSBHYW1lUGhhc2UuQUxMSUVEX1dJTiAmJiBnYW1lU3RhdGUucGhhc2UgIT09IEdhbWVQaGFzZS5OQVpJU19XSU4gJiYgKFxuICAgICAgICAgICAgICAgIDxFeGl0R2FtZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBvbkV4aXQ9eygpID0+IGFjdGlvbnMubGVhdmVHYW1lKCl9XG4gICAgICAgICAgICAgICAgICAgIHBsYXllck5hbWU9e2Z1bGxQbGF5ZXJOYW1lfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7LyogRm9uZG8gKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgei0wIG9wYWNpdHktNDBcIj5cbiAgICAgICAgICAgICAgICA8SW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgc3JjPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhbWVTdGF0ZS5waGFzZSA9PT0gR2FtZVBoYXNlLkFMTElFRF9XSU5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiL2Fzc2V0cy9pbWFnZXMvdG9rZW5zL21pc3Npb25fc3VjY2Vzcy5wbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZ2FtZVN0YXRlLnBoYXNlID09PSBHYW1lUGhhc2UuTkFaSVNfV0lOXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCIvYXNzZXRzL2ltYWdlcy90b2tlbnMvbWlzc2lvbl9mYWlsLnBuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCIvYXNzZXRzL2ltYWdlcy91aS9iZ19nYW1lLnBuZ1wiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiR2FtZSBCYWNrZ3JvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY292ZXJcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzYwXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogQ29udGVuZWRvciBwcmluY2lwYWwgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHotMTAgdy1mdWxsIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHBiLTMyXCI+XG5cbiAgICAgICAgICAgICAgICB7LyogLS0tIE1BUEEgVMOBQ1RJQ08gKFRBQkxFUk8pIE8gQ0FSVEEgREUgTUlTScOTTiBPIEFTU0FTU0lOX1BIQVNFIC0tLSAqL31cbiAgICAgICAgICAgICAgICB7LyogTm8gbW9zdHJhciBlbCB0YWJsZXJvIGVuIGZhc2VzIGRlIHZpY3RvcmlhICovfVxuICAgICAgICAgICAgICAgIHtnYW1lU3RhdGUucGhhc2UgIT09IEdhbWVQaGFzZS5BTExJRURfV0lOICYmIGdhbWVTdGF0ZS5waGFzZSAhPT0gR2FtZVBoYXNlLk5BWklTX1dJTiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgdy1mdWxsIG1heC13LTV4bCBhc3BlY3QtdmlkZW8gbXQtNCBzaGFkb3ctMnhsIGJvcmRlci00IGJvcmRlci1ncmF5LTgwMCByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlbiBiZy1bIzJhMmEyYV1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtnYW1lU3RhdGUucGhhc2UgPT09IEdhbWVQaGFzZS5BU1NBU1NJTl9QSEFTRSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTUFHRU4gTEFTVFNIT1QgUEFSQSBBU1NBU1NJTl9QSEFTRSAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2Fzc2V0cy9pbWFnZXMvdG9rZW5zL2xhc3RzaG90LmpwZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJMYXN0IFNob3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib2JqZWN0LWNvdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBPdmVybGF5IG9zY3VybyBwYXJhIG1lam9yYXIgbGVnaWJpbGlkYWQgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBiZy1ibGFjay80MFwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFTDrXR1bG8gc29icmUgbGEgaW1hZ2VuIC0gY2VudHJhZG8gdmVydGljYWxtZW50ZSAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMS8zIGxlZnQtMCByaWdodC0wIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHotMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTV4bCBmb250LWJvbGQgdGV4dC1yZWQtNjAwIG1iLTIgZHJvcC1zaGFkb3ctWzBfNHB4XzhweF9yZ2JhKDAsMCwwLDAuOSldXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgwqHDmkxUSU1BIE9QT1JUVU5JREFEIVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50UGxheWVyPy5yb2xlID09PSAnZnJhbmNvdGlyYWRvcicgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14bCB0ZXh0LXdoaXRlIGRyb3Atc2hhZG93LVswXzJweF80cHhfcmdiYSgwLDAsMCwwLjkpXSBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbmNvdGlyYWRvciwgZWxpZ2UgYSBxdWnDqW4gY3JlZXMgcXVlIGVzIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteWVsbG93LTQwMFwiPk1BUkxFTkU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhsIHRleHQtZ3JheS0zMDAgZHJvcC1zaGFkb3ctWzBfMnB4XzRweF9yZ2JhKDAsMCwwLDAuOSldIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbCBGcmFuY290aXJhZG9yIGVzdMOhIGRlY2lkaWVuZG8uLi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBzaG93Qm9hcmQgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFRBQkxFUk8gQ09OIFRPS0VOUyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvYXNzZXRzL2ltYWdlcy91aS9ib2FyZF9tYXAuanBnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlRhY3RpY2FsIE1hcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFRPS0VOUyBTT0JSRSBFTCBNQVBBICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWlzc2lvbkNvb3Jkcy5tYXAoKGNvb3JkLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGdhbWVTdGF0ZS5xdWVzdFJlc3VsdHNbaWR4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQ3VycmVudCA9IGdhbWVTdGF0ZS5jdXJyZW50Um91bmQgPT09IGlkeCArIDE7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2lkeH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdy1bMTAlXSBhc3BlY3Qtc3F1YXJlIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGNvb3JkLmxlZnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGNvb3JkLnRvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgtNTAlLCAtNTAlKSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBNYXJjYWRvciBkZSBSb25kYSBBY3R1YWwgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0N1cnJlbnQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRJZD1cInJvdW5kLW1hcmtlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCB6LTEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IHNjYWxlOiAxLjUsIG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IHNjYWxlOiAxLCBvcGFjaXR5OiAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyB0eXBlOiBcInNwcmluZ1wiLCBzdGlmZm5lc3M6IDMwMCwgZGFtcGluZzogMjAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2Fzc2V0cy9pbWFnZXMvdG9rZW5zL21hcmtlcl9yb3VuZC5wbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJDdXJyZW50IFJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpbiBkcm9wLXNoYWRvdy1sZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogUmVzdWx0YWRvIGRlIE1pc2nDs24gKMOJeGl0by9GcmFjYXNvKSAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Jlc3VsdCA9PT0gdHJ1ZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgc2NhbGU6IDAgfX0gYW5pbWF0ZT17eyBzY2FsZTogMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgei0yMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LVs4MCVdIGgtWzgwJV0gcmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlIHNyYz1cIi9hc3NldHMvaW1hZ2VzL3Rva2Vucy9tYXJrZXJfc2NvcmVfYmx1ZS5wbmdcIiBhbHQ9XCJTdWNjZXNzXCIgZmlsbCBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpbiBkcm9wLXNoYWRvdy1sZ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXN1bHQgPT09IGZhbHNlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBzY2FsZTogMCB9fSBhbmltYXRlPXt7IHNjYWxlOiAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCB6LTIwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctWzgwJV0gaC1bODAlXSByZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2Ugc3JjPVwiL2Fzc2V0cy9pbWFnZXMvdG9rZW5zL21hcmtlcl9zY29yZV9yZWQucG5nXCIgYWx0PVwiRmFpbFwiIGZpbGwgY2xhc3NOYW1lPVwib2JqZWN0LWNvbnRhaW4gZHJvcC1zaGFkb3ctbGdcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENBUlRBIERFIE1JU0nDk04gQ09OIFTDjVRVTE8gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17YC9hc3NldHMvaW1hZ2VzL21pc3Npb25zL21pc3Npb24ke2dhbWVTdGF0ZS5jdXJyZW50Um91bmR9LnBuZ2B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9e2BNaXNzaW9uICR7Z2FtZVN0YXRlLmN1cnJlbnRSb3VuZH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib2JqZWN0LWNvbnRhaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogVMOtdHVsbyB5IHN1YnTDrXR1bG8gc29icmUgbGEgY2FydGEgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTQgbGVmdC0wIHJpZ2h0LTAgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgei0xMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtNHhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIGRyb3Atc2hhZG93LVswXzRweF84cHhfcmdiYSgwLDAsMCwwLjgpXSBtYi0yIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2nDs24ge2dhbWVTdGF0ZS5jdXJyZW50Um91bmR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtc2VtaWJvbGQgdGV4dC15ZWxsb3ctNDAwIGRyb3Atc2hhZG93LVswXzRweF84cHhfcmdiYSgwLDAsMCwwLjgpXSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttaXNzaW9uTmFtZXNbZ2FtZVN0YXRlLmN1cnJlbnRSb3VuZCAtIDFdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgey8qIC0tLSDDgVJFQSBERSBKVUVHTyAoQ0FSVEFTIFkgQUNDSU9ORVMpIC0tLSAqL31cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSB3LWZ1bGwgbWF4LXctNnhsIHJlbGF0aXZlIG10LTQgcHgtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8QW5pbWF0ZVByZXNlbmNlIG1vZGU9XCJ3YWl0XCI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBGQVNFOiBWT1RBQ0nDk04gREUgTMONREVSICovfVxuICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5waGFzZSA9PT0gJ3ZvdGVfbGVhZGVyJyBhcyBhbnkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1cInZvdGUtbGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCBzY2FsZTogMC45IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgc2NhbGU6IDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ibGFjay84MCBwLTQgcm91bmRlZCB0ZXh0LXdoaXRlIHRleHQtY2VudGVyIGJvcmRlciBib3JkZXIteWVsbG93LTUwMC81MCByZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1tb25vIG1iLTIgdGV4dC15ZWxsb3ctNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maXJtYXIgTMOtZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMK/QWNlcHRhcyBhIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteWVsbG93LTQwMFwiPntnYW1lU3RhdGUucGxheWVycy5maW5kKHAgPT4gcC5pZCA9PT0gZ2FtZVN0YXRlLmN1cnJlbnRMZWFkZXJJZCk/Lm5hbWV9PC9zcGFuPiBjb21vIEzDrWRlcj9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogVGltZXIgdmlzdWFsIChzb2xvIG11ZXN0cmEgZWwgdGllbXBvLCBlbCBzZXJ2aWRvciBjb250cm9sYSBlbCB0aW1lb3V0KSAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHshZ2FtZVN0YXRlLmxlYWRlclZvdGVzPy5bY3VycmVudFBsYXllcklkXSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZvdGluZ1RpbWVyIGtleT17Z2FtZVN0YXRlLmN1cnJlbnRMZWFkZXJJZH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtnYW1lU3RhdGUubGVhZGVyVm90ZXM/LltjdXJyZW50UGxheWVySWRdID09PSB1bmRlZmluZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLThcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IGFjdGlvbnMudm90ZUxlYWRlcih0cnVlKX0gY2xhc3NOYW1lPVwiZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTMyIGgtMzIgYmctd2hpdGUgcm91bmRlZC1sZyBzaGFkb3cteGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYm9yZGVyLTQgYm9yZGVyLXRyYW5zcGFyZW50IGdyb3VwLWhvdmVyOmJvcmRlci1ncmVlbi01MDAgdHJhbnNpdGlvbi1hbGwgdHJhbnNmb3JtIGdyb3VwLWhvdmVyOi10cmFuc2xhdGUteS00IHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlIHNyYz1cIi9hc3NldHMvaW1hZ2VzL3Rva2Vucy9hY2NlcHRfbGVhZGVyLnBuZ1wiIGFsdD1cIkFjY2VwdCBMZWFkZXJcIiBmaWxsIGNsYXNzTmFtZT1cIm9iamVjdC1jb250YWluXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtY2VudGVyIHRleHQtd2hpdGUgbXQtMiBmb250LWJvbGQgYmctZ3JlZW4tNjAwIHB4LTIgcm91bmRlZCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0XCI+QUNFUFRBUjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IGFjdGlvbnMudm90ZUxlYWRlcihmYWxzZSl9IGNsYXNzTmFtZT1cImdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0zMiBoLTMyIGJnLXdoaXRlIHJvdW5kZWQtbGcgc2hhZG93LXhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlci00IGJvcmRlci10cmFuc3BhcmVudCBncm91cC1ob3Zlcjpib3JkZXItcmVkLTUwMCB0cmFuc2l0aW9uLWFsbCB0cmFuc2Zvcm0gZ3JvdXAtaG92ZXI6LXRyYW5zbGF0ZS15LTQgcmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2Ugc3JjPVwiL2Fzc2V0cy9pbWFnZXMvdG9rZW5zL2RlbnlfbGVhZGVyLnBuZ1wiIGFsdD1cIkRlbnkgTGVhZGVyXCIgZmlsbCBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJibG9jayB0ZXh0LWNlbnRlciB0ZXh0LXdoaXRlIG10LTIgZm9udC1ib2xkIGJnLXJlZC02MDAgcHgtMiByb3VuZGVkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3RcIj5SRUNIQVpBUjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXdoaXRlIHRleHQteGwgZm9udC1tb25vIGFuaW1hdGUtcHVsc2UgYmctYmxhY2svNTAgcHgtNiBweS0zIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLXdoaXRlLzIwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVk9UTyBSRUdJU1RSQURPLiBFU1BFUkFORE8gQUwgUkVTVE8uLi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBGQVNFOiBDT05TVFJVQ0NJw5NOIERFIEVRVUlQTyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgIHtnYW1lU3RhdGUucGhhc2UgPT09IEdhbWVQaGFzZS5URUFNX0JVSUxESU5HICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9XCJ0ZWFtLWJ1aWxkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCB5OiAyMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHk6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdD17eyBvcGFjaXR5OiAwLCB5OiAtMjAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTYgdy1mdWxsIG1heC13LTR4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogSW5mb3JtYWNpw7NuIGRlbCBsw61kZXIgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBJbmZvcm1hY2nDs24gZGVsIGzDrWRlciAtIFNPTE8gcGFyYSBOTyBsw61kZXJlcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyFpc0xlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLXllbGxvdy02MDAvOTAgdGV4dC1ibGFjayBwLTIgcm91bmRlZC1sZyBzaGFkb3cteGwgYm9yZGVyLTQgYm9yZGVyLXllbGxvdy00MDAgdy1mdWxsIHRleHQtY2VudGVyIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIGZvbnQtYm9sZFwiPkzDrWRlciBBY3R1YWw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2FtZVN0YXRlLnBsYXllcnMuZmluZChwID0+IHAuaWQgPT09IGdhbWVTdGF0ZS5jdXJyZW50TGVhZGVySWQpPy5uYW1lIHx8ICdEZXNjb25vY2lkbyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogTWVuc2FqZSBwYXJhIGVsIGzDrWRlciBvIHBhcmEgbG9zIGRlbcOhcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIE1lbnNhamUgcGFyYSBlbCBsw61kZXIgbyBwYXJhIGxvcyBkZW3DoXMgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctcGFwZXItYmcgdGV4dC1ibGFjayBwLTQgbWQ6cC02IHJvdW5kZWQgc2hhZG93LTJ4bCB3LWZ1bGwgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhsIG1kOnRleHQtMnhsIGZvbnQtYm9sZCBmb250LW1vbm8gbWItMiB1cHBlcmNhc2UgdGV4dC1yZXNpc3RhbmNlLWJsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNMZWFkZXIgPyAn8J+OryBUVSBUVVJOTzogRUxJR0UgVFUgRVFVSVBPJyA6ICfij7MgRVNQRVJBTkRPIEFMIEzDjURFUi4uLid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzTGVhZGVyICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtYi00IGZvbnQtc2VyaWYgaXRhbGljIHRleHQtZ3JheS03MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2UgbmVjZXNpdGFuIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtYm9sZCB0ZXh0LXJlZC03MDAgdGV4dC14bFwiPntjdXJyZW50UXVlc3RTaXplfSBhZ2VudGVzPC9zcGFuPiBwYXJhIGxhIG1pc2nDs24gI3tnYW1lU3RhdGUuY3VycmVudFJvdW5kfS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogQ29udGFkb3IgZGUgc2VsZWNjaW9uYWRvcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00IHRleHQtbGcgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjY2lvbmFkb3M6IDxzcGFuIGNsYXNzTmFtZT17c2VsZWN0ZWRUZWFtLmxlbmd0aCA9PT0gY3VycmVudFF1ZXN0U2l6ZSA/ICd0ZXh0LWdyZWVuLTYwMCcgOiAndGV4dC1vcmFuZ2UtNjAwJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2VsZWN0ZWRUZWFtLmxlbmd0aH0gLyB7Y3VycmVudFF1ZXN0U2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzTGVhZGVyICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGFjdGlvbnMucHJvcG9zZVRlYW0oc2VsZWN0ZWRUZWFtKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3NlbGVjdGVkVGVhbS5sZW5ndGggIT09IGN1cnJlbnRRdWVzdFNpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBiZy1yZXNpc3RhbmNlLWJsdWUgdGV4dC13aGl0ZSBmb250LWJvbGQgcHktMyBweC00IHJvdW5kZWQgaG92ZXI6YmctYmx1ZS05MDAgdHJhbnNpdGlvbi1jb2xvcnMgZGlzYWJsZWQ6b3BhY2l0eS01MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCBzaGFkb3ctbGdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3NlbGVjdGVkVGVhbS5sZW5ndGggPT09IGN1cnJlbnRRdWVzdFNpemUgPyAn4pyTIENPTkZJUk1BUiBFUVVJUE8nIDogYFNlbGVjY2lvbmEgJHtjdXJyZW50UXVlc3RTaXplIC0gc2VsZWN0ZWRUZWFtLmxlbmd0aH0gbcOhc2B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IWlzTGVhZGVyICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgYW5pbWF0ZS1wdWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbCBsw61kZXIgZXN0w6Egc2VsZWNjaW9uYW5kbyBlbCBlcXVpcG8gZGUgbWlzacOzbi4uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIEZBU0U6IFZPVEFDScOTTiBERSBFUVVJUE8gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z2FtZVN0YXRlLnBoYXNlID09PSBHYW1lUGhhc2UuVk9USU5HX1RFQU0gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1cInZvdGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgc2NhbGU6IDAuOCwgb3BhY2l0eTogMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IHNjYWxlOiAxLCBvcGFjaXR5OiAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC02XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctYmxhY2svODAgcC00IHJvdW5kZWQgdGV4dC13aGl0ZSB0ZXh0LWNlbnRlciBib3JkZXIgYm9yZGVyLXdoaXRlLzIwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LW1vbm8gbWItMiB0ZXh0LXllbGxvdy01MDBcIj5QUk9QVUVTVEEgREUgTUlTScOTTjwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2FtZVN0YXRlLnByb3Bvc2VkVGVhbS5tYXAoaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwID0gZ2FtZVN0YXRlLnBsYXllcnMuZmluZChwbCA9PiBwbC5pZCA9PT0gaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2lkfSBjbGFzc05hbWU9XCJiZy13aGl0ZS8xMCBweC0zIHB5LTEgcm91bmRlZCB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3A/Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2FtZVN0YXRlLnRlYW1Wb3Rlc1tjdXJyZW50UGxheWVySWRdID09PSB1bmRlZmluZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLThcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IGFjdGlvbnMudm90ZVRlYW0odHJ1ZSl9IGNsYXNzTmFtZT1cImdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0zMiBoLTQ4IGJnLXdoaXRlIHJvdW5kZWQtbGcgc2hhZG93LXhsIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlci0yIGJvcmRlci1ibHVlLTUwMCBncm91cC1ob3Zlcjpib3JkZXItYmx1ZS00MDAgZ3JvdXAtaG92ZXI6c2hhZG93LWJsdWUtNTAwLzUwIHRyYW5zaXRpb24tYWxsIHRyYW5zZm9ybSBncm91cC1ob3ZlcjotdHJhbnNsYXRlLXktNCByZWxhdGl2ZSBvdmVyZmxvdy1oaWRkZW4gcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWJsdWUtNjAwIGZvbnQtYm9sZCB0ZXh0LXNtIHVwcGVyY2FzZSB0cmFja2luZy13aWRlciBtYi0xIHotMTBcIj7DiXhpdG88L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2Ugc3JjPVwiL2Fzc2V0cy9pbWFnZXMvdG9rZW5zL3ZvdGVfYXBwcm92ZS5wbmdcIiBhbHQ9XCJBcHByb3ZlXCIgZmlsbCBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBhY3Rpb25zLnZvdGVUZWFtKGZhbHNlKX0gY2xhc3NOYW1lPVwiZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTMyIGgtNDggYmctd2hpdGUgcm91bmRlZC1sZyBzaGFkb3cteGwgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYm9yZGVyLTIgYm9yZGVyLXJlZC01MDAgZ3JvdXAtaG92ZXI6Ym9yZGVyLXJlZC00MDAgZ3JvdXAtaG92ZXI6c2hhZG93LXJlZC01MDAvNTAgdHJhbnNpdGlvbi1hbGwgdHJhbnNmb3JtIGdyb3VwLWhvdmVyOi10cmFuc2xhdGUteS00IHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlbiBwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtcmVkLTYwMCBmb250LWJvbGQgdGV4dC1zbSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIgbWItMSB6LTEwXCI+RnJhY2Fzbzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgdy1mdWxsIGgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZSBzcmM9XCIvYXNzZXRzL2ltYWdlcy90b2tlbnMvdm90ZV9yZWplY3QucG5nXCIgYWx0PVwiUmVqZWN0XCIgZmlsbCBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC13aGl0ZSB0ZXh0LXhsIGZvbnQtbW9ubyBhbmltYXRlLXB1bHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVk9UTyBSRUdJU1RSQURPLiBFU1BFUkFORE8gQUwgUkVTVE8uLi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBGQVNFOiBNSVNJw5NOICovfVxuICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5waGFzZSA9PT0gR2FtZVBoYXNlLk1JU1NJT04gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1cIm1pc3Npb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIGZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1jZW50ZXIgYmctYmxhY2svOTAgei01MCBwdC0yMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtnYW1lU3RhdGUucHJvcG9zZWRUZWFtLmluY2x1ZGVzKGN1cnJlbnRQbGF5ZXJJZCkgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC00IHctZnVsbCBtYXgtdy02eGwgcHgtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBtZDp0ZXh0LTV4bCBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0yIGRyb3Atc2hhZG93LTJ4bCB0ZXh0LWNlbnRlciB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIgYW5pbWF0ZS1wdWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDwn46vIFJFQUxJWkEgTEEgTUlTScOTTlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC13aGl0ZSB0ZXh0LXhsIG1iLTIgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxpZ2Ugc2kgcXVpZXJlcyB1biDDqXhpdG8gbyB1biBmcmFjYXNvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIENhcnRhcyBlbiBvcmRlbiBhbGVhdG9yaW8gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0xMiBmbGV4LXdyYXAganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NhcmRPcmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIENhcnRhIGRlIMOJeGl0byBwcmltZXJvICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlTWlzc2lvblZvdGUodHJ1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGdyb3VwIHRyYW5zaXRpb24tb3BhY2l0eSAke21pc3Npb25Wb3RlID09PSB0cnVlID8gJ29wYWNpdHktMTAwJyA6ICdvcGFjaXR5LTUwJ31gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bWlzc2lvblZvdGUgIT09IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy0zMiBoLTQ4IGJnLWdyYWRpZW50LXRvLWJyIGZyb20tYmx1ZS02MDAgdG8tYmx1ZS05MDAgcm91bmRlZC0yeGwgc2hhZG93LTJ4bCBib3JkZXItNCBib3JkZXItYmx1ZS00MDAgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcC00IHRyYW5zZm9ybSB0cmFuc2l0aW9uLWFsbCBob3ZlcjpzY2FsZS0xMTAgaG92ZXI6cm90YXRlLTMgaG92ZXI6c2hhZG93LWJsdWUtNTAwLzUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlSG92ZXI9e3sgc2NhbGU6IDEuMSwgcm90YXRlOiAzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZVRhcD17eyBzY2FsZTogMC45NSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2Ugc3JjPVwiL2Fzc2V0cy9pbWFnZXMvdG9rZW5zL3ZvdGVfYXBwcm92ZS5wbmdcIiBhbHQ9XCJTdWNjZXNzXCIgd2lkdGg9ezgwfSBoZWlnaHQ9ezgwfSBjbGFzc05hbWU9XCJkcm9wLXNoYWRvdy0yeGxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibXQtMiB0ZXh0LXdoaXRlIGZvbnQtYm9sZCB0ZXh0LWxnIHRyYWNraW5nLXdpZGVzdCB1cHBlcmNhc2VcIj7DiVhJVE88L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBDYXJ0YSBkZSBTYWJvdGFqZSBzZWd1bmRvIChzb2xvIHBhcmEgYWxlbWFuZXMpICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50UGxheWVyPy5mYWN0aW9uID09PSBGYWN0aW9uLkFMRU1BTkVTICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlTWlzc2lvblZvdGUoZmFsc2UpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZ3JvdXAgdHJhbnNpdGlvbi1vcGFjaXR5ICR7bWlzc2lvblZvdGUgPT09IGZhbHNlID8gJ29wYWNpdHktMTAwJyA6ICdvcGFjaXR5LTUwJ31gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e21pc3Npb25Wb3RlICE9PSBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctMzIgaC00OCBiZy1ncmFkaWVudC10by1iciBmcm9tLXJlZC02MDAgdG8tcmVkLTkwMCByb3VuZGVkLTJ4bCBzaGFkb3ctMnhsIGJvcmRlci00IGJvcmRlci1yZWQtNDAwIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtNCB0cmFuc2Zvcm0gdHJhbnNpdGlvbi1hbGwgaG92ZXI6c2NhbGUtMTEwIGhvdmVyOi1yb3RhdGUtMyBob3ZlcjpzaGFkb3ctcmVkLTUwMC81MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyBzY2FsZTogMS4xLCByb3RhdGU6IC0zIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGVUYXA9e3sgc2NhbGU6IDAuOTUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2Ugc3JjPVwiL2Fzc2V0cy9pbWFnZXMvdG9rZW5zL3ZvdGVfcmVqZWN0LnBuZ1wiIGFsdD1cIkZhaWxcIiB3aWR0aD17ODB9IGhlaWdodD17ODB9IGNsYXNzTmFtZT1cImRyb3Atc2hhZG93LTJ4bFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibXQtMiB0ZXh0LXdoaXRlIGZvbnQtYm9sZCB0ZXh0LWxnIHRyYWNraW5nLXdpZGVzdCB1cHBlcmNhc2VcIj5TQUJPVEFKRTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogQ2FydGEgZGUgU2Fib3RhamUgcHJpbWVybyAoc29sbyBwYXJhIGFsZW1hbmVzKSAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y3VycmVudFBsYXllcj8uZmFjdGlvbiA9PT0gRmFjdGlvbi5BTEVNQU5FUyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZU1pc3Npb25Wb3RlKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGdyb3VwIHRyYW5zaXRpb24tb3BhY2l0eSAke21pc3Npb25Wb3RlID09PSBmYWxzZSA/ICdvcGFjaXR5LTEwMCcgOiAnb3BhY2l0eS01MCd9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttaXNzaW9uVm90ZSAhPT0gbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LTMyIGgtNDggYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1yZWQtNjAwIHRvLXJlZC05MDAgcm91bmRlZC0yeGwgc2hhZG93LTJ4bCBib3JkZXItNCBib3JkZXItcmVkLTQwMCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLTQgdHJhbnNmb3JtIHRyYW5zaXRpb24tYWxsIGhvdmVyOnNjYWxlLTExMCBob3Zlcjotcm90YXRlLTMgaG92ZXI6c2hhZG93LXJlZC01MDAvNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlSG92ZXI9e3sgc2NhbGU6IDEuMSwgcm90YXRlOiAtMyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlVGFwPXt7IHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlIHNyYz1cIi9hc3NldHMvaW1hZ2VzL3Rva2Vucy92b3RlX3JlamVjdC5wbmdcIiBhbHQ9XCJGYWlsXCIgd2lkdGg9ezgwfSBoZWlnaHQ9ezgwfSBjbGFzc05hbWU9XCJkcm9wLXNoYWRvdy0yeGxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm10LTIgdGV4dC13aGl0ZSBmb250LWJvbGQgdGV4dC1sZyB0cmFja2luZy13aWRlc3QgdXBwZXJjYXNlXCI+U0FCT1RBSkU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogQ2FydGEgZGUgw4l4aXRvIHNlZ3VuZG8gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVNaXNzaW9uVm90ZSh0cnVlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZ3JvdXAgdHJhbnNpdGlvbi1vcGFjaXR5ICR7bWlzc2lvblZvdGUgPT09IHRydWUgPyAnb3BhY2l0eS0xMDAnIDogJ29wYWNpdHktNTAnfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttaXNzaW9uVm90ZSAhPT0gbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LTMyIGgtNDggYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1ibHVlLTYwMCB0by1ibHVlLTkwMCByb3VuZGVkLTJ4bCBzaGFkb3ctMnhsIGJvcmRlci00IGJvcmRlci1ibHVlLTQwMCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLTQgdHJhbnNmb3JtIHRyYW5zaXRpb24tYWxsIGhvdmVyOnNjYWxlLTExMCBob3Zlcjpyb3RhdGUtMyBob3ZlcjpzaGFkb3ctYmx1ZS01MDAvNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyBzY2FsZTogMS4xLCByb3RhdGU6IDMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlVGFwPXt7IHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZSBzcmM9XCIvYXNzZXRzL2ltYWdlcy90b2tlbnMvdm90ZV9hcHByb3ZlLnBuZ1wiIGFsdD1cIlN1Y2Nlc3NcIiB3aWR0aD17ODB9IGhlaWdodD17ODB9IGNsYXNzTmFtZT1cImRyb3Atc2hhZG93LTJ4bFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtdC0yIHRleHQtd2hpdGUgZm9udC1ib2xkIHRleHQtbGcgdHJhY2tpbmctd2lkZXN0IHVwcGVyY2FzZVwiPsOJWElUTzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC13aGl0ZSB0ZXh0LTN4bCBmb250LW1vbm8gYmctYmxhY2svNzAgcC04IHJvdW5kZWQteGwgYm9yZGVyLTIgYm9yZGVyLXdoaXRlLzIwIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhbmltYXRlLXB1bHNlIG1iLTQgdGV4dC01eGxcIj7ij7M8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYSBtaXNpw7NuIGVzdMOhIGVuIGN1cnNvLi4uPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1sZyB0ZXh0LWdyYXktNDAwIG10LTIgYmxvY2tcIj5Fc3BlcmFuZG8gYSBxdWUgZWwgZXF1aXBvIGNvbXBsZXRlIHN1IHZvdGFjacOzbi48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB7LyogRkFTRTogUkVWRUxBQ0nDk04gREUgQ0FSVEFTICovfVxuICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5waGFzZSA9PT0gJ21pc3Npb25fcmV2ZWFsJyBhcyBhbnkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNaXNzaW9uUmV2ZWFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvdGVzPXtnYW1lU3RhdGUucmV2ZWFsZWRWb3RlcyB8fCBbXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25GaW5pc2hlZD17KCkgPT4gYWN0aW9ucy5maW5pc2hNaXNzaW9uUmV2ZWFsKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBGQVNFOiBSRVNVTFRBRE8gREUgTUlTScOTTiAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgIHtnYW1lU3RhdGUucGhhc2UgPT09ICdtaXNzaW9uX3Jlc3VsdCcgYXMgYW55ICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWlzc2lvblJlc3VsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYW1lU3RhdGU9e2dhbWVTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNIb3N0PXtpc0hvc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ29udGludWU9eygpID0+IGlzSG9zdCAmJiBhY3Rpb25zLmZpbmlzaE1pc3Npb25SZXN1bHQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIEZBU0U6IEFTRVNJTk8gKEZSQU5DT1RJUkFET1IpICovfVxuICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5waGFzZSA9PT0gR2FtZVBoYXNlLkFTU0FTU0lOX1BIQVNFICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDIwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgeTogMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRQbGF5ZXI/LnJvbGUgPT09ICdmcmFuY290aXJhZG9yJyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTIgbWQ6Z3JpZC1jb2xzLTMgbGc6Z3JpZC1jb2xzLTQgZ2FwLTQgbWF4LXctNHhsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5wbGF5ZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIocCA9PiBwLmZhY3Rpb24gPT09IEZhY3Rpb24uQUxJQURPUykgLy8gU29sbyBqdWdhZG9yZXMgQWxpYWRvc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHBsYXllciA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17cGxheWVyLmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGFjdGlvbnMuYXNzYXNzaW5LaWxsKHBsYXllci5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctYmxhY2svNjAgaG92ZXI6YmctcmVkLTYwMC83MCBib3JkZXItMiBib3JkZXItd2hpdGUvMzAgaG92ZXI6Ym9yZGVyLXJlZC01MDAgcC0zIHJvdW5kZWQtbGcgdHJhbnNpdGlvbi1hbGwgYmFja2Ryb3AtYmx1ci1zbSBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyBzY2FsZTogMS4wNSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlVGFwPXt7IHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTIwIGgtMjAgcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci13aGl0ZS81MCBvdmVyZmxvdy1oaWRkZW4gYmctYmxhY2sgcmVsYXRpdmUgc2hhZG93LXhsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtgL2Fzc2V0cy9pbWFnZXMvY2hhcmFjdGVycy8ke3BsYXllci5hdmF0YXJ9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD17cGxheWVyLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY292ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtd2hpdGUgZm9udC1ib2xkIHRleHQtc20gZHJvcC1zaGFkb3ctWzBfMnB4XzRweF9yZ2JhKDAsMCwwLDAuOCldXCI+e3BsYXllci5uYW1lfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y3VycmVudFBsYXllcj8ucm9sZSAhPT0gJ2ZyYW5jb3RpcmFkb3InICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC13aGl0ZSB0ZXh0LXhsIGZvbnQtbW9ubyBiZy1ibGFjay81MCBweC02IHB5LTMgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItd2hpdGUvMjAgYW5pbWF0ZS1wdWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsIEZyYW5jb3RpcmFkb3IgZXN0w6EgZGVjaWRpZW5kby4uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIEZBU0U6IFZJQ1RPUklBIE5BWklTICovfVxuICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5waGFzZSA9PT0gR2FtZVBoYXNlLk5BWklTX1dJTiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpY3RvcnlTY3JlZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FtZVN0YXRlPXtnYW1lU3RhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSG9zdD17aXNIb3N0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlc3RhcnQ9eygpID0+IGFjdGlvbnMucmVzdGFydEdhbWUoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25GaW5hbGl6ZT17KCkgPT4gYWN0aW9ucy5maW5hbGl6ZUdhbWUoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIEZBU0U6IFZJQ1RPUklBIEFMSUFET1MgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z2FtZVN0YXRlLnBoYXNlID09PSBHYW1lUGhhc2UuQUxMSUVEX1dJTiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpY3RvcnlTY3JlZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FtZVN0YXRlPXtnYW1lU3RhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSG9zdD17aXNIb3N0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlc3RhcnQ9eygpID0+IGFjdGlvbnMucmVzdGFydEdhbWUoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25GaW5hbGl6ZT17KCkgPT4gYWN0aW9ucy5maW5hbGl6ZUdhbWUoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICA8L0FuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIHsvKiBKVUdBRE9SRVMgLSBQT1NJQ0lPTkFET1MgQUJTT0xVVEFNRU5URSBFTiBFTCBGT05ETyAqL31cbiAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBib3R0b20tMCBsZWZ0LTAgcmlnaHQtMCB6LTUwIGJnLWJsYWNrLzgwIGJvcmRlci10IGJvcmRlci13aGl0ZS8xMCBiYWNrZHJvcC1ibHVyLW1kXCJcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IGlzUGxheWVyc0NvbGxhcHNlZCA/ICcxMDAlJyA6ICcwJSdcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyB0eXBlOiBcInNwcmluZ1wiLCBzdGlmZm5lc3M6IDMwMCwgZGFtcGluZzogMzAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsvKiBCb3TDs24gZGUgY29sYXBzby9leHBhbnNpw7NuICovfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIC10b3AtMTAgbGVmdC0xLzIgdHJhbnNmb3JtIC10cmFuc2xhdGUteC0xLzJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJc1BsYXllcnNDb2xsYXBzZWQoIWlzUGxheWVyc0NvbGxhcHNlZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctZ3JhZGllbnQtdG8tYiBmcm9tLXllbGxvdy02MDAgdG8teWVsbG93LTcwMCBob3Zlcjpmcm9tLXllbGxvdy01MDAgaG92ZXI6dG8teWVsbG93LTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQtdC1sZyBweC02IHB5LTIgc2hhZG93LWxnIGJvcmRlci0yIGJvcmRlci15ZWxsb3ctNTAwIGJvcmRlci1iLTAgdHJhbnNpdGlvbi1hbGwgaG92ZXI6c2hhZG93LXllbGxvdy01MDAvNTAgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uc3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTUgdy01XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyByb3RhdGU6IGlzUGxheWVyc0NvbGxhcHNlZCA/IDE4MCA6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkdXJhdGlvbjogMC4zIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezN9IGQ9XCJNMTkgOWwtNyA3LTctN1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1ib2xkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNQbGF5ZXJzQ29sbGFwc2VkID8gJ01vc3RyYXInIDogJ09jdWx0YXInfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBweC00IHB5LTIgZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z2FtZVN0YXRlLnBsYXllcnMubWFwKChwbGF5ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gc2VsZWN0ZWRUZWFtLmluY2x1ZGVzKHBsYXllci5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNNZSA9IHBsYXllci5pZCA9PT0gY3VycmVudFBsYXllcklkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXZhdGFyIGxvZ2ljXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXZhdGFyU3JjID0gYC9hc3NldHMvaW1hZ2VzL2NoYXJhY3RlcnMvJHtwbGF5ZXIuYXZhdGFyfWA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3BsYXllci5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGlzTGVhZGVyICYmIGdhbWVTdGF0ZS5waGFzZSA9PT0gR2FtZVBoYXNlLlRFQU1fQlVJTERJTkcgJiYgdG9nZ2xlVGVhbVNlbGVjdGlvbihwbGF5ZXIuaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZSBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aXNTZWxlY3RlZCA/ICdzY2FsZS0xMTAgei0xMCcgOiAnc2NhbGUtMTAwIG9wYWNpdHktNzAgaG92ZXI6b3BhY2l0eS0xMDAgaG92ZXI6c2NhbGUtMTA1J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIEF2YXRhciAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgcm91bmRlZC1mdWxsIGJvcmRlci0yIG92ZXJmbG93LWhpZGRlbiBzaGFkb3ctbGcgYmctYmxhY2sgdHJhbnNpdGlvbi1hbGwgdy0xNiBoLTE2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc1NlbGVjdGVkID8gJ2JvcmRlci15ZWxsb3ctNDAwIHJpbmctNCByaW5nLXllbGxvdy00MDAvMzAgc2hhZG93LXllbGxvdy00MDAvMjAnIDogJ2JvcmRlci1ncmF5LTUwMCBncm91cC1ob3Zlcjpib3JkZXItZ3JheS0zMDAnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Z2FtZVN0YXRlLmN1cnJlbnRMZWFkZXJJZCA9PT0gcGxheWVyLmlkID8gJ3JpbmctMiByaW5nLXdoaXRlJyA6ICcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17YXZhdGFyU3JjfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9e3BsYXllci5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm9iamVjdC1jb3ZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBJY29ubyBkZSBMw61kZXIgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5jdXJyZW50TGVhZGVySWQgPT09IHBsYXllci5pZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgYm90dG9tLTAgcmlnaHQtMCBiZy15ZWxsb3ctNTAwIHJvdW5kZWQtZnVsbCBwLTEgdy02IGgtNiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LVsxMHB4XSB0ZXh0LWJsYWNrIGZvbnQtYm9sZCBib3JkZXIgYm9yZGVyLXdoaXRlIHotMjAgc2hhZG93LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogSWNvbm8gZGUgTWllbWJybyBkZWwgRXF1aXBvIGRlIE1pc2nDs24gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5wcm9wb3NlZFRlYW0uaW5jbHVkZXMocGxheWVyLmlkKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhbWVTdGF0ZS5waGFzZSA9PT0gR2FtZVBoYXNlLlZPVElOR19URUFNIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhbWVTdGF0ZS5waGFzZSA9PT0gR2FtZVBoYXNlLk1JU1NJT04gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FtZVN0YXRlLnBoYXNlID09PSAnbWlzc2lvbl9yZXZlYWwnIGFzIGFueSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYW1lU3RhdGUucGhhc2UgPT09ICdtaXNzaW9uX3Jlc3VsdCcgYXMgYW55XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0wIGxlZnQtMCBiZy1ncmVlbi01MDAgcm91bmRlZC1mdWxsIHAtMSB3LTYgaC02IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQteHMgdGV4dC13aGl0ZSBmb250LWJvbGQgYm9yZGVyIGJvcmRlci13aGl0ZSB6LTIwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4q2QXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogTm9tYnJlICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdC0xIHRleHQteHMgZm9udC1tb25vIHB4LTIgcHktMC41IHJvdW5kZWQgc2hhZG93LXNtIHdoaXRlc3BhY2Utbm93cmFwIG1heC13LVsxMDBweF0gdHJ1bmNhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aXNNZSA/ICdiZy1ibHVlLTYwMCB0ZXh0LXdoaXRlIGZvbnQtYm9sZCcgOiAnYmctYmxhY2svNjAgdGV4dC1ncmF5LTMwMCBib3JkZXIgYm9yZGVyLXdoaXRlLzEwJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BsYXllci5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cblxuICAgICAgICAgICAgICAgIHsvKiBISVNUw5NSSUNPIERFIE1JU0lPTkVTIChFc3F1aW5hIHN1cGVyaW9yIGRlcmVjaGEpICovfVxuICAgICAgICAgICAgICAgIHtnYW1lU3RhdGUubWlzc2lvbkhpc3RvcnkubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCB0b3AtWzYwcHhdIHJpZ2h0LTAgei01MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiBpc0hpc3RvcnlDb2xsYXBzZWQgPyAnMCUnIDogJzAlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgdHlwZTogXCJzcHJpbmdcIiwgc3RpZmZuZXNzOiAzMDAsIGRhbXBpbmc6IDMwIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBCb3TDs24gZGUgY29sYXBzby9leHBhbnNpw7NuICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJc0hpc3RvcnlDb2xsYXBzZWQoIWlzSGlzdG9yeUNvbGxhcHNlZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTAgYmctZ3JhZGllbnQtdG8tbCBmcm9tLXllbGxvdy02MDAgdG8teWVsbG93LTcwMCBob3Zlcjpmcm9tLXllbGxvdy01MDAgaG92ZXI6dG8teWVsbG93LTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQtbC1sZyBweC0yIHB5LTMgc2hhZG93LWxnIGJvcmRlci0yIGJvcmRlci15ZWxsb3ctNTAwIGJvcmRlci1yLTAgdHJhbnNpdGlvbi1hbGwgaG92ZXI6c2hhZG93LXllbGxvdy01MDAvNTAgZmxleCBpdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGlzSGlzdG9yeUNvbGxhcHNlZCA/ICcwcHgnIDogJzEwMCUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7IHR5cGU6IFwic3ByaW5nXCIsIHN0aWZmbmVzczogMzAwLCBkYW1waW5nOiAzMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uc3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTQgdy00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyByb3RhdGU6IGlzSGlzdG9yeUNvbGxhcHNlZCA/IDAgOiAxODAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkdXJhdGlvbjogMC4zIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezN9IGQ9XCJNMTUgMTlsLTctNyA3LTdcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLnN2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmJ1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIFBhbmVsIGRlbCBoaXN0b3JpYWwgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLWJsYWNrLzgwIHAtMyByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItd2hpdGUvMjAgYmFja2Ryb3AtYmx1ci1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiBpc0hpc3RvcnlDb2xsYXBzZWQgPyAnMTAwJScgOiAnMCUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7IHR5cGU6IFwic3ByaW5nXCIsIHN0aWZmbmVzczogMzAwLCBkYW1waW5nOiAzMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1bMTBweF0gdGV4dC1ncmF5LTQwMCB1cHBlcmNhc2UgbWItMiB0ZXh0LWNlbnRlciBmb250LWJvbGQgdHJhY2tpbmctd2lkZXJcIj5IaXN0b3JpYWw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5taXNzaW9uSGlzdG9yeS5tYXAoKG1pc3Npb24sIGlkeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNFeHBhbmRlZCA9IGV4cGFuZGVkTWlzc2lvbiA9PT0gaWR4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpZHh9IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHctOCBoLTggcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQteHMgZm9udC1ib2xkIGJvcmRlci0yIGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tYWxsIGhvdmVyOnNjYWxlLTExMCAke21pc3Npb24uaXNTdWNjZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnYmctYmx1ZS02MDAgYm9yZGVyLWJsdWUtNDAwIHRleHQtd2hpdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnYmctcmVkLTYwMCBib3JkZXItcmVkLTQwMCB0ZXh0LXdoaXRlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gJHtpc0V4cGFuZGVkID8gJ3JpbmctMiByaW5nLXllbGxvdy00MDAgcmVsYXRpdmUgei1bNjBdJyA6ICcnfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17YE1pc2nDs24gJHttaXNzaW9uLnJvdW5kfTogJHttaXNzaW9uLmlzU3VjY2VzcyA/ICfDiXhpdG8nIDogJ0ZyYWNhc28nfSAoJHttaXNzaW9uLnN1Y2Nlc3Nlc33inJMgJHttaXNzaW9uLmZhaWxzfeKclylgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDbGljayBlbiBtaXNpw7NuJywgaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFeHBhbmRlZE1pc3Npb24ocHJldiA9PiBwcmV2ID09PSBpZHggPyBudWxsIDogaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttaXNzaW9uLnJvdW5kfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogTGlzdGEgZGUgcGFydGljaXBhbnRlcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMTAgcmlnaHQtMCBiZy1ibGFjay85NSBwLTIgcm91bmRlZCBib3JkZXIgYm9yZGVyLXdoaXRlLzMwIG1pbi13LW1heCB6LVsxMDBdXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge21pc3Npb24udGVhbS5tYXAoKHBsYXllcklkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBsYXllciA9IGdhbWVTdGF0ZS5wbGF5ZXJzLmZpbmQocCA9PiBwLmlkID09PSBwbGF5ZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17cGxheWVySWR9IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC13aGl0ZSB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwbGF5ZXI/Lm5hbWUgfHwgcGxheWVySWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG5cbi8vIFN1YmNvbXBvbmVudGUgcGFyYSBlbCBUaW1lciBkZSBWb3RhY2nDs24gKHNvbG8gdmlzdWFsLCBlbCBzZXJ2aWRvciBjb250cm9sYSBlbCB0aW1lb3V0IHJlYWwpXG5mdW5jdGlvbiBWb3RpbmdUaW1lcigpIHtcbiAgICBjb25zdCBbdGltZUxlZnQsIHNldFRpbWVMZWZ0XSA9IHVzZVN0YXRlKDEwKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICh0aW1lTGVmdCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47IC8vIEVsIHNlcnZpZG9yIHNlIGVuY2FyZ2Fyw6EgZGUgZm9yemFyIGxhIHJlc29sdWNpw7NuXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiBzZXRUaW1lTGVmdCh0ID0+IHQgLSAxKSwgMTAwMCk7XG4gICAgICAgIHJldHVybiAoKSA9PiBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICB9LCBbdGltZUxlZnRdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZml4ZWQgdG9wLTUgbGVmdC01IGJnLXJlZC02MDAvODAgdGV4dC13aGl0ZSB3LTE2IGgtMTYgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlci00IGJvcmRlci1yZWQtNDAwIGFuaW1hdGUtcHVsc2UgdGV4dC0yeGwgZm9udC1ib2xkIGZvbnQtbW9ub1wiPlxuICAgICAgICAgICAge3RpbWVMZWZ0fVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuIl0sIm5hbWVzIjpbInVzZVN0YXRlIiwidXNlRWZmZWN0IiwibW90aW9uIiwiQW5pbWF0ZVByZXNlbmNlIiwiSW1hZ2UiLCJHYW1lUGhhc2UiLCJHQU1FX0NPTkZJRyIsIkZhY3Rpb24iLCJNaXNzaW9uUmV2ZWFsIiwiTWlzc2lvblJlc3VsdCIsIlZpY3RvcnlTY3JlZW4iLCJFeGl0R2FtZUJ1dHRvbiIsIkdhbWVCb2FyZCIsImdhbWVTdGF0ZSIsImN1cnJlbnRQbGF5ZXJJZCIsImFjdGlvbnMiLCJmdWxsUGxheWVyTmFtZSIsInNlbGVjdGVkVGVhbSIsInNldFNlbGVjdGVkVGVhbSIsInJldmVhbENhcmQiLCJzZXRSZXZlYWxDYXJkIiwiY2FyZE9yZGVyIiwiTWF0aCIsInJhbmRvbSIsIm1pc3Npb25Wb3RlIiwic2V0TWlzc2lvblZvdGUiLCJleHBhbmRlZE1pc3Npb24iLCJzZXRFeHBhbmRlZE1pc3Npb24iLCJpc1BsYXllcnNDb2xsYXBzZWQiLCJzZXRJc1BsYXllcnNDb2xsYXBzZWQiLCJpc0hpc3RvcnlDb2xsYXBzZWQiLCJzZXRJc0hpc3RvcnlDb2xsYXBzZWQiLCJwaGFzZSIsInRpbWVyIiwic2V0VGltZW91dCIsImZpbmlzaFJldmVhbCIsImNsZWFyVGltZW91dCIsIk1JU1NJT04iLCJURUFNX0JVSUxESU5HIiwiY3VycmVudExlYWRlcklkIiwic2hvd0JvYXJkIiwic2V0U2hvd0JvYXJkIiwiTUlTU0lPTl9SRVNVTFQiLCJjdXJyZW50UGxheWVyIiwicGxheWVycyIsImZpbmQiLCJwIiwiaWQiLCJpc0xlYWRlciIsImNvbmZpZyIsImxlbmd0aCIsImN1cnJlbnRRdWVzdFNpemUiLCJxdWVzdHMiLCJjdXJyZW50Um91bmQiLCJ0b2dnbGVUZWFtU2VsZWN0aW9uIiwicGxheWVySWQiLCJpbmNsdWRlcyIsImZpbHRlciIsImhhbmRsZU1pc3Npb25Wb3RlIiwidm90ZSIsInZvdGVNaXNzaW9uIiwibWlzc2lvbkNvb3JkcyIsImxlZnQiLCJ0b3AiLCJtaXNzaW9uTmFtZXMiLCJpc0hvc3QiLCJob3N0SWQiLCJkaXYiLCJjbGFzc05hbWUiLCJzcmMiLCJhbHQiLCJmaWxsIiwiaDEiLCJhdWRpbyIsImF1dG9QbGF5Iiwib25FbmRlZCIsImZpbmlzaEludHJvIiwiYnV0dG9uIiwib25DbGljayIsInJvbGVJbWFnZSIsInJvbGUiLCJpZHgiLCJjaGFyQ29kZUF0IiwiaDIiLCJyZXBsYWNlIiwiZHJhZyIsImRyYWdDb25zdHJhaW50cyIsImJvdHRvbSIsImRyYWdFbGFzdGljIiwiZHJhZ1NuYXBUb09yaWdpbiIsIndoaWxlSG92ZXIiLCJzY2FsZSIsIndoaWxlVGFwIiwiY3Vyc29yIiwiZmluaXNoUm9sbENhbGwiLCJtYXAiLCJpIiwiaW5pdGlhbCIsIm9wYWNpdHkiLCJhbmltYXRlIiwidHJhbnNpdGlvbiIsImRlbGF5IiwiYXZhdGFyIiwibmFtZSIsIkFMTElFRF9XSU4iLCJOQVpJU19XSU4iLCJvbkV4aXQiLCJsZWF2ZUdhbWUiLCJwbGF5ZXJOYW1lIiwiQVNTQVNTSU5fUEhBU0UiLCJwcmlvcml0eSIsInNwYW4iLCJjb29yZCIsInJlc3VsdCIsInF1ZXN0UmVzdWx0cyIsImlzQ3VycmVudCIsInN0eWxlIiwidHJhbnNmb3JtIiwibGF5b3V0SWQiLCJ0eXBlIiwic3RpZmZuZXNzIiwiZGFtcGluZyIsImgzIiwibW9kZSIsImxlYWRlclZvdGVzIiwiVm90aW5nVGltZXIiLCJ1bmRlZmluZWQiLCJ2b3RlTGVhZGVyIiwieSIsImV4aXQiLCJwcm9wb3NlVGVhbSIsImRpc2FibGVkIiwiVk9USU5HX1RFQU0iLCJwcm9wb3NlZFRlYW0iLCJwbCIsInRlYW1Wb3RlcyIsInZvdGVUZWFtIiwicm90YXRlIiwid2lkdGgiLCJoZWlnaHQiLCJmYWN0aW9uIiwiQUxFTUFORVMiLCJiciIsInZvdGVzIiwicmV2ZWFsZWRWb3RlcyIsIm9uRmluaXNoZWQiLCJmaW5pc2hNaXNzaW9uUmV2ZWFsIiwib25Db250aW51ZSIsImZpbmlzaE1pc3Npb25SZXN1bHQiLCJBTElBRE9TIiwicGxheWVyIiwiYXNzYXNzaW5LaWxsIiwib25SZXN0YXJ0IiwicmVzdGFydEdhbWUiLCJvbkZpbmFsaXplIiwiZmluYWxpemVHYW1lIiwic3ZnIiwieG1sbnMiLCJ2aWV3Qm94Iiwic3Ryb2tlIiwiZHVyYXRpb24iLCJwYXRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlV2lkdGgiLCJkIiwiaXNTZWxlY3RlZCIsImlzTWUiLCJhdmF0YXJTcmMiLCJtaXNzaW9uSGlzdG9yeSIsIngiLCJyaWdodCIsIm1pc3Npb24iLCJpc0V4cGFuZGVkIiwiaXNTdWNjZXNzIiwidGl0bGUiLCJyb3VuZCIsInN1Y2Nlc3NlcyIsImZhaWxzIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsImNvbnNvbGUiLCJsb2ciLCJwcmV2IiwidGVhbSIsInRpbWVMZWZ0Iiwic2V0VGltZUxlZnQiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwidCIsImNsZWFySW50ZXJ2YWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/GameBoard.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/LogoutButton.tsx":
+/*!*****************************************!*\
+ !*** ./src/components/LogoutButton.tsx ***!
+ \*****************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LogoutButton)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/motion.mjs\");\n\n\nfunction LogoutButton({ onClick }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_1__.motion.button, {\n onClick: onClick,\n whileHover: {\n scale: 1.05\n },\n whileTap: {\n scale: 0.95\n },\n className: \"bg-red-900/80 hover:bg-red-800 text-white p-2 rounded-full border border-red-700/50 backdrop-blur-sm shadow-lg transition-all\",\n title: \"Salir del juego\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 2.5,\n stroke: \"currentColor\",\n className: \"w-5 h-5\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5.636 5.636a9 9 0 1012.728 0M12 3v9\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/LogoutButton.tsx\",\n lineNumber: 24,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/LogoutButton.tsx\",\n lineNumber: 16,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/LogoutButton.tsx\",\n lineNumber: 9,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9Mb2dvdXRCdXR0b24udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXVDO0FBTXhCLFNBQVNDLGFBQWEsRUFBRUMsT0FBTyxFQUFxQjtJQUMvRCxxQkFDSSw4REFBQ0YsaURBQU1BLENBQUNHLE1BQU07UUFDVkQsU0FBU0E7UUFDVEUsWUFBWTtZQUFFQyxPQUFPO1FBQUs7UUFDMUJDLFVBQVU7WUFBRUQsT0FBTztRQUFLO1FBQ3hCRSxXQUFVO1FBQ1ZDLE9BQU07a0JBRU4sNEVBQUNDO1lBQ0dDLE9BQU07WUFDTkMsTUFBSztZQUNMQyxTQUFRO1lBQ1JDLGFBQWE7WUFDYkMsUUFBTztZQUNQUCxXQUFVO3NCQUVWLDRFQUFDUTtnQkFDR0MsZUFBYztnQkFDZEMsZ0JBQWU7Z0JBQ2ZDLEdBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLdEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9yZXNpc3RlbmNpYS1jbGllbnQvLi9zcmMvY29tcG9uZW50cy9Mb2dvdXRCdXR0b24udHN4P2VmMjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmludGVyZmFjZSBMb2dvdXRCdXR0b25Qcm9wcyB7XG4gICAgb25DbGljazogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTG9nb3V0QnV0dG9uKHsgb25DbGljayB9OiBMb2dvdXRCdXR0b25Qcm9wcykge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxtb3Rpb24uYnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyBzY2FsZTogMS4wNSB9fVxuICAgICAgICAgICAgd2hpbGVUYXA9e3sgc2NhbGU6IDAuOTUgfX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXJlZC05MDAvODAgaG92ZXI6YmctcmVkLTgwMCB0ZXh0LXdoaXRlIHAtMiByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1yZWQtNzAwLzUwIGJhY2tkcm9wLWJsdXItc20gc2hhZG93LWxnIHRyYW5zaXRpb24tYWxsXCJcbiAgICAgICAgICAgIHRpdGxlPVwiU2FsaXIgZGVsIGp1ZWdvXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mi41fVxuICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy01IGgtNVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNS42MzYgNS42MzZhOSA5IDAgMTAxMi43MjggME0xMiAzdjlcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9tb3Rpb24uYnV0dG9uPlxuICAgICk7XG59XG4iXSwibmFtZXMiOlsibW90aW9uIiwiTG9nb3V0QnV0dG9uIiwib25DbGljayIsImJ1dHRvbiIsIndoaWxlSG92ZXIiLCJzY2FsZSIsIndoaWxlVGFwIiwiY2xhc3NOYW1lIiwidGl0bGUiLCJzdmciLCJ4bWxucyIsImZpbGwiLCJ2aWV3Qm94Iiwic3Ryb2tlV2lkdGgiLCJzdHJva2UiLCJwYXRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwiZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/LogoutButton.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/MissionResult.tsx":
+/*!******************************************!*\
+ !*** ./src/components/MissionResult.tsx ***!
+ \******************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MissionResult)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/motion.mjs\");\n\n\nfunction MissionResult({ gameState, onContinue, isHost }) {\n // Obtener la última misión del historial\n const lastMission = gameState.missionHistory[gameState.missionHistory.length - 1];\n if (!lastMission) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 flex items-center justify-center bg-black/90 z-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-white text-2xl\",\n children: \"Cargando resultado...\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 17,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 16,\n columnNumber: 13\n }, this);\n }\n const { successes, fails, isSuccess } = lastMission;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_1__.motion.div, {\n className: \"fixed inset-0 flex flex-col items-center justify-center bg-transparent z-50 pt-8\",\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_1__.motion.h2, {\n className: `text-3xl sm:text-4xl md:text-5xl lg:text-6xl xl:text-7xl font-bold mb-8 whitespace-nowrap px-4 ${isSuccess ? \"text-blue-500\" : \"text-red-500\"}`,\n initial: {\n scale: 0\n },\n animate: {\n scale: 1\n },\n transition: {\n type: \"spring\",\n stiffness: 200,\n delay: 0.2\n },\n children: isSuccess ? \"\\xa1MISI\\xd3N EXITOSA!\" : \"MISI\\xd3N FALLIDA\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 30,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_1__.motion.div, {\n className: \"text-white text-3xl mb-8 bg-black/50 p-6 rounded-xl\",\n initial: {\n y: 50,\n opacity: 0\n },\n animate: {\n y: 0,\n opacity: 1\n },\n transition: {\n delay: 0.5\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mb-2\",\n children: [\n \"✓ \\xc9xitos: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-blue-400 font-bold\",\n children: successes\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 45,\n columnNumber: 47\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 45,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"✗ Sabotajes: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-red-400 font-bold\",\n children: fails\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 46,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 46,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 39,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_1__.motion.div, {\n className: \"text-white text-xl mb-8\",\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n transition: {\n delay: 1\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"Misi\\xf3n \",\n gameState.currentRound,\n \" de 5\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 55,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-400 text-sm mt-2\",\n children: [\n \"Resistencia: \",\n gameState.missionHistory.filter((m)=>m.isSuccess).length,\n \" | Esp\\xedas: \",\n gameState.missionHistory.filter((m)=>!m.isSuccess).length\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 56,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 49,\n columnNumber: 13\n }, this),\n isHost ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_1__.motion.button, {\n onClick: onContinue,\n className: \"bg-gradient-to-r from-yellow-600 to-yellow-700 hover:from-yellow-500 hover:to-yellow-600 text-white font-bold py-4 px-8 rounded-lg text-lg shadow-lg transform transition-all hover:scale-105\",\n initial: {\n y: 50,\n opacity: 0\n },\n animate: {\n y: 0,\n opacity: 1\n },\n transition: {\n delay: 1.5\n },\n whileHover: {\n scale: 1.05\n },\n whileTap: {\n scale: 0.95\n },\n children: \"CONTINUAR →\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 63,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_1__.motion.div, {\n className: \"text-white text-lg font-mono bg-black/50 px-6 py-3 rounded-full border border-white/20 animate-pulse\",\n initial: {\n y: 50,\n opacity: 0\n },\n animate: {\n y: 0,\n opacity: 1\n },\n transition: {\n delay: 1.5\n },\n children: \"Esperando al comandante...\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 75,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/MissionResult.tsx\",\n lineNumber: 25,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9NaXNzaW9uUmVzdWx0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUF1QztBQVN4QixTQUFTQyxjQUFjLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLEVBQXNCO0lBQ3ZGLHlDQUF5QztJQUN6QyxNQUFNQyxjQUFjSCxVQUFVSSxjQUFjLENBQUNKLFVBQVVJLGNBQWMsQ0FBQ0MsTUFBTSxHQUFHLEVBQUU7SUFFakYsSUFBSSxDQUFDRixhQUFhO1FBQ2QscUJBQ0ksOERBQUNHO1lBQUlDLFdBQVU7c0JBQ1gsNEVBQUNDO2dCQUFFRCxXQUFVOzBCQUFzQjs7Ozs7Ozs7Ozs7SUFHL0M7SUFFQSxNQUFNLEVBQUVFLFNBQVMsRUFBRUMsS0FBSyxFQUFFQyxTQUFTLEVBQUUsR0FBR1I7SUFFeEMscUJBQ0ksOERBQUNMLGlEQUFNQSxDQUFDUSxHQUFHO1FBQ1BDLFdBQVU7UUFDVkssU0FBUztZQUFFQyxTQUFTO1FBQUU7UUFDdEJDLFNBQVM7WUFBRUQsU0FBUztRQUFFOzswQkFFdEIsOERBQUNmLGlEQUFNQSxDQUFDaUIsRUFBRTtnQkFDTlIsV0FBVyxDQUFDLCtGQUErRixFQUFFSSxZQUFZLGtCQUFrQixlQUFlLENBQUM7Z0JBQzNKQyxTQUFTO29CQUFFSSxPQUFPO2dCQUFFO2dCQUNwQkYsU0FBUztvQkFBRUUsT0FBTztnQkFBRTtnQkFDcEJDLFlBQVk7b0JBQUVDLE1BQU07b0JBQVVDLFdBQVc7b0JBQUtDLE9BQU87Z0JBQUk7MEJBRXhEVCxZQUFZLDJCQUFxQjs7Ozs7OzBCQUd0Qyw4REFBQ2IsaURBQU1BLENBQUNRLEdBQUc7Z0JBQ1BDLFdBQVU7Z0JBQ1ZLLFNBQVM7b0JBQUVTLEdBQUc7b0JBQUlSLFNBQVM7Z0JBQUU7Z0JBQzdCQyxTQUFTO29CQUFFTyxHQUFHO29CQUFHUixTQUFTO2dCQUFFO2dCQUM1QkksWUFBWTtvQkFBRUcsT0FBTztnQkFBSTs7a0NBRXpCLDhEQUFDWjt3QkFBRUQsV0FBVTs7NEJBQU87MENBQVUsOERBQUNlO2dDQUFLZixXQUFVOzBDQUEyQkU7Ozs7Ozs7Ozs7OztrQ0FDekUsOERBQUNEOzs0QkFBRTswQ0FBYSw4REFBQ2M7Z0NBQUtmLFdBQVU7MENBQTBCRzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQUc5RCw4REFBQ1osaURBQU1BLENBQUNRLEdBQUc7Z0JBQ1BDLFdBQVU7Z0JBQ1ZLLFNBQVM7b0JBQUVDLFNBQVM7Z0JBQUU7Z0JBQ3RCQyxTQUFTO29CQUFFRCxTQUFTO2dCQUFFO2dCQUN0QkksWUFBWTtvQkFBRUcsT0FBTztnQkFBRTs7a0NBRXZCLDhEQUFDWjs7NEJBQUU7NEJBQVFSLFVBQVV1QixZQUFZOzRCQUFDOzs7Ozs7O2tDQUNsQyw4REFBQ2Y7d0JBQUVELFdBQVU7OzRCQUE2Qjs0QkFDeEJQLFVBQVVJLGNBQWMsQ0FBQ29CLE1BQU0sQ0FBQ0MsQ0FBQUEsSUFBS0EsRUFBRWQsU0FBUyxFQUFFTixNQUFNOzRCQUFDOzRCQUM5REwsVUFBVUksY0FBYyxDQUFDb0IsTUFBTSxDQUFDQyxDQUFBQSxJQUFLLENBQUNBLEVBQUVkLFNBQVMsRUFBRU4sTUFBTTs7Ozs7Ozs7Ozs7OztZQUl6RUgsdUJBQ0csOERBQUNKLGlEQUFNQSxDQUFDNEIsTUFBTTtnQkFDVkMsU0FBUzFCO2dCQUNUTSxXQUFVO2dCQUNWSyxTQUFTO29CQUFFUyxHQUFHO29CQUFJUixTQUFTO2dCQUFFO2dCQUM3QkMsU0FBUztvQkFBRU8sR0FBRztvQkFBR1IsU0FBUztnQkFBRTtnQkFDNUJJLFlBQVk7b0JBQUVHLE9BQU87Z0JBQUk7Z0JBQ3pCUSxZQUFZO29CQUFFWixPQUFPO2dCQUFLO2dCQUMxQmEsVUFBVTtvQkFBRWIsT0FBTztnQkFBSzswQkFDM0I7Ozs7O3FDQUlELDhEQUFDbEIsaURBQU1BLENBQUNRLEdBQUc7Z0JBQ1BDLFdBQVU7Z0JBQ1ZLLFNBQVM7b0JBQUVTLEdBQUc7b0JBQUlSLFNBQVM7Z0JBQUU7Z0JBQzdCQyxTQUFTO29CQUFFTyxHQUFHO29CQUFHUixTQUFTO2dCQUFFO2dCQUM1QkksWUFBWTtvQkFBRUcsT0FBTztnQkFBSTswQkFDNUI7Ozs7Ozs7Ozs7OztBQU1qQiIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8uL3NyYy9jb21wb25lbnRzL01pc3Npb25SZXN1bHQudHN4PzE4MDkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5pbXBvcnQgeyBHYW1lU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuXG5pbnRlcmZhY2UgTWlzc2lvblJlc3VsdFByb3BzIHtcbiAgICBnYW1lU3RhdGU6IEdhbWVTdGF0ZTtcbiAgICBvbkNvbnRpbnVlOiAoKSA9PiB2b2lkO1xuICAgIGlzSG9zdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWlzc2lvblJlc3VsdCh7IGdhbWVTdGF0ZSwgb25Db250aW51ZSwgaXNIb3N0IH06IE1pc3Npb25SZXN1bHRQcm9wcykge1xuICAgIC8vIE9idGVuZXIgbGEgw7psdGltYSBtaXNpw7NuIGRlbCBoaXN0b3JpYWxcbiAgICBjb25zdCBsYXN0TWlzc2lvbiA9IGdhbWVTdGF0ZS5taXNzaW9uSGlzdG9yeVtnYW1lU3RhdGUubWlzc2lvbkhpc3RvcnkubGVuZ3RoIC0gMV07XG5cbiAgICBpZiAoIWxhc3RNaXNzaW9uKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctYmxhY2svOTAgei01MFwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtd2hpdGUgdGV4dC0yeGxcIj5DYXJnYW5kbyByZXN1bHRhZG8uLi48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHN1Y2Nlc3NlcywgZmFpbHMsIGlzU3VjY2VzcyB9ID0gbGFzdE1pc3Npb247XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQgaW5zZXQtMCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy10cmFuc3BhcmVudCB6LTUwIHB0LThcIlxuICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgPlxuICAgICAgICAgICAgPG1vdGlvbi5oMlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHRleHQtM3hsIHNtOnRleHQtNHhsIG1kOnRleHQtNXhsIGxnOnRleHQtNnhsIHhsOnRleHQtN3hsIGZvbnQtYm9sZCBtYi04IHdoaXRlc3BhY2Utbm93cmFwIHB4LTQgJHtpc1N1Y2Nlc3MgPyAndGV4dC1ibHVlLTUwMCcgOiAndGV4dC1yZWQtNTAwJ31gfVxuICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgc2NhbGU6IDAgfX1cbiAgICAgICAgICAgICAgICBhbmltYXRlPXt7IHNjYWxlOiAxIH19XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyB0eXBlOiAnc3ByaW5nJywgc3RpZmZuZXNzOiAyMDAsIGRlbGF5OiAwLjIgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aXNTdWNjZXNzID8gJ8KhTUlTScOTTiBFWElUT1NBIScgOiAnTUlTScOTTiBGQUxMSURBJ31cbiAgICAgICAgICAgIDwvbW90aW9uLmgyPlxuXG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtd2hpdGUgdGV4dC0zeGwgbWItOCBiZy1ibGFjay81MCBwLTYgcm91bmRlZC14bFwiXG4gICAgICAgICAgICAgICAgaW5pdGlhbD17eyB5OiA1MCwgb3BhY2l0eTogMCB9fVxuICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgeTogMCwgb3BhY2l0eTogMSB9fVxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuNSB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm1iLTJcIj7inJMgw4l4aXRvczogPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1ibHVlLTQwMCBmb250LWJvbGRcIj57c3VjY2Vzc2VzfTwvc3Bhbj48L3A+XG4gICAgICAgICAgICAgICAgPHA+4pyXIFNhYm90YWplczogPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1yZWQtNDAwIGZvbnQtYm9sZFwiPntmYWlsc308L3NwYW4+PC9wPlxuICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuXG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtd2hpdGUgdGV4dC14bCBtYi04XCJcbiAgICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGRlbGF5OiAxIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHA+TWlzacOzbiB7Z2FtZVN0YXRlLmN1cnJlbnRSb3VuZH0gZGUgNTwvcD5cbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICBSZXNpc3RlbmNpYToge2dhbWVTdGF0ZS5taXNzaW9uSGlzdG9yeS5maWx0ZXIobSA9PiBtLmlzU3VjY2VzcykubGVuZ3RofSB8XG4gICAgICAgICAgICAgICAgICAgIEVzcMOtYXM6IHtnYW1lU3RhdGUubWlzc2lvbkhpc3RvcnkuZmlsdGVyKG0gPT4gIW0uaXNTdWNjZXNzKS5sZW5ndGh9XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuXG4gICAgICAgICAgICB7aXNIb3N0ID8gKFxuICAgICAgICAgICAgICAgIDxtb3Rpb24uYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ29udGludWV9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLWdyYWRpZW50LXRvLXIgZnJvbS15ZWxsb3ctNjAwIHRvLXllbGxvdy03MDAgaG92ZXI6ZnJvbS15ZWxsb3ctNTAwIGhvdmVyOnRvLXllbGxvdy02MDAgdGV4dC13aGl0ZSBmb250LWJvbGQgcHktNCBweC04IHJvdW5kZWQtbGcgdGV4dC1sZyBzaGFkb3ctbGcgdHJhbnNmb3JtIHRyYW5zaXRpb24tYWxsIGhvdmVyOnNjYWxlLTEwNVwiXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgeTogNTAsIG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyB5OiAwLCBvcGFjaXR5OiAxIH19XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDEuNSB9fVxuICAgICAgICAgICAgICAgICAgICB3aGlsZUhvdmVyPXt7IHNjYWxlOiAxLjA1IH19XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlVGFwPXt7IHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBDT05USU5VQVIg4oaSXG4gICAgICAgICAgICAgICAgPC9tb3Rpb24uYnV0dG9uPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXdoaXRlIHRleHQtbGcgZm9udC1tb25vIGJnLWJsYWNrLzUwIHB4LTYgcHktMyByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci13aGl0ZS8yMCBhbmltYXRlLXB1bHNlXCJcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyB5OiA1MCwgb3BhY2l0eTogMCB9fVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IHk6IDAsIG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkZWxheTogMS41IH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBFc3BlcmFuZG8gYWwgY29tYW5kYW50ZS4uLlxuICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICApO1xufVxuIl0sIm5hbWVzIjpbIm1vdGlvbiIsIk1pc3Npb25SZXN1bHQiLCJnYW1lU3RhdGUiLCJvbkNvbnRpbnVlIiwiaXNIb3N0IiwibGFzdE1pc3Npb24iLCJtaXNzaW9uSGlzdG9yeSIsImxlbmd0aCIsImRpdiIsImNsYXNzTmFtZSIsInAiLCJzdWNjZXNzZXMiLCJmYWlscyIsImlzU3VjY2VzcyIsImluaXRpYWwiLCJvcGFjaXR5IiwiYW5pbWF0ZSIsImgyIiwic2NhbGUiLCJ0cmFuc2l0aW9uIiwidHlwZSIsInN0aWZmbmVzcyIsImRlbGF5IiwieSIsInNwYW4iLCJjdXJyZW50Um91bmQiLCJmaWx0ZXIiLCJtIiwiYnV0dG9uIiwib25DbGljayIsIndoaWxlSG92ZXIiLCJ3aGlsZVRhcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/MissionResult.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/MissionReveal.tsx":
+/*!******************************************!*\
+ !*** ./src/components/MissionReveal.tsx ***!
+ \******************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MissionReveal)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/motion.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/image */ \"(ssr)/./node_modules/next/image.js\");\n/* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_image__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\nfunction MissionReveal({ votes, onFinished }) {\n // Timer de seguridad: 5 segundos y avanza\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const timer = setTimeout(()=>{\n if (onFinished) onFinished();\n }, 5000);\n return ()=>clearTimeout(timer);\n }, [\n onFinished\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_3__.motion.div, {\n className: \"fixed inset-0 flex flex-col items-center justify-center bg-black/95 z-50 pointer-events-auto\",\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl font-bold text-white mb-12 uppercase tracking-widest drop-shadow-lg text-center\",\n children: \"Resultado de la misi\\xf3n\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionReveal.tsx\",\n lineNumber: 26,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-4 justify-center mb-12 flex-wrap max-w-[90vw]\",\n children: votes.map((vote, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_3__.motion.div, {\n className: \"w-32 h-48 rounded-xl flex items-center justify-center shadow-2xl relative overflow-hidden\",\n initial: {\n scale: 0,\n rotateY: 180\n },\n animate: {\n scale: 1,\n rotateY: 0\n },\n transition: {\n delay: idx * 0.3,\n type: \"spring\",\n stiffness: 200,\n damping: 20\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_image__WEBPACK_IMPORTED_MODULE_2___default()), {\n src: vote ? \"/assets/images/tokens/vote_approve.png\" : \"/assets/images/tokens/vote_reject.png\",\n alt: vote ? \"\\xc9xito\" : \"Sabotaje\",\n fill: true,\n className: \"object-contain\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionReveal.tsx\",\n lineNumber: 44,\n columnNumber: 25\n }, this)\n }, idx, false, {\n fileName: \"/app/client/src/components/MissionReveal.tsx\",\n lineNumber: 32,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionReveal.tsx\",\n lineNumber: 30,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_3__.motion.div, {\n className: \"text-white text-xl font-mono mt-8 text-center\",\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n transition: {\n delay: votes.length * 0.3 + 0.5\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"animate-pulse\",\n children: \"Analizando resultado estrat\\xe9gico...\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionReveal.tsx\",\n lineNumber: 60,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/MissionReveal.tsx\",\n lineNumber: 54,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/MissionReveal.tsx\",\n lineNumber: 21,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9NaXNzaW9uUmV2ZWFsLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBdUM7QUFDTDtBQUNIO0FBT2hCLFNBQVNHLGNBQWMsRUFBRUMsS0FBSyxFQUFFQyxVQUFVLEVBQXNCO0lBQzNFLDBDQUEwQztJQUMxQ0osZ0RBQVNBLENBQUM7UUFDTixNQUFNSyxRQUFRQyxXQUFXO1lBQ3JCLElBQUlGLFlBQVlBO1FBQ3BCLEdBQUc7UUFFSCxPQUFPLElBQU1HLGFBQWFGO0lBQzlCLEdBQUc7UUFBQ0Q7S0FBVztJQUVmLHFCQUNJLDhEQUFDTCxpREFBTUEsQ0FBQ1MsR0FBRztRQUNQQyxXQUFVO1FBQ1ZDLFNBQVM7WUFBRUMsU0FBUztRQUFFO1FBQ3RCQyxTQUFTO1lBQUVELFNBQVM7UUFBRTs7MEJBRXRCLDhEQUFDRTtnQkFBR0osV0FBVTswQkFBMkY7Ozs7OzswQkFJekcsOERBQUNEO2dCQUFJQyxXQUFVOzBCQUNWTixNQUFNVyxHQUFHLENBQUMsQ0FBQ0MsTUFBTUMsb0JBQ2QsOERBQUNqQixpREFBTUEsQ0FBQ1MsR0FBRzt3QkFFUEMsV0FBVTt3QkFDVkMsU0FBUzs0QkFBRU8sT0FBTzs0QkFBR0MsU0FBUzt3QkFBSTt3QkFDbENOLFNBQVM7NEJBQUVLLE9BQU87NEJBQUdDLFNBQVM7d0JBQUU7d0JBQ2hDQyxZQUFZOzRCQUNSQyxPQUFPSixNQUFNOzRCQUNiSyxNQUFNOzRCQUNOQyxXQUFXOzRCQUNYQyxTQUFTO3dCQUNiO2tDQUVBLDRFQUFDdEIsbURBQUtBOzRCQUNGdUIsS0FBS1QsT0FBTywyQ0FBMkM7NEJBQ3ZEVSxLQUFLVixPQUFPLGFBQVU7NEJBQ3RCVyxJQUFJOzRCQUNKakIsV0FBVTs7Ozs7O3VCQWZUTzs7Ozs7Ozs7OzswQkFxQmpCLDhEQUFDakIsaURBQU1BLENBQUNTLEdBQUc7Z0JBQ1BDLFdBQVU7Z0JBQ1ZDLFNBQVM7b0JBQUVDLFNBQVM7Z0JBQUU7Z0JBQ3RCQyxTQUFTO29CQUFFRCxTQUFTO2dCQUFFO2dCQUN0QlEsWUFBWTtvQkFBRUMsT0FBT2pCLE1BQU13QixNQUFNLEdBQUcsTUFBTTtnQkFBSTswQkFFOUMsNEVBQUNDO29CQUFLbkIsV0FBVTs4QkFBZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSWhEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Ly4vc3JjL2NvbXBvbmVudHMvTWlzc2lvblJldmVhbC50c3g/Nzk2ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb3Rpb24gfSBmcm9tICdmcmFtZXItbW90aW9uJztcbmltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBJbWFnZSBmcm9tICduZXh0L2ltYWdlJztcblxuaW50ZXJmYWNlIE1pc3Npb25SZXZlYWxQcm9wcyB7XG4gICAgdm90ZXM6IGJvb2xlYW5bXTtcbiAgICBvbkZpbmlzaGVkPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWlzc2lvblJldmVhbCh7IHZvdGVzLCBvbkZpbmlzaGVkIH06IE1pc3Npb25SZXZlYWxQcm9wcykge1xuICAgIC8vIFRpbWVyIGRlIHNlZ3VyaWRhZDogNSBzZWd1bmRvcyB5IGF2YW56YVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAob25GaW5pc2hlZCkgb25GaW5pc2hlZCgpO1xuICAgICAgICB9LCA1MDAwKTtcblxuICAgICAgICByZXR1cm4gKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICB9LCBbb25GaW5pc2hlZF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctYmxhY2svOTUgei01MCBwb2ludGVyLWV2ZW50cy1hdXRvXCJcbiAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCB9fVxuICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxIH19XG4gICAgICAgID5cbiAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0xMiB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IGRyb3Atc2hhZG93LWxnIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgUmVzdWx0YWRvIGRlIGxhIG1pc2nDs25cbiAgICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBnYXAtNCBqdXN0aWZ5LWNlbnRlciBtYi0xMiBmbGV4LXdyYXAgbWF4LXctWzkwdnddXCI+XG4gICAgICAgICAgICAgICAge3ZvdGVzLm1hcCgodm90ZSwgaWR4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2lkeH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctMzIgaC00OCByb3VuZGVkLXhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHNoYWRvdy0yeGwgcmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgc2NhbGU6IDAsIHJvdGF0ZVk6IDE4MCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBzY2FsZTogMSwgcm90YXRlWTogMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5OiBpZHggKiAwLjMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzcHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlmZm5lc3M6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW1waW5nOiAyMFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXt2b3RlID8gJy9hc3NldHMvaW1hZ2VzL3Rva2Vucy92b3RlX2FwcHJvdmUucG5nJyA6ICcvYXNzZXRzL2ltYWdlcy90b2tlbnMvdm90ZV9yZWplY3QucG5nJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9e3ZvdGUgPyAnw4l4aXRvJyA6ICdTYWJvdGFqZSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm9iamVjdC1jb250YWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtd2hpdGUgdGV4dC14bCBmb250LW1vbm8gbXQtOCB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxIH19XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkZWxheTogdm90ZXMubGVuZ3RoICogMC4zICsgMC41IH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYW5pbWF0ZS1wdWxzZVwiPkFuYWxpemFuZG8gcmVzdWx0YWRvIGVzdHJhdMOpZ2ljby4uLjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICk7XG59XG4iXSwibmFtZXMiOlsibW90aW9uIiwidXNlRWZmZWN0IiwiSW1hZ2UiLCJNaXNzaW9uUmV2ZWFsIiwidm90ZXMiLCJvbkZpbmlzaGVkIiwidGltZXIiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiZGl2IiwiY2xhc3NOYW1lIiwiaW5pdGlhbCIsIm9wYWNpdHkiLCJhbmltYXRlIiwiaDIiLCJtYXAiLCJ2b3RlIiwiaWR4Iiwic2NhbGUiLCJyb3RhdGVZIiwidHJhbnNpdGlvbiIsImRlbGF5IiwidHlwZSIsInN0aWZmbmVzcyIsImRhbXBpbmciLCJzcmMiLCJhbHQiLCJmaWxsIiwibGVuZ3RoIiwic3BhbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/MissionReveal.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/VictoryScreen.tsx":
+/*!******************************************!*\
+ !*** ./src/components/VictoryScreen.tsx ***!
+ \******************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ VictoryScreen)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/motion.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _shared_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../shared/types */ \"(ssr)/../shared/types.ts\");\n\n\n\n\nfunction VictoryScreen({ gameState, isHost, onRestart, onFinalize }) {\n const [timeLeft, setTimeLeft] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(30);\n const isNazisWin = gameState.winner === _shared_types__WEBPACK_IMPORTED_MODULE_2__.Faction.ALEMANES;\n // Timer de 30 segundos\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const timer = setInterval(()=>{\n setTimeLeft((prev)=>{\n if (prev <= 1) {\n // Se acabó el tiempo, finalizar automáticamente\n onFinalize();\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n return ()=>clearInterval(timer);\n }, [\n onFinalize\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_3__.motion.div, {\n className: \"fixed inset-0 flex flex-col items-center justify-center z-50 relative\",\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_3__.motion.div, {\n className: \"text-center mb-12 relative z-10\",\n initial: {\n scale: 0\n },\n animate: {\n scale: 1\n },\n transition: {\n type: \"spring\",\n stiffness: 200,\n delay: 0.2\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: `text-[4rem] md:text-[4.5rem] font-bold mb-4 drop-shadow-[0_4px_8px_rgba(0,0,0,0.9)] ${isNazisWin ? \"text-red-600\" : \"text-blue-500\"}`,\n children: isNazisWin ? \"\\xa1VICTORIA NAZI!\" : \"\\xa1VICTORIA ALIADA!\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 46,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl text-white drop-shadow-[0_4px_8px_rgba(0,0,0,0.9)] font-bold\",\n children: isNazisWin ? \"Los Nazis han conquistado Francia\" : \"La Resistencia ha triunfado\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 49,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 40,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_3__.motion.div, {\n className: \"bg-black/70 p-8 rounded-xl border-2 border-white/30 mb-8 max-w-2xl relative z-10 backdrop-blur-sm\",\n initial: {\n y: 50,\n opacity: 0\n },\n animate: {\n y: 0,\n opacity: 1\n },\n transition: {\n delay: 0.5\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 gap-6 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-300 text-sm uppercase mb-2 font-bold\",\n children: \"Misiones Exitosas\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 63,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-4xl font-bold text-blue-400\",\n children: gameState.questResults.filter((r)=>r === true).length\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 64,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 62,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-300 text-sm uppercase mb-2 font-bold\",\n children: \"Misiones Fracasadas\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 69,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-4xl font-bold text-red-400\",\n children: gameState.questResults.filter((r)=>r === false).length\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 70,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 68,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 61,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 55,\n columnNumber: 13\n }, this),\n isHost ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_3__.motion.div, {\n className: \"flex flex-col items-center gap-4 relative z-10\",\n initial: {\n y: 50,\n opacity: 0\n },\n animate: {\n y: 0,\n opacity: 1\n },\n transition: {\n delay: 1\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-yellow-400 font-bold text-2xl mb-2 drop-shadow-[0_2px_4px_rgba(0,0,0,0.9)] bg-black/50 px-6 py-2 rounded-full\",\n children: [\n \"⏱️ Tiempo restante: \",\n timeLeft,\n \"s\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 85,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_3__.motion.button, {\n onClick: onRestart,\n className: \"bg-green-600 hover:bg-green-500 text-white font-bold py-3 px-6 rounded-xl text-lg shadow-2xl border-2 border-green-400\",\n whileHover: {\n scale: 1.1\n },\n whileTap: {\n scale: 0.95\n },\n children: \"\\uD83D\\uDD04 NUEVA PARTIDA\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 89,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_3__.motion.button, {\n onClick: onFinalize,\n className: \"bg-red-600 hover:bg-red-500 text-white font-bold py-3 px-6 rounded-xl text-lg shadow-2xl border-2 border-red-400\",\n whileHover: {\n scale: 1.1\n },\n whileTap: {\n scale: 0.95\n },\n children: \"❌ TERMINAR\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 97,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 88,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-white text-base mt-2 bg-black/60 px-6 py-2 rounded-full drop-shadow-[0_2px_4px_rgba(0,0,0,0.9)]\",\n children: \"Si no decides, la partida terminar\\xe1 autom\\xe1ticamente\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 106,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 79,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_3__.motion.div, {\n className: \"text-center relative z-10\",\n initial: {\n y: 50,\n opacity: 0\n },\n animate: {\n y: 0,\n opacity: 1\n },\n transition: {\n delay: 1\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-white text-2xl font-mono bg-black/50 px-8 py-4 rounded-full border border-white/20 animate-pulse\",\n children: \"Esperando decisi\\xf3n del comandante...\"\n }, void 0, false, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 117,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-500 text-sm mt-4\",\n children: [\n \"Tiempo restante: \",\n timeLeft,\n \"s\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 120,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 111,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/components/VictoryScreen.tsx\",\n lineNumber: 34,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9WaWN0b3J5U2NyZWVuLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUF1QztBQUNLO0FBRWU7QUFTNUMsU0FBU0ksY0FBYyxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEVBQXNCO0lBQ2xHLE1BQU0sQ0FBQ0MsVUFBVUMsWUFBWSxHQUFHVCwrQ0FBUUEsQ0FBQztJQUN6QyxNQUFNVSxhQUFhTixVQUFVTyxNQUFNLEtBQUtULGtEQUFPQSxDQUFDVSxRQUFRO0lBRXhELHVCQUF1QjtJQUN2QlgsZ0RBQVNBLENBQUM7UUFDTixNQUFNWSxRQUFRQyxZQUFZO1lBQ3RCTCxZQUFZTSxDQUFBQTtnQkFDUixJQUFJQSxRQUFRLEdBQUc7b0JBQ1gsZ0RBQWdEO29CQUNoRFI7b0JBQ0EsT0FBTztnQkFDWDtnQkFDQSxPQUFPUSxPQUFPO1lBQ2xCO1FBQ0osR0FBRztRQUVILE9BQU8sSUFBTUMsY0FBY0g7SUFDL0IsR0FBRztRQUFDTjtLQUFXO0lBRWYscUJBQ0ksOERBQUNSLGlEQUFNQSxDQUFDa0IsR0FBRztRQUNQQyxXQUFVO1FBQ1ZDLFNBQVM7WUFBRUMsU0FBUztRQUFFO1FBQ3RCQyxTQUFTO1lBQUVELFNBQVM7UUFBRTs7MEJBR3RCLDhEQUFDckIsaURBQU1BLENBQUNrQixHQUFHO2dCQUNQQyxXQUFVO2dCQUNWQyxTQUFTO29CQUFFRyxPQUFPO2dCQUFFO2dCQUNwQkQsU0FBUztvQkFBRUMsT0FBTztnQkFBRTtnQkFDcEJDLFlBQVk7b0JBQUVDLE1BQU07b0JBQVVDLFdBQVc7b0JBQUtDLE9BQU87Z0JBQUk7O2tDQUV6RCw4REFBQ0M7d0JBQUdULFdBQVcsQ0FBQyxvRkFBb0YsRUFBRVIsYUFBYSxpQkFBaUIsZ0JBQWdCLENBQUM7a0NBQ2hKQSxhQUFhLHVCQUFvQjs7Ozs7O2tDQUV0Qyw4REFBQ2tCO3dCQUFFVixXQUFVO2tDQUNSUixhQUFhLHNDQUFzQzs7Ozs7Ozs7Ozs7OzBCQUs1RCw4REFBQ1gsaURBQU1BLENBQUNrQixHQUFHO2dCQUNQQyxXQUFVO2dCQUNWQyxTQUFTO29CQUFFVSxHQUFHO29CQUFJVCxTQUFTO2dCQUFFO2dCQUM3QkMsU0FBUztvQkFBRVEsR0FBRztvQkFBR1QsU0FBUztnQkFBRTtnQkFDNUJHLFlBQVk7b0JBQUVHLE9BQU87Z0JBQUk7MEJBRXpCLDRFQUFDVDtvQkFBSUMsV0FBVTs7c0NBQ1gsOERBQUNEOzs4Q0FDRyw4REFBQ1c7b0NBQUVWLFdBQVU7OENBQWlEOzs7Ozs7OENBQzlELDhEQUFDVTtvQ0FBRVYsV0FBVTs4Q0FDUmQsVUFBVTBCLFlBQVksQ0FBQ0MsTUFBTSxDQUFDQyxDQUFBQSxJQUFLQSxNQUFNLE1BQU1DLE1BQU07Ozs7Ozs7Ozs7OztzQ0FHOUQsOERBQUNoQjs7OENBQ0csOERBQUNXO29DQUFFVixXQUFVOzhDQUFpRDs7Ozs7OzhDQUM5RCw4REFBQ1U7b0NBQUVWLFdBQVU7OENBQ1JkLFVBQVUwQixZQUFZLENBQUNDLE1BQU0sQ0FBQ0MsQ0FBQUEsSUFBS0EsTUFBTSxPQUFPQyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQU90RTVCLHVCQUNHLDhEQUFDTixpREFBTUEsQ0FBQ2tCLEdBQUc7Z0JBQ1BDLFdBQVU7Z0JBQ1ZDLFNBQVM7b0JBQUVVLEdBQUc7b0JBQUlULFNBQVM7Z0JBQUU7Z0JBQzdCQyxTQUFTO29CQUFFUSxHQUFHO29CQUFHVCxTQUFTO2dCQUFFO2dCQUM1QkcsWUFBWTtvQkFBRUcsT0FBTztnQkFBRTs7a0NBRXZCLDhEQUFDRTt3QkFBRVYsV0FBVTs7NEJBQXFIOzRCQUN6R1Y7NEJBQVM7Ozs7Ozs7a0NBRWxDLDhEQUFDUzt3QkFBSUMsV0FBVTs7MENBQ1gsOERBQUNuQixpREFBTUEsQ0FBQ21DLE1BQU07Z0NBQ1ZDLFNBQVM3QjtnQ0FDVFksV0FBVTtnQ0FDVmtCLFlBQVk7b0NBQUVkLE9BQU87Z0NBQUk7Z0NBQ3pCZSxVQUFVO29DQUFFZixPQUFPO2dDQUFLOzBDQUMzQjs7Ozs7OzBDQUdELDhEQUFDdkIsaURBQU1BLENBQUNtQyxNQUFNO2dDQUNWQyxTQUFTNUI7Z0NBQ1RXLFdBQVU7Z0NBQ1ZrQixZQUFZO29DQUFFZCxPQUFPO2dDQUFJO2dDQUN6QmUsVUFBVTtvQ0FBRWYsT0FBTztnQ0FBSzswQ0FDM0I7Ozs7Ozs7Ozs7OztrQ0FJTCw4REFBQ007d0JBQUVWLFdBQVU7a0NBQXVHOzs7Ozs7Ozs7OztxQ0FLeEgsOERBQUNuQixpREFBTUEsQ0FBQ2tCLEdBQUc7Z0JBQ1BDLFdBQVU7Z0JBQ1ZDLFNBQVM7b0JBQUVVLEdBQUc7b0JBQUlULFNBQVM7Z0JBQUU7Z0JBQzdCQyxTQUFTO29CQUFFUSxHQUFHO29CQUFHVCxTQUFTO2dCQUFFO2dCQUM1QkcsWUFBWTtvQkFBRUcsT0FBTztnQkFBRTs7a0NBRXZCLDhEQUFDRTt3QkFBRVYsV0FBVTtrQ0FBd0c7Ozs7OztrQ0FHckgsOERBQUNVO3dCQUFFVixXQUFVOzs0QkFBNkI7NEJBQ3BCVjs0QkFBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1uRCIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8uL3NyYy9jb21wb25lbnRzL1ZpY3RvcnlTY3JlZW4udHN4PzAxMmMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEltYWdlIGZyb20gJ25leHQvaW1hZ2UnO1xuaW1wb3J0IHsgR2FtZVN0YXRlLCBGYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuaW50ZXJmYWNlIFZpY3RvcnlTY3JlZW5Qcm9wcyB7XG4gICAgZ2FtZVN0YXRlOiBHYW1lU3RhdGU7XG4gICAgaXNIb3N0OiBib29sZWFuO1xuICAgIG9uUmVzdGFydDogKCkgPT4gdm9pZDtcbiAgICBvbkZpbmFsaXplOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBWaWN0b3J5U2NyZWVuKHsgZ2FtZVN0YXRlLCBpc0hvc3QsIG9uUmVzdGFydCwgb25GaW5hbGl6ZSB9OiBWaWN0b3J5U2NyZWVuUHJvcHMpIHtcbiAgICBjb25zdCBbdGltZUxlZnQsIHNldFRpbWVMZWZ0XSA9IHVzZVN0YXRlKDMwKTtcbiAgICBjb25zdCBpc05hemlzV2luID0gZ2FtZVN0YXRlLndpbm5lciA9PT0gRmFjdGlvbi5BTEVNQU5FUztcblxuICAgIC8vIFRpbWVyIGRlIDMwIHNlZ3VuZG9zXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgdGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lTGVmdChwcmV2ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocHJldiA8PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNlIGFjYWLDsyBlbCB0aWVtcG8sIGZpbmFsaXphciBhdXRvbcOhdGljYW1lbnRlXG4gICAgICAgICAgICAgICAgICAgIG9uRmluYWxpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2IC0gMTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCAxMDAwKTtcblxuICAgICAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbCh0aW1lcik7XG4gICAgfSwgW29uRmluYWxpemVdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHotNTAgcmVsYXRpdmVcIlxuICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgPlxuICAgICAgICAgICAgey8qIFTDrXR1bG8gZGUgdmljdG9yaWEgKi99XG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIG1iLTEyIHJlbGF0aXZlIHotMTBcIlxuICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgc2NhbGU6IDAgfX1cbiAgICAgICAgICAgICAgICBhbmltYXRlPXt7IHNjYWxlOiAxIH19XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyB0eXBlOiAnc3ByaW5nJywgc3RpZmZuZXNzOiAyMDAsIGRlbGF5OiAwLjIgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPXtgdGV4dC1bNHJlbV0gbWQ6dGV4dC1bNC41cmVtXSBmb250LWJvbGQgbWItNCBkcm9wLXNoYWRvdy1bMF80cHhfOHB4X3JnYmEoMCwwLDAsMC45KV0gJHtpc05hemlzV2luID8gJ3RleHQtcmVkLTYwMCcgOiAndGV4dC1ibHVlLTUwMCd9YH0+XG4gICAgICAgICAgICAgICAgICAgIHtpc05hemlzV2luID8gJ8KhVklDVE9SSUEgTkFaSSEnIDogJ8KhVklDVE9SSUEgQUxJQURBISd9XG4gICAgICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTN4bCB0ZXh0LXdoaXRlIGRyb3Atc2hhZG93LVswXzRweF84cHhfcmdiYSgwLDAsMCwwLjkpXSBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAge2lzTmF6aXNXaW4gPyAnTG9zIE5hemlzIGhhbiBjb25xdWlzdGFkbyBGcmFuY2lhJyA6ICdMYSBSZXNpc3RlbmNpYSBoYSB0cml1bmZhZG8nfVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cblxuICAgICAgICAgICAgey8qIEluZm9ybWFjacOzbiBkZWwganVlZ28gKi99XG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLWJsYWNrLzcwIHAtOCByb3VuZGVkLXhsIGJvcmRlci0yIGJvcmRlci13aGl0ZS8zMCBtYi04IG1heC13LTJ4bCByZWxhdGl2ZSB6LTEwIGJhY2tkcm9wLWJsdXItc21cIlxuICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgeTogNTAsIG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgICAgICBhbmltYXRlPXt7IHk6IDAsIG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGRlbGF5OiAwLjUgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTYgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgdGV4dC1zbSB1cHBlcmNhc2UgbWItMiBmb250LWJvbGRcIj5NaXNpb25lcyBFeGl0b3NhczwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtNHhsIGZvbnQtYm9sZCB0ZXh0LWJsdWUtNDAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2dhbWVTdGF0ZS5xdWVzdFJlc3VsdHMuZmlsdGVyKHIgPT4gciA9PT0gdHJ1ZSkubGVuZ3RofVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS0zMDAgdGV4dC1zbSB1cHBlcmNhc2UgbWItMiBmb250LWJvbGRcIj5NaXNpb25lcyBGcmFjYXNhZGFzPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC00eGwgZm9udC1ib2xkIHRleHQtcmVkLTQwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtnYW1lU3RhdGUucXVlc3RSZXN1bHRzLmZpbHRlcihyID0+IHIgPT09IGZhbHNlKS5sZW5ndGh9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuXG4gICAgICAgICAgICB7LyogQm90b25lcyBwYXJhIGVsIGhvc3QgKi99XG4gICAgICAgICAgICB7aXNIb3N0ID8gKFxuICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC00IHJlbGF0aXZlIHotMTBcIlxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IHk6IDUwLCBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgeTogMCwgb3BhY2l0eTogMSB9fVxuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGRlbGF5OiAxIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXllbGxvdy00MDAgZm9udC1ib2xkIHRleHQtMnhsIG1iLTIgZHJvcC1zaGFkb3ctWzBfMnB4XzRweF9yZ2JhKDAsMCwwLDAuOSldIGJnLWJsYWNrLzUwIHB4LTYgcHktMiByb3VuZGVkLWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIOKPse+4jyBUaWVtcG8gcmVzdGFudGU6IHt0aW1lTGVmdH1zXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUmVzdGFydH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1ncmVlbi02MDAgaG92ZXI6YmctZ3JlZW4tNTAwIHRleHQtd2hpdGUgZm9udC1ib2xkIHB5LTMgcHgtNiByb3VuZGVkLXhsIHRleHQtbGcgc2hhZG93LTJ4bCBib3JkZXItMiBib3JkZXItZ3JlZW4tNDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZUhvdmVyPXt7IHNjYWxlOiAxLjEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZVRhcD17eyBzY2FsZTogMC45NSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIPCflIQgTlVFVkEgUEFSVElEQVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkZpbmFsaXplfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXJlZC02MDAgaG92ZXI6YmctcmVkLTUwMCB0ZXh0LXdoaXRlIGZvbnQtYm9sZCBweS0zIHB4LTYgcm91bmRlZC14bCB0ZXh0LWxnIHNoYWRvdy0yeGwgYm9yZGVyLTIgYm9yZGVyLXJlZC00MDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlSG92ZXI9e3sgc2NhbGU6IDEuMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlVGFwPXt7IHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg4p2MIFRFUk1JTkFSXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXdoaXRlIHRleHQtYmFzZSBtdC0yIGJnLWJsYWNrLzYwIHB4LTYgcHktMiByb3VuZGVkLWZ1bGwgZHJvcC1zaGFkb3ctWzBfMnB4XzRweF9yZ2JhKDAsMCwwLDAuOSldXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBTaSBubyBkZWNpZGVzLCBsYSBwYXJ0aWRhIHRlcm1pbmFyw6EgYXV0b23DoXRpY2FtZW50ZVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciByZWxhdGl2ZSB6LTEwXCJcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyB5OiA1MCwgb3BhY2l0eTogMCB9fVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IHk6IDAsIG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkZWxheTogMSB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC13aGl0ZSB0ZXh0LTJ4bCBmb250LW1vbm8gYmctYmxhY2svNTAgcHgtOCBweS00IHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLXdoaXRlLzIwIGFuaW1hdGUtcHVsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEVzcGVyYW5kbyBkZWNpc2nDs24gZGVsIGNvbWFuZGFudGUuLi5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNTAwIHRleHQtc20gbXQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVGllbXBvIHJlc3RhbnRlOiB7dGltZUxlZnR9c1xuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICk7XG59XG4iXSwibmFtZXMiOlsibW90aW9uIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJGYWN0aW9uIiwiVmljdG9yeVNjcmVlbiIsImdhbWVTdGF0ZSIsImlzSG9zdCIsIm9uUmVzdGFydCIsIm9uRmluYWxpemUiLCJ0aW1lTGVmdCIsInNldFRpbWVMZWZ0IiwiaXNOYXppc1dpbiIsIndpbm5lciIsIkFMRU1BTkVTIiwidGltZXIiLCJzZXRJbnRlcnZhbCIsInByZXYiLCJjbGVhckludGVydmFsIiwiZGl2IiwiY2xhc3NOYW1lIiwiaW5pdGlhbCIsIm9wYWNpdHkiLCJhbmltYXRlIiwic2NhbGUiLCJ0cmFuc2l0aW9uIiwidHlwZSIsInN0aWZmbmVzcyIsImRlbGF5IiwiaDEiLCJwIiwieSIsInF1ZXN0UmVzdWx0cyIsImZpbHRlciIsInIiLCJsZW5ndGgiLCJidXR0b24iLCJvbkNsaWNrIiwid2hpbGVIb3ZlciIsIndoaWxlVGFwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/VictoryScreen.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/hooks/useSessionStorage.ts":
+/*!****************************************!*\
+ !*** ./src/hooks/useSessionStorage.ts ***!
+ \****************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSessionStorage: () => (/* binding */ useSessionStorage)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction useSessionStorage() {\n const [session, setSession] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n // Cargar sesión al iniciar\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n const savedSession = localStorage.getItem(\"resistencia_session\");\n if (savedSession) {\n try {\n const parsed = JSON.parse(savedSession);\n setSession(parsed);\n } catch (e) {\n console.error(\"Error parsing session:\", e);\n localStorage.removeItem(\"resistencia_session\");\n }\n }\n }, []);\n // Guardar sesión\n const saveSession = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((data)=>{\n localStorage.setItem(\"resistencia_session\", JSON.stringify(data));\n setSession(data);\n }, []);\n // Actualizar sesión parcialmente\n const updateSession = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((partial)=>{\n setSession((prev)=>{\n if (!prev) return null;\n const updated = {\n ...prev,\n ...partial\n };\n localStorage.setItem(\"resistencia_session\", JSON.stringify(updated));\n return updated;\n });\n }, []);\n // Limpiar sesión\n const clearSession = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{\n localStorage.removeItem(\"resistencia_session\");\n setSession(null);\n }, []);\n return {\n session,\n saveSession,\n updateSession,\n clearSession\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvaG9va3MvdXNlU2Vzc2lvblN0b3JhZ2UudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXlEO0FBU2xELFNBQVNHO0lBQ1osTUFBTSxDQUFDQyxTQUFTQyxXQUFXLEdBQUdMLCtDQUFRQSxDQUFxQjtJQUUzRCwyQkFBMkI7SUFDM0JDLGdEQUFTQSxDQUFDO1FBQ04sTUFBTUssZUFBZUMsYUFBYUMsT0FBTyxDQUFDO1FBQzFDLElBQUlGLGNBQWM7WUFDZCxJQUFJO2dCQUNBLE1BQU1HLFNBQVNDLEtBQUtDLEtBQUssQ0FBQ0w7Z0JBQzFCRCxXQUFXSTtZQUNmLEVBQUUsT0FBT0csR0FBRztnQkFDUkMsUUFBUUMsS0FBSyxDQUFDLDBCQUEwQkY7Z0JBQ3hDTCxhQUFhUSxVQUFVLENBQUM7WUFDNUI7UUFDSjtJQUNKLEdBQUcsRUFBRTtJQUVMLGlCQUFpQjtJQUNqQixNQUFNQyxjQUFjZCxrREFBV0EsQ0FBQyxDQUFDZTtRQUM3QlYsYUFBYVcsT0FBTyxDQUFDLHVCQUF1QlIsS0FBS1MsU0FBUyxDQUFDRjtRQUMzRFosV0FBV1k7SUFDZixHQUFHLEVBQUU7SUFFTCxpQ0FBaUM7SUFDakMsTUFBTUcsZ0JBQWdCbEIsa0RBQVdBLENBQUMsQ0FBQ21CO1FBQy9CaEIsV0FBV2lCLENBQUFBO1lBQ1AsSUFBSSxDQUFDQSxNQUFNLE9BQU87WUFDbEIsTUFBTUMsVUFBVTtnQkFBRSxHQUFHRCxJQUFJO2dCQUFFLEdBQUdELE9BQU87WUFBQztZQUN0Q2QsYUFBYVcsT0FBTyxDQUFDLHVCQUF1QlIsS0FBS1MsU0FBUyxDQUFDSTtZQUMzRCxPQUFPQTtRQUNYO0lBQ0osR0FBRyxFQUFFO0lBRUwsaUJBQWlCO0lBQ2pCLE1BQU1DLGVBQWV0QixrREFBV0EsQ0FBQztRQUM3QkssYUFBYVEsVUFBVSxDQUFDO1FBQ3hCVixXQUFXO0lBQ2YsR0FBRyxFQUFFO0lBRUwsT0FBTztRQUNIRDtRQUNBWTtRQUNBSTtRQUNBSTtJQUNKO0FBQ0oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9yZXNpc3RlbmNpYS1jbGllbnQvLi9zcmMvaG9va3MvdXNlU2Vzc2lvblN0b3JhZ2UudHM/ZTczNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcblxuaW50ZXJmYWNlIFNlc3Npb25EYXRhIHtcbiAgICBwbGF5ZXJOYW1lOiBzdHJpbmc7XG4gICAgZnVsbFBsYXllck5hbWU6IHN0cmluZztcbiAgICBjdXJyZW50VmlldzogJ2xvZ2luJyB8ICdsb2JieScgfCAnZ2FtZSc7XG4gICAgcm9vbUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2Vzc2lvblN0b3JhZ2UoKSB7XG4gICAgY29uc3QgW3Nlc3Npb24sIHNldFNlc3Npb25dID0gdXNlU3RhdGU8U2Vzc2lvbkRhdGEgfCBudWxsPihudWxsKTtcblxuICAgIC8vIENhcmdhciBzZXNpw7NuIGFsIGluaWNpYXJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBzYXZlZFNlc3Npb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVzaXN0ZW5jaWFfc2Vzc2lvbicpO1xuICAgICAgICBpZiAoc2F2ZWRTZXNzaW9uKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2Uoc2F2ZWRTZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBzZXRTZXNzaW9uKHBhcnNlZCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBzZXNzaW9uOicsIGUpO1xuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdyZXNpc3RlbmNpYV9zZXNzaW9uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICAvLyBHdWFyZGFyIHNlc2nDs25cbiAgICBjb25zdCBzYXZlU2Vzc2lvbiA9IHVzZUNhbGxiYWNrKChkYXRhOiBTZXNzaW9uRGF0YSkgPT4ge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncmVzaXN0ZW5jaWFfc2Vzc2lvbicsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgc2V0U2Vzc2lvbihkYXRhKTtcbiAgICB9LCBbXSk7XG5cbiAgICAvLyBBY3R1YWxpemFyIHNlc2nDs24gcGFyY2lhbG1lbnRlXG4gICAgY29uc3QgdXBkYXRlU2Vzc2lvbiA9IHVzZUNhbGxiYWNrKChwYXJ0aWFsOiBQYXJ0aWFsPFNlc3Npb25EYXRhPikgPT4ge1xuICAgICAgICBzZXRTZXNzaW9uKHByZXYgPT4ge1xuICAgICAgICAgICAgaWYgKCFwcmV2KSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWQgPSB7IC4uLnByZXYsIC4uLnBhcnRpYWwgfTtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdyZXNpc3RlbmNpYV9zZXNzaW9uJywgSlNPTi5zdHJpbmdpZnkodXBkYXRlZCkpO1xuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcblxuICAgIC8vIExpbXBpYXIgc2VzacOzblxuICAgIGNvbnN0IGNsZWFyU2Vzc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Jlc2lzdGVuY2lhX3Nlc3Npb24nKTtcbiAgICAgICAgc2V0U2Vzc2lvbihudWxsKTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzZXNzaW9uLFxuICAgICAgICBzYXZlU2Vzc2lvbixcbiAgICAgICAgdXBkYXRlU2Vzc2lvbixcbiAgICAgICAgY2xlYXJTZXNzaW9uXG4gICAgfTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwidXNlU2Vzc2lvblN0b3JhZ2UiLCJzZXNzaW9uIiwic2V0U2Vzc2lvbiIsInNhdmVkU2Vzc2lvbiIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJwYXJzZWQiLCJKU09OIiwicGFyc2UiLCJlIiwiY29uc29sZSIsImVycm9yIiwicmVtb3ZlSXRlbSIsInNhdmVTZXNzaW9uIiwiZGF0YSIsInNldEl0ZW0iLCJzdHJpbmdpZnkiLCJ1cGRhdGVTZXNzaW9uIiwicGFydGlhbCIsInByZXYiLCJ1cGRhdGVkIiwiY2xlYXJTZXNzaW9uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/hooks/useSessionStorage.ts\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/hooks/useSocket.ts":
+/*!********************************!*\
+ !*** ./src/hooks/useSocket.ts ***!
+ \********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSocket: () => (/* binding */ useSocket)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! socket.io-client */ \"(ssr)/./node_modules/socket.io-client/build/esm-debug/index.js\");\n\n\nconst SOCKET_URL = \"http://192.168.1.131:4000\" || 0;\nconst useSocket = ()=>{\n const [socket, setSocket] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n const [gameState, setGameState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n const [isConnected, setIsConnected] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n const [roomsList, setRoomsList] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n const socketInstance = (0,socket_io_client__WEBPACK_IMPORTED_MODULE_1__.io)(SOCKET_URL);\n socketInstance.on(\"connect\", ()=>{\n console.log(\"[SOCKET] Conectado exitosamente\");\n setIsConnected(true);\n });\n socketInstance.on(\"disconnect\", ()=>{\n console.log(\"[SOCKET] Desconectado del servidor\");\n setIsConnected(false);\n });\n socketInstance.on(\"game_state\", (newState)=>{\n setGameState(newState);\n });\n socketInstance.on(\"rooms_list\", (rooms)=>{\n setRoomsList(rooms);\n });\n socketInstance.on(\"game_joined\", ({ state })=>{\n setGameState(state);\n });\n socketInstance.on(\"error\", (msg)=>{\n console.error(\"[SOCKET ERROR]\", msg);\n // Evitamos alert() por ser mala práctica en producción y disparar linters\n });\n socketInstance.on(\"game_finalized\", ()=>{\n setGameState(null);\n });\n socketInstance.on(\"player_left_game\", ({ playerName })=>{\n console.log(`[INFO] Agente ${playerName} fuera de combate.`);\n });\n setSocket(socketInstance);\n return ()=>{\n socketInstance.disconnect();\n };\n }, []);\n const actions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>({\n createGame: (hostName, maxPlayers, password)=>{\n socket?.emit(\"create_game\", {\n hostName,\n maxPlayers,\n password\n });\n },\n joinGame: (roomId, playerName, password)=>{\n socket?.emit(\"join_game\", {\n roomId,\n playerName,\n password\n });\n },\n refreshRooms: ()=>{\n socket?.emit(\"get_rooms\");\n },\n startGame: ()=>{\n socket?.emit(\"start_game\", {\n roomId: gameState?.roomId\n });\n },\n proposeTeam: (teamIds)=>{\n socket?.emit(\"propose_team\", {\n roomId: gameState?.roomId,\n teamIds\n });\n },\n voteTeam: (approve)=>{\n socket?.emit(\"vote_team\", {\n roomId: gameState?.roomId,\n approve\n });\n },\n voteMission: (success)=>{\n socket?.emit(\"vote_mission\", {\n roomId: gameState?.roomId,\n success\n });\n },\n voteLeader: (approve)=>socket?.emit(\"vote_leader\", {\n roomId: gameState?.roomId,\n approve\n }),\n assassinKill: (targetId)=>{\n socket?.emit(\"assassin_kill\", {\n roomId: gameState?.roomId,\n targetId\n });\n },\n leaveGame: ()=>{\n socket?.emit(\"leave_game\", {\n roomId: gameState?.roomId\n });\n },\n reconnectSession: (sessionData)=>{\n socket?.emit(\"reconnect_session\", sessionData);\n },\n finishIntro: ()=>socket?.emit(\"finish_intro\", {\n roomId: gameState?.roomId\n }),\n finishReveal: ()=>socket?.emit(\"finish_reveal\", {\n roomId: gameState?.roomId\n }),\n finishRollCall: ()=>socket?.emit(\"finish_roll_call\", {\n roomId: gameState?.roomId\n }),\n finishMissionReveal: ()=>socket?.emit(\"finish_reveal\", {\n roomId: gameState?.roomId\n }),\n finishMissionResult: ()=>socket?.emit(\"finish_mission_result\", {\n roomId: gameState?.roomId\n }),\n restartGame: ()=>socket?.emit(\"restart_game\", {\n roomId: gameState?.roomId\n }),\n finalizeGame: ()=>socket?.emit(\"finalize_game\", {\n roomId: gameState?.roomId\n })\n }), [\n socket,\n gameState?.roomId\n ]);\n return {\n socket,\n isConnected,\n gameState,\n roomsList,\n actions\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQUNDO2dCQUNmeEMsUUFBUXdCLEtBQUsscUJBQXFCZ0I7WUFDdEM7WUFDQUMsYUFBYSxJQUFNekMsUUFBUXdCLEtBQUssZ0JBQWdCO29CQUFFRSxRQUFReEIsV0FBV3dCO2dCQUFPO1lBQzVFZ0IsY0FBYyxJQUFNMUMsUUFBUXdCLEtBQUssaUJBQWlCO29CQUFFRSxRQUFReEIsV0FBV3dCO2dCQUFPO1lBQzlFaUIsZ0JBQWdCLElBQU0zQyxRQUFRd0IsS0FBSyxvQkFBb0I7b0JBQUVFLFFBQVF4QixXQUFXd0I7Z0JBQU87WUFDbkZrQixxQkFBcUIsSUFBTTVDLFFBQVF3QixLQUFLLGlCQUFpQjtvQkFBRUUsUUFBUXhCLFdBQVd3QjtnQkFBTztZQUNyRm1CLHFCQUFxQixJQUFNN0MsUUFBUXdCLEtBQUsseUJBQXlCO29CQUFFRSxRQUFReEIsV0FBV3dCO2dCQUFPO1lBQzdGb0IsYUFBYSxJQUFNOUMsUUFBUXdCLEtBQUssZ0JBQWdCO29CQUFFRSxRQUFReEIsV0FBV3dCO2dCQUFPO1lBQzVFcUIsY0FBYyxJQUFNL0MsUUFBUXdCLEtBQUssaUJBQWlCO29CQUFFRSxRQUFReEIsV0FBV3dCO2dCQUFPO1FBQ2xGLElBQUk7UUFBQzFCO1FBQVFFLFdBQVd3QjtLQUFPO0lBRS9CLE9BQU87UUFDSDFCO1FBQ0FJO1FBQ0FGO1FBQ0FJO1FBQ0FhO0lBQ0o7QUFDSixFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Ly4vc3JjL2hvb2tzL3VzZVNvY2tldC50cz8wNDY5Il0sInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpbywgU29ja2V0IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5pbXBvcnQgeyBHYW1lU3RhdGUsIEdhbWVSb29tIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuY29uc3QgU09DS0VUX1VSTCA9IHByb2Nlc3MuZW52Lk5FWFRfUFVCTElDX0FQSV9VUkwgfHwgJ2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMCc7XG5cbmV4cG9ydCBjb25zdCB1c2VTb2NrZXQgPSAoKSA9PiB7XG4gICAgY29uc3QgW3NvY2tldCwgc2V0U29ja2V0XSA9IHVzZVN0YXRlPFNvY2tldCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFtnYW1lU3RhdGUsIHNldEdhbWVTdGF0ZV0gPSB1c2VTdGF0ZTxHYW1lU3RhdGUgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbaXNDb25uZWN0ZWQsIHNldElzQ29ubmVjdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbcm9vbXNMaXN0LCBzZXRSb29tc0xpc3RdID0gdXNlU3RhdGU8R2FtZVJvb21bXT4oW10pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3Qgc29ja2V0SW5zdGFuY2UgPSBpbyhTT0NLRVRfVVJMKTtcblxuICAgICAgICBzb2NrZXRJbnN0YW5jZS5vbignY29ubmVjdCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbU09DS0VUXSBDb25lY3RhZG8gZXhpdG9zYW1lbnRlJyk7XG4gICAgICAgICAgICBzZXRJc0Nvbm5lY3RlZCh0cnVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc29ja2V0SW5zdGFuY2Uub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW1NPQ0tFVF0gRGVzY29uZWN0YWRvIGRlbCBzZXJ2aWRvcicpO1xuICAgICAgICAgICAgc2V0SXNDb25uZWN0ZWQoZmFsc2UpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzb2NrZXRJbnN0YW5jZS5vbignZ2FtZV9zdGF0ZScsIChuZXdTdGF0ZTogR2FtZVN0YXRlKSA9PiB7XG4gICAgICAgICAgICBzZXRHYW1lU3RhdGUobmV3U3RhdGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzb2NrZXRJbnN0YW5jZS5vbigncm9vbXNfbGlzdCcsIChyb29tczogR2FtZVJvb21bXSkgPT4ge1xuICAgICAgICAgICAgc2V0Um9vbXNMaXN0KHJvb21zKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc29ja2V0SW5zdGFuY2Uub24oJ2dhbWVfam9pbmVkJywgKHsgc3RhdGUgfTogeyByb29tSWQ6IHN0cmluZywgc3RhdGU6IEdhbWVTdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBzZXRHYW1lU3RhdGUoc3RhdGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzb2NrZXRJbnN0YW5jZS5vbignZXJyb3InLCAobXNnOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTT0NLRVQgRVJST1JdJywgbXNnKTtcbiAgICAgICAgICAgIC8vIEV2aXRhbW9zIGFsZXJ0KCkgcG9yIHNlciBtYWxhIHByw6FjdGljYSBlbiBwcm9kdWNjacOzbiB5IGRpc3BhcmFyIGxpbnRlcnNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc29ja2V0SW5zdGFuY2Uub24oJ2dhbWVfZmluYWxpemVkJywgKCkgPT4ge1xuICAgICAgICAgICAgc2V0R2FtZVN0YXRlKG51bGwpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzb2NrZXRJbnN0YW5jZS5vbigncGxheWVyX2xlZnRfZ2FtZScsICh7IHBsYXllck5hbWUgfTogeyBwbGF5ZXJOYW1lOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFtJTkZPXSBBZ2VudGUgJHtwbGF5ZXJOYW1lfSBmdWVyYSBkZSBjb21iYXRlLmApO1xuICAgICAgICB9KTtcblxuICAgICAgICBzZXRTb2NrZXQoc29ja2V0SW5zdGFuY2UpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzb2NrZXRJbnN0YW5jZS5kaXNjb25uZWN0KCk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgYWN0aW9ucyA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgY3JlYXRlR2FtZTogKGhvc3ROYW1lOiBzdHJpbmcsIG1heFBsYXllcnM6IG51bWJlciwgcGFzc3dvcmQ/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHNvY2tldD8uZW1pdCgnY3JlYXRlX2dhbWUnLCB7IGhvc3ROYW1lLCBtYXhQbGF5ZXJzLCBwYXNzd29yZCB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgam9pbkdhbWU6IChyb29tSWQ6IHN0cmluZywgcGxheWVyTmFtZTogc3RyaW5nLCBwYXNzd29yZD86IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgc29ja2V0Py5lbWl0KCdqb2luX2dhbWUnLCB7IHJvb21JZCwgcGxheWVyTmFtZSwgcGFzc3dvcmQgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2hSb29tczogKCkgPT4ge1xuICAgICAgICAgICAgc29ja2V0Py5lbWl0KCdnZXRfcm9vbXMnKTtcbiAgICAgICAgfSxcbiAgICAgICAgc3RhcnRHYW1lOiAoKSA9PiB7XG4gICAgICAgICAgICBzb2NrZXQ/LmVtaXQoJ3N0YXJ0X2dhbWUnLCB7IHJvb21JZDogZ2FtZVN0YXRlPy5yb29tSWQgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHByb3Bvc2VUZWFtOiAodGVhbUlkczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgICAgIHNvY2tldD8uZW1pdCgncHJvcG9zZV90ZWFtJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkLCB0ZWFtSWRzIH0pO1xuICAgICAgICB9LFxuICAgICAgICB2b3RlVGVhbTogKGFwcHJvdmU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIHNvY2tldD8uZW1pdCgndm90ZV90ZWFtJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkLCBhcHByb3ZlIH0pO1xuICAgICAgICB9LFxuICAgICAgICB2b3RlTWlzc2lvbjogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIHNvY2tldD8uZW1pdCgndm90ZV9taXNzaW9uJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkLCBzdWNjZXNzIH0pO1xuICAgICAgICB9LFxuICAgICAgICB2b3RlTGVhZGVyOiAoYXBwcm92ZTogYm9vbGVhbikgPT4gc29ja2V0Py5lbWl0KCd2b3RlX2xlYWRlcicsIHsgcm9vbUlkOiBnYW1lU3RhdGU/LnJvb21JZCwgYXBwcm92ZSB9KSxcbiAgICAgICAgYXNzYXNzaW5LaWxsOiAodGFyZ2V0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgc29ja2V0Py5lbWl0KCdhc3Nhc3Npbl9raWxsJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkLCB0YXJnZXRJZCB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbGVhdmVHYW1lOiAoKSA9PiB7XG4gICAgICAgICAgICBzb2NrZXQ/LmVtaXQoJ2xlYXZlX2dhbWUnLCB7IHJvb21JZDogZ2FtZVN0YXRlPy5yb29tSWQgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlY29ubmVjdFNlc3Npb246IChzZXNzaW9uRGF0YTogeyBwbGF5ZXJOYW1lOiBzdHJpbmc7IHJvb21JZD86IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICBzb2NrZXQ/LmVtaXQoJ3JlY29ubmVjdF9zZXNzaW9uJywgc2Vzc2lvbkRhdGEpO1xuICAgICAgICB9LFxuICAgICAgICBmaW5pc2hJbnRybzogKCkgPT4gc29ja2V0Py5lbWl0KCdmaW5pc2hfaW50cm8nLCB7IHJvb21JZDogZ2FtZVN0YXRlPy5yb29tSWQgfSksXG4gICAgICAgIGZpbmlzaFJldmVhbDogKCkgPT4gc29ja2V0Py5lbWl0KCdmaW5pc2hfcmV2ZWFsJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkIH0pLFxuICAgICAgICBmaW5pc2hSb2xsQ2FsbDogKCkgPT4gc29ja2V0Py5lbWl0KCdmaW5pc2hfcm9sbF9jYWxsJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkIH0pLFxuICAgICAgICBmaW5pc2hNaXNzaW9uUmV2ZWFsOiAoKSA9PiBzb2NrZXQ/LmVtaXQoJ2ZpbmlzaF9yZXZlYWwnLCB7IHJvb21JZDogZ2FtZVN0YXRlPy5yb29tSWQgfSksXG4gICAgICAgIGZpbmlzaE1pc3Npb25SZXN1bHQ6ICgpID0+IHNvY2tldD8uZW1pdCgnZmluaXNoX21pc3Npb25fcmVzdWx0JywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkIH0pLFxuICAgICAgICByZXN0YXJ0R2FtZTogKCkgPT4gc29ja2V0Py5lbWl0KCdyZXN0YXJ0X2dhbWUnLCB7IHJvb21JZDogZ2FtZVN0YXRlPy5yb29tSWQgfSksXG4gICAgICAgIGZpbmFsaXplR2FtZTogKCkgPT4gc29ja2V0Py5lbWl0KCdmaW5hbGl6ZV9nYW1lJywgeyByb29tSWQ6IGdhbWVTdGF0ZT8ucm9vbUlkIH0pXG4gICAgfSksIFtzb2NrZXQsIGdhbWVTdGF0ZT8ucm9vbUlkXSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzb2NrZXQsXG4gICAgICAgIGlzQ29ubmVjdGVkLFxuICAgICAgICBnYW1lU3RhdGUsXG4gICAgICAgIHJvb21zTGlzdCxcbiAgICAgICAgYWN0aW9uc1xuICAgIH07XG59O1xuIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidXNlTWVtbyIsImlvIiwiU09DS0VUX1VSTCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BVQkxJQ19BUElfVVJMIiwidXNlU29ja2V0Iiwic29ja2V0Iiwic2V0U29ja2V0IiwiZ2FtZVN0YXRlIiwic2V0R2FtZVN0YXRlIiwiaXNDb25uZWN0ZWQiLCJzZXRJc0Nvbm5lY3RlZCIsInJvb21zTGlzdCIsInNldFJvb21zTGlzdCIsInNvY2tldEluc3RhbmNlIiwib24iLCJjb25zb2xlIiwibG9nIiwibmV3U3RhdGUiLCJyb29tcyIsInN0YXRlIiwibXNnIiwiZXJyb3IiLCJwbGF5ZXJOYW1lIiwiZGlzY29ubmVjdCIsImFjdGlvbnMiLCJjcmVhdGVHYW1lIiwiaG9zdE5hbWUiLCJtYXhQbGF5ZXJzIiwicGFzc3dvcmQiLCJlbWl0Iiwiam9pbkdhbWUiLCJyb29tSWQiLCJyZWZyZXNoUm9vbXMiLCJzdGFydEdhbWUiLCJwcm9wb3NlVGVhbSIsInRlYW1JZHMiLCJ2b3RlVGVhbSIsImFwcHJvdmUiLCJ2b3RlTWlzc2lvbiIsInN1Y2Nlc3MiLCJ2b3RlTGVhZGVyIiwiYXNzYXNzaW5LaWxsIiwidGFyZ2V0SWQiLCJsZWF2ZUdhbWUiLCJyZWNvbm5lY3RTZXNzaW9uIiwic2Vzc2lvbkRhdGEiLCJmaW5pc2hJbnRybyIsImZpbmlzaFJldmVhbCIsImZpbmlzaFJvbGxDYWxsIiwiZmluaXNoTWlzc2lvblJldmVhbCIsImZpbmlzaE1pc3Npb25SZXN1bHQiLCJyZXN0YXJ0R2FtZSIsImZpbmFsaXplR2FtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/hooks/useSocket.ts\n");
+
+/***/ }),
+
+/***/ "(ssr)/../shared/types.ts":
+/*!**************************!*\
+ !*** ../shared/types.ts ***!
+ \**************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Faction: () => (/* binding */ Faction),\n/* harmony export */ GAME_CONFIG: () => (/* binding */ GAME_CONFIG),\n/* harmony export */ GamePhase: () => (/* binding */ GamePhase),\n/* harmony export */ Role: () => (/* binding */ Role)\n/* harmony export */ });\nvar Role;\n(function(Role) {\n // Bando Aliado (Resistencia Francesa)\n Role[\"MARLENE\"] = \"marlene\";\n Role[\"CAPITAN_PHILIPPE\"] = \"capitan_philippe\";\n Role[\"PARTISANO\"] = \"partisano\";\n // Bando Alemán (Ocupación Nazi)\n Role[\"COMANDANTE_SCHMIDT\"] = \"comandante_schmidt\";\n Role[\"FRANCOTIRADOR\"] = \"francotirador\";\n Role[\"AGENTE_DOBLE\"] = \"agente_doble\";\n Role[\"INFILTRADO\"] = \"infiltrado\";\n Role[\"COLABORACIONISTA\"] = \"colaboracionista\";\n})(Role || (Role = {}));\nvar Faction;\n(function(Faction) {\n Faction[\"ALIADOS\"] = \"aliados\";\n Faction[\"ALEMANES\"] = \"alemanes\";\n})(Faction || (Faction = {}));\nvar GamePhase;\n(function(GamePhase) {\n GamePhase[\"LOBBY\"] = \"lobby\";\n GamePhase[\"INTRO\"] = \"intro\";\n GamePhase[\"REVEAL_ROLE\"] = \"reveal_role\";\n GamePhase[\"ROLL_CALL\"] = \"roll_call\";\n GamePhase[\"VOTE_LEADER\"] = \"vote_leader\";\n GamePhase[\"TEAM_BUILDING\"] = \"team_building\";\n GamePhase[\"VOTING_TEAM\"] = \"voting_team\";\n GamePhase[\"MISSION\"] = \"mission\";\n GamePhase[\"MISSION_REVEAL\"] = \"mission_reveal\";\n GamePhase[\"MISSION_RESULT\"] = \"mission_result\";\n GamePhase[\"ASSASSIN_PHASE\"] = \"assassin_phase\";\n GamePhase[\"NAZIS_WIN\"] = \"nazis_win\";\n GamePhase[\"ALLIED_WIN\"] = \"allied_win\";\n GamePhase[\"GAME_OVER\"] = \"game_over\";\n})(GamePhase || (GamePhase = {}));\n// Configuración de jugadores por partida (según tus reglas)\nconst GAME_CONFIG = {\n 5: {\n good: 3,\n evil: 2,\n quests: [\n 2,\n 3,\n 2,\n 3,\n 3\n ]\n },\n 6: {\n good: 4,\n evil: 2,\n quests: [\n 2,\n 3,\n 4,\n 3,\n 4\n ]\n },\n 7: {\n good: 4,\n evil: 3,\n quests: [\n 2,\n 3,\n 3,\n 4,\n 4\n ]\n },\n 8: {\n good: 5,\n evil: 3,\n quests: [\n 3,\n 4,\n 4,\n 5,\n 5\n ]\n },\n 9: {\n good: 6,\n evil: 3,\n quests: [\n 3,\n 4,\n 4,\n 5,\n 5\n ]\n },\n 10: {\n good: 6,\n evil: 4,\n quests: [\n 3,\n 4,\n 4,\n 5,\n 5\n ]\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vc2hhcmVkL3R5cGVzLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O1VBQVlBO0lBQ1Isc0NBQXNDOzs7O0lBS3RDLGdDQUFnQzs7Ozs7O0dBTnhCQSxTQUFBQTs7VUFjQUM7OztHQUFBQSxZQUFBQTs7VUFLQUM7Ozs7Ozs7Ozs7Ozs7OztHQUFBQSxjQUFBQTtBQTBFWiw0REFBNEQ7QUFDckQsTUFBTUMsY0FBYztJQUN2QixHQUFHO1FBQUVDLE1BQU07UUFBR0MsTUFBTTtRQUFHQyxRQUFRO1lBQUM7WUFBRztZQUFHO1lBQUc7WUFBRztTQUFFO0lBQUM7SUFDL0MsR0FBRztRQUFFRixNQUFNO1FBQUdDLE1BQU07UUFBR0MsUUFBUTtZQUFDO1lBQUc7WUFBRztZQUFHO1lBQUc7U0FBRTtJQUFDO0lBQy9DLEdBQUc7UUFBRUYsTUFBTTtRQUFHQyxNQUFNO1FBQUdDLFFBQVE7WUFBQztZQUFHO1lBQUc7WUFBRztZQUFHO1NBQUU7SUFBQztJQUMvQyxHQUFHO1FBQUVGLE1BQU07UUFBR0MsTUFBTTtRQUFHQyxRQUFRO1lBQUM7WUFBRztZQUFHO1lBQUc7WUFBRztTQUFFO0lBQUM7SUFDL0MsR0FBRztRQUFFRixNQUFNO1FBQUdDLE1BQU07UUFBR0MsUUFBUTtZQUFDO1lBQUc7WUFBRztZQUFHO1lBQUc7U0FBRTtJQUFDO0lBQy9DLElBQUk7UUFBRUYsTUFBTTtRQUFHQyxNQUFNO1FBQUdDLFFBQVE7WUFBQztZQUFHO1lBQUc7WUFBRztZQUFHO1NBQUU7SUFBQztBQUNwRCxFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Ly4uL3NoYXJlZC90eXBlcy50cz84MTEwIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFJvbGUge1xuICAgIC8vIEJhbmRvIEFsaWFkbyAoUmVzaXN0ZW5jaWEgRnJhbmNlc2EpXG4gICAgTUFSTEVORSA9ICdtYXJsZW5lJywgICAgICAgICAgICAgICAgICAgIC8vIEFnZW50ZSBkZSBpbnRlbGlnZW5jaWEgKGFudGVzIE1lcmxpbilcbiAgICBDQVBJVEFOX1BISUxJUFBFID0gJ2NhcGl0YW5fcGhpbGlwcGUnLCAgLy8gT2ZpY2lhbCBxdWUgY29ub2NlIGEgTWFybGVuZSAoYW50ZXMgUGVyY2l2YWwpXG4gICAgUEFSVElTQU5PID0gJ3BhcnRpc2FubycsICAgICAgICAgICAgICAgIC8vIE1pZW1icm8gbGVhbCBkZSBsYSByZXNpc3RlbmNpYSAoYW50ZXMgTG95YWwgU2VydmFudClcblxuICAgIC8vIEJhbmRvIEFsZW3DoW4gKE9jdXBhY2nDs24gTmF6aSlcbiAgICBDT01BTkRBTlRFX1NDSE1JRFQgPSAnY29tYW5kYW50ZV9zY2htaWR0JywgLy8gT2ZpY2lhbCBuYXppIG9jdWx0byAoYW50ZXMgTW9yZHJlZClcbiAgICBGUkFOQ09USVJBRE9SID0gJ2ZyYW5jb3RpcmFkb3InLCAgICAgICAgICAgLy8gUHVlZGUgZWxpbWluYXIgYSBNYXJsZW5lIChhbnRlcyBBc3Nhc3NpbilcbiAgICBBR0VOVEVfRE9CTEUgPSAnYWdlbnRlX2RvYmxlJywgICAgICAgICAgICAvLyBTZSBoYWNlIHBhc2FyIHBvciBNYXJsZW5lIChhbnRlcyBNb3JnYW5hKVxuICAgIElORklMVFJBRE8gPSAnaW5maWx0cmFkbycsICAgICAgICAgICAgICAgICAvLyBFc3DDrWEgc29saXRhcmlvIChhbnRlcyBPYmVyb24pXG4gICAgQ09MQUJPUkFDSU9OSVNUQSA9ICdjb2xhYm9yYWNpb25pc3RhJywgICAgIC8vIEVzcMOtYSBnZW7DqXJpY28gKGFudGVzIE1pbmlvbi9TcHkpXG59XG5cbmV4cG9ydCBlbnVtIEZhY3Rpb24ge1xuICAgIEFMSUFET1MgPSAnYWxpYWRvcycsICAgICAgLy8gQW50ZXMgUkVTSVNUQU5DRVxuICAgIEFMRU1BTkVTID0gJ2FsZW1hbmVzJywgICAgLy8gQW50ZXMgU1BJRVNcbn1cblxuZXhwb3J0IGVudW0gR2FtZVBoYXNlIHtcbiAgICBMT0JCWSA9ICdsb2JieScsXG4gICAgSU5UUk8gPSAnaW50cm8nLFxuICAgIFJFVkVBTF9ST0xFID0gJ3JldmVhbF9yb2xlJyxcbiAgICBST0xMX0NBTEwgPSAncm9sbF9jYWxsJyxcbiAgICBWT1RFX0xFQURFUiA9ICd2b3RlX2xlYWRlcicsICAgICAvLyBWb3RhciBzaSBzZSBhY2VwdGEgYWwgbMOtZGVyXG4gICAgVEVBTV9CVUlMRElORyA9ICd0ZWFtX2J1aWxkaW5nJywgLy8gTMOtZGVyIHByb3BvbmUgZXF1aXBvXG4gICAgVk9USU5HX1RFQU0gPSAndm90aW5nX3RlYW0nLCAgICAgLy8gVG9kb3Mgdm90YW4gc2kgYXBydWViYW4gZWwgZXF1aXBvXG4gICAgTUlTU0lPTiA9ICdtaXNzaW9uJywgICAgICAgICAgICAgLy8gTG9zIGVsZWdpZG9zIHZvdGFuIMOpeGl0by9mcmFjYXNvXG4gICAgTUlTU0lPTl9SRVZFQUwgPSAnbWlzc2lvbl9yZXZlYWwnLCAvLyBNb3N0cmFyIGNhcnRhcyB1bmEgYSB1bmFcbiAgICBNSVNTSU9OX1JFU1VMVCA9ICdtaXNzaW9uX3Jlc3VsdCcsIC8vIFBhbnRhbGxhIGRlIHJlc3VtZW5cbiAgICBBU1NBU1NJTl9QSEFTRSA9ICdhc3Nhc3Npbl9waGFzZScsIC8vIFNpIGdhbmEgZWwgYmllbiwgZWwgYXNlc2lubyBpbnRlbnRhIG1hdGFyIGEgTWFybGVuZVxuICAgIE5BWklTX1dJTiA9ICduYXppc193aW4nLCAgICAgICAgIC8vIFBhbnRhbGxhIGRlIHZpY3RvcmlhIGRlIGxvcyBOYXppc1xuICAgIEFMTElFRF9XSU4gPSAnYWxsaWVkX3dpbicsICAgICAgIC8vIFBhbnRhbGxhIGRlIHZpY3RvcmlhIGRlIGxvcyBBbGlhZG9zXG4gICAgR0FNRV9PVkVSID0gJ2dhbWVfb3ZlcicsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxheWVyIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhdmF0YXI6IHN0cmluZzsgLy8gQXZhdGFyIHBlcnNpc3RlbnRlXG4gICAgcm9sZT86IFJvbGU7XG4gICAgZmFjdGlvbj86IEZhY3Rpb247XG4gICAgaXNMZWFkZXI6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWlzc2lvblJlc3VsdCB7XG4gICAgc3VjY2Vzc2VzOiBudW1iZXI7XG4gICAgZmFpbHM6IG51bWJlcjtcbiAgICBpc1N1Y2Nlc3M6IGJvb2xlYW47XG59XG5cbi8vIFJlZ2lzdHJvIGRlIHVuYSBtaXNpw7NuIGNvbXBsZXRhZGFcbmV4cG9ydCBpbnRlcmZhY2UgTWlzc2lvblJlY29yZCB7XG4gICAgcm91bmQ6IG51bWJlcjtcbiAgICB0ZWFtOiBzdHJpbmdbXTsgICAgICAgICAgIC8vIElEcyBkZSBsb3MgcGFydGljaXBhbnRlc1xuICAgIHZvdGVzOiBib29sZWFuW107ICAgICAgICAgLy8gVm90b3MgKGJhcmFqYWRvcylcbiAgICBzdWNjZXNzZXM6IG51bWJlcjtcbiAgICBmYWlsczogbnVtYmVyO1xuICAgIGlzU3VjY2VzczogYm9vbGVhbjtcbiAgICBsZWFkZXJJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdhbWVTdGF0ZSB7XG4gICAgcm9vbUlkOiBzdHJpbmc7XG4gICAgcm9vbU5hbWU6IHN0cmluZztcbiAgICBwaGFzZTogR2FtZVBoYXNlO1xuICAgIHBsYXllcnM6IFBsYXllcltdO1xuICAgIGhvc3RJZDogc3RyaW5nO1xuXG4gICAgY3VycmVudFJvdW5kOiBudW1iZXI7XG4gICAgZmFpbGVkVm90ZXNDb3VudDogbnVtYmVyO1xuICAgIHF1ZXN0UmVzdWx0czogKGJvb2xlYW4gfCBudWxsKVtdO1xuXG4gICAgY3VycmVudExlYWRlcklkOiBzdHJpbmc7XG5cbiAgICAvLyBWb3RhY2nDs24gZGUgTMOtZGVyXG4gICAgbGVhZGVyVm90ZXM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4gfCBudWxsPjtcblxuICAgIC8vIFNlbGVjY2nDs24gZGUgRXF1aXBvIChNaXNpw7NuKVxuICAgIHByb3Bvc2VkVGVhbTogc3RyaW5nW107XG4gICAgdGVhbVZvdGVzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjsgLy8gVm90b3MgZGUgYXByb2JhY2nDs24gZGVsIGVxdWlwbyAoaWRKdWdhZG9yIC0+IGFwcnVlYmEvcmVjaGF6YSlcbiAgICBtaXNzaW9uVm90ZXM6IGJvb2xlYW5bXTsgICAvLyBWb3RvcyBhbsOzbmltb3MgZGUgbGEgbWlzacOzbiAow6l4aXRvL2ZyYWNhc28pXG5cbiAgICAvLyBIaXN0w7NyaWNvIGRlIG1pc2lvbmVzXG4gICAgbWlzc2lvbkhpc3Rvcnk6IE1pc3Npb25SZWNvcmRbXTtcblxuICAgIC8vIFBhcmEgbGEgYW5pbWFjacOzbiBkZSByZXZlbGFjacOzbiBkZSBjYXJ0YXNcbiAgICByZXZlYWxlZFZvdGVzOiBib29sZWFuW107ICAvLyBWb3RvcyBxdWUgc2UgdmFuIG1vc3RyYW5kbyB1bm8gYSB1bm9cblxuICAgIHdpbm5lcj86IEZhY3Rpb247XG4gICAgaGlzdG9yeTogc3RyaW5nW107IC8vIExvZyBkZSBhY2Npb25lcyBwYXJhIG1vc3RyYXIgZW4gcGFudGFsbGFcbn1cblxuLy8gQ29uZmlndXJhY2nDs24gZGUganVnYWRvcmVzIHBvciBwYXJ0aWRhIChzZWfDum4gdHVzIHJlZ2xhcylcbmV4cG9ydCBjb25zdCBHQU1FX0NPTkZJRyA9IHtcbiAgICA1OiB7IGdvb2Q6IDMsIGV2aWw6IDIsIHF1ZXN0czogWzIsIDMsIDIsIDMsIDNdIH0sXG4gICAgNjogeyBnb29kOiA0LCBldmlsOiAyLCBxdWVzdHM6IFsyLCAzLCA0LCAzLCA0XSB9LFxuICAgIDc6IHsgZ29vZDogNCwgZXZpbDogMywgcXVlc3RzOiBbMiwgMywgMywgNCwgNF0gfSwgLy8gTm90YTogNHRhIG1pc2nDs24gcmVxdWllcmUgMiBmYWxsb3NcbiAgICA4OiB7IGdvb2Q6IDUsIGV2aWw6IDMsIHF1ZXN0czogWzMsIDQsIDQsIDUsIDVdIH0sXG4gICAgOTogeyBnb29kOiA2LCBldmlsOiAzLCBxdWVzdHM6IFszLCA0LCA0LCA1LCA1XSB9LFxuICAgIDEwOiB7IGdvb2Q6IDYsIGV2aWw6IDQsIHF1ZXN0czogWzMsIDQsIDQsIDUsIDVdIH0sXG59O1xuXG4vLyAtLS0gTlVFVk9TIFRJUE9TIFBBUkEgRUwgTE9CQlkgLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgR2FtZVJvb20ge1xuICAgIGlkOiBzdHJpbmc7ICAgICAgICAgIC8vIElEIGludGVybm8gw7puaWNvICh1dWlkKVxuICAgIG5hbWU6IHN0cmluZzsgICAgICAgIC8vIE5vbWJyZSBkZSBtaXNpw7NuIChlajogT3BlcmFjacOzbiBPdmVybG9yZClcbiAgICBob3N0SWQ6IHN0cmluZzsgICAgICAvLyBJRCBkZWwgY3JlYWRvclxuICAgIGN1cnJlbnRQbGF5ZXJzOiBudW1iZXI7XG4gICAgbWF4UGxheWVyczogbnVtYmVyO1xuICAgIGlzUHJpdmF0ZTogYm9vbGVhbjsgIC8vIFNpIHRpZW5lIGNvbnRyYXNlw7FhXG4gICAgc3RhdHVzOiAnd2FpdGluZycgfCAncGxheWluZycgfCAnZmluaXNoZWQnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUdhbWVQYXlsb2FkIHtcbiAgICBob3N0TmFtZTogc3RyaW5nO1xuICAgIG1heFBsYXllcnM6IG51bWJlcjtcbiAgICBwYXNzd29yZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKb2luR2FtZVBheWxvYWQge1xuICAgIHJvb21JZDogc3RyaW5nOyAvLyBQdWVkZSBzZXIgZWwgSUQgbnVtw6lyaWNvIGludGVybm8gbyBsbyBxdWUgdXNlbW9zXG4gICAgcGxheWVyTmFtZTogc3RyaW5nO1xuICAgIHBhc3N3b3JkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvYmJ5TGlzdHMge1xuICAgIHJvb21zOiBHYW1lUm9vbVtdO1xufVxuIl0sIm5hbWVzIjpbIlJvbGUiLCJGYWN0aW9uIiwiR2FtZVBoYXNlIiwiR0FNRV9DT05GSUciLCJnb29kIiwiZXZpbCIsInF1ZXN0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../shared/types.ts\n");
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/globals.css":
+/*!*****************************!*\
+ !*** ./src/app/globals.css ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"955ec95b3e6f\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzaXN0ZW5jaWEtY2xpZW50Ly4vc3JjL2FwcC9nbG9iYWxzLmNzcz9jMTA2Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiOTU1ZWM5NWIzZTZmXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n");
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/layout.tsx":
+/*!****************************!*\
+ !*** ./src/app/layout.tsx ***!
+ \****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"} */ \"(rsc)/./node_modules/next/font/google/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"Inter\\\",\\\"arguments\\\":[{\\\"subsets\\\":[\\\"latin\\\"]}],\\\"variableName\\\":\\\"inter\\\"}\");\n/* harmony import */ var next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\n\nconst metadata = {\n title: \"Francia Ocupada: WWII\",\n description: \"Juego de deducci\\xf3n social ambientado en la Segunda Guerra Mundial\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"es\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: (next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2___default().className),\n children: children\n }, void 0, false, {\n fileName: \"/app/client/src/app/layout.tsx\",\n lineNumber: 19,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/layout.tsx\",\n lineNumber: 18,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJTUE7QUFGZ0I7QUFJZixNQUFNQyxXQUFxQjtJQUM5QkMsT0FBTztJQUNQQyxhQUFhO0FBQ2pCLEVBQUM7QUFFYyxTQUFTQyxXQUFXLEVBQy9CQyxRQUFRLEVBR1g7SUFDRyxxQkFDSSw4REFBQ0M7UUFBS0MsTUFBSztrQkFDUCw0RUFBQ0M7WUFBS0MsV0FBV1QsK0pBQWU7c0JBQUdLOzs7Ozs7Ozs7OztBQUcvQyIsInNvdXJjZXMiOlsid2VicGFjazovL3Jlc2lzdGVuY2lhLWNsaWVudC8uL3NyYy9hcHAvbGF5b3V0LnRzeD81N2E5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWV0YWRhdGEgfSBmcm9tICduZXh0J1xuaW1wb3J0IHsgSW50ZXIgfSBmcm9tICduZXh0L2ZvbnQvZ29vZ2xlJ1xuaW1wb3J0ICcuL2dsb2JhbHMuY3NzJ1xuXG5jb25zdCBpbnRlciA9IEludGVyKHsgc3Vic2V0czogWydsYXRpbiddIH0pXG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YTogTWV0YWRhdGEgPSB7XG4gICAgdGl0bGU6ICdGcmFuY2lhIE9jdXBhZGE6IFdXSUknLFxuICAgIGRlc2NyaXB0aW9uOiAnSnVlZ28gZGUgZGVkdWNjacOzbiBzb2NpYWwgYW1iaWVudGFkbyBlbiBsYSBTZWd1bmRhIEd1ZXJyYSBNdW5kaWFsJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7XG4gICAgY2hpbGRyZW4sXG59OiB7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxodG1sIGxhbmc9XCJlc1wiPlxuICAgICAgICAgICAgPGJvZHkgY2xhc3NOYW1lPXtpbnRlci5jbGFzc05hbWV9PntjaGlsZHJlbn08L2JvZHk+XG4gICAgICAgIDwvaHRtbD5cbiAgICApXG59XG4iXSwibmFtZXMiOlsiaW50ZXIiLCJtZXRhZGF0YSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJodG1sIiwibGFuZyIsImJvZHkiLCJjbGFzc05hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n");
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/page.tsx":
+/*!**************************!*\
+ !*** ./src/app/page.tsx ***!
+ \**************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
+/* harmony export */ __esModule: () => (/* binding */ __esModule),
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");
+
+const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/app/client/src/app/page.tsx`)
+
+// Accessing the __esModule property and exporting $$typeof are required here.
+// The __esModule getter forces the proxy target to create the default export
+// and the $$typeof value is for rendering logic to determine if the module
+// is a client boundary.
+const { __esModule, $$typeof } = proxy;
+const __default__ = proxy.default;
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
+
+/***/ })
+
+};
+;
+
+// load runtime
+var __webpack_require__ = require("../webpack-runtime.js");
+__webpack_require__.C(exports);
+var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
+var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc","vendor-chunks/framer-motion","vendor-chunks/ws","vendor-chunks/engine.io-client","vendor-chunks/socket.io-client","vendor-chunks/socket.io-parser","vendor-chunks/xmlhttprequest-ssl","vendor-chunks/engine.io-parser","vendor-chunks/@socket.io","vendor-chunks/ms","vendor-chunks/supports-color","vendor-chunks/has-flag"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fapp%2Fclient%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fapp%2Fclient&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
+module.exports = __webpack_exports__;
+
+})();
\ No newline at end of file
diff --git a/client/.next/server/app/page.js.nft.json b/client/.next/server/app/page.js.nft.json
new file mode 100644
index 0000000..45b2841
--- /dev/null
+++ b/client/.next/server/app/page.js.nft.json
@@ -0,0 +1 @@
+{"version":1,"files":["../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.cjs.dev.js","../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.cjs.js","../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.cjs.prod.js","../../../node_modules/@emotion/is-prop-valid/package.json","../../../node_modules/@emotion/memoize/dist/memoize.cjs.dev.js","../../../node_modules/@emotion/memoize/dist/memoize.cjs.js","../../../node_modules/@emotion/memoize/dist/memoize.cjs.prod.js","../../../node_modules/@emotion/memoize/package.json","../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../node_modules/next/dist/client/components/async-local-storage.js","../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/package.json","../../../package.json","../../package.json","../chunks/316.js","../chunks/673.js","../chunks/687.js","../chunks/font-manifest.json","../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/client/.next/server/app/page_client-reference-manifest.js b/client/.next/server/app/page_client-reference-manifest.js
new file mode 100644
index 0000000..06d62d5
--- /dev/null
+++ b/client/.next/server/app/page_client-reference-manifest.js
@@ -0,0 +1 @@
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(ssr)/./src/app/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/app/client/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/app/client/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":"(app-pages-browser)/./node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/app/client/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/app/client/src/app/page.tsx":{"id":"(app-pages-browser)/./src/app/page.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false}},"entryCSSFiles":{"/app/client/src/app/layout":["static/css/app/layout.css"],"/app/client/src/app/page":[],"/app/client/src/app/not-found":[]}}
\ No newline at end of file
diff --git a/client/.next/server/chunks/316.js b/client/.next/server/chunks/316.js
new file mode 100644
index 0000000..ea59846
--- /dev/null
+++ b/client/.next/server/chunks/316.js
@@ -0,0 +1,21 @@
+"use strict";exports.id=316,exports.ids=[316],exports.modules={1477:(e,t,s)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;let s="color: "+this.color;t.splice(1,0,s,"color: inherit");let r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(r++,"%c"===e&&(i=r))}),t.splice(i,0,s)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){let e;return!("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=s(291)(t);let{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},291:(e,t,s)=>{e.exports=function(e){function t(e){let s,i,n;let o=null;function a(...e){if(!a.enabled)return;let r=Number(new Date),i=r-(s||r);a.diff=i,a.prev=s,a.curr=r,s=r,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let n=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(s,r)=>{if("%%"===s)return"%";n++;let i=t.formatters[r];if("function"==typeof i){let t=e[n];s=i.call(a,t),e.splice(n,1),n--}return s}),t.formatArgs.call(a,e);let o=a.log||t.log;o.apply(a,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=r,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==o?o:(i!==t.namespaces&&(i=t.namespaces,n=t.enabled(e)),n),set:e=>{o=e}}),"function"==typeof t.init&&t.init(a),a}function r(e,s){let r=t(this.namespace+(void 0===s?":":s)+e);return r.log=this.log,r}function i(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){let e=[...t.names.map(i),...t.skips.map(i).map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){let s;t.save(e),t.namespaces=e,t.names=[],t.skips=[];let r=("string"==typeof e?e:"").split(/[\s,]+/),i=r.length;for(s=0;s{t[s]=e[s]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let s=0;for(let t=0;t{"undefined"==typeof process||"renderer"===process.type||process.__nwjs?e.exports=s(1477):e.exports=s(3912)},3912:(e,t,s)=>{let r=s(6224),i=s(3837);t.init=function(e){e.inspectOpts={};let s=Object.keys(t.inspectOpts);for(let r=0;r{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{let e=s(2841);e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let s=t.substring(6).toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase()),r=process.env[t];return r=!!/^(yes|on|true|enabled)$/i.test(r)||!/^(no|off|false|disabled)$/i.test(r)&&("null"===r?null:Number(r)),e[s]=r,e},{}),e.exports=s(291)(t);let{formatters:n}=e.exports;n.o=function(e){return this.inspectOpts.colors=this.useColors,i.inspect(e,this.inspectOpts).split("\n").map(e=>e.trim()).join(" ")},n.O=function(e){return this.inspectOpts.colors=this.useColors,i.inspect(e,this.inspectOpts)}},6044:e=>{e.exports=(e,t=process.argv)=>{let s=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(s+e),i=t.indexOf("--");return -1!==r&&(-1===i||r{function t(e,t,s,r){return Math.round(e/s)+" "+r+(t>=1.5*s?"s":"")}e.exports=function(e,s){s=s||{};var r,i,n=typeof e;if("string"===n&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var s=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*s;case"weeks":case"week":case"w":return 6048e5*s;case"days":case"day":case"d":return 864e5*s;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*s;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*s;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}}}(e);if("number"===n&&isFinite(e))return s.long?(r=Math.abs(e))>=864e5?t(e,r,864e5,"day"):r>=36e5?t(e,r,36e5,"hour"):r>=6e4?t(e,r,6e4,"minute"):r>=1e3?t(e,r,1e3,"second"):e+" ms":(i=Math.abs(e))>=864e5?Math.round(e/864e5)+"d":i>=36e5?Math.round(e/36e5)+"h":i>=6e4?Math.round(e/6e4)+"m":i>=1e3?Math.round(e/1e3)+"s":e+"ms";throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},3854:(e,t,s)=>{e.exports=s(2337).vendored["react-ssr"].ReactJsxRuntime},7578:(e,t,s)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;let s="color: "+this.color;t.splice(1,0,s,"color: inherit");let r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(r++,"%c"===e&&(i=r))}),t.splice(i,0,s)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){let e;return!("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=s(8910)(t);let{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},8910:(e,t,s)=>{e.exports=function(e){function t(e){let s,i,n;let o=null;function a(...e){if(!a.enabled)return;let r=Number(new Date),i=r-(s||r);a.diff=i,a.prev=s,a.curr=r,s=r,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let n=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(s,r)=>{if("%%"===s)return"%";n++;let i=t.formatters[r];if("function"==typeof i){let t=e[n];s=i.call(a,t),e.splice(n,1),n--}return s}),t.formatArgs.call(a,e);let o=a.log||t.log;o.apply(a,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=r,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==o?o:(i!==t.namespaces&&(i=t.namespaces,n=t.enabled(e)),n),set:e=>{o=e}}),"function"==typeof t.init&&t.init(a),a}function r(e,s){let r=t(this.namespace+(void 0===s?":":s)+e);return r.log=this.log,r}function i(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){let e=[...t.names.map(i),...t.skips.map(i).map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){let s;t.save(e),t.namespaces=e,t.names=[],t.skips=[];let r=("string"==typeof e?e:"").split(/[\s,]+/),i=r.length;for(s=0;s{t[s]=e[s]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let s=0;for(let t=0;t{"undefined"==typeof process||"renderer"===process.type||process.__nwjs?e.exports=s(7578):e.exports=s(1337)},1337:(e,t,s)=>{let r=s(6224),i=s(3837);t.init=function(e){e.inspectOpts={};let s=Object.keys(t.inspectOpts);for(let r=0;r{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{let e=s(2841);e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let s=t.substring(6).toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase()),r=process.env[t];return r=!!/^(yes|on|true|enabled)$/i.test(r)||!/^(no|off|false|disabled)$/i.test(r)&&("null"===r?null:Number(r)),e[s]=r,e},{}),e.exports=s(8910)(t);let{formatters:n}=e.exports;n.o=function(e){return this.inspectOpts.colors=this.useColors,i.inspect(e,this.inspectOpts).split("\n").map(e=>e.trim()).join(" ")},n.O=function(e){return this.inspectOpts.colors=this.useColors,i.inspect(e,this.inspectOpts)}},8351:(e,t,s)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;let s="color: "+this.color;t.splice(1,0,s,"color: inherit");let r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(r++,"%c"===e&&(i=r))}),t.splice(i,0,s)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){let e;return!("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=s(6942)(t);let{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},6942:(e,t,s)=>{e.exports=function(e){function t(e){let s,i,n;let o=null;function a(...e){if(!a.enabled)return;let r=Number(new Date),i=r-(s||r);a.diff=i,a.prev=s,a.curr=r,s=r,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let n=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(s,r)=>{if("%%"===s)return"%";n++;let i=t.formatters[r];if("function"==typeof i){let t=e[n];s=i.call(a,t),e.splice(n,1),n--}return s}),t.formatArgs.call(a,e);let o=a.log||t.log;o.apply(a,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=r,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==o?o:(i!==t.namespaces&&(i=t.namespaces,n=t.enabled(e)),n),set:e=>{o=e}}),"function"==typeof t.init&&t.init(a),a}function r(e,s){let r=t(this.namespace+(void 0===s?":":s)+e);return r.log=this.log,r}function i(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){let e=[...t.names.map(i),...t.skips.map(i).map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){let s;t.save(e),t.namespaces=e,t.names=[],t.skips=[];let r=("string"==typeof e?e:"").split(/[\s,]+/),i=r.length;for(s=0;s{t[s]=e[s]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let s=0;for(let t=0;t{"undefined"==typeof process||"renderer"===process.type||process.__nwjs?e.exports=s(8351):e.exports=s(8025)},8025:(e,t,s)=>{let r=s(6224),i=s(3837);t.init=function(e){e.inspectOpts={};let s=Object.keys(t.inspectOpts);for(let r=0;r{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{let e=s(2841);e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let s=t.substring(6).toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase()),r=process.env[t];return r=!!/^(yes|on|true|enabled)$/i.test(r)||!/^(no|off|false|disabled)$/i.test(r)&&("null"===r?null:Number(r)),e[s]=r,e},{}),e.exports=s(6942)(t);let{formatters:n}=e.exports;n.o=function(e){return this.inspectOpts.colors=this.useColors,i.inspect(e,this.inspectOpts).split("\n").map(e=>e.trim()).join(" ")},n.O=function(e){return this.inspectOpts.colors=this.useColors,i.inspect(e,this.inspectOpts)}},2841:(e,t,s)=>{let r;let i=s(2037),n=s(6224),o=s(6044),{env:a}=process;function l(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function h(e,t){if(0===r)return 0;if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2;if(e&&!t&&void 0===r)return 0;let s=r||0;if("dumb"===a.TERM)return s;if("win32"===process.platform){let e=i.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in a)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(e=>e in a)||"codeship"===a.CI_NAME?1:s;if("TEAMCITY_VERSION"in a)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(a.TEAMCITY_VERSION)?1:0;if("truecolor"===a.COLORTERM)return 3;if("TERM_PROGRAM"in a){let e=parseInt((a.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(a.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(a.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(a.TERM)||"COLORTERM"in a?1:s}o("no-color")||o("no-colors")||o("color=false")||o("color=never")?r=0:(o("color")||o("colors")||o("color=true")||o("color=always"))&&(r=1),"FORCE_COLOR"in a&&(r="true"===a.FORCE_COLOR?1:"false"===a.FORCE_COLOR?0:0===a.FORCE_COLOR.length?1:Math.min(parseInt(a.FORCE_COLOR,10),3)),e.exports={supportsColor:function(e){let t=h(e,e&&e.isTTY);return l(t)},stdout:l(h(!0,n.isatty(1))),stderr:l(h(!0,n.isatty(2)))}},8440:(e,t,s)=>{let{EMPTY_BUFFER:r}=s(2267),i=Buffer[Symbol.species];function n(e,t,s,r,i){for(let n=0;n{e.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}},1198:(e,t,s)=>{let{kForOnEventAttribute:r,kListener:i}=s(2267),n=Symbol("kCode"),o=Symbol("kData"),a=Symbol("kError"),l=Symbol("kMessage"),h=Symbol("kReason"),c=Symbol("kTarget"),u=Symbol("kType"),d=Symbol("kWasClean");class Event{constructor(e){this[c]=null,this[u]=e}get target(){return this[c]}get type(){return this[u]}}Object.defineProperty(Event.prototype,"target",{enumerable:!0}),Object.defineProperty(Event.prototype,"type",{enumerable:!0});class CloseEvent extends Event{constructor(e,t={}){super(e),this[n]=void 0===t.code?0:t.code,this[h]=void 0===t.reason?"":t.reason,this[d]=void 0!==t.wasClean&&t.wasClean}get code(){return this[n]}get reason(){return this[h]}get wasClean(){return this[d]}}Object.defineProperty(CloseEvent.prototype,"code",{enumerable:!0}),Object.defineProperty(CloseEvent.prototype,"reason",{enumerable:!0}),Object.defineProperty(CloseEvent.prototype,"wasClean",{enumerable:!0});class ErrorEvent extends Event{constructor(e,t={}){super(e),this[a]=void 0===t.error?null:t.error,this[l]=void 0===t.message?"":t.message}get error(){return this[a]}get message(){return this[l]}}Object.defineProperty(ErrorEvent.prototype,"error",{enumerable:!0}),Object.defineProperty(ErrorEvent.prototype,"message",{enumerable:!0});class MessageEvent extends Event{constructor(e,t={}){super(e),this[o]=void 0===t.data?null:t.data}get data(){return this[o]}}function p(e,t,s){"object"==typeof e&&e.handleEvent?e.handleEvent.call(e,s):e.call(t,s)}Object.defineProperty(MessageEvent.prototype,"data",{enumerable:!0}),e.exports={CloseEvent,ErrorEvent,Event,EventTarget:{addEventListener(e,t,s={}){let n;for(let n of this.listeners(e))if(!s[r]&&n[i]===t&&!n[r])return;if("message"===e)n=function(e,s){let r=new MessageEvent("message",{data:s?e:e.toString()});r[c]=this,p(t,this,r)};else if("close"===e)n=function(e,s){let r=new CloseEvent("close",{code:e,reason:s.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});r[c]=this,p(t,this,r)};else if("error"===e)n=function(e){let s=new ErrorEvent("error",{error:e,message:e.message});s[c]=this,p(t,this,s)};else{if("open"!==e)return;n=function(){let e=new Event("open");e[c]=this,p(t,this,e)}}n[r]=!!s[r],n[i]=t,s.once?this.once(e,n):this.on(e,n)},removeEventListener(e,t){for(let s of this.listeners(e))if(s[i]===t&&!s[r]){this.removeListener(e,s);break}}},MessageEvent}},1138:(e,t,s)=>{let{tokenChars:r}=s(8211);function i(e,t,s){void 0===e[t]?e[t]=[s]:e[t].push(s)}e.exports={format:function(e){return Object.keys(e).map(t=>{let s=e[t];return Array.isArray(s)||(s=[s]),s.map(e=>[t].concat(Object.keys(e).map(t=>{let s=e[t];return Array.isArray(s)||(s=[s]),s.map(e=>!0===e?t:`${t}=${e}`).join("; ")})).join("; ")).join(", ")}).join(", ")},parse:function(e){let t,s;let n=Object.create(null),o=Object.create(null),a=!1,l=!1,h=!1,c=-1,u=-1,d=-1,p=0;for(;p{let t=Symbol("kDone"),s=Symbol("kRun");class r{constructor(e){this[t]=()=>{this.pending--,this[s]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[s]()}[s](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[t])}}}e.exports=r},5817:(e,t,s)=>{let r;let i=s(9796),n=s(8440),o=s(1462),{kStatusCode:a}=s(2267),l=Buffer[Symbol.species],h=Buffer.from([0,0,255,255]),c=Symbol("permessage-deflate"),u=Symbol("total-length"),d=Symbol("callback"),p=Symbol("buffers"),f=Symbol("error");class m{constructor(e,t,s){if(this._maxPayload=0|s,this._options=e||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._isServer=!!t,this._deflate=null,this._inflate=null,this.params=null,!r){let e=void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10;r=new o(e)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[d];this._deflate.close(),this._deflate=null,e&&e(Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let t=this._options,s=e.find(e=>(!1!==t.serverNoContextTakeover||!e.server_no_context_takeover)&&(!e.server_max_window_bits||!1!==t.serverMaxWindowBits&&("number"!=typeof t.serverMaxWindowBits||!(t.serverMaxWindowBits>e.server_max_window_bits)))&&("number"!=typeof t.clientMaxWindowBits||!!e.client_max_window_bits));if(!s)throw Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(s.server_no_context_takeover=!0),t.clientNoContextTakeover&&(s.client_no_context_takeover=!0),"number"==typeof t.serverMaxWindowBits&&(s.server_max_window_bits=t.serverMaxWindowBits),"number"==typeof t.clientMaxWindowBits?s.client_max_window_bits=t.clientMaxWindowBits:(!0===s.client_max_window_bits||!1===t.clientMaxWindowBits)&&delete s.client_max_window_bits,s}acceptAsClient(e){let t=e[0];if(!1===this._options.clientNoContextTakeover&&t.client_no_context_takeover)throw Error('Unexpected parameter "client_no_context_takeover"');if(t.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(t.client_max_window_bits=this._options.clientMaxWindowBits);return t}normalizeParams(e){return e.forEach(e=>{Object.keys(e).forEach(t=>{let s=e[t];if(s.length>1)throw Error(`Parameter "${t}" must have only a single value`);if(s=s[0],"client_max_window_bits"===t){if(!0!==s){let e=+s;if(!Number.isInteger(e)||e<8||e>15)throw TypeError(`Invalid value for parameter "${t}": ${s}`);s=e}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${t}": ${s}`)}else if("server_max_window_bits"===t){let e=+s;if(!Number.isInteger(e)||e<8||e>15)throw TypeError(`Invalid value for parameter "${t}": ${s}`);s=e}else if("client_no_context_takeover"===t||"server_no_context_takeover"===t){if(!0!==s)throw TypeError(`Invalid value for parameter "${t}": ${s}`)}else throw Error(`Unknown parameter "${t}"`);e[t]=s})}),e}decompress(e,t,s){r.add(r=>{this._decompress(e,t,(e,t)=>{r(),s(e,t)})})}compress(e,t,s){r.add(r=>{this._compress(e,t,(e,t)=>{r(),s(e,t)})})}_decompress(e,t,s){let r=this._isServer?"client":"server";if(!this._inflate){let e=`${r}_max_window_bits`,t="number"!=typeof this.params[e]?i.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=i.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t}),this._inflate[c]=this,this._inflate[u]=0,this._inflate[p]=[],this._inflate.on("error",v),this._inflate.on("data",y)}this._inflate[d]=s,this._inflate.write(e),t&&this._inflate.write(h),this._inflate.flush(()=>{let e=this._inflate[f];if(e){this._inflate.close(),this._inflate=null,s(e);return}let i=n.concat(this._inflate[p],this._inflate[u]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[u]=0,this._inflate[p]=[],t&&this.params[`${r}_no_context_takeover`]&&this._inflate.reset()),s(null,i)})}_compress(e,t,s){let r=this._isServer?"server":"client";if(!this._deflate){let e=`${r}_max_window_bits`,t="number"!=typeof this.params[e]?i.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=i.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t}),this._deflate[u]=0,this._deflate[p]=[],this._deflate.on("data",g)}this._deflate[d]=s,this._deflate.write(e),this._deflate.flush(i.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let e=n.concat(this._deflate[p],this._deflate[u]);t&&(e=new l(e.buffer,e.byteOffset,e.length-4)),this._deflate[d]=null,this._deflate[u]=0,this._deflate[p]=[],t&&this.params[`${r}_no_context_takeover`]&&this._deflate.reset(),s(null,e)})}}function g(e){this[p].push(e),this[u]+=e.length}function y(e){if(this[u]+=e.length,this[c]._maxPayload<1||this[u]<=this[c]._maxPayload){this[p].push(e);return}this[f]=RangeError("Max payload size exceeded"),this[f].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[f][a]=1009,this.removeListener("data",y),this.reset()}function v(e){this[c]._inflate=null,e[a]=1007,this[d](e)}e.exports=m},2535:(e,t,s)=>{let{Writable:r}=s(2781),i=s(5817),{BINARY_TYPES:n,EMPTY_BUFFER:o,kStatusCode:a,kWebSocket:l}=s(2267),{concat:h,toArrayBuffer:c,unmask:u}=s(8440),{isValidStatusCode:d,isValidUTF8:p}=s(8211),f=Buffer[Symbol.species];class m extends r{constructor(e={}){super(),this._allowSynchronousEvents=void 0===e.allowSynchronousEvents||e.allowSynchronousEvents,this._binaryType=e.binaryType||n[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=0|e.maxPayload,this._skipUTF8Validation=!!e.skipUTF8Validation,this[l]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(e,t,s){if(8===this._opcode&&0==this._state)return s();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(s)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e=s.length?t.set(this._buffers.shift(),r):(t.set(new Uint8Array(s.buffer,s.byteOffset,e),r),this._buffers[0]=new f(s.buffer,s.byteOffset+e,s.length-e)),e-=s.length}while(e>0);return t}startLoop(e){this._loop=!0;do switch(this._state){case 0:this.getInfo(e);break;case 1:this.getPayloadLength16(e);break;case 2:this.getPayloadLength64(e);break;case 3:this.getMask();break;case 4:this.getData(e);break;case 5:case 6:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let t=this.consume(2);if((48&t[0])!=0){let t=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(t);return}let s=(64&t[0])==64;if(s&&!this._extensions[i.extensionName]){let t=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}if(this._fin=(128&t[0])==128,this._opcode=15&t[0],this._payloadLength=127&t[1],0===this._opcode){if(s){let t=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}if(!this._fragmented){let t=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(t);return}this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented){let t=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(t);return}this._compressed=s}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let t=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(t);return}if(s){let t=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}if(this._payloadLength>125||8===this._opcode&&1===this._payloadLength){let t=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(t);return}}else{let t=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(t);return}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=(128&t[1])==128,this._isServer){if(!this._masked){let t=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(t);return}}else if(this._masked){let t=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(t);return}126===this._payloadLength?this._state=1:127===this._payloadLength?this._state=2:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let t=this.consume(8),s=t.readUInt32BE(0);if(s>2097151){let t=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(t);return}this._payloadLength=4294967296*s+t.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let t=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(t);return}this._masked?this._state=3:this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(e){let t=o;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(t,e);return}if(this._compressed){this._state=5,this.decompress(t,e);return}t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage(e)}decompress(e,t){let s=this._extensions[i.extensionName];s.decompress(e,this._fin,(e,s)=>{if(e)return t(e);if(s.length){if(this._messageLength+=s.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let e=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(e);return}this._fragments.push(s)}this.dataMessage(t),0===this._state&&this.startLoop(t)})}dataMessage(e){if(!this._fin){this._state=0;return}let t=this._messageLength,s=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let r;r="nodebuffer"===this._binaryType?h(s,t):"arraybuffer"===this._binaryType?c(h(s,t)):s,this._allowSynchronousEvents?(this.emit("message",r,!0),this._state=0):(this._state=6,setImmediate(()=>{this.emit("message",r,!0),this._state=0,this.startLoop(e)}))}else{let r=h(s,t);if(!this._skipUTF8Validation&&!p(r)){let t=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(t);return}5===this._state||this._allowSynchronousEvents?(this.emit("message",r,!1),this._state=0):(this._state=6,setImmediate(()=>{this.emit("message",r,!1),this._state=0,this.startLoop(e)}))}}controlMessage(e,t){if(8===this._opcode){if(0===e.length)this._loop=!1,this.emit("conclude",1005,o),this.end();else{let s=e.readUInt16BE(0);if(!d(s)){let e=this.createError(RangeError,`invalid status code ${s}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");t(e);return}let r=new f(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!p(r)){let e=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(e);return}this._loop=!1,this.emit("conclude",s,r),this.end()}this._state=0;return}this._allowSynchronousEvents?(this.emit(9===this._opcode?"ping":"pong",e),this._state=0):(this._state=6,setImmediate(()=>{this.emit(9===this._opcode?"ping":"pong",e),this._state=0,this.startLoop(t)}))}createError(e,t,s,r,i){this._loop=!1,this._errored=!0;let n=new e(s?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(n,this.createError),n.code=i,n[a]=r,n}}e.exports=m},7345:(e,t,s)=>{let r;let{Duplex:i}=s(2781),{randomFillSync:n}=s(6113),o=s(5817),{EMPTY_BUFFER:a}=s(2267),{isValidStatusCode:l}=s(8211),{mask:h,toBuffer:c}=s(8440),u=Symbol("kByteLength"),d=Buffer.alloc(4),p=8192;class f{constructor(e,t,s){this._extensions=t||{},s&&(this._generateMask=s,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,t){let s,i;let o=!1,a=2,l=!1;t.mask&&(s=t.maskBuffer||d,t.generateMask?t.generateMask(s):(8192===p&&(void 0===r&&(r=Buffer.alloc(8192)),n(r,0,8192),p=0),s[0]=r[p++],s[1]=r[p++],s[2]=r[p++],s[3]=r[p++]),l=(s[0]|s[1]|s[2]|s[3])==0,a=6),"string"==typeof e?i=(!t.mask||l)&&void 0!==t[u]?t[u]:(e=Buffer.from(e)).length:(i=e.length,o=t.mask&&t.readOnly&&!l);let c=i;i>=65536?(a+=8,c=127):i>125&&(a+=2,c=126);let f=Buffer.allocUnsafe(o?i+a:a);return(f[0]=t.fin?128|t.opcode:t.opcode,t.rsv1&&(f[0]|=64),f[1]=c,126===c?f.writeUInt16BE(i,2):127===c&&(f[2]=f[3]=0,f.writeUIntBE(i,4,6)),t.mask)?(f[1]|=128,f[a-4]=s[0],f[a-3]=s[1],f[a-2]=s[2],f[a-1]=s[3],l)?[f,e]:o?(h(e,s,f,a,i),[f]):(h(e,s,e,0,i),[f,e]):[f,e]}close(e,t,s,r){let i;if(void 0===e)i=a;else if("number"==typeof e&&l(e)){if(void 0!==t&&t.length){let s=Buffer.byteLength(t);if(s>123)throw RangeError("The message must not be greater than 123 bytes");(i=Buffer.allocUnsafe(2+s)).writeUInt16BE(e,0),"string"==typeof t?i.write(t,2):i.set(t,2)}else(i=Buffer.allocUnsafe(2)).writeUInt16BE(e,0)}else throw TypeError("First argument must be a valid error code number");let n={[u]:i.length,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._deflating?this.enqueue([this.dispatch,i,!1,n,r]):this.sendFrame(f.frame(i,n),r)}ping(e,t,s){let r,i;if("string"==typeof e?(r=Buffer.byteLength(e),i=!1):(r=(e=c(e)).length,i=c.readOnly),r>125)throw RangeError("The data size must not be greater than 125 bytes");let n={[u]:r,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:9,readOnly:i,rsv1:!1};this._deflating?this.enqueue([this.dispatch,e,!1,n,s]):this.sendFrame(f.frame(e,n),s)}pong(e,t,s){let r,i;if("string"==typeof e?(r=Buffer.byteLength(e),i=!1):(r=(e=c(e)).length,i=c.readOnly),r>125)throw RangeError("The data size must not be greater than 125 bytes");let n={[u]:r,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:10,readOnly:i,rsv1:!1};this._deflating?this.enqueue([this.dispatch,e,!1,n,s]):this.sendFrame(f.frame(e,n),s)}send(e,t,s){let r,i;let n=this._extensions[o.extensionName],a=t.binary?2:1,l=t.compress;if("string"==typeof e?(r=Buffer.byteLength(e),i=!1):(r=(e=c(e)).length,i=c.readOnly),this._firstFragment?(this._firstFragment=!1,l&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(l=r>=n._threshold),this._compress=l):(l=!1,a=0),t.fin&&(this._firstFragment=!0),n){let n={[u]:r,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:a,readOnly:i,rsv1:l};this._deflating?this.enqueue([this.dispatch,e,this._compress,n,s]):this.dispatch(e,this._compress,n,s)}else this.sendFrame(f.frame(e,{[u]:r,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:a,readOnly:i,rsv1:!1}),s)}dispatch(e,t,s,r){if(!t){this.sendFrame(f.frame(e,s),r);return}let i=this._extensions[o.extensionName];this._bufferedBytes+=s[u],this._deflating=!0,i.compress(e,s.fin,(e,t)=>{if(this._socket.destroyed){let e=Error("The socket was closed while data was being compressed");"function"==typeof r&&r(e);for(let t=0;t{let{Duplex:r}=s(2781);function i(e){e.emit("close")}function n(){!this.destroyed&&this._writableState.finished&&this.destroy()}function o(e){this.removeListener("error",o),this.destroy(),0===this.listenerCount("error")&&this.emit("error",e)}e.exports=function(e,t){let s=!0,a=new r({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",function(t,s){let r=!s&&a._readableState.objectMode?t.toString():t;a.push(r)||e.pause()}),e.once("error",function(e){a.destroyed||(s=!1,a.destroy(e))}),e.once("close",function(){a.destroyed||a.push(null)}),a._destroy=function(t,r){if(e.readyState===e.CLOSED){r(t),process.nextTick(i,a);return}let n=!1;e.once("error",function(e){n=!0,r(e)}),e.once("close",function(){n||r(t),process.nextTick(i,a)}),s&&e.terminate()},a._final=function(t){if(e.readyState===e.CONNECTING){e.once("open",function(){a._final(t)});return}null!==e._socket&&(e._socket._writableState.finished?(t(),a._readableState.endEmitted&&a.destroy()):(e._socket.once("finish",function(){t()}),e.close()))},a._read=function(){e.isPaused&&e.resume()},a._write=function(t,s,r){if(e.readyState===e.CONNECTING){e.once("open",function(){a._write(t,s,r)});return}e.send(t,r)},a.on("end",n),a.on("error",o),a}},1902:(e,t,s)=>{let{tokenChars:r}=s(8211);e.exports={parse:function(e){let t=new Set,s=-1,i=-1,n=0;for(;n{let{isUtf8:r}=s(4300);function i(e){let t=e.length,s=0;for(;s=t||(192&e[s+1])!=128||(192&e[s+2])!=128||224===e[s]&&(224&e[s+1])==128||237===e[s]&&(224&e[s+1])==160)return!1;s+=3}else{if((248&e[s])!=240||s+3>=t||(192&e[s+1])!=128||(192&e[s+2])!=128||(192&e[s+3])!=128||240===e[s]&&(240&e[s+1])==128||244===e[s]&&e[s+1]>143||e[s]>244)return!1;s+=4}return!0}if(e.exports={isValidStatusCode:function(e){return e>=1e3&&e<=1014&&1004!==e&&1005!==e&&1006!==e||e>=3e3&&e<=4999},isValidUTF8:i,tokenChars:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0]},r)e.exports.isValidUTF8=function(e){return e.length<24?i(e):r(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=s(3739);e.exports.isValidUTF8=function(e){return e.length<32?i(e):t(e)}}catch(e){}},3840:(e,t,s)=>{let r=s(2361),i=s(3685),{Duplex:n}=s(2781),{createHash:o}=s(6113),a=s(1138),l=s(5817),h=s(1902),WebSocket=s(9364),{GUID:c,kWebSocket:u}=s(2267),d=/^[+/0-9A-Za-z]{22}==$/;class p extends r{constructor(e,t){if(super(),null==(e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket,...e}).port&&!e.server&&!e.noServer||null!=e.port&&(e.server||e.noServer)||e.server&&e.noServer)throw TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(null!=e.port?(this._server=i.createServer((e,t)=>{let s=i.STATUS_CODES[426];t.writeHead(426,{"Content-Length":s.length,"Content-Type":"text/plain"}),t.end(s)}),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server){let e=this.emit.bind(this,"connection");this._removeListeners=function(e,t){for(let s of Object.keys(t))e.on(s,t[s]);return function(){for(let s of Object.keys(t))e.removeListener(s,t[s])}}(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,s,r)=>{this.handleUpgrade(t,s,r,e)}})}!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=0}address(){if(this.options.noServer)throw Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(2===this._state){e&&this.once("close",()=>{e(Error("The server is not running"))}),process.nextTick(f,this);return}if(e&&this.once("close",e),1!==this._state){if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(f,this);else{let e=this._server;this._removeListeners(),this._removeListeners=this._server=null,e.close(()=>{f(this)})}}}shouldHandle(e){if(this.options.path){let t=e.url.indexOf("?"),s=-1!==t?e.url.slice(0,t):e.url;if(s!==this.options.path)return!1}return!0}handleUpgrade(e,t,s,r){t.on("error",m);let i=e.headers["sec-websocket-key"],n=e.headers.upgrade,o=+e.headers["sec-websocket-version"];if("GET"!==e.method){y(this,e,t,405,"Invalid HTTP method");return}if(void 0===n||"websocket"!==n.toLowerCase()){y(this,e,t,400,"Invalid Upgrade header");return}if(void 0===i||!d.test(i)){y(this,e,t,400,"Missing or invalid Sec-WebSocket-Key header");return}if(8!==o&&13!==o){y(this,e,t,400,"Missing or invalid Sec-WebSocket-Version header");return}if(!this.shouldHandle(e)){g(t,400);return}let c=e.headers["sec-websocket-protocol"],u=new Set;if(void 0!==c)try{u=h.parse(c)}catch(s){y(this,e,t,400,"Invalid Sec-WebSocket-Protocol header");return}let p=e.headers["sec-websocket-extensions"],f={};if(this.options.perMessageDeflate&&void 0!==p){let s=new l(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let e=a.parse(p);e[l.extensionName]&&(s.accept(e[l.extensionName]),f[l.extensionName]=s)}catch(s){y(this,e,t,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let n={origin:e.headers[`${8===o?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(2===this.options.verifyClient.length){this.options.verifyClient(n,(n,o,a,l)=>{if(!n)return g(t,o||401,a,l);this.completeUpgrade(f,i,u,e,t,s,r)});return}if(!this.options.verifyClient(n))return g(t,401)}this.completeUpgrade(f,i,u,e,t,s,r)}completeUpgrade(e,t,s,r,i,n,h){if(!i.readable||!i.writable)return i.destroy();if(i[u])throw Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return g(i,503);let d=o("sha1").update(t+c).digest("base64"),p=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${d}`],y=new this.options.WebSocket(null,void 0,this.options);if(s.size){let e=this.options.handleProtocols?this.options.handleProtocols(s,r):s.values().next().value;e&&(p.push(`Sec-WebSocket-Protocol: ${e}`),y._protocol=e)}if(e[l.extensionName]){let t=e[l.extensionName].params,s=a.format({[l.extensionName]:[t]});p.push(`Sec-WebSocket-Extensions: ${s}`),y._extensions=e}this.emit("headers",p,r),i.write(p.concat("\r\n").join("\r\n")),i.removeListener("error",m),y.setSocket(i,n,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(y),y.on("close",()=>{this.clients.delete(y),this._shouldEmitClose&&!this.clients.size&&process.nextTick(f,this)})),h(y,r)}}function f(e){e._state=2,e.emit("close")}function m(){this.destroy()}function g(e,t,s,r){s=s||i.STATUS_CODES[t],r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(s),...r},e.once("finish",e.destroy),e.end(`HTTP/1.1 ${t} ${i.STATUS_CODES[t]}\r
+`+Object.keys(r).map(e=>`${e}: ${r[e]}`).join("\r\n")+"\r\n\r\n"+s)}function y(e,t,s,r,i){if(e.listenerCount("wsClientError")){let r=Error(i);Error.captureStackTrace(r,y),e.emit("wsClientError",r,s,t)}else g(s,r,i)}e.exports=p},9364:(e,t,s)=>{let r=s(2361),i=s(5687),n=s(3685),o=s(1808),a=s(4404),{randomBytes:l,createHash:h}=s(6113),{Duplex:c,Readable:u}=s(2781),{URL}=s(7310),d=s(5817),p=s(2535),f=s(7345),{BINARY_TYPES:m,EMPTY_BUFFER:g,GUID:y,kForOnEventAttribute:v,kListener:b,kStatusCode:_,kWebSocket:C,NOOP:x}=s(2267),{EventTarget:{addEventListener:E,removeEventListener:w}}=s(1198),{format:k,parse:S}=s(1138),{toBuffer:T}=s(8440),P=Symbol("kAborted"),O=[8,13],A=["CONNECTING","OPEN","CLOSING","CLOSED"],R=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class WebSocket extends r{constructor(e,t,s){super(),this._binaryType=m[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=g,this._closeTimer=null,this._extensions={},this._paused=!1,this._protocol="",this._readyState=WebSocket.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null!==e?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,void 0===t?t=[]:Array.isArray(t)||("object"==typeof t&&null!==t?(s=t,t=[]):t=[t]),function e(t,s,r,o){let a,c,u,p;let f={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:O[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...o,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=f.autoPong,!O.includes(f.protocolVersion))throw RangeError(`Unsupported protocol version: ${f.protocolVersion} (supported versions: ${O.join(", ")})`);if(s instanceof URL)a=s;else try{a=new URL(s)}catch(e){throw SyntaxError(`Invalid URL: ${s}`)}"http:"===a.protocol?a.protocol="ws:":"https:"===a.protocol&&(a.protocol="wss:"),t._url=a.href;let m="wss:"===a.protocol,g="ws+unix:"===a.protocol;if("ws:"===a.protocol||m||g?g&&!a.pathname?c="The URL's pathname is empty":a.hash&&(c="The URL contains a fragment identifier"):c='The URL\'s protocol must be one of "ws:", "wss:", "http:", "https", or "ws+unix:"',c){let e=SyntaxError(c);if(0===t._redirects)throw e;F(t,e);return}let v=m?443:80,b=l(16).toString("base64"),_=m?i.request:n.request,C=new Set;if(f.createConnection=f.createConnection||(m?D:L),f.defaultPort=f.defaultPort||v,f.port=a.port||v,f.host=a.hostname.startsWith("[")?a.hostname.slice(1,-1):a.hostname,f.headers={...f.headers,"Sec-WebSocket-Version":f.protocolVersion,"Sec-WebSocket-Key":b,Connection:"Upgrade",Upgrade:"websocket"},f.path=a.pathname+a.search,f.timeout=f.handshakeTimeout,f.perMessageDeflate&&(u=new d(!0!==f.perMessageDeflate?f.perMessageDeflate:{},!1,f.maxPayload),f.headers["Sec-WebSocket-Extensions"]=k({[d.extensionName]:u.offer()})),r.length){for(let e of r){if("string"!=typeof e||!R.test(e)||C.has(e))throw SyntaxError("An invalid or duplicated subprotocol was specified");C.add(e)}f.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(f.origin&&(f.protocolVersion<13?f.headers["Sec-WebSocket-Origin"]=f.origin:f.headers.Origin=f.origin),(a.username||a.password)&&(f.auth=`${a.username}:${a.password}`),g){let e=f.path.split(":");f.socketPath=e[0],f.path=e[1]}if(f.followRedirects){if(0===t._redirects){t._originalIpc=g,t._originalSecure=m,t._originalHostOrSocketPath=g?f.socketPath:a.host;let e=o&&o.headers;if(o={...o,headers:{}},e)for(let[t,s]of Object.entries(e))o.headers[t.toLowerCase()]=s}else if(0===t.listenerCount("redirect")){let e=g?!!t._originalIpc&&f.socketPath===t._originalHostOrSocketPath:!t._originalIpc&&a.host===t._originalHostOrSocketPath;e&&(!t._originalSecure||m)||(delete f.headers.authorization,delete f.headers.cookie,e||delete f.headers.host,f.auth=void 0)}f.auth&&!o.headers.authorization&&(o.headers.authorization="Basic "+Buffer.from(f.auth).toString("base64")),p=t._req=_(f),t._redirects&&t.emit("redirect",t.url,p)}else p=t._req=_(f);f.timeout&&p.on("timeout",()=>{N(t,p,"Opening handshake has timed out")}),p.on("error",e=>{null===p||p[P]||(p=t._req=null,F(t,e))}),p.on("response",i=>{let n=i.headers.location,a=i.statusCode;if(n&&f.followRedirects&&a>=300&&a<400){let i;if(++t._redirects>f.maxRedirects){N(t,p,"Maximum redirects exceeded");return}p.abort();try{i=new URL(n,s)}catch(s){let e=SyntaxError(`Invalid URL: ${n}`);F(t,e);return}e(t,i,r,o)}else t.emit("unexpected-response",p,i)||N(t,p,`Unexpected server response: ${i.statusCode}`)}),p.on("upgrade",(e,s,r)=>{let i;if(t.emit("upgrade",e),t.readyState!==WebSocket.CONNECTING)return;p=t._req=null;let n=e.headers.upgrade;if(void 0===n||"websocket"!==n.toLowerCase()){N(t,s,"Invalid Upgrade header");return}let o=h("sha1").update(b+y).digest("base64");if(e.headers["sec-websocket-accept"]!==o){N(t,s,"Invalid Sec-WebSocket-Accept header");return}let a=e.headers["sec-websocket-protocol"];if(void 0!==a?C.size?C.has(a)||(i="Server sent an invalid subprotocol"):i="Server sent a subprotocol but none was requested":C.size&&(i="Server sent no subprotocol"),i){N(t,s,i);return}a&&(t._protocol=a);let l=e.headers["sec-websocket-extensions"];if(void 0!==l){let e;if(!u){N(t,s,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}try{e=S(l)}catch(e){N(t,s,"Invalid Sec-WebSocket-Extensions header");return}let r=Object.keys(e);if(1!==r.length||r[0]!==d.extensionName){N(t,s,"Server indicated an extension that was not requested");return}try{u.accept(e[d.extensionName])}catch(e){N(t,s,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[d.extensionName]=u}t.setSocket(s,r,{allowSynchronousEvents:f.allowSynchronousEvents,generateMask:f.generateMask,maxPayload:f.maxPayload,skipUTF8Validation:f.skipUTF8Validation})}),f.finishRequest?f.finishRequest(p,t):p.end()}(this,e,t,s)):(this._autoPong=s.autoPong,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){m.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,s){let r=new p({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation});this._sender=new f(e,this._extensions,s.generateMask),this._receiver=r,this._socket=e,r[C]=this,e[C]=this,r.on("conclude",M),r.on("drain",V),r.on("error",j),r.on("message",U),r.on("ping",W),r.on("pong",$),e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),t.length>0&&e.unshift(t),e.on("close",H),e.on("data",z),e.on("end",G),e.on("error",Y),this._readyState=WebSocket.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=WebSocket.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[d.extensionName]&&this._extensions[d.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=WebSocket.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState!==WebSocket.CLOSED){if(this.readyState===WebSocket.CONNECTING){N(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===WebSocket.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=WebSocket.CLOSING,this._sender.close(e,t,!this._isServer,e=>{!e&&(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),3e4)}}pause(){this.readyState!==WebSocket.CONNECTING&&this.readyState!==WebSocket.CLOSED&&(this._paused=!0,this._socket.pause())}ping(e,t,s){if(this.readyState===WebSocket.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof e?(s=e,e=t=void 0):"function"==typeof t&&(s=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState!==WebSocket.OPEN){B(this,e,s);return}void 0===t&&(t=!this._isServer),this._sender.ping(e||g,t,s)}pong(e,t,s){if(this.readyState===WebSocket.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof e?(s=e,e=t=void 0):"function"==typeof t&&(s=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState!==WebSocket.OPEN){B(this,e,s);return}void 0===t&&(t=!this._isServer),this._sender.pong(e||g,t,s)}resume(){this.readyState!==WebSocket.CONNECTING&&this.readyState!==WebSocket.CLOSED&&(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,t,s){if(this.readyState===WebSocket.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof t&&(s=t,t={}),"number"==typeof e&&(e=e.toString()),this.readyState!==WebSocket.OPEN){B(this,e,s);return}let r={binary:"string"!=typeof e,mask:!this._isServer,compress:!0,fin:!0,...t};this._extensions[d.extensionName]||(r.compress=!1),this._sender.send(e||g,r,s)}terminate(){if(this.readyState!==WebSocket.CLOSED){if(this.readyState===WebSocket.CONNECTING){N(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=WebSocket.CLOSING,this._socket.destroy())}}}function F(e,t){e._readyState=WebSocket.CLOSING,e.emit("error",t),e.emitClose()}function L(e){return e.path=e.socketPath,o.connect(e)}function D(e){return e.path=void 0,e.servername||""===e.servername||(e.servername=o.isIP(e.host)?"":e.host),a.connect(e)}function N(e,t,s){e._readyState=WebSocket.CLOSING;let r=Error(s);Error.captureStackTrace(r,N),t.setHeader?(t[P]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(F,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function B(e,t,s){if(t){let s=T(t).length;e._socket?e._sender._bufferedBytes+=s:e._bufferedAmount+=s}if(s){let t=Error(`WebSocket is not open: readyState ${e.readyState} (${A[e.readyState]})`);process.nextTick(s,t)}}function M(e,t){let s=this[C];s._closeFrameReceived=!0,s._closeMessage=t,s._closeCode=e,void 0!==s._socket[C]&&(s._socket.removeListener("data",z),process.nextTick(q,s._socket),1005===e?s.close():s.close(e,t))}function V(){let e=this[C];e.isPaused||e._socket.resume()}function j(e){let t=this[C];void 0!==t._socket[C]&&(t._socket.removeListener("data",z),process.nextTick(q,t._socket),t.close(e[_])),t.emit("error",e)}function I(){this[C].emitClose()}function U(e,t){this[C].emit("message",e,t)}function W(e){let t=this[C];t._autoPong&&t.pong(e,!this._isServer,x),t.emit("ping",e)}function $(e){this[C].emit("pong",e)}function q(e){e.resume()}function H(){let e;let t=this[C];this.removeListener("close",H),this.removeListener("data",z),this.removeListener("end",G),t._readyState=WebSocket.CLOSING,this._readableState.endEmitted||t._closeFrameReceived||t._receiver._writableState.errorEmitted||null===(e=t._socket.read())||t._receiver.write(e),t._receiver.end(),this[C]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",I),t._receiver.on("finish",I))}function z(e){this[C]._receiver.write(e)||this.pause()}function G(){let e=this[C];e._readyState=WebSocket.CLOSING,e._receiver.end(),this.end()}function Y(){let e=this[C];this.removeListener("error",Y),this.on("error",x),e&&(e._readyState=WebSocket.CLOSING,this.destroy())}Object.defineProperty(WebSocket,"CONNECTING",{enumerable:!0,value:A.indexOf("CONNECTING")}),Object.defineProperty(WebSocket.prototype,"CONNECTING",{enumerable:!0,value:A.indexOf("CONNECTING")}),Object.defineProperty(WebSocket,"OPEN",{enumerable:!0,value:A.indexOf("OPEN")}),Object.defineProperty(WebSocket.prototype,"OPEN",{enumerable:!0,value:A.indexOf("OPEN")}),Object.defineProperty(WebSocket,"CLOSING",{enumerable:!0,value:A.indexOf("CLOSING")}),Object.defineProperty(WebSocket.prototype,"CLOSING",{enumerable:!0,value:A.indexOf("CLOSING")}),Object.defineProperty(WebSocket,"CLOSED",{enumerable:!0,value:A.indexOf("CLOSED")}),Object.defineProperty(WebSocket.prototype,"CLOSED",{enumerable:!0,value:A.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(e=>{Object.defineProperty(WebSocket.prototype,e,{enumerable:!0})}),["open","error","close","message"].forEach(e=>{Object.defineProperty(WebSocket.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[v])return t[b];return null},set(t){for(let t of this.listeners(e))if(t[v]){this.removeListener(e,t);break}"function"==typeof t&&this.addEventListener(e,t,{[v]:!0})}})}),WebSocket.prototype.addEventListener=E,WebSocket.prototype.removeEventListener=w,e.exports=WebSocket},6308:(e,t,s)=>{/**
+ * Wrapper for built-in http.js to emulate the browser XMLHttpRequest object.
+ *
+ * This can be used with JS designed for browsers to improve reuse of code and
+ * allow the use of existing libraries.
+ *
+ * Usage: include("XMLHttpRequest.js") and use XMLHttpRequest per W3C specs.
+ *
+ * @author Dan DeFelippi
+ * @contributor David Ellis
+ * @license MIT
+ */var r=s(7147),i=s(7310),n=s(2081).spawn;function XMLHttpRequest(e){e=e||{};var t,o,a=this,l=s(3685),h=s(5687),c={},u=!1,d={"User-Agent":"node-XMLHttpRequest",Accept:"*/*"},p=Object.assign({},d),f=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","content-transfer-encoding","cookie","cookie2","date","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"],m=["TRACE","TRACK","CONNECT"],g=!1,y=!1,v=!1,b={};this.UNSENT=0,this.OPENED=1,this.HEADERS_RECEIVED=2,this.LOADING=3,this.DONE=4,this.readyState=this.UNSENT,this.onreadystatechange=null,this.responseText="",this.responseXML="",this.response=Buffer.alloc(0),this.status=null,this.statusText=null,this.open=function(e,t,s,r,i){if(this.abort(),y=!1,v=!1,!(e&&-1===m.indexOf(e)))throw Error("SecurityError: Request method not allowed");c={method:e,url:t.toString(),async:"boolean"!=typeof s||s,user:r||null,password:i||null},_(this.OPENED)},this.setDisableHeaderCheck=function(e){u=e},this.setRequestHeader=function(e,t){if(this.readyState!=this.OPENED)throw Error("INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN");if(!u&&(!e||-1!==f.indexOf(e.toLowerCase())))return console.warn('Refused to set unsafe header "'+e+'"'),!1;if(g)throw Error("INVALID_STATE_ERR: send flag is true");return p[e]=t,!0},this.getResponseHeader=function(e){return"string"==typeof e&&this.readyState>this.OPENED&&o.headers[e.toLowerCase()]&&!y?o.headers[e.toLowerCase()]:null},this.getAllResponseHeaders=function(){if(this.readyState{e.unref()}),s&&t.write(s),t.end(),a.dispatchEvent("loadstart")}else{var T=".node-xmlhttprequest-content-"+process.pid,P=".node-xmlhttprequest-sync-"+process.pid;r.writeFileSync(P,"","utf8");for(var O="var http = require('http'), https = require('https'), fs = require('fs');var doRequest = http"+(d?"s":"")+".request;var options = "+JSON.stringify(E)+";var responseText = '';var responseData = Buffer.alloc(0);var req = doRequest(options, function(response) {response.on('data', function(chunk) { var data = Buffer.from(chunk); responseText += data.toString('utf8'); responseData = Buffer.concat([responseData, data]);});response.on('end', function() {fs.writeFileSync('"+T+"', JSON.stringify({err: null, data: {statusCode: response.statusCode, headers: response.headers, text: responseText, data: responseData.toString('base64')}}), 'utf8');fs.unlinkSync('"+P+"');});response.on('error', function(error) {fs.writeFileSync('"+T+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+P+"');});}).on('error', function(error) {fs.writeFileSync('"+T+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+P+"');});"+(s?"req.write('"+JSON.stringify(s).slice(1,-1).replace(/'/g,"\\'")+"');":"")+"req.end();",A=n(process.argv[0],["-e",O]);r.existsSync(P););if(a.responseText=r.readFileSync(T,"utf8"),A.stdin.end(),r.unlinkSync(T),a.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)){var R=JSON.parse(a.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/,""));a.handleError(R,503)}else{a.status=a.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/,"$1");var F=JSON.parse(a.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/,"$1"));o={statusCode:a.status,headers:F.data.headers},a.responseText=F.data.text,a.response=Buffer.from(F.data.data,"base64"),_(a.DONE,!0)}}},this.handleError=function(e,t){this.status=t||0,this.statusText=e,this.responseText=e.stack,y=!0,_(this.DONE)},this.abort=function(){t&&(t.abort(),t=null),p=Object.assign({},d),this.responseText="",this.responseXML="",this.response=Buffer.alloc(0),y=v=!0,this.readyState!==this.UNSENT&&(this.readyState!==this.OPENED||g)&&this.readyState!==this.DONE&&(g=!1,_(this.DONE)),this.readyState=this.UNSENT},this.addEventListener=function(e,t){e in b||(b[e]=[]),b[e].push(t)},this.removeEventListener=function(e,t){e in b&&(b[e]=b[e].filter(function(e){return e!==t}))},this.dispatchEvent=function(e){if("function"==typeof a["on"+e]&&(this.readyState===this.DONE&&c.async?setTimeout(function(){a["on"+e]()},0):a["on"+e]()),e in b)for(let t=0,s=b[e].length;t{s.d(t,{M:()=>g});var r=s(4218),i=s(1038);function n(){let e=(0,r.useRef)(!1);return(0,i.L)(()=>(e.current=!0,()=>{e.current=!1}),[]),e}var o=s(4999),a=s(7125),l=s(7724);class h extends r.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent){let e=this.props.sizeRef.current;e.height=t.offsetHeight||0,e.width=t.offsetWidth||0,e.top=t.offsetTop,e.left=t.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function c({children:e,isPresent:t}){let s=(0,r.useId)(),i=(0,r.useRef)(null),n=(0,r.useRef)({width:0,height:0,top:0,left:0});return(0,r.useInsertionEffect)(()=>{let{width:e,height:r,top:o,left:a}=n.current;if(t||!i.current||!e||!r)return;i.current.dataset.motionPopId=s;let l=document.createElement("style");return document.head.appendChild(l),l.sheet&&l.sheet.insertRule(`
+ [data-motion-pop-id="${s}"] {
+ position: absolute !important;
+ width: ${e}px !important;
+ height: ${r}px !important;
+ top: ${o}px !important;
+ left: ${a}px !important;
+ }
+ `),()=>{document.head.removeChild(l)}},[t]),r.createElement(h,{isPresent:t,childRef:i,sizeRef:n},r.cloneElement(e,{ref:i}))}let u=({children:e,initial:t,isPresent:s,onExitComplete:i,custom:n,presenceAffectsLayout:o,mode:h})=>{let u=(0,l.h)(d),p=(0,r.useId)(),f=(0,r.useMemo)(()=>({id:p,initial:t,isPresent:s,custom:n,onExitComplete:e=>{for(let t of(u.set(e,!0),u.values()))if(!t)return;i&&i()},register:e=>(u.set(e,!1),()=>u.delete(e))}),o?void 0:[s]);return(0,r.useMemo)(()=>{u.forEach((e,t)=>u.set(t,!1))},[s]),r.useEffect(()=>{s||u.size||!i||i()},[s]),"popLayout"===h&&(e=r.createElement(c,{isPresent:s},e)),r.createElement(a.O.Provider,{value:f},e)};function d(){return new Map}var p=s(3669),f=s(7939);let m=e=>e.key||"",g=({children:e,custom:t,initial:s=!0,onExitComplete:a,exitBeforeEnter:l,presenceAffectsLayout:h=!0,mode:c="sync"})=>{var d;(0,f.k)(!l,"Replace exitBeforeEnter with mode='wait'");let g=(0,r.useContext)(p.p).forceRender||function(){let e=n(),[t,s]=(0,r.useState)(0),i=(0,r.useCallback)(()=>{e.current&&s(t+1)},[t]),a=(0,r.useCallback)(()=>o.Wi.postRender(i),[i]);return[a,t]}()[0],y=n(),v=function(e){let t=[];return r.Children.forEach(e,e=>{(0,r.isValidElement)(e)&&t.push(e)}),t}(e),b=v,_=(0,r.useRef)(new Map).current,C=(0,r.useRef)(b),x=(0,r.useRef)(new Map).current,E=(0,r.useRef)(!0);if((0,i.L)(()=>{E.current=!1,function(e,t){e.forEach(e=>{let s=m(e);t.set(s,e)})}(v,x),C.current=b}),d=()=>{E.current=!0,x.clear(),_.clear()},(0,r.useEffect)(()=>()=>d(),[]),E.current)return r.createElement(r.Fragment,null,b.map(e=>r.createElement(u,{key:m(e),isPresent:!0,initial:!!s&&void 0,presenceAffectsLayout:h,mode:c},e)));b=[...b];let w=C.current.map(m),k=v.map(m),S=w.length;for(let e=0;e{if(-1!==k.indexOf(s))return;let i=x.get(s);if(!i)return;let n=w.indexOf(s),o=e;o||(o=r.createElement(u,{key:m(i),isPresent:!1,onExitComplete:()=>{_.delete(s);let e=Array.from(x.keys()).filter(e=>!k.includes(e));if(e.forEach(e=>x.delete(e)),C.current=v.filter(t=>{let r=m(t);return r===s||e.includes(r)}),!_.size){if(!1===y.current)return;g(),a&&a()}},custom:t,presenceAffectsLayout:h,mode:c},i),_.set(s,o)),b.splice(n,0,o)}),b=b.map(e=>{let t=e.key;return _.has(t)?e:r.createElement(u,{key:m(e),isPresent:!0,presenceAffectsLayout:h,mode:c},e)}),r.createElement(r.Fragment,null,_.size?b:b.map(e=>(0,r.cloneElement)(e)))}},3669:(e,t,s)=>{s.d(t,{p:()=>i});var r=s(4218);let i=(0,r.createContext)({})},7125:(e,t,s)=>{s.d(t,{O:()=>i});var r=s(4218);let i=(0,r.createContext)(null)},4999:(e,t,s)=>{s.d(t,{Pn:()=>a,Wi:()=>o,frameData:()=>l,S6:()=>h});var r=s(7769);class i{constructor(){this.order=[],this.scheduled=new Set}add(e){if(!this.scheduled.has(e))return this.scheduled.add(e),this.order.push(e),!0}remove(e){let t=this.order.indexOf(e);-1!==t&&(this.order.splice(t,1),this.scheduled.delete(e))}clear(){this.order.length=0,this.scheduled.clear()}}let n=["prepare","read","update","preRender","render","postRender"],{schedule:o,cancel:a,state:l,steps:h}=function(e,t){let s=!1,r=!0,o={delta:0,timestamp:0,isProcessing:!1},a=n.reduce((e,t)=>(e[t]=function(e){let t=new i,s=new i,r=0,n=!1,o=!1,a=new WeakSet,l={schedule:(e,i=!1,o=!1)=>{let l=o&&n,h=l?t:s;return i&&a.add(e),h.add(e)&&l&&n&&(r=t.order.length),e},cancel:e=>{s.remove(e),a.delete(e)},process:i=>{if(n){o=!0;return}if(n=!0,[t,s]=[s,t],s.clear(),r=t.order.length)for(let s=0;ss=!0),e),{}),l=e=>a[e].process(o),h=()=>{let i=performance.now();s=!1,o.delta=r?1e3/60:Math.max(Math.min(i-o.timestamp,40),1),o.timestamp=i,o.isProcessing=!0,n.forEach(l),o.isProcessing=!1,s&&t&&(r=!1,e(h))},c=()=>{s=!0,r=!0,o.isProcessing||e(h)},u=n.reduce((e,t)=>{let r=a[t];return e[t]=(e,t=!1,i=!1)=>(s||c(),r.schedule(e,t,i)),e},{});return{schedule:u,cancel:e=>n.forEach(t=>a[t].cancel(e)),state:o,steps:a}}("undefined"!=typeof requestAnimationFrame?requestAnimationFrame:r.Z,!0)},2209:(e,t,s)=>{s.d(t,{E:()=>iq});var r=s(4218);let i=(0,r.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),n=(0,r.createContext)({});var o=s(7125),a=s(1038);let l=(0,r.createContext)({strict:!1}),h=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),c="data-"+h("framerAppearId");function u(e){return e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,"current")}function d(e){return"string"==typeof e||Array.isArray(e)}function p(e){return null!==e&&"object"==typeof e&&"function"==typeof e.start}let f=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],m=["initial",...f];function g(e){return p(e.animate)||m.some(t=>d(e[t]))}function y(e){return!!(g(e)||e.variants)}function v(e){return Array.isArray(e)?e.join(" "):e}let b={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},_={};for(let e in b)_[e]={isEnabled:t=>b[e].some(e=>!!t[e])};var C=s(3489),x=s(3669);let E=(0,r.createContext)({}),w=Symbol.for("motionComponentSymbol"),k=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function S(e){if("string"!=typeof e||e.includes("-"));else if(k.indexOf(e)>-1||/[A-Z]/.test(e))return!0;return!1}let T={},P=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],O=new Set(P);function A(e,{layout:t,layoutId:s}){return O.has(e)||e.startsWith("origin")||(t||void 0!==s)&&(!!T[e]||"opacity"===e)}let R=e=>!!(e&&e.getVelocity),F={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},L=P.length,D=e=>t=>"string"==typeof t&&t.startsWith(e),N=D("--"),B=D("var(--"),M=(e,t)=>t&&"number"==typeof e?t.transform(e):e,V=(e,t,s)=>Math.min(Math.max(s,e),t),j={test:e=>"number"==typeof e,parse:parseFloat,transform:e=>e},I={...j,transform:e=>V(0,1,e)},U={...j,default:1},W=e=>Math.round(1e5*e)/1e5,$=/(-)?([\d]*\.?[\d])+/g,q=/(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,H=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function z(e){return"string"==typeof e}let G=e=>({test:t=>z(t)&&t.endsWith(e)&&1===t.split(" ").length,parse:parseFloat,transform:t=>`${t}${e}`}),Y=G("deg"),X=G("%"),Z=G("px"),K=G("vh"),J=G("vw"),Q={...X,parse:e=>X.parse(e)/100,transform:e=>X.transform(100*e)},ee={...j,transform:Math.round},et={borderWidth:Z,borderTopWidth:Z,borderRightWidth:Z,borderBottomWidth:Z,borderLeftWidth:Z,borderRadius:Z,radius:Z,borderTopLeftRadius:Z,borderTopRightRadius:Z,borderBottomRightRadius:Z,borderBottomLeftRadius:Z,width:Z,maxWidth:Z,height:Z,maxHeight:Z,size:Z,top:Z,right:Z,bottom:Z,left:Z,padding:Z,paddingTop:Z,paddingRight:Z,paddingBottom:Z,paddingLeft:Z,margin:Z,marginTop:Z,marginRight:Z,marginBottom:Z,marginLeft:Z,rotate:Y,rotateX:Y,rotateY:Y,rotateZ:Y,scale:U,scaleX:U,scaleY:U,scaleZ:U,skew:Y,skewX:Y,skewY:Y,distance:Z,translateX:Z,translateY:Z,translateZ:Z,x:Z,y:Z,z:Z,perspective:Z,transformPerspective:Z,opacity:I,originX:Q,originY:Q,originZ:Z,zIndex:ee,fillOpacity:I,strokeOpacity:I,numOctaves:ee};function es(e,t,s,r){let{style:i,vars:n,transform:o,transformOrigin:a}=e,l=!1,h=!1,c=!0;for(let e in t){let s=t[e];if(N(e)){n[e]=s;continue}let r=et[e],u=M(s,r);if(O.has(e)){if(l=!0,o[e]=u,!c)continue;s!==(r.default||0)&&(c=!1)}else e.startsWith("origin")?(h=!0,a[e]=u):i[e]=u}if(!t.transform&&(l||r?i.transform=function(e,{enableHardwareAcceleration:t=!0,allowTransformNone:s=!0},r,i){let n="";for(let t=0;t({style:{},transform:{},transformOrigin:{},vars:{}});function ei(e,t,s){for(let r in t)R(t[r])||A(r,s)||(e[r]=t[r])}function en(e,t,s){let i={},n=function(e,t,s){let i=e.style||{},n={};return ei(n,i,e),Object.assign(n,function({transformTemplate:e},t,s){return(0,r.useMemo)(()=>{let r=er();return es(r,t,{enableHardwareAcceleration:!s},e),Object.assign({},r.vars,r.style)},[t])}(e,t,s)),e.transformValues?e.transformValues(n):n}(e,t,s);return e.drag&&!1!==e.dragListener&&(i.draggable=!1,n.userSelect=n.WebkitUserSelect=n.WebkitTouchCallout="none",n.touchAction=!0===e.drag?"none":`pan-${"x"===e.drag?"y":"x"}`),void 0===e.tabIndex&&(e.onTap||e.onTapStart||e.whileTap)&&(i.tabIndex=0),i.style=n,i}let eo=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","transformValues","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ea(e){return e.startsWith("while")||e.startsWith("drag")&&"draggable"!==e||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||eo.has(e)}let el=e=>!ea(e);try{!function(e){e&&(el=t=>t.startsWith("on")?!ea(t):e(t))}(require("@emotion/is-prop-valid").default)}catch(e){}function eh(e,t,s){return"string"==typeof e?e:Z.transform(t+s*e)}let ec={offset:"stroke-dashoffset",array:"stroke-dasharray"},eu={offset:"strokeDashoffset",array:"strokeDasharray"};function ed(e,{attrX:t,attrY:s,attrScale:r,originX:i,originY:n,pathLength:o,pathSpacing:a=1,pathOffset:l=0,...h},c,u,d){if(es(e,h,c,d),u){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};let{attrs:p,style:f,dimensions:m}=e;p.transform&&(m&&(f.transform=p.transform),delete p.transform),m&&(void 0!==i||void 0!==n||f.transform)&&(f.transformOrigin=function(e,t,s){let r=eh(t,e.x,e.width),i=eh(s,e.y,e.height);return`${r} ${i}`}(m,void 0!==i?i:.5,void 0!==n?n:.5)),void 0!==t&&(p.x=t),void 0!==s&&(p.y=s),void 0!==r&&(p.scale=r),void 0!==o&&function(e,t,s=1,r=0,i=!0){e.pathLength=1;let n=i?ec:eu;e[n.offset]=Z.transform(-r);let o=Z.transform(t),a=Z.transform(s);e[n.array]=`${o} ${a}`}(p,o,a,l,!1)}let ep=()=>({...er(),attrs:{}}),ef=e=>"string"==typeof e&&"svg"===e.toLowerCase();function em(e,t,s,i){let n=(0,r.useMemo)(()=>{let s=ep();return ed(s,t,{enableHardwareAcceleration:!1},ef(i),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){let t={};ei(t,e.style,e),n.style={...t,...n.style}}return n}function eg(e,{style:t,vars:s},r,i){for(let n in Object.assign(e.style,t,i&&i.getProjectionStyles(r)),s)e.style.setProperty(n,s[n])}let ey=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function ev(e,t,s,r){for(let s in eg(e,t,void 0,r),t.attrs)e.setAttribute(ey.has(s)?s:h(s),t.attrs[s])}function eb(e,t){let{style:s}=e,r={};for(let i in s)(R(s[i])||t.style&&R(t.style[i])||A(i,e))&&(r[i]=s[i]);return r}function e_(e,t){let s=eb(e,t);for(let r in e)if(R(e[r])||R(t[r])){let t=-1!==P.indexOf(r)?"attr"+r.charAt(0).toUpperCase()+r.substring(1):r;s[t]=e[r]}return s}function eC(e,t,s,r={},i={}){return"function"==typeof t&&(t=t(void 0!==s?s:e.custom,r,i)),"string"==typeof t&&(t=e.variants&&e.variants[t]),"function"==typeof t&&(t=t(void 0!==s?s:e.custom,r,i)),t}var ex=s(7724);let eE=e=>Array.isArray(e),ew=e=>!!(e&&"object"==typeof e&&e.mix&&e.toValue),ek=e=>eE(e)?e[e.length-1]||0:e;function eS(e){let t=R(e)?e.get():e;return ew(t)?t.toValue():t}let eT=e=>(t,s)=>{let i=(0,r.useContext)(n),a=(0,r.useContext)(o.O),l=()=>(function({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:s},r,i,n){let o={latestValues:function(e,t,s,r){let i={},n=r(e,{});for(let e in n)i[e]=eS(n[e]);let{initial:o,animate:a}=e,l=g(e),h=y(e);t&&h&&!l&&!1!==e.inherit&&(void 0===o&&(o=t.initial),void 0===a&&(a=t.animate));let c=!!s&&!1===s.initial;c=c||!1===o;let u=c?a:o;if(u&&"boolean"!=typeof u&&!p(u)){let t=Array.isArray(u)?u:[u];t.forEach(t=>{let s=eC(e,t);if(!s)return;let{transitionEnd:r,transition:n,...o}=s;for(let e in o){let t=o[e];if(Array.isArray(t)){let e=c?t.length-1:0;t=t[e]}null!==t&&(i[e]=t)}for(let e in r)i[e]=r[e]})}return i}(r,i,n,e),renderState:t()};return s&&(o.mount=e=>s(r,e,o)),o})(e,t,i,a);return s?l():(0,ex.h)(l)};var eP=s(4999);let eO={useVisualState:eT({scrapeMotionValuesFromProps:e_,createRenderState:ep,onMount:(e,t,{renderState:s,latestValues:r})=>{eP.Wi.read(()=>{try{s.dimensions="function"==typeof t.getBBox?t.getBBox():t.getBoundingClientRect()}catch(e){s.dimensions={x:0,y:0,width:0,height:0}}}),eP.Wi.render(()=>{ed(s,r,{enableHardwareAcceleration:!1},ef(t.tagName),e.transformTemplate),ev(t,s)})}})},eA={useVisualState:eT({scrapeMotionValuesFromProps:eb,createRenderState:er})};function eR(e,t,s,r={passive:!0}){return e.addEventListener(t,s,r),()=>e.removeEventListener(t,s)}let eF=e=>"mouse"===e.pointerType?"number"!=typeof e.button||e.button<=0:!1!==e.isPrimary;function eL(e,t="page"){return{point:{x:e[t+"X"],y:e[t+"Y"]}}}let eD=e=>t=>eF(t)&&e(t,eL(t));function eN(e,t,s,r){return eR(e,t,eD(s),r)}let eB=(e,t)=>s=>t(e(s)),eM=(...e)=>e.reduce(eB);function eV(e){let t=null;return()=>null===t&&(t=e,()=>{t=null})}let ej=eV("dragHorizontal"),eI=eV("dragVertical");function eU(e){let t=!1;if("y"===e)t=eI();else if("x"===e)t=ej();else{let e=ej(),s=eI();e&&s?t=()=>{e(),s()}:(e&&e(),s&&s())}return t}function eW(){let e=eU(!0);return!e||(e(),!1)}class e${constructor(e){this.isMounted=!1,this.node=e}update(){}}function eq(e,t){let s="onHover"+(t?"Start":"End");return eN(e.current,"pointer"+(t?"enter":"leave"),(r,i)=>{if("touch"===r.pointerType||eW())return;let n=e.getProps();e.animationState&&n.whileHover&&e.animationState.setActive("whileHover",t),n[s]&&eP.Wi.update(()=>n[s](r,i))},{passive:!e.getProps()[s]})}class eH extends e${mount(){this.unmount=eM(eq(this.node,!0),eq(this.node,!1))}unmount(){}}class ez extends e${constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(":focus-visible")}catch(t){e=!0}e&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=eM(eR(this.node.current,"focus",()=>this.onFocus()),eR(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}let eG=(e,t)=>!!t&&(e===t||eG(e,t.parentElement));var eY=s(7769);function eX(e,t){if(!t)return;let s=new PointerEvent("pointer"+e);t(s,eL(s))}class eZ extends e${constructor(){super(...arguments),this.removeStartListeners=eY.Z,this.removeEndListeners=eY.Z,this.removeAccessibleListeners=eY.Z,this.startPointerPress=(e,t)=>{if(this.isPressing)return;this.removeEndListeners();let s=this.node.getProps(),r=eN(window,"pointerup",(e,t)=>{if(!this.checkPressEnd())return;let{onTap:s,onTapCancel:r,globalTapTarget:i}=this.node.getProps();eP.Wi.update(()=>{i||eG(this.node.current,e.target)?s&&s(e,t):r&&r(e,t)})},{passive:!(s.onTap||s.onPointerUp)}),i=eN(window,"pointercancel",(e,t)=>this.cancelPress(e,t),{passive:!(s.onTapCancel||s.onPointerCancel)});this.removeEndListeners=eM(r,i),this.startPress(e,t)},this.startAccessiblePress=()=>{let e=eR(this.node.current,"keydown",e=>{"Enter"!==e.key||this.isPressing||(this.removeEndListeners(),this.removeEndListeners=eR(this.node.current,"keyup",e=>{"Enter"===e.key&&this.checkPressEnd()&&eX("up",(e,t)=>{let{onTap:s}=this.node.getProps();s&&eP.Wi.update(()=>s(e,t))})}),eX("down",(e,t)=>{this.startPress(e,t)}))}),t=eR(this.node.current,"blur",()=>{this.isPressing&&eX("cancel",(e,t)=>this.cancelPress(e,t))});this.removeAccessibleListeners=eM(e,t)}}startPress(e,t){this.isPressing=!0;let{onTapStart:s,whileTap:r}=this.node.getProps();r&&this.node.animationState&&this.node.animationState.setActive("whileTap",!0),s&&eP.Wi.update(()=>s(e,t))}checkPressEnd(){this.removeEndListeners(),this.isPressing=!1;let e=this.node.getProps();return e.whileTap&&this.node.animationState&&this.node.animationState.setActive("whileTap",!1),!eW()}cancelPress(e,t){if(!this.checkPressEnd())return;let{onTapCancel:s}=this.node.getProps();s&&eP.Wi.update(()=>s(e,t))}mount(){let e=this.node.getProps(),t=eN(e.globalTapTarget?window:this.node.current,"pointerdown",this.startPointerPress,{passive:!(e.onTapStart||e.onPointerStart)}),s=eR(this.node.current,"focus",this.startAccessiblePress);this.removeStartListeners=eM(t,s)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}let eK=new WeakMap,eJ=new WeakMap,eQ=e=>{let t=eK.get(e.target);t&&t(e)},e0=e=>{e.forEach(eQ)},e1={some:0,all:1};class e3 extends e${constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();let{viewport:e={}}=this.node.getProps(),{root:t,margin:s,amount:r="some",once:i}=e,n={root:t?t.current:void 0,rootMargin:s,threshold:"number"==typeof r?r:e1[r]};return function(e,t,s){let r=function({root:e,...t}){let s=e||document;eJ.has(s)||eJ.set(s,{});let r=eJ.get(s),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(e0,{root:e,...t})),r[i]}(t);return eK.set(e,s),r.observe(e),()=>{eK.delete(e),r.unobserve(e)}}(this.node.current,n,e=>{let{isIntersecting:t}=e;if(this.isInView===t||(this.isInView=t,i&&!t&&this.hasEnteredView))return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",t);let{onViewportEnter:s,onViewportLeave:r}=this.node.getProps(),n=t?s:r;n&&n(e)})}mount(){this.startObserver()}update(){if("undefined"==typeof IntersectionObserver)return;let{props:e,prevProps:t}=this.node,s=["amount","margin","root"].some(function({viewport:e={}},{viewport:t={}}={}){return s=>e[s]!==t[s]}(e,t));s&&this.startObserver()}unmount(){}}function e2(e,t){if(!Array.isArray(t))return!1;let s=t.length;if(s!==e.length)return!1;for(let r=0;rt[s]=e.get()),t}(e),function(e){let t={};return e.values.forEach((e,s)=>t[s]=e.getVelocity()),t}(e))}var e9=s(7939);let e4=e=>1e3*e,e8=e=>e/1e3,e5={current:!1},e7=e=>Array.isArray(e)&&"number"==typeof e[0],te=([e,t,s,r])=>`cubic-bezier(${e}, ${t}, ${s}, ${r})`,tt={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:te([0,.65,.55,1]),circOut:te([.55,0,1,.45]),backIn:te([.31,.01,.66,-.59]),backOut:te([.33,1.53,.69,.99])},ts=(e,t,s)=>(((1-3*s+3*t)*e+(3*s-6*t))*e+3*t)*e;function tr(e,t,s,r){if(e===t&&s===r)return eY.Z;let i=t=>(function(e,t,s,r,i){let n,o;let a=0;do(n=ts(o=t+(s-t)/2,r,i)-e)>0?s=o:t=o;while(Math.abs(n)>1e-7&&++a<12);return o})(t,0,1,e,s);return e=>0===e||1===e?e:ts(i(e),t,r)}let ti=tr(.42,0,1,1),tn=tr(0,0,.58,1),to=tr(.42,0,.58,1),ta=e=>Array.isArray(e)&&"number"!=typeof e[0],tl=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,th=e=>t=>1-e(1-t),tc=e=>1-Math.sin(Math.acos(e)),tu=th(tc),td=tl(tc),tp=tr(.33,1.53,.69,.99),tf=th(tp),tm=tl(tf),tg={linear:eY.Z,easeIn:ti,easeInOut:to,easeOut:tn,circIn:tc,circInOut:td,circOut:tu,backIn:tf,backInOut:tm,backOut:tp,anticipate:e=>(e*=2)<1?.5*tf(e):.5*(2-Math.pow(2,-10*(e-1)))},ty=e=>{if(Array.isArray(e)){(0,e9.k)(4===e.length,"Cubic bezier arrays must contain four numerical values.");let[t,s,r,i]=e;return tr(t,s,r,i)}return"string"==typeof e?((0,e9.k)(void 0!==tg[e],`Invalid easing type '${e}'`),tg[e]):e},tv=(e,t)=>s=>!!(z(s)&&H.test(s)&&s.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(s,t)),tb=(e,t,s)=>r=>{if(!z(r))return r;let[i,n,o,a]=r.match($);return{[e]:parseFloat(i),[t]:parseFloat(n),[s]:parseFloat(o),alpha:void 0!==a?parseFloat(a):1}},t_=e=>V(0,255,e),tC={...j,transform:e=>Math.round(t_(e))},tx={test:tv("rgb","red"),parse:tb("red","green","blue"),transform:({red:e,green:t,blue:s,alpha:r=1})=>"rgba("+tC.transform(e)+", "+tC.transform(t)+", "+tC.transform(s)+", "+W(I.transform(r))+")"},tE={test:tv("#"),parse:function(e){let t="",s="",r="",i="";return e.length>5?(t=e.substring(1,3),s=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),s=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,s+=s,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(s,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}},transform:tx.transform},tw={test:tv("hsl","hue"),parse:tb("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:s,alpha:r=1})=>"hsla("+Math.round(e)+", "+X.transform(W(t))+", "+X.transform(W(s))+", "+W(I.transform(r))+")"},tk={test:e=>tx.test(e)||tE.test(e)||tw.test(e),parse:e=>tx.test(e)?tx.parse(e):tw.test(e)?tw.parse(e):tE.parse(e),transform:e=>z(e)?e:e.hasOwnProperty("red")?tx.transform(e):tw.transform(e)},tS=(e,t,s)=>-s*e+s*t+e;function tT(e,t,s){return(s<0&&(s+=1),s>1&&(s-=1),s<1/6)?e+(t-e)*6*s:s<.5?t:s<2/3?e+(t-e)*(2/3-s)*6:e}let tP=(e,t,s)=>{let r=e*e;return Math.sqrt(Math.max(0,s*(t*t-r)+r))},tO=[tE,tx,tw],tA=e=>tO.find(t=>t.test(e));function tR(e){let t=tA(e);(0,e9.k)(!!t,`'${e}' is not an animatable color. Use the equivalent color code instead.`);let s=t.parse(e);return t===tw&&(s=function({hue:e,saturation:t,lightness:s,alpha:r}){e/=360,s/=100;let i=0,n=0,o=0;if(t/=100){let r=s<.5?s*(1+t):s+t-s*t,a=2*s-r;i=tT(a,r,e+1/3),n=tT(a,r,e),o=tT(a,r,e-1/3)}else i=n=o=s;return{red:Math.round(255*i),green:Math.round(255*n),blue:Math.round(255*o),alpha:r}}(s)),s}let tF=(e,t)=>{let s=tR(e),r=tR(t),i={...s};return e=>(i.red=tP(s.red,r.red,e),i.green=tP(s.green,r.green,e),i.blue=tP(s.blue,r.blue,e),i.alpha=tS(s.alpha,r.alpha,e),tx.transform(i))},tL={regex:/var\s*\(\s*--[\w-]+(\s*,\s*(?:(?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)+)?\s*\)/g,countKey:"Vars",token:"${v}",parse:eY.Z},tD={regex:q,countKey:"Colors",token:"${c}",parse:tk.parse},tN={regex:$,countKey:"Numbers",token:"${n}",parse:j.parse};function tB(e,{regex:t,countKey:s,token:r,parse:i}){let n=e.tokenised.match(t);n&&(e["num"+s]=n.length,e.tokenised=e.tokenised.replace(t,r),e.values.push(...n.map(i)))}function tM(e){let t=e.toString(),s={value:t,tokenised:t,values:[],numVars:0,numColors:0,numNumbers:0};return s.value.includes("var(--")&&tB(s,tL),tB(s,tD),tB(s,tN),s}function tV(e){return tM(e).values}function tj(e){let{values:t,numColors:s,numVars:r,tokenised:i}=tM(e),n=t.length;return e=>{let t=i;for(let i=0;i"number"==typeof e?0:e,tU={test:function(e){var t,s;return isNaN(e)&&z(e)&&((null===(t=e.match($))||void 0===t?void 0:t.length)||0)+((null===(s=e.match(q))||void 0===s?void 0:s.length)||0)>0},parse:tV,createTransformer:tj,getAnimatableNone:function(e){let t=tV(e),s=tj(e);return s(t.map(tI))}},tW=(e,t)=>s=>`${s>0?t:e}`;function t$(e,t){return"number"==typeof e?s=>tS(e,t,s):tk.test(e)?tF(e,t):e.startsWith("var(")?tW(e,t):tz(e,t)}let tq=(e,t)=>{let s=[...e],r=s.length,i=e.map((e,s)=>t$(e,t[s]));return e=>{for(let t=0;t{let s={...e,...t},r={};for(let i in s)void 0!==e[i]&&void 0!==t[i]&&(r[i]=t$(e[i],t[i]));return e=>{for(let t in r)s[t]=r[t](e);return s}},tz=(e,t)=>{let s=tU.createTransformer(t),r=tM(e),i=tM(t),n=r.numVars===i.numVars&&r.numColors===i.numColors&&r.numNumbers>=i.numNumbers;return n?eM(tq(r.values,i.values),s):((0,e9.K)(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`),tW(e,t))},tG=(e,t,s)=>{let r=t-e;return 0===r?1:(s-e)/r},tY=(e,t)=>s=>tS(e,t,s);function tX(e,t,{clamp:s=!0,ease:r,mixer:i}={}){let n=e.length;if((0,e9.k)(n===t.length,"Both input and output ranges must be the same length"),1===n)return()=>t[0];e[0]>e[n-1]&&(e=[...e].reverse(),t=[...t].reverse());let o=function(e,t,s){let r=[],i=s||function(e){if("number"==typeof e);else if("string"==typeof e)return tk.test(e)?tF:tz;else if(Array.isArray(e))return tq;else if("object"==typeof e)return tH;return tY}(e[0]),n=e.length-1;for(let s=0;s{let s=0;if(a>1)for(;sl(V(e[0],e[n-1],t)):l}function tZ({duration:e=300,keyframes:t,times:s,ease:r="easeInOut"}){let i=ta(r)?r.map(ty):ty(r),n={done:!1,value:t[0]},o=(s&&s.length===t.length?s:function(e){let t=[0];return function(e,t){let s=e[e.length-1];for(let r=1;r<=t;r++){let i=tG(0,t,r);e.push(tS(s,1,i))}}(t,e.length-1),t}(t)).map(t=>t*e),a=tX(o,t,{ease:Array.isArray(i)?i:t.map(()=>i||to).splice(0,t.length-1)});return{calculatedDuration:e,next:t=>(n.value=a(t),n.done=t>=e,n)}}function tK(e,t,s){var r,i;let n=Math.max(t-5,0);return r=s-e(n),(i=t-n)?r*(1e3/i):0}function tJ(e,t){return e*Math.sqrt(1-t*t)}let tQ=["duration","bounce"],t0=["stiffness","damping","mass"];function t1(e,t){return t.some(t=>void 0!==e[t])}function t3({keyframes:e,restDelta:t,restSpeed:s,...r}){let i;let n=e[0],o=e[e.length-1],a={done:!1,value:n},{stiffness:l,damping:h,mass:c,duration:u,velocity:d,isResolvedFromDuration:p}=function(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!t1(e,t0)&&t1(e,tQ)){let s=function({duration:e=800,bounce:t=.25,velocity:s=0,mass:r=1}){let i,n;(0,e9.K)(e<=e4(10),"Spring duration must be 10 seconds or less");let o=1-t;o=V(.05,1,o),e=V(.01,10,e8(e)),o<1?(i=t=>{let r=t*o,i=r*e,n=tJ(t,o);return .001-(r-s)/n*Math.exp(-i)},n=t=>{let r=t*o,n=r*e,a=Math.pow(o,2)*Math.pow(t,2)*e,l=tJ(Math.pow(t,2),o),h=-i(t)+.001>0?-1:1;return h*((n*s+s-a)*Math.exp(-n))/l}):(i=t=>{let r=Math.exp(-t*e),i=(t-s)*e+1;return -.001+r*i},n=t=>{let r=Math.exp(-t*e),i=(s-t)*(e*e);return r*i});let a=5/e,l=function(e,t,s){let r=s;for(let s=1;s<12;s++)r-=e(r)/t(r);return r}(i,n,a);if(e=e4(e),isNaN(l))return{stiffness:100,damping:10,duration:e};{let t=Math.pow(l,2)*r;return{stiffness:t,damping:2*o*Math.sqrt(r*t),duration:e}}}(e);(t={...t,...s,mass:1}).isResolvedFromDuration=!0}return t}({...r,velocity:-e8(r.velocity||0)}),f=d||0,m=h/(2*Math.sqrt(l*c)),g=o-n,y=e8(Math.sqrt(l/c)),v=5>Math.abs(g);if(s||(s=v?.01:2),t||(t=v?.005:.5),m<1){let e=tJ(y,m);i=t=>{let s=Math.exp(-m*y*t);return o-s*((f+m*y*g)/e*Math.sin(e*t)+g*Math.cos(e*t))}}else if(1===m)i=e=>o-Math.exp(-y*e)*(g+(f+y*g)*e);else{let e=y*Math.sqrt(m*m-1);i=t=>{let s=Math.exp(-m*y*t),r=Math.min(e*t,300);return o-s*((f+m*y*g)*Math.sinh(r)+e*g*Math.cosh(r))/e}}return{calculatedDuration:p&&u||null,next:e=>{let r=i(e);if(p)a.done=e>=u;else{let n=f;0!==e&&(n=m<1?tK(i,e,r):0);let l=Math.abs(n)<=s,h=Math.abs(o-r)<=t;a.done=l&&h}return a.value=a.done?o:r,a}}}function t2({keyframes:e,velocity:t=0,power:s=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:n=500,modifyTarget:o,min:a,max:l,restDelta:h=.5,restSpeed:c}){let u,d;let p=e[0],f={done:!1,value:p},m=e=>void 0!==a&&el,g=e=>void 0===a?l:void 0===l?a:Math.abs(a-e)-y*Math.exp(-e/r),C=e=>b+_(e),x=e=>{let t=_(e),s=C(e);f.done=Math.abs(t)<=h,f.value=f.done?b:s},E=e=>{m(f.value)&&(u=e,d=t3({keyframes:[f.value,g(f.value)],velocity:tK(C,e,f.value),damping:i,stiffness:n,restDelta:h,restSpeed:c}))};return E(0),{calculatedDuration:null,next:e=>{let t=!1;return(d||void 0!==u||(t=!0,x(e),E(e)),void 0!==u&&e>u)?d.next(e-u):(t||x(e),f)}}}let t6=e=>{let t=({timestamp:t})=>e(t);return{start:()=>eP.Wi.update(t,!0),stop:()=>(0,eP.Pn)(t),now:()=>eP.frameData.isProcessing?eP.frameData.timestamp:performance.now()}};function t9(e){let t=0,s=e.next(t);for(;!s.done&&t<2e4;)t+=50,s=e.next(t);return t>=2e4?1/0:t}let t4={decay:t2,inertia:t2,tween:tZ,keyframes:tZ,spring:t3};function t8({autoplay:e=!0,delay:t=0,driver:s=t6,keyframes:r,type:i="keyframes",repeat:n=0,repeatDelay:o=0,repeatType:a="loop",onPlay:l,onStop:h,onComplete:c,onUpdate:u,...d}){let p,f,m,g,y,v=1,b=!1,_=()=>{f=new Promise(e=>{p=e})};_();let C=t4[i]||tZ;C!==tZ&&"number"!=typeof r[0]&&(g=tX([0,100],r,{clamp:!1}),r=[0,100]);let x=C({...d,keyframes:r});"mirror"===a&&(y=C({...d,keyframes:[...r].reverse(),velocity:-(d.velocity||0)}));let E="idle",w=null,k=null,S=null;null===x.calculatedDuration&&n&&(x.calculatedDuration=t9(x));let{calculatedDuration:T}=x,P=1/0,O=1/0;null!==T&&(O=(P=T+o)*(n+1)-o);let A=0,R=e=>{if(null===k)return;v>0&&(k=Math.min(k,e)),v<0&&(k=Math.min(e-O/v,k)),A=null!==w?w:Math.round(e-k)*v;let s=A-t*(v>=0?1:-1),i=v>=0?s<0:s>O;A=Math.max(s,0),"finished"===E&&null===w&&(A=O);let l=A,h=x;if(n){let e=Math.min(A,O)/P,t=Math.floor(e),s=e%1;!s&&e>=1&&(s=1),1===s&&t--,t=Math.min(t,n+1);let r=!!(t%2);r&&("reverse"===a?(s=1-s,o&&(s-=o/P)):"mirror"===a&&(h=y)),l=V(0,1,s)*P}let c=i?{done:!1,value:r[0]}:h.next(l);g&&(c.value=g(c.value));let{done:d}=c;i||null===T||(d=v>=0?A>=O:A<=0);let p=null===w&&("finished"===E||"running"===E&&d);return u&&u(c.value),p&&D(),c},F=()=>{m&&m.stop(),m=void 0},L=()=>{E="idle",F(),p(),_(),k=S=null},D=()=>{E="finished",c&&c(),F(),p()},N=()=>{if(b)return;m||(m=s(R));let e=m.now();l&&l(),null!==w?k=e-w:k&&"finished"!==E||(k=e),"finished"===E&&_(),S=k,w=null,E="running",m.start()};e&&N();let B={then:(e,t)=>f.then(e,t),get time(){return e8(A)},set time(newTime){A=newTime=e4(newTime),null===w&&m&&0!==v?k=m.now()-newTime/v:w=newTime},get duration(){let e=null===x.calculatedDuration?t9(x):x.calculatedDuration;return e8(e)},get speed(){return v},set speed(newSpeed){if(newSpeed===v||!m)return;v=newSpeed,B.time=e8(A)},get state(){return E},play:N,pause:()=>{E="paused",w=A},stop:()=>{b=!0,"idle"!==E&&(E="idle",h&&h(),L())},cancel:()=>{null!==S&&R(S),L()},complete:()=>{E="finished"},sample:e=>(k=0,R(e))};return B}let t5=function(e){let t;return()=>(void 0===t&&(t=e()),t)}(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),t7=new Set(["opacity","clipPath","filter","transform","backgroundColor"]),se=(e,t)=>"spring"===t.type||"backgroundColor"===e||!function e(t){return!!(!t||"string"==typeof t&&tt[t]||e7(t)||Array.isArray(t)&&t.every(e))}(t.ease),st={type:"spring",stiffness:500,damping:25,restSpeed:10},ss=e=>({type:"spring",stiffness:550,damping:0===e?2*Math.sqrt(550):30,restSpeed:10}),sr={type:"keyframes",duration:.8},si={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},sn=(e,{keyframes:t})=>t.length>2?sr:O.has(e)?e.startsWith("scale")?ss(t[1]):st:si,so=(e,t)=>"zIndex"!==e&&!!("number"==typeof t||Array.isArray(t)||"string"==typeof t&&(tU.test(t)||"0"===t)&&!t.startsWith("url(")),sa=new Set(["brightness","contrast","saturate","opacity"]);function sl(e){let[t,s]=e.slice(0,-1).split("(");if("drop-shadow"===t)return e;let[r]=s.match($)||[];if(!r)return e;let i=s.replace(r,""),n=sa.has(t)?1:0;return r!==s&&(n*=100),t+"("+n+i+")"}let sh=/([a-z-]*)\(.*?\)/g,sc={...tU,getAnimatableNone:e=>{let t=e.match(sh);return t?t.map(sl).join(" "):e}},su={...et,color:tk,backgroundColor:tk,outlineColor:tk,fill:tk,stroke:tk,borderColor:tk,borderTopColor:tk,borderRightColor:tk,borderBottomColor:tk,borderLeftColor:tk,filter:sc,WebkitFilter:sc},sd=e=>su[e];function sp(e,t){let s=sd(e);return s!==sc&&(s=tU),s.getAnimatableNone?s.getAnimatableNone(t):void 0}let sf=e=>/^0[^.\s]+$/.test(e);function sm(e,t){return e[t]||e.default||e}let sg={skipAnimations:!1},sy=(e,t,s,r={})=>i=>{let n=sm(r,e)||{},o=n.delay||r.delay||0,{elapsed:a=0}=r;a-=e4(o);let l=function(e,t,s,r){let i,n;let o=so(t,s);i=Array.isArray(s)?[...s]:[null,s];let a=void 0!==r.from?r.from:e.get(),l=[];for(let e=0;e{t.set(e),n.onUpdate&&n.onUpdate(e)},onComplete:()=>{i(),n.onComplete&&n.onComplete()}};if(!function({when:e,delay:t,delayChildren:s,staggerChildren:r,staggerDirection:i,repeat:n,repeatType:o,repeatDelay:a,from:l,elapsed:h,...c}){return!!Object.keys(c).length}(n)&&(p={...p,...sn(e,p)}),p.duration&&(p.duration=e4(p.duration)),p.repeatDelay&&(p.repeatDelay=e4(p.repeatDelay)),!u||!d||e5.current||!1===n.type||sg.skipAnimations)return function({keyframes:e,delay:t,onUpdate:s,onComplete:r}){let i=()=>(s&&s(e[e.length-1]),r&&r(),{time:0,speed:1,duration:0,play:eY.Z,pause:eY.Z,stop:eY.Z,then:e=>(e(),Promise.resolve()),cancel:eY.Z,complete:eY.Z});return t?t8({keyframes:[0,1],duration:0,delay:t,onComplete:i}):i()}(e5.current?{...p,delay:0}:p);if(!r.isHandoff&&t.owner&&t.owner.current instanceof HTMLElement&&!t.owner.getProps().onUpdate){let s=function(e,t,{onUpdate:s,onComplete:r,...i}){let n,o;let a=t5()&&t7.has(t)&&!i.repeatDelay&&"mirror"!==i.repeatType&&0!==i.damping&&"inertia"!==i.type;if(!a)return!1;let l=!1,h=!1,c=()=>{o=new Promise(e=>{n=e})};c();let{keyframes:u,duration:d=300,ease:p,times:f}=i;if(se(t,i)){let e=t8({...i,repeat:0,delay:0}),t={done:!1,value:u[0]},s=[],r=0;for(;!t.done&&r<2e4;)t=e.sample(r),s.push(t.value),r+=10;f=void 0,u=s,d=r-10,p="linear"}let m=function(e,t,s,{delay:r=0,duration:i,repeat:n=0,repeatType:o="loop",ease:a,times:l}={}){let h={[t]:s};l&&(h.offset=l);let c=function e(t){if(t)return e7(t)?te(t):Array.isArray(t)?t.map(e):tt[t]}(a);return Array.isArray(c)&&(h.easing=c),e.animate(h,{delay:r,duration:i,easing:Array.isArray(c)?"linear":c,fill:"both",iterations:n+1,direction:"reverse"===o?"alternate":"normal"})}(e.owner.current,t,u,{...i,duration:d,ease:p,times:f}),g=()=>{h=!1,m.cancel()},y=()=>{h=!0,eP.Wi.update(g),n(),c()};return m.onfinish=()=>{h||(e.set(function(e,{repeat:t,repeatType:s="loop"}){let r=t&&"loop"!==s&&t%2==1?0:e.length-1;return e[r]}(u,i)),r&&r(),y())},{then:(e,t)=>o.then(e,t),attachTimeline:e=>(m.timeline=e,m.onfinish=null,eY.Z),get time(){return e8(m.currentTime||0)},set time(newTime){m.currentTime=e4(newTime)},get speed(){return m.playbackRate},set speed(newSpeed){m.playbackRate=newSpeed},get duration(){return e8(d)},play:()=>{l||(m.play(),(0,eP.Pn)(g))},pause:()=>m.pause(),stop:()=>{if(l=!0,"idle"===m.playState)return;let{currentTime:t}=m;if(t){let s=t8({...i,autoplay:!1});e.setWithVelocity(s.sample(t-10).value,s.sample(t).value,10)}y()},complete:()=>{h||m.finish()},cancel:y}}(t,e,p);if(s)return s}return t8(p)};function sv(e){return!!(R(e)&&e.add)}let sb=e=>/^\-?\d*\.?\d+$/.test(e);function s_(e,t){-1===e.indexOf(t)&&e.push(t)}function sC(e,t){let s=e.indexOf(t);s>-1&&e.splice(s,1)}class sx{constructor(){this.subscriptions=[]}add(e){return s_(this.subscriptions,e),()=>sC(this.subscriptions,e)}notify(e,t,s){let r=this.subscriptions.length;if(r){if(1===r)this.subscriptions[0](e,t,s);else for(let i=0;i!isNaN(parseFloat(e)),sw={current:void 0};class sk{constructor(e,t={}){this.version="10.18.0",this.timeDelta=0,this.lastUpdated=0,this.canTrackVelocity=!1,this.events={},this.updateAndNotify=(e,t=!0)=>{this.prev=this.current,this.current=e;let{delta:s,timestamp:r}=eP.frameData;this.lastUpdated!==r&&(this.timeDelta=s,this.lastUpdated=r,eP.Wi.postRender(this.scheduleVelocityCheck)),this.prev!==this.current&&this.events.change&&this.events.change.notify(this.current),this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()),t&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.scheduleVelocityCheck=()=>eP.Wi.postRender(this.velocityCheck),this.velocityCheck=({timestamp:e})=>{e!==this.lastUpdated&&(this.prev=this.current,this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=e,this.canTrackVelocity=sE(this.current),this.owner=t.owner}onChange(e){return this.on("change",e)}on(e,t){this.events[e]||(this.events[e]=new sx);let s=this.events[e].add(t);return"change"===e?()=>{s(),eP.Wi.read(()=>{this.events.change.getSize()||this.stop()})}:s}clearListeners(){for(let e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e,t=!0){t&&this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e,t)}setWithVelocity(e,t,s){this.set(t),this.prev=e,this.timeDelta=s}jump(e){this.updateAndNotify(e),this.prev=e,this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return sw.current&&sw.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){var e,t;return this.canTrackVelocity?(e=parseFloat(this.current)-parseFloat(this.prev),(t=this.timeDelta)?e*(1e3/t):0):0}start(e){return this.stop(),new Promise(t=>{this.hasAnimated=!0,this.animation=e(t),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function sS(e,t){return new sk(e,t)}let sT=e=>t=>t.test(e),sP=[j,Z,X,Y,J,K,{test:e=>"auto"===e,parse:e=>e}],sO=e=>sP.find(sT(e)),sA=[...sP,tk,tU],sR=e=>sA.find(sT(e));function sF(e,t,{delay:s=0,transitionOverride:r,type:i}={}){let{transition:n=e.getDefaultTransition(),transitionEnd:o,...a}=e.makeTargetAnimatable(t),l=e.getValue("willChange");r&&(n=r);let h=[],u=i&&e.animationState&&e.animationState.getState()[i];for(let t in a){let r=e.getValue(t),i=a[t];if(!r||void 0===i||u&&function({protectedKeys:e,needsAnimating:t},s){let r=e.hasOwnProperty(s)&&!0!==t[s];return t[s]=!1,r}(u,t))continue;let o={delay:s,elapsed:0,...sm(n||{},t)};if(window.HandoffAppearAnimations){let s=e.getProps()[c];if(s){let e=window.HandoffAppearAnimations(s,t,r,eP.Wi);null!==e&&(o.elapsed=e,o.isHandoff=!0)}}let d=!o.isHandoff&&!function(e,t){let s=e.get();if(!Array.isArray(t))return s!==t;for(let e=0;el.remove(t))),h.push(p)}return o&&Promise.all(h).then(()=>{o&&function(e,t){let s=e6(e,t),{transitionEnd:r={},transition:i={},...n}=s?e.makeTargetAnimatable(s,!1):{};for(let t in n={...n,...r}){let s=ek(n[t]);e.hasValue(t)?e.getValue(t).set(s):e.addValue(t,sS(s))}}(e,o)}),h}function sL(e,t,s={}){let r=e6(e,t,s.custom),{transition:i=e.getDefaultTransition()||{}}=r||{};s.transitionOverride&&(i=s.transitionOverride);let n=r?()=>Promise.all(sF(e,r,s)):()=>Promise.resolve(),o=e.variantChildren&&e.variantChildren.size?(r=0)=>{let{delayChildren:n=0,staggerChildren:o,staggerDirection:a}=i;return function(e,t,s=0,r=0,i=1,n){let o=[],a=(e.variantChildren.size-1)*r,l=1===i?(e=0)=>e*r:(e=0)=>a-e*r;return Array.from(e.variantChildren).sort(sD).forEach((e,r)=>{e.notify("AnimationStart",t),o.push(sL(e,t,{...n,delay:s+l(r)}).then(()=>e.notify("AnimationComplete",t)))}),Promise.all(o)}(e,t,n+r,o,a,s)}:()=>Promise.resolve(),{when:a}=i;if(!a)return Promise.all([n(),o(s.delay)]);{let[e,t]="beforeChildren"===a?[n,o]:[o,n];return e().then(()=>t())}}function sD(e,t){return e.sortNodePosition(t)}let sN=[...f].reverse(),sB=f.length;function sM(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}class sV extends e${constructor(e){super(e),e.animationState||(e.animationState=function(e){let t=t=>Promise.all(t.map(({animation:t,options:s})=>(function(e,t,s={}){let r;if(e.notify("AnimationStart",t),Array.isArray(t)){let i=t.map(t=>sL(e,t,s));r=Promise.all(i)}else if("string"==typeof t)r=sL(e,t,s);else{let i="function"==typeof t?e6(e,t,s.custom):t;r=Promise.all(sF(e,i,s))}return r.then(()=>e.notify("AnimationComplete",t))})(e,t,s))),s={animate:sM(!0),whileInView:sM(),whileHover:sM(),whileTap:sM(),whileDrag:sM(),whileFocus:sM(),exit:sM()},r=!0,i=(t,s)=>{let r=e6(e,s);if(r){let{transition:e,transitionEnd:s,...i}=r;t={...t,...i,...s}}return t};function n(n,o){let a=e.getProps(),l=e.getVariantContext(!0)||{},h=[],c=new Set,u={},f=1/0;for(let t=0;tf&&b,w=!1,k=Array.isArray(v)?v:[v],S=k.reduce(i,{});!1===_&&(S={});let{prevResolvedValues:T={}}=y,P={...T,...S},O=e=>{E=!0,c.has(e)&&(w=!0,c.delete(e)),y.needsAnimating[e]=!0};for(let e in P){let t=S[e],s=T[e];if(!u.hasOwnProperty(e))(eE(t)&&eE(s)?e2(t,s):t===s)?void 0!==t&&c.has(e)?O(e):y.protectedKeys[e]=!0:void 0!==t?O(e):c.add(e)}y.prevProp=v,y.prevResolvedValues=S,y.isActive&&(u={...u,...S}),r&&e.blockInitialAnimation&&(E=!1),E&&(!C||w)&&h.push(...k.map(e=>({animation:e,options:{type:g,...n}})))}if(c.size){let t={};c.forEach(s=>{let r=e.getBaseTarget(s);void 0!==r&&(t[s]=r)}),h.push({animation:t})}let g=!!h.length;return r&&(!1===a.initial||a.initial===a.animate)&&!e.manuallyAnimateOnMount&&(g=!1),r=!1,g?t(h):Promise.resolve()}return{animateChanges:n,setActive:function(t,r,i){var o;if(s[t].isActive===r)return Promise.resolve();null===(o=e.variantChildren)||void 0===o||o.forEach(e=>{var s;return null===(s=e.animationState)||void 0===s?void 0:s.setActive(t,r)}),s[t].isActive=r;let a=n(i,t);for(let e in s)s[e].protectedKeys={};return a},setAnimateFunction:function(s){t=s(e)},getState:()=>s}}(e))}updateAnimationControlsSubscription(){let{animate:e}=this.node.getProps();this.unmount(),p(e)&&(this.unmount=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){}}let sj=0;class sI extends e${constructor(){super(...arguments),this.id=sj++}update(){if(!this.node.presenceContext)return;let{isPresent:e,onExitComplete:t,custom:s}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===r)return;let i=this.node.animationState.setActive("exit",!e,{custom:null!=s?s:this.node.getProps().custom});t&&!e&&i.then(()=>t(this.id))}mount(){let{register:e}=this.node.presenceContext||{};e&&(this.unmount=e(this.id))}unmount(){}}let sU=(e,t)=>Math.abs(e-t);class sW{constructor(e,t,{transformPagePoint:s,contextWindow:r,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let e=sH(this.lastMoveEventInfo,this.history),t=null!==this.startEvent,s=function(e,t){let s=sU(e.x,t.x),r=sU(e.y,t.y);return Math.sqrt(s**2+r**2)}(e.offset,{x:0,y:0})>=3;if(!t&&!s)return;let{point:r}=e,{timestamp:i}=eP.frameData;this.history.push({...r,timestamp:i});let{onStart:n,onMove:o}=this.handlers;t||(n&&n(this.lastMoveEvent,e),this.startEvent=this.lastMoveEvent),o&&o(this.lastMoveEvent,e)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastMoveEventInfo=s$(t,this.transformPagePoint),eP.Wi.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.end();let{onEnd:s,onSessionEnd:r,resumeAnimation:i}=this.handlers;if(this.dragSnapToOrigin&&i&&i(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let n=sH("pointercancel"===e.type?this.lastMoveEventInfo:s$(t,this.transformPagePoint),this.history);this.startEvent&&s&&s(e,n),r&&r(e,n)},!eF(e))return;this.dragSnapToOrigin=i,this.handlers=t,this.transformPagePoint=s,this.contextWindow=r||window;let n=eL(e),o=s$(n,this.transformPagePoint),{point:a}=o,{timestamp:l}=eP.frameData;this.history=[{...a,timestamp:l}];let{onSessionStart:h}=t;h&&h(e,sH(o,this.history)),this.removeListeners=eM(eN(this.contextWindow,"pointermove",this.handlePointerMove),eN(this.contextWindow,"pointerup",this.handlePointerUp),eN(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),(0,eP.Pn)(this.updatePoint)}}function s$(e,t){return t?{point:t(e.point)}:e}function sq(e,t){return{x:e.x-t.x,y:e.y-t.y}}function sH({point:e},t){return{point:e,delta:sq(e,sz(t)),offset:sq(e,t[0]),velocity:function(e,t){if(e.length<2)return{x:0,y:0};let s=e.length-1,r=null,i=sz(e);for(;s>=0&&(r=e[s],!(i.timestamp-r.timestamp>e4(.1)));)s--;if(!r)return{x:0,y:0};let n=e8(i.timestamp-r.timestamp);if(0===n)return{x:0,y:0};let o={x:(i.x-r.x)/n,y:(i.y-r.y)/n};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}(t,0)}}function sz(e){return e[e.length-1]}function sG(e){return e.max-e.min}function sY(e,t=0,s=.01){return Math.abs(e-t)<=s}function sX(e,t,s,r=.5){e.origin=r,e.originPoint=tS(t.min,t.max,e.origin),e.scale=sG(s)/sG(t),(sY(e.scale,1,1e-4)||isNaN(e.scale))&&(e.scale=1),e.translate=tS(s.min,s.max,e.origin)-e.originPoint,(sY(e.translate)||isNaN(e.translate))&&(e.translate=0)}function sZ(e,t,s,r){sX(e.x,t.x,s.x,r?r.originX:void 0),sX(e.y,t.y,s.y,r?r.originY:void 0)}function sK(e,t,s){e.min=s.min+t.min,e.max=e.min+sG(t)}function sJ(e,t,s){e.min=t.min-s.min,e.max=e.min+sG(t)}function sQ(e,t,s){sJ(e.x,t.x,s.x),sJ(e.y,t.y,s.y)}function s0(e,t,s){return{min:void 0!==t?e.min+t:void 0,max:void 0!==s?e.max+s-(e.max-e.min):void 0}}function s1(e,t){let s=t.min-e.min,r=t.max-e.max;return t.max-t.min({translate:0,scale:1,origin:0,originPoint:0}),s9=()=>({x:s6(),y:s6()}),s4=()=>({min:0,max:0}),s8=()=>({x:s4(),y:s4()});function s5(e){return[e("x"),e("y")]}function s7({top:e,left:t,right:s,bottom:r}){return{x:{min:t,max:s},y:{min:e,max:r}}}function re(e){return void 0===e||1===e}function rt({scale:e,scaleX:t,scaleY:s}){return!re(e)||!re(t)||!re(s)}function rs(e){return rt(e)||rr(e)||e.z||e.rotate||e.rotateX||e.rotateY}function rr(e){var t,s;return(t=e.x)&&"0%"!==t||(s=e.y)&&"0%"!==s}function ri(e,t,s,r,i){return void 0!==i&&(e=r+i*(e-r)),r+s*(e-r)+t}function rn(e,t=0,s=1,r,i){e.min=ri(e.min,t,s,r,i),e.max=ri(e.max,t,s,r,i)}function ro(e,{x:t,y:s}){rn(e.x,t.translate,t.scale,t.originPoint),rn(e.y,s.translate,s.scale,s.originPoint)}function ra(e){return Number.isInteger(e)?e:e>1.0000000000001||e<.999999999999?e:1}function rl(e,t){e.min=e.min+t,e.max=e.max+t}function rh(e,t,[s,r,i]){let n=void 0!==t[i]?t[i]:.5,o=tS(e.min,e.max,n);rn(e,t[s],t[r],o,t.scale)}let rc=["x","scaleX","originX"],ru=["y","scaleY","originY"];function rd(e,t){rh(e.x,t,rc),rh(e.y,t,ru)}function rp(e,t){return s7(function(e,t){if(!t)return e;let s=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:s.y,left:s.x,bottom:r.y,right:r.x}}(e.getBoundingClientRect(),t))}let rf=({current:e})=>e?e.ownerDocument.defaultView:null,rm=new WeakMap;class rg{constructor(e){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=s8(),this.visualElement=e}start(e,{snapToCursor:t=!1}={}){let{presenceContext:s}=this.visualElement;if(s&&!1===s.isPresent)return;let{dragSnapToOrigin:r}=this.getProps();this.panSession=new sW(e,{onSessionStart:e=>{let{dragSnapToOrigin:s}=this.getProps();s?this.pauseAnimation():this.stopAnimation(),t&&this.snapToCursor(eL(e,"page").point)},onStart:(e,t)=>{let{drag:s,dragPropagation:r,onDragStart:i}=this.getProps();if(s&&!r&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=eU(s),!this.openGlobalLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),s5(e=>{let t=this.getAxisMotionValue(e).get()||0;if(X.test(t)){let{projection:s}=this.visualElement;if(s&&s.layout){let r=s.layout.layoutBox[e];if(r){let e=sG(r);t=e*(parseFloat(t)/100)}}}this.originPoint[e]=t}),i&&eP.Wi.update(()=>i(e,t),!1,!0);let{animationState:n}=this.visualElement;n&&n.setActive("whileDrag",!0)},onMove:(e,t)=>{let{dragPropagation:s,dragDirectionLock:r,onDirectionLock:i,onDrag:n}=this.getProps();if(!s&&!this.openGlobalLock)return;let{offset:o}=t;if(r&&null===this.currentDirection){this.currentDirection=function(e,t=10){let s=null;return Math.abs(e.y)>t?s="y":Math.abs(e.x)>t&&(s="x"),s}(o),null!==this.currentDirection&&i&&i(this.currentDirection);return}this.updateAxis("x",t.point,o),this.updateAxis("y",t.point,o),this.visualElement.render(),n&&n(e,t)},onSessionEnd:(e,t)=>this.stop(e,t),resumeAnimation:()=>s5(e=>{var t;return"paused"===this.getAnimationState(e)&&(null===(t=this.getAxisMotionValue(e).animation)||void 0===t?void 0:t.play())})},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:r,contextWindow:rf(this.visualElement)})}stop(e,t){let s=this.isDragging;if(this.cancel(),!s)return;let{velocity:r}=t;this.startAnimation(r);let{onDragEnd:i}=this.getProps();i&&eP.Wi.update(()=>i(e,t))}cancel(){this.isDragging=!1;let{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;let{dragPropagation:s}=this.getProps();!s&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),t&&t.setActive("whileDrag",!1)}updateAxis(e,t,s){let{drag:r}=this.getProps();if(!s||!ry(e,r,this.currentDirection))return;let i=this.getAxisMotionValue(e),n=this.originPoint[e]+s[e];this.constraints&&this.constraints[e]&&(n=function(e,{min:t,max:s},r){return void 0!==t&&es&&(e=r?tS(s,e,r.max):Math.min(e,s)),e}(n,this.constraints[e],this.elastic[e])),i.set(n)}resolveConstraints(){var e;let{dragConstraints:t,dragElastic:s}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):null===(e=this.visualElement.projection)||void 0===e?void 0:e.layout,i=this.constraints;t&&u(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=function(e,{top:t,left:s,bottom:r,right:i}){return{x:s0(e.x,s,i),y:s0(e.y,t,r)}}(r.layoutBox,t):this.constraints=!1,this.elastic=function(e=.35){return!1===e?e=0:!0===e&&(e=.35),{x:s3(e,"left","right"),y:s3(e,"top","bottom")}}(s),i!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&s5(e=>{this.getAxisMotionValue(e)&&(this.constraints[e]=function(e,t){let s={};return void 0!==t.min&&(s.min=t.min-e.min),void 0!==t.max&&(s.max=t.max-e.min),s}(r.layoutBox[e],this.constraints[e]))})}resolveRefConstraints(){var e;let{dragConstraints:t,onMeasureDragConstraints:s}=this.getProps();if(!t||!u(t))return!1;let r=t.current;(0,e9.k)(null!==r,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.");let{projection:i}=this.visualElement;if(!i||!i.layout)return!1;let n=function(e,t,s){let r=rp(e,s),{scroll:i}=t;return i&&(rl(r.x,i.offset.x),rl(r.y,i.offset.y)),r}(r,i.root,this.visualElement.getTransformPagePoint()),o={x:s1((e=i.layout.layoutBox).x,n.x),y:s1(e.y,n.y)};if(s){let e=s(function({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}(o));this.hasMutatedConstraints=!!e,e&&(o=s7(e))}return o}startAnimation(e){let{drag:t,dragMomentum:s,dragElastic:r,dragTransition:i,dragSnapToOrigin:n,onDragTransitionEnd:o}=this.getProps(),a=this.constraints||{},l=s5(o=>{if(!ry(o,t,this.currentDirection))return;let l=a&&a[o]||{};n&&(l={min:0,max:0});let h={type:"inertia",velocity:s?e[o]:0,bounceStiffness:r?200:1e6,bounceDamping:r?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...i,...l};return this.startAxisValueAnimation(o,h)});return Promise.all(l).then(o)}startAxisValueAnimation(e,t){let s=this.getAxisMotionValue(e);return s.start(sy(e,s,0,t))}stopAnimation(){s5(e=>this.getAxisMotionValue(e).stop())}pauseAnimation(){s5(e=>{var t;return null===(t=this.getAxisMotionValue(e).animation)||void 0===t?void 0:t.pause()})}getAnimationState(e){var t;return null===(t=this.getAxisMotionValue(e).animation)||void 0===t?void 0:t.state}getAxisMotionValue(e){let t="_drag"+e.toUpperCase(),s=this.visualElement.getProps(),r=s[t];return r||this.visualElement.getValue(e,(s.initial?s.initial[e]:void 0)||0)}snapToCursor(e){s5(t=>{let{drag:s}=this.getProps();if(!ry(t,s,this.currentDirection))return;let{projection:r}=this.visualElement,i=this.getAxisMotionValue(t);if(r&&r.layout){let{min:s,max:n}=r.layout.layoutBox[t];i.set(e[t]-tS(s,n,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:e,dragConstraints:t}=this.getProps(),{projection:s}=this.visualElement;if(!u(t)||!s||!this.constraints)return;this.stopAnimation();let r={x:0,y:0};s5(e=>{let t=this.getAxisMotionValue(e);if(t){let s=t.get();r[e]=function(e,t){let s=.5,r=sG(e),i=sG(t);return i>r?s=tG(t.min,t.max-r,e.min):r>i&&(s=tG(e.min,e.max-i,t.min)),V(0,1,s)}({min:s,max:s},this.constraints[e])}});let{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",s.root&&s.root.updateScroll(),s.updateLayout(),this.resolveConstraints(),s5(t=>{if(!ry(t,e,null))return;let s=this.getAxisMotionValue(t),{min:i,max:n}=this.constraints[t];s.set(tS(i,n,r[t]))})}addListeners(){if(!this.visualElement.current)return;rm.set(this.visualElement,this);let e=this.visualElement.current,t=eN(e,"pointerdown",e=>{let{drag:t,dragListener:s=!0}=this.getProps();t&&s&&this.start(e)}),s=()=>{let{dragConstraints:e}=this.getProps();u(e)&&(this.constraints=this.resolveRefConstraints())},{projection:r}=this.visualElement,i=r.addEventListener("measure",s);r&&!r.layout&&(r.root&&r.root.updateScroll(),r.updateLayout()),s();let n=eR(window,"resize",()=>this.scalePositionWithinConstraints()),o=r.addEventListener("didUpdate",({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(s5(t=>{let s=this.getAxisMotionValue(t);s&&(this.originPoint[t]+=e[t].translate,s.set(s.get()+e[t].translate))}),this.visualElement.render())});return()=>{n(),t(),i(),o&&o()}}getProps(){let e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:s=!1,dragPropagation:r=!1,dragConstraints:i=!1,dragElastic:n=.35,dragMomentum:o=!0}=e;return{...e,drag:t,dragDirectionLock:s,dragPropagation:r,dragConstraints:i,dragElastic:n,dragMomentum:o}}}function ry(e,t,s){return(!0===t||t===e)&&(null===s||s===e)}class rv extends e${constructor(e){super(e),this.removeGroupControls=eY.Z,this.removeListeners=eY.Z,this.controls=new rg(e)}mount(){let{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||eY.Z}unmount(){this.removeGroupControls(),this.removeListeners()}}let rb=e=>(t,s)=>{e&&eP.Wi.update(()=>e(t,s))};class r_ extends e${constructor(){super(...arguments),this.removePointerDownListener=eY.Z}onPointerDown(e){this.session=new sW(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:rf(this.node)})}createPanHandlers(){let{onPanSessionStart:e,onPanStart:t,onPan:s,onPanEnd:r}=this.node.getProps();return{onSessionStart:rb(e),onStart:rb(t),onMove:s,onEnd:(e,t)=>{delete this.session,r&&eP.Wi.update(()=>r(e,t))}}}mount(){this.removePointerDownListener=eN(this.node.current,"pointerdown",e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let rC={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function rx(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}let rE={correct:(e,t)=>{if(!t.target)return e;if("string"==typeof e){if(!Z.test(e))return e;e=parseFloat(e)}let s=rx(e,t.target.x),r=rx(e,t.target.y);return`${s}% ${r}%`}};class rw extends r.Component{componentDidMount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:s,layoutId:r}=this.props,{projection:i}=e;Object.assign(T,rS),i&&(t.group&&t.group.add(i),s&&s.register&&r&&s.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),rC.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){let{layoutDependency:t,visualElement:s,drag:r,isPresent:i}=this.props,n=s.projection;return n&&(n.isPresent=i,r||e.layoutDependency!==t||void 0===t?n.willUpdate():this.safeToRemove(),e.isPresent===i||(i?n.promote():n.relegate()||eP.Wi.postRender(()=>{let e=n.getStack();e&&e.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{projection:e}=this.props.visualElement;e&&(e.root.didUpdate(),queueMicrotask(()=>{!e.currentAnimation&&e.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:s}=this.props,{projection:r}=e;r&&(r.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(r),s&&s.deregister&&s.deregister(r))}safeToRemove(){let{safeToRemove:e}=this.props;e&&e()}render(){return null}}function rk(e){let[t,s]=function(){let e=(0,r.useContext)(o.O);if(null===e)return[!0,null];let{isPresent:t,onExitComplete:s,register:i}=e,n=(0,r.useId)();return(0,r.useEffect)(()=>i(n),[]),!t&&s?[!1,()=>s&&s(n)]:[!0]}(),i=(0,r.useContext)(x.p);return r.createElement(rw,{...e,layoutGroup:i,switchLayoutGroup:(0,r.useContext)(E),isPresent:t,safeToRemove:s})}let rS={borderRadius:{...rE,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:rE,borderTopRightRadius:rE,borderBottomLeftRadius:rE,borderBottomRightRadius:rE,boxShadow:{correct:(e,{treeScale:t,projectionDelta:s})=>{let r=tU.parse(e);if(r.length>5)return e;let i=tU.createTransformer(e),n="number"!=typeof r[0]?1:0,o=s.x.scale*t.x,a=s.y.scale*t.y;r[0+n]/=o,r[1+n]/=a;let l=tS(o,a,.5);return"number"==typeof r[2+n]&&(r[2+n]/=l),"number"==typeof r[3+n]&&(r[3+n]/=l),i(r)}}},rT=["TopLeft","TopRight","BottomLeft","BottomRight"],rP=rT.length,rO=e=>"string"==typeof e?parseFloat(e):e,rA=e=>"number"==typeof e||Z.test(e);function rR(e,t){return void 0!==e[t]?e[t]:e.borderRadius}let rF=rD(0,.5,tu),rL=rD(.5,.95,eY.Z);function rD(e,t,s){return r=>rt?1:s(tG(e,t,r))}function rN(e,t){e.min=t.min,e.max=t.max}function rB(e,t){rN(e.x,t.x),rN(e.y,t.y)}function rM(e,t,s,r,i){return e-=t,e=r+1/s*(e-r),void 0!==i&&(e=r+1/i*(e-r)),e}function rV(e,t,[s,r,i],n,o){!function(e,t=0,s=1,r=.5,i,n=e,o=e){if(X.test(t)){t=parseFloat(t);let e=tS(o.min,o.max,t/100);t=e-o.min}if("number"!=typeof t)return;let a=tS(n.min,n.max,r);e===n&&(a-=t),e.min=rM(e.min,t,s,a,i),e.max=rM(e.max,t,s,a,i)}(e,t[s],t[r],t[i],t.scale,n,o)}let rj=["x","scaleX","originX"],rI=["y","scaleY","originY"];function rU(e,t,s,r){rV(e.x,t,rj,s?s.x:void 0,r?r.x:void 0),rV(e.y,t,rI,s?s.y:void 0,r?r.y:void 0)}function rW(e){return 0===e.translate&&1===e.scale}function r$(e){return rW(e.x)&&rW(e.y)}function rq(e,t){return Math.round(e.x.min)===Math.round(t.x.min)&&Math.round(e.x.max)===Math.round(t.x.max)&&Math.round(e.y.min)===Math.round(t.y.min)&&Math.round(e.y.max)===Math.round(t.y.max)}function rH(e){return sG(e.x)/sG(e.y)}class rz{constructor(){this.members=[]}add(e){s_(this.members,e),e.scheduleRender()}remove(e){if(sC(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){let e=this.members[this.members.length-1];e&&this.promote(e)}}relegate(e){let t;let s=this.members.findIndex(t=>e===t);if(0===s)return!1;for(let e=s;e>=0;e--){let s=this.members[e];if(!1!==s.isPresent){t=s;break}}return!!t&&(this.promote(t),!0)}promote(e,t){let s=this.lead;if(e!==s&&(this.prevLead=s,this.lead=e,e.show(),s)){s.instance&&s.scheduleRender(),e.scheduleRender(),e.resumeFrom=s,t&&(e.resumeFrom.preserveOpacity=!0),s.snapshot&&(e.snapshot=s.snapshot,e.snapshot.latestValues=s.animationValues||s.latestValues),e.root&&e.root.isUpdating&&(e.isLayoutDirty=!0);let{crossfade:r}=e.options;!1===r&&s.hide()}}exitAnimationComplete(){this.members.forEach(e=>{let{options:t,resumingFrom:s}=e;t.onExitComplete&&t.onExitComplete(),s&&s.options.onExitComplete&&s.options.onExitComplete()})}scheduleRender(){this.members.forEach(e=>{e.instance&&e.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function rG(e,t,s){let r="",i=e.x.translate/t.x,n=e.y.translate/t.y;if((i||n)&&(r=`translate3d(${i}px, ${n}px, 0) `),(1!==t.x||1!==t.y)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),s){let{rotate:e,rotateX:t,rotateY:i}=s;e&&(r+=`rotate(${e}deg) `),t&&(r+=`rotateX(${t}deg) `),i&&(r+=`rotateY(${i}deg) `)}let o=e.x.scale*t.x,a=e.y.scale*t.y;return(1!==o||1!==a)&&(r+=`scale(${o}, ${a})`),r||"none"}let rY=(e,t)=>e.depth-t.depth;class rX{constructor(){this.children=[],this.isDirty=!1}add(e){s_(this.children,e),this.isDirty=!0}remove(e){sC(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(rY),this.isDirty=!1,this.children.forEach(e)}}let rZ=["","X","Y","Z"],rK={visibility:"hidden"},rJ=0,rQ={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0};function r0({attachResizeListener:e,defaultParent:t,measureScroll:s,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(e={},s=null==t?void 0:t()){this.id=rJ++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,rQ.totalNodes=rQ.resolvedTargetDeltas=rQ.recalculatedProjection=0,this.nodes.forEach(r2),this.nodes.forEach(ie),this.nodes.forEach(it),this.nodes.forEach(r6),window.MotionDebug&&window.MotionDebug.record(rQ)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=e,this.root=s?s.root||s:this,this.path=s?[...s.path,s]:[],this.parent=s,this.depth=s?s.depth+1:0;for(let e=0;ethis.root.updateBlockedByResize=!1;e(t,()=>{this.root.updateBlockedByResize=!0,s&&s(),s=function(e,t){let s=performance.now(),r=({timestamp:i})=>{let n=i-s;n>=t&&((0,eP.Pn)(r),e(n-t))};return eP.Wi.read(r,!0),()=>(0,eP.Pn)(r)}(r,250),rC.hasAnimatedSinceResize&&(rC.hasAnimatedSinceResize=!1,this.nodes.forEach(r7))})}r&&this.root.registerSharedNode(r,this),!1!==this.options.animate&&n&&(r||i)&&this.addEventListener("didUpdate",({delta:e,hasLayoutChanged:t,hasRelativeTargetChanged:s,layout:r})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let i=this.options.transition||n.getDefaultTransition()||il,{onLayoutAnimationStart:o,onLayoutAnimationComplete:a}=n.getProps(),l=!this.targetLayout||!rq(this.targetLayout,r)||s,h=!t&&s;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||h||t&&(l||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(e,h);let t={...sm(i,"layout"),onPlay:o,onComplete:a};(n.shouldReduceMotion||this.options.layoutRoot)&&(t.delay=0,t.type=!1),this.startAnimation(t)}else t||r7(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=r})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let e=this.getStack();e&&e.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,(0,eP.Pn)(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){!this.isUpdateBlocked()&&(this.isUpdating=!0,this.nodes&&this.nodes.forEach(is),this.animationId++)}getTransformTemplate(){let{visualElement:e}=this.options;return e&&e.getProps().transformTemplate}willUpdate(e=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(this.root.isUpdating||this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let e=0;ethis.update()))}clearAllSnapshots(){this.nodes.forEach(r9),this.sharedNodes.forEach(ir)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,eP.Wi.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){eP.Wi.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let e=0;e{let r=t/1e3;if(ii(o.x,e.x,r),ii(o.y,e.y,r),this.setTargetDelta(o),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout){var l,h,u,f;sQ(a,this.layout.layoutBox,this.relativeParent.layout.layoutBox),u=this.relativeTarget,f=this.relativeTargetOrigin,io(u.x,f.x,a.x,r),io(u.y,f.y,a.y,r),s&&(l=this.relativeTarget,h=s,l.x.min===h.x.min&&l.x.max===h.x.max&&l.y.min===h.y.min&&l.y.max===h.y.max)&&(this.isProjectionDirty=!1),s||(s=s8()),rB(s,this.relativeTarget)}c&&(this.animationValues=n,function(e,t,s,r,i,n){i?(e.opacity=tS(0,void 0!==s.opacity?s.opacity:1,rF(r)),e.opacityExit=tS(void 0!==t.opacity?t.opacity:1,0,rL(r))):n&&(e.opacity=tS(void 0!==t.opacity?t.opacity:1,void 0!==s.opacity?s.opacity:1,r));for(let i=0;i{rC.hasAnimatedSinceResize=!0,this.currentAnimation=function(e,t,s){let r=R(e)?e:sS(e);return r.start(sy("",r,1e3,s)),r.animation}(0,0,{...e,onUpdate:t=>{this.mixTargetDelta(t),e.onUpdate&&e.onUpdate(t)},onComplete:()=>{e.onComplete&&e.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let e=this.getStack();e&&e.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let e=this.getLead(),{targetWithTransforms:t,target:s,layout:r,latestValues:i}=e;if(t&&s&&r){if(this!==e&&this.layout&&r&&id(this.options.animationType,this.layout.layoutBox,r.layoutBox)){s=this.target||s8();let t=sG(this.layout.layoutBox.x);s.x.min=e.target.x.min,s.x.max=s.x.min+t;let r=sG(this.layout.layoutBox.y);s.y.min=e.target.y.min,s.y.max=s.y.min+r}rB(t,s),rd(t,i),sZ(this.projectionDeltaWithTransform,this.layoutCorrected,t,i)}}registerSharedNode(e,t){this.sharedNodes.has(e)||this.sharedNodes.set(e,new rz);let s=this.sharedNodes.get(e);s.add(t);let r=t.options.initialPromotionConfig;t.promote({transition:r?r.transition:void 0,preserveFollowOpacity:r&&r.shouldPreserveFollowOpacity?r.shouldPreserveFollowOpacity(t):void 0})}isLead(){let e=this.getStack();return!e||e.lead===this}getLead(){var e;let{layoutId:t}=this.options;return t&&(null===(e=this.getStack())||void 0===e?void 0:e.lead)||this}getPrevLead(){var e;let{layoutId:t}=this.options;return t?null===(e=this.getStack())||void 0===e?void 0:e.prevLead:void 0}getStack(){let{layoutId:e}=this.options;if(e)return this.root.sharedNodes.get(e)}promote({needsReset:e,transition:t,preserveFollowOpacity:s}={}){let r=this.getStack();r&&r.promote(this,s),e&&(this.projectionDelta=void 0,this.needsReset=!0),t&&this.setOptions({transition:t})}relegate(){let e=this.getStack();return!!e&&e.relegate(this)}resetRotation(){let{visualElement:e}=this.options;if(!e)return;let t=!1,{latestValues:s}=e;if((s.rotate||s.rotateX||s.rotateY||s.rotateZ)&&(t=!0),!t)return;let r={};for(let t=0;t{var t;return null===(t=e.currentAnimation)||void 0===t?void 0:t.stop()}),this.root.nodes.forEach(r4),this.root.sharedNodes.clear()}}}function r1(e){e.updateLayout()}function r3(e){var t;let s=(null===(t=e.resumeFrom)||void 0===t?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&s&&e.hasListeners("didUpdate")){let{layoutBox:t,measuredBox:r}=e.layout,{animationType:i}=e.options,n=s.source!==e.layout.source;"size"===i?s5(e=>{let r=n?s.measuredBox[e]:s.layoutBox[e],i=sG(r);r.min=t[e].min,r.max=r.min+i}):id(i,s.layoutBox,t)&&s5(r=>{let i=n?s.measuredBox[r]:s.layoutBox[r],o=sG(t[r]);i.max=i.min+o,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[r].max=e.relativeTarget[r].min+o)});let o=s9();sZ(o,t,s.layoutBox);let a=s9();n?sZ(a,e.applyTransform(r,!0),s.measuredBox):sZ(a,t,s.layoutBox);let l=!r$(o),h=!1;if(!e.resumeFrom){let r=e.getClosestProjectingParent();if(r&&!r.resumeFrom){let{snapshot:i,layout:n}=r;if(i&&n){let o=s8();sQ(o,s.layoutBox,i.layoutBox);let a=s8();sQ(a,t,n.layoutBox),rq(o,a)||(h=!0),r.options.layoutRoot&&(e.relativeTarget=a,e.relativeTargetOrigin=o,e.relativeParent=r)}}}e.notifyListeners("didUpdate",{layout:t,snapshot:s,delta:a,layoutDelta:o,hasLayoutChanged:l,hasRelativeTargetChanged:h})}else if(e.isLead()){let{onExitComplete:t}=e.options;t&&t()}e.options.transition=void 0}function r2(e){rQ.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function r6(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function r9(e){e.clearSnapshot()}function r4(e){e.clearMeasurements()}function r8(e){e.isLayoutDirty=!1}function r5(e){let{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function r7(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function ie(e){e.resolveTargetDelta()}function it(e){e.calcProjection()}function is(e){e.resetRotation()}function ir(e){e.removeLeadSnapshot()}function ii(e,t,s){e.translate=tS(t.translate,0,s),e.scale=tS(t.scale,1,s),e.origin=t.origin,e.originPoint=t.originPoint}function io(e,t,s,r){e.min=tS(t.min,s.min,r),e.max=tS(t.max,s.max,r)}function ia(e){return e.animationValues&&void 0!==e.animationValues.opacityExit}let il={duration:.45,ease:[.4,0,.1,1]},ih=e=>"undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().includes(e),ic=ih("applewebkit/")&&!ih("chrome/")?Math.round:eY.Z;function iu(e){e.min=ic(e.min),e.max=ic(e.max)}function id(e,t,s){return"position"===e||"preserve-aspect"===e&&!sY(rH(t),rH(s),.2)}let ip=r0({attachResizeListener:(e,t)=>eR(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),im={current:void 0},ig=r0({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!im.current){let e=new ip({});e.mount(window),e.setOptions({layoutScroll:!0}),im.current=e}return im.current},resetTransform:(e,t)=>{e.style.transform=void 0!==t?t:"none"},checkIsScrollRoot:e=>"fixed"===window.getComputedStyle(e).position}),iy=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function iv(e,t,s=1){(0,e9.k)(s<=4,`Max CSS variable fallback depth detected in property "${e}". This may indicate a circular fallback dependency.`);let[r,i]=function(e){let t=iy.exec(e);if(!t)return[,];let[,s,r]=t;return[s,r]}(e);if(!r)return;let n=window.getComputedStyle(t).getPropertyValue(r);if(n){let e=n.trim();return sb(e)?parseFloat(e):e}return B(i)?iv(i,t,s+1):i}let ib=new Set(["width","height","top","left","right","bottom","x","y","translateX","translateY"]),i_=e=>ib.has(e),iC=e=>Object.keys(e).some(i_),ix=e=>e===j||e===Z,iE=(e,t)=>parseFloat(e.split(", ")[t]),iw=(e,t)=>(s,{transform:r})=>{if("none"===r||!r)return 0;let i=r.match(/^matrix3d\((.+)\)$/);if(i)return iE(i[1],t);{let t=r.match(/^matrix\((.+)\)$/);return t?iE(t[1],e):0}},ik=new Set(["x","y","z"]),iS=P.filter(e=>!ik.has(e)),iT={width:({x:e},{paddingLeft:t="0",paddingRight:s="0"})=>e.max-e.min-parseFloat(t)-parseFloat(s),height:({y:e},{paddingTop:t="0",paddingBottom:s="0"})=>e.max-e.min-parseFloat(t)-parseFloat(s),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:iw(4,13),y:iw(5,14)};iT.translateX=iT.x,iT.translateY=iT.y;let iP=(e,t,s)=>{let r=t.measureViewportBox(),i=t.current,n=getComputedStyle(i),{display:o}=n,a={};"none"===o&&t.setStaticValue("display",e.display||"block"),s.forEach(e=>{a[e]=iT[e](r,n)}),t.render();let l=t.measureViewportBox();return s.forEach(s=>{let r=t.getValue(s);r&&r.jump(a[s]),e[s]=iT[s](l,n)}),e},iO=(e,t,s={},r={})=>{t={...t},r={...r};let i=Object.keys(t).filter(i_),n=[],o=!1,a=[];if(i.forEach(i=>{let l;let h=e.getValue(i);if(!e.hasValue(i))return;let c=s[i],u=sO(c),d=t[i];if(eE(d)){let e=d.length,t=null===d[0]?1:0;u=sO(c=d[t]);for(let s=t;s{let r=e.getValue(s);void 0!==r&&(t.push([s,r.get()]),r.set(s.startsWith("scale")?1:0))}),t.length&&e.render(),t}(e),o=!0),a.push(i),r[i]=void 0!==r[i]?r[i]:t[i],h.jump(d))}}),!a.length)return{target:t,transitionEnd:r};{let s=a.indexOf("height")>=0?window.pageYOffset:null,i=iP(t,e,a);return n.length&&n.forEach(([t,s])=>{e.getValue(t).set(s)}),e.render(),C.j&&null!==s&&window.scrollTo({top:s}),{target:i,transitionEnd:r}}},iA=(e,t,s,r)=>{let i=function(e,{...t},s){let r=e.current;if(!(r instanceof Element))return{target:t,transitionEnd:s};for(let i in s&&(s={...s}),e.values.forEach(e=>{let t=e.get();if(!B(t))return;let s=iv(t,r);s&&e.set(s)}),t){let e=t[i];if(!B(e))continue;let n=iv(e,r);n&&(t[i]=n,s||(s={}),void 0===s[i]&&(s[i]=e))}return{target:t,transitionEnd:s}}(e,t,r);return function(e,t,s,r){return iC(t)?iO(e,t,s,r):{target:t,transitionEnd:r}}(e,t=i.target,s,r=i.transitionEnd)},iR={current:null},iF={current:!1},iL=new WeakMap,iD=Object.keys(_),iN=iD.length,iB=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],iM=m.length;class iV{constructor({parent:e,props:t,presenceContext:s,reducedMotionConfig:r,visualState:i},n={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.scheduleRender=()=>eP.Wi.render(this.render,!1,!0);let{latestValues:o,renderState:a}=i;this.latestValues=o,this.baseTarget={...o},this.initialValues=t.initial?{...o}:{},this.renderState=a,this.parent=e,this.props=t,this.presenceContext=s,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.options=n,this.isControllingVariants=g(t),this.isVariantNode=y(t),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);let{willChange:l,...h}=this.scrapeMotionValuesFromProps(t,{});for(let e in h){let t=h[e];void 0!==o[e]&&R(t)&&(t.set(o[e],!1),sv(l)&&l.add(e))}}scrapeMotionValuesFromProps(e,t){return{}}mount(e){this.current=e,iL.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((e,t)=>this.bindToMotionValue(t,e)),iF.current||function(){if(iF.current=!0,C.j){if(window.matchMedia){let e=window.matchMedia("(prefers-reduced-motion)"),t=()=>iR.current=e.matches;e.addListener(t),t()}else iR.current=!1}}(),this.shouldReduceMotion="never"!==this.reducedMotionConfig&&("always"===this.reducedMotionConfig||iR.current),this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){for(let e in iL.delete(this.current),this.projection&&this.projection.unmount(),(0,eP.Pn)(this.notifyUpdate),(0,eP.Pn)(this.render),this.valueSubscriptions.forEach(e=>e()),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this),this.events)this.events[e].clear();for(let e in this.features)this.features[e].unmount();this.current=null}bindToMotionValue(e,t){let s=O.has(e),r=t.on("change",t=>{this.latestValues[e]=t,this.props.onUpdate&&eP.Wi.update(this.notifyUpdate,!1,!0),s&&this.projection&&(this.projection.isTransformDirty=!0)}),i=t.on("renderRequest",this.scheduleRender);this.valueSubscriptions.set(e,()=>{r(),i()})}sortNodePosition(e){return this.current&&this.sortInstanceNodePosition&&this.type===e.type?this.sortInstanceNodePosition(this.current,e.current):0}loadFeatures({children:e,...t},s,r,i){let n,o;for(let e=0;ethis.scheduleRender(),animationType:"string"==typeof s?s:"both",initialPromotionConfig:i,layoutScroll:a,layoutRoot:l})}return o}updateFeatures(){for(let e in this.features){let t=this.features[e];t.isMounted?t.update():(t.mount(),t.isMounted=!0)}}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):s8()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,t){this.latestValues[e]=t}makeTargetAnimatable(e,t=!0){return this.makeTargetAnimatableFromInstance(e,this.props,t)}update(e,t){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=t;for(let t=0;tt.variantChildren.delete(e)}addValue(e,t){t!==this.values.get(e)&&(this.removeValue(e),this.bindToMotionValue(e,t)),this.values.set(e,t),this.latestValues[e]=t.get()}removeValue(e){this.values.delete(e);let t=this.valueSubscriptions.get(e);t&&(t(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,t){if(this.props.values&&this.props.values[e])return this.props.values[e];let s=this.values.get(e);return void 0===s&&void 0!==t&&(s=sS(t,{owner:this}),this.addValue(e,s)),s}readValue(e){var t;return void 0===this.latestValues[e]&&this.current?null!==(t=this.getBaseTargetFromProps(this.props,e))&&void 0!==t?t:this.readValueFromInstance(this.current,e,this.options):this.latestValues[e]}setBaseTarget(e,t){this.baseTarget[e]=t}getBaseTarget(e){var t;let{initial:s}=this.props,r="string"==typeof s||"object"==typeof s?null===(t=eC(this.props,s))||void 0===t?void 0:t[e]:void 0;if(s&&void 0!==r)return r;let i=this.getBaseTargetFromProps(this.props,e);return void 0===i||R(i)?void 0!==this.initialValues[e]&&void 0===r?void 0:this.baseTarget[e]:i}on(e,t){return this.events[e]||(this.events[e]=new sx),this.events[e].add(t)}notify(e,...t){this.events[e]&&this.events[e].notify(...t)}}class ij extends iV{sortInstanceNodePosition(e,t){return 2&e.compareDocumentPosition(t)?1:-1}getBaseTargetFromProps(e,t){return e.style?e.style[t]:void 0}removeValueFromRenderState(e,{vars:t,style:s}){delete t[e],delete s[e]}makeTargetAnimatableFromInstance({transition:e,transitionEnd:t,...s},{transformValues:r},i){let n=function(e,t,s){let r={};for(let i in e){let e=function(e,t){if(!t)return;let s=t[e]||t.default||t;return s.from}(i,t);if(void 0!==e)r[i]=e;else{let e=s.getValue(i);e&&(r[i]=e.get())}}return r}(s,e||{},this);if(r&&(t&&(t=r(t)),s&&(s=r(s)),n&&(n=r(n))),i){!function(e,t,s){var r,i;let n=Object.keys(t).filter(t=>!e.hasValue(t)),o=n.length;if(o)for(let a=0;a{this.current&&(this.current.textContent=`${e}`)}))}renderInstance(e,t,s,r){eg(e,t,s,r)}}class iU extends ij{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1}getBaseTargetFromProps(e,t){return e[t]}readValueFromInstance(e,t){if(O.has(t)){let e=sd(t);return e&&e.default||0}return t=ey.has(t)?t:h(t),e.getAttribute(t)}measureInstanceViewportBox(){return s8()}scrapeMotionValuesFromProps(e,t){return e_(e,t)}build(e,t,s,r){ed(e,t,s,this.isSVGTag,r.transformTemplate)}renderInstance(e,t,s,r){ev(e,t,s,r)}mount(e){this.isSVGTag=ef(e.tagName),super.mount(e)}}let iW=(e,t)=>S(e)?new iU(t,{enableHardwareAcceleration:!1}):new iI(t,{enableHardwareAcceleration:!0}),i$={animation:{Feature:sV},exit:{Feature:sI},inView:{Feature:e3},tap:{Feature:eZ},focus:{Feature:ez},hover:{Feature:eH},pan:{Feature:r_},drag:{Feature:rv,ProjectionNode:ig,MeasureLayout:rk},layout:{ProjectionNode:ig,MeasureLayout:rk}},iq=function(e){function t(t,s={}){return function({preloadedFeatures:e,createVisualElement:t,useRender:s,useVisualState:h,Component:p}){e&&function(e){for(let t in e)_[t]={..._[t],...e[t]}}(e);let f=(0,r.forwardRef)(function(f,m){var y;let b;let _={...(0,r.useContext)(i),...f,layoutId:function({layoutId:e}){let t=(0,r.useContext)(x.p).id;return t&&void 0!==e?t+"-"+e:e}(f)},{isStatic:w}=_,k=function(e){let{initial:t,animate:s}=function(e,t){if(g(e)){let{initial:t,animate:s}=e;return{initial:!1===t||d(t)?t:void 0,animate:d(s)?s:void 0}}return!1!==e.inherit?t:{}}(e,(0,r.useContext)(n));return(0,r.useMemo)(()=>({initial:t,animate:s}),[v(t),v(s)])}(f),S=h(f,w);if(!w&&C.j){k.visualElement=function(e,t,s,h){let{visualElement:u}=(0,r.useContext)(n),d=(0,r.useContext)(l),p=(0,r.useContext)(o.O),f=(0,r.useContext)(i).reducedMotion,m=(0,r.useRef)();h=h||d.renderer,!m.current&&h&&(m.current=h(e,{visualState:t,parent:u,props:s,presenceContext:p,blockInitialAnimation:!!p&&!1===p.initial,reducedMotionConfig:f}));let g=m.current;(0,r.useInsertionEffect)(()=>{g&&g.update(s,p)});let y=(0,r.useRef)(!!(s[c]&&!window.HandoffComplete));return(0,a.L)(()=>{g&&(g.render(),y.current&&g.animationState&&g.animationState.animateChanges())}),(0,r.useEffect)(()=>{g&&(g.updateFeatures(),!y.current&&g.animationState&&g.animationState.animateChanges(),y.current&&(y.current=!1,window.HandoffComplete=!0))}),g}(p,S,_,t);let s=(0,r.useContext)(E),h=(0,r.useContext)(l).strict;k.visualElement&&(b=k.visualElement.loadFeatures(_,h,e,s))}return r.createElement(n.Provider,{value:k},b&&k.visualElement?r.createElement(b,{visualElement:k.visualElement,..._}):null,s(p,f,(y=k.visualElement,(0,r.useCallback)(e=>{e&&S.mount&&S.mount(e),y&&(e?y.mount(e):y.unmount()),m&&("function"==typeof m?m(e):u(m)&&(m.current=e))},[y])),S,w,k.visualElement))});return f[w]=p,f}(e(t,s))}if("undefined"==typeof Proxy)return t;let s=new Map;return new Proxy(t,{get:(e,r)=>(s.has(r)||s.set(r,t(r)),s.get(r))})}((e,t)=>(function(e,{forwardMotionProps:t=!1},s,i){let n=S(e)?eO:eA;return{...n,preloadedFeatures:s,useRender:function(e=!1){return(t,s,i,{latestValues:n},o)=>{let a=S(t)?em:en,l=a(s,n,o,t),h=function(e,t,s){let r={};for(let i in e)("values"!==i||"object"!=typeof e.values)&&(el(i)||!0===s&&ea(i)||!t&&!ea(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}(s,"string"==typeof t,e),c={...h,...l,ref:i},{children:u}=s,d=(0,r.useMemo)(()=>R(u)?u.get():u,[u]);return(0,r.createElement)(t,{...c,children:d})}}(t),createVisualElement:i,Component:e}})(e,t,i$,iW))},7939:(e,t,s)=>{s.d(t,{K:()=>i,k:()=>n});var r=s(7769);let i=r.Z,n=r.Z},3489:(e,t,s)=>{s.d(t,{j:()=>r});let r="undefined"!=typeof document},7769:(e,t,s)=>{s.d(t,{Z:()=>r});let r=e=>e},7724:(e,t,s)=>{s.d(t,{h:()=>i});var r=s(4218);function i(e){let t=(0,r.useRef)(null);return null===t.current&&(t.current=e()),t.current}},1038:(e,t,s)=>{s.d(t,{L:()=>n});var r=s(4218),i=s(3489);let n=i.j?r.useLayoutEffect:r.useEffect},1358:(e,t,s)=>{let r,i;s.d(t,{io:()=>eA});var n,o={};s.r(o),s.d(o,{Decoder:()=>eb,Encoder:()=>ey,PacketType:()=>n,protocol:()=>eg});var a=s(6308),l=s.t(a,2);let h=Object.create(null);h.open="0",h.close="1",h.ping="2",h.pong="3",h.message="4",h.upgrade="5",h.noop="6";let c=Object.create(null);Object.keys(h).forEach(e=>{c[h[e]]=e});let u={type:"error",data:"parser error"},d=({type:e,data:t},s,r)=>r(t instanceof ArrayBuffer||ArrayBuffer.isView(t)?s?t:"b"+p(t,!0).toString("base64"):h[e]+(t||"")),p=(e,t)=>Buffer.isBuffer(e)||e instanceof Uint8Array&&!t?e:e instanceof ArrayBuffer?Buffer.from(e):Buffer.from(e.buffer,e.byteOffset,e.byteLength),f=(e,t)=>{if("string"!=typeof e)return{type:"message",data:m(e,t)};let s=e.charAt(0);if("b"===s){let s=Buffer.from(e.substring(1),"base64");return{type:"message",data:m(s,t)}}return c[s]?e.length>1?{type:c[s],data:e.substring(1)}:{type:c[s]}:u},m=(e,t)=>"arraybuffer"===t?e instanceof ArrayBuffer?e:Buffer.isBuffer(e)?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):e.buffer:Buffer.isBuffer(e)?e:Buffer.from(e),g=(e,t)=>{let s=e.length,r=Array(s),i=0;e.forEach((e,n)=>{d(e,!1,e=>{r[n]=e,++i===s&&t(r.join("\x1e"))})})},y=(e,t)=>{let s=e.split("\x1e"),r=[];for(let e=0;ee+t.length,0)}function b(e,t){if(e[0].length===t)return e.shift();let s=new Uint8Array(t),r=0;for(let i=0;i{let t=function(e){let t=e.split("; "),s=t[0].indexOf("=");if(-1===s)return;let r=t[0].substring(0,s).trim();if(!r.length)return;let i=t[0].substring(s+1).trim();34===i.charCodeAt(0)&&(i=i.slice(1,-1));let n={name:r,value:i};for(let e=1;e{var r;(null===(r=t.expires)||void 0===r?void 0:r.getTime())(e.hasOwnProperty(s)&&(t[s]=e[s]),t),{})}let w=globalThis.setTimeout,k=globalThis.clearTimeout;function S(e,t){t.useNativeTimers?(e.setTimeoutFn=w.bind(globalThis),e.clearTimeoutFn=k.bind(globalThis)):(e.setTimeoutFn=globalThis.setTimeout.bind(globalThis),e.clearTimeoutFn=globalThis.clearTimeout.bind(globalThis))}function T(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}var P=s(8753);let O=P("engine.io-client:transport");class A extends Error{constructor(e,t,s){super(e),this.description=t,this.context=s,this.type="TransportError"}}class R extends _{constructor(e){super(),this.writable=!1,S(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,s){return super.emitReserved("error",new A(e,t,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return("opening"===this.readyState||"open"===this.readyState)&&(this.doClose(),this.onClose()),this}send(e){"open"===this.readyState?this.write(e):O("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){let t=f(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){let e=this.opts.hostname;return -1===e.indexOf(":")?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(e){let t=function(e){let t="";for(let s in e)e.hasOwnProperty(s)&&(t.length&&(t+="&"),t+=encodeURIComponent(s)+"="+encodeURIComponent(e[s]));return t}(e);return t.length?"?"+t:""}}let F=P("engine.io-client:polling");class L extends R{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";let t=()=>{F("paused"),this.readyState="paused",e()};if(this._polling||!this.writable){let e=0;this._polling&&(F("we are currently polling - waiting to pause"),e++,this.once("pollComplete",function(){F("pre-pause polling complete"),--e||t()})),this.writable||(F("we are currently writing - waiting to pause"),e++,this.once("drain",function(){F("pre-pause writing complete"),--e||t()}))}else t()}_poll(){F("polling"),this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){F("polling got data %s",e),y(e,this.socket.binaryType).forEach(e=>{if("opening"===this.readyState&&"open"===e.type&&this.onOpen(),"close"===e.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(e)}),"closed"!==this.readyState&&(this._polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState?this._poll():F('ignoring poll - transport state "%s"',this.readyState))}doClose(){let e=()=>{F("writing close packet"),this.write([{type:"close"}])};"open"===this.readyState?(F("transport open - closing"),e()):(F("transport not open - deferring close"),this.once("open",e))}write(e){this.writable=!1,g(e,e=>{this.doWrite(e,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let e=this.opts.secure?"https":"http",t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=T()),this.supportsBinary||t.sid||(t.b64=1),this.createUri(e,t)}}let D=!1;try{D="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(e){}let N=D,B=P("engine.io-client:polling");function M(){}class V extends L{constructor(e){if(super(e),"undefined"!=typeof location){let t="https:"===location.protocol,s=location.port;s||(s=t?"443":"80"),this.xd="undefined"!=typeof location&&e.hostname!==location.hostname||s!==e.port}}doWrite(e,t){let s=this.request({method:"POST",data:e});s.on("success",t),s.on("error",(e,t)=>{this.onError("xhr post error",e,t)})}doPoll(){B("xhr poll");let e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(e,t)=>{this.onError("xhr poll error",e,t)}),this.pollXhr=e}}class Request extends _{constructor(e,t,s){super(),this.createRequest=e,S(this,s),this._opts=s,this._method=s.method||"GET",this._uri=t,this._data=void 0!==s.data?s.data:null,this._create()}_create(){var e;let t=E(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this._opts.xd;let s=this._xhr=this.createRequest(t);try{B("xhr open %s: %s",this._method,this._uri),s.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders)for(let e in s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0),this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(e)&&s.setRequestHeader(e,this._opts.extraHeaders[e])}catch(e){}if("POST"===this._method)try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{s.setRequestHeader("Accept","*/*")}catch(e){}null===(e=this._opts.cookieJar)||void 0===e||e.addCookies(s),"withCredentials"in s&&(s.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(s.timeout=this._opts.requestTimeout),s.onreadystatechange=()=>{var e;3===s.readyState&&(null===(e=this._opts.cookieJar)||void 0===e||e.parseCookies(s.getResponseHeader("set-cookie"))),4===s.readyState&&(200===s.status||1223===s.status?this._onLoad():this.setTimeoutFn(()=>{this._onError("number"==typeof s.status?s.status:0)},0))},B("xhr data %s",this._data),s.send(this._data)}catch(e){this.setTimeoutFn(()=>{this._onError(e)},0);return}"undefined"!=typeof document&&(this._index=Request.requestsCount++,Request.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(void 0!==this._xhr&&null!==this._xhr){if(this._xhr.onreadystatechange=M,e)try{this._xhr.abort()}catch(e){}"undefined"!=typeof document&&delete Request.requests[this._index],this._xhr=null}}_onLoad(){let e=this._xhr.responseText;null!==e&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}if(Request.requestsCount=0,Request.requests={},"undefined"!=typeof document){if("function"==typeof attachEvent)attachEvent("onunload",j);else if("function"==typeof addEventListener){let e="onpagehide"in globalThis?"pagehide":"unload";addEventListener(e,j,!1)}}function j(){for(let e in Request.requests)Request.requests.hasOwnProperty(e)&&Request.requests[e].abort()}!function(){let e=function(e){let t=e.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!t||N))return new XMLHttpRequest}catch(e){}if(!t)try{return new globalThis[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch(e){}}({xdomain:!1});e&&e.responseType}();let I=a||l;class U extends V{request(e={}){var t;return Object.assign(e,{xd:this.xd,cookieJar:null===(t=this.socket)||void 0===t?void 0:t._cookieJar},this.opts),new Request(e=>new I(e),this.uri(),e)}}s(6994),s(2535),s(7345);var W=s(9364);s(3840);let $=P("engine.io-client:websocket"),q="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase();class H extends R{get name(){return"websocket"}doOpen(){let e=this.uri(),t=this.opts.protocols,s=q?{}:E(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,s)}catch(e){return this.emitReserved("error",e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t{try{this.doWrite(s,e)}catch(e){$("websocket closed before onclose event")}r&&C(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){void 0!==this.ws&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=T()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}}globalThis.WebSocket||globalThis.MozWebSocket;class z extends H{createSocket(e,t,s){var r;if(null===(r=this.socket)||void 0===r?void 0:r._cookieJar)for(let[e,t]of(s.headers=s.headers||{},s.headers.cookie="string"==typeof s.headers.cookie?[s.headers.cookie]:s.headers.cookie||[],this.socket._cookieJar.cookies))s.headers.cookie.push(`${e}=${t.value}`);return new W(e,t,s)}doWrite(e,t){let s={};if(e.options&&(s.compress=e.options.compress),this.opts.perMessageDeflate){let e="string"==typeof t?Buffer.byteLength(t):t.length;e{G("transport closed gracefully"),this.onClose()}).catch(e=>{G("transport closed due to %s",e),this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{let t=function(e,t){i||(i=new TextDecoder);let s=[],r=0,n=-1,o=!1;return new TransformStream({transform(a,l){for(s.push(a);;){if(0===r){if(1>v(s))break;let e=b(s,1);o=(128&e[0])==128,r=(n=127&e[0])<126?3:126===n?1:2}else if(1===r){if(2>v(s))break;let e=b(s,2);n=new DataView(e.buffer,e.byteOffset,e.length).getUint16(0),r=3}else if(2===r){if(8>v(s))break;let e=b(s,8),t=new DataView(e.buffer,e.byteOffset,e.length),i=t.getUint32(0);if(i>2097151){l.enqueue(u);break}n=4294967296*i+t.getUint32(4),r=3}else{if(v(s)e){l.enqueue(u);break}}}})}(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=e.readable.pipeThrough(t).getReader(),n=new TransformStream({transform(e,t){!function(e,t){if(e.data instanceof ArrayBuffer||ArrayBuffer.isView(e.data))return t(p(e.data,!1));d(e,!0,e=>{r||(r=new TextEncoder),t(r.encode(e))})}(e,s=>{let r;let i=s.length;if(i<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,i);else if(i<65536){r=new Uint8Array(3);let e=new DataView(r.buffer);e.setUint8(0,126),e.setUint16(1,i)}else{r=new Uint8Array(9);let e=new DataView(r.buffer);e.setUint8(0,127),e.setBigUint64(1,BigInt(i))}e.data&&"string"!=typeof e.data&&(r[0]|=128),t.enqueue(r),t.enqueue(s)})}});n.readable.pipeTo(e.writable),this._writer=n.writable.getWriter();let o=()=>{s.read().then(({done:e,value:t})=>{if(e){G("session is closed");return}G("received chunk: %o",t),this.onPacket(t),o()}).catch(e=>{G("an error occurred while reading: %s",e)})};o();let a={type:"open"};this.query.sid&&(a.data=`{"sid":"${this.query.sid}"}`),this._writer.write(a).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t{r&&C(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;null===(e=this._transport)||void 0===e||e.close()}}let X={websocket:z,webtransport:Y,polling:U},Z=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,K=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function J(e){if(e.length>8e3)throw"URI too long";let t=e,s=e.indexOf("["),r=e.indexOf("]");-1!=s&&-1!=r&&(e=e.substring(0,s)+e.substring(s,r).replace(/:/g,";")+e.substring(r,e.length));let i=Z.exec(e||""),n={},o=14;for(;o--;)n[K[o]]=i[o]||"";return -1!=s&&-1!=r&&(n.source=t,n.host=n.host.substring(1,n.host.length-1).replace(/;/g,":"),n.authority=n.authority.replace("[","").replace("]","").replace(/;/g,":"),n.ipv6uri=!0),n.pathNames=function(e,t){let s=t.replace(/\/{2,9}/g,"/").split("/");return("/"==t.slice(0,1)||0===t.length)&&s.splice(0,1),"/"==t.slice(-1)&&s.splice(s.length-1,1),s}(0,n.path),n.queryKey=function(e,t){let s={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(e,t,r){t&&(s[t]=r)}),s}(0,n.query),n}let Q=P("engine.io-client:socket"),ee="function"==typeof addEventListener&&"function"==typeof removeEventListener,et=[];ee&&addEventListener("offline",()=>{Q("closing %d connection(s) because the network was lost",et.length),et.forEach(e=>e())},!1);class es extends _{constructor(e,t){if(super(),this.binaryType="nodebuffer",this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&"object"==typeof e&&(t=e,e=null),e){let s=J(e);t.hostname=s.host,t.secure="https"===s.protocol||"wss"===s.protocol,t.port=s.port,s.query&&(t.query=s.query)}else t.host&&(t.hostname=J(t.host).host);S(this,t),this.secure=null!=t.secure?t.secure:"undefined"!=typeof location&&"https:"===location.protocol,t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=t.port||("undefined"!=typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},t.transports.forEach(e=>{let t=e.prototype.name;this.transports.push(t),this._transportsByName[t]=e}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=function(e){let t={},s=e.split("&");for(let e=0,r=s.length;e{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(Q("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},et.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=new x),this._open()}createTransport(e){Q('creating transport "%s"',e);let t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);let s=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return Q("options: %j",s),new this._transportsByName[e](s)}_open(){if(0===this.transports.length){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}let e=this.opts.rememberUpgrade&&es.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket")?"websocket":this.transports[0];this.readyState="opening";let t=this.createTransport(e);t.open(),this.setTransport(t)}setTransport(e){Q("setting transport %s",e.name),this.transport&&(Q("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",e=>this._onClose("transport close",e))}onOpen(){Q("socket open"),this.readyState="open",es.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush()}_onPacket(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(Q('socket receive: type "%s", data "%s"',e.type,e.data),this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let t=Error("server error");t.code=e.data,this._onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data)}else Q('packet received with socket readyState "%s"',this.readyState)}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),"closed"!==this.readyState&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let e=this._getWritablePackets();Q("flushing %d packets in socket",e.length),this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){let e=this._maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1;if(!e)return this.writeBuffer;let t=1;for(let e=0;e=57344?s+=3:(r++,s+=4);return s}(s):Math.ceil(1.33*(s.byteLength||s.size))),e>0&&t>this._maxPayload)return Q("only send %d out of %d packets",e,this.writeBuffer.length),this.writeBuffer.slice(0,e);t+=2}return Q("payload size is %d (max: %d)",t,this._maxPayload),this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let e=Date.now()>this._pingTimeoutTime;return e&&(Q("throttled timer detected, scheduling connection close"),this._pingTimeoutTime=0,C(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,t,s){return this._sendPacket("message",e,t,s),this}send(e,t,s){return this._sendPacket("message",e,t,s),this}_sendPacket(e,t,s,r){if("function"==typeof t&&(r=t,t=void 0),"function"==typeof s&&(r=s,s=null),"closing"===this.readyState||"closed"===this.readyState)return;(s=s||{}).compress=!1!==s.compress;let i={type:e,data:t,options:s};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),r&&this.once("flush",r),this.flush()}close(){let e=()=>{this._onClose("forced close"),Q("socket closing - telling transport to close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},s=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return("opening"===this.readyState||"open"===this.readyState)&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?s():e()}):this.upgrading?s():e()),this}_onError(e){if(Q("socket error %j",e),es.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&"opening"===this.readyState)return Q("trying next transport"),this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState){if(Q('socket close with reason: "%s"',e),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),ee&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let e=et.indexOf(this._offlineEventListener);-1!==e&&(Q("removing listener for the 'offline' event"),et.splice(e,1))}this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this._prevBufferLen=0}}}es.protocol=4;class er extends es{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),"open"===this.readyState&&this.opts.upgrade){Q("starting upgrade probes");for(let e=0;e{s||(Q('probe transport "%s" opened',e),t.send([{type:"ping",data:"probe"}]),t.once("packet",r=>{if(!s){if("pong"===r.type&&"probe"===r.data)Q('probe transport "%s" pong',e),this.upgrading=!0,this.emitReserved("upgrading",t),t&&(es.priorWebsocketSuccess="websocket"===t.name,Q('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{s||"closed"===this.readyState||(Q("changing transport and sending upgrade packet"),h(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())}));else{Q('probe transport "%s" failed',e);let s=Error("probe error");s.transport=t.name,this.emitReserved("upgradeError",s)}}}))};function i(){s||(s=!0,h(),t.close(),t=null)}let n=s=>{let r=Error("probe error: "+s);r.transport=t.name,i(),Q('probe transport "%s" failed because of error: %s',e,s),this.emitReserved("upgradeError",r)};function o(){n("transport closed")}function a(){n("socket closed")}function l(e){t&&e.name!==t.name&&(Q('"%s" works - aborting "%s"',e.name,t.name),i())}let h=()=>{t.removeListener("open",r),t.removeListener("error",n),t.removeListener("close",o),this.off("close",a),this.off("upgrading",l)};t.once("open",r),t.once("error",n),t.once("close",o),this.once("close",a),this.once("upgrading",l),-1!==this._upgrades.indexOf("webtransport")&&"webtransport"!==e?this.setTimeoutFn(()=>{s||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){let t=[];for(let s=0;sX[e]).filter(e=>!!e)),super(e,s)}}ei.protocol;var en=s(4942);let eo=en("socket.io-client:url"),ea="function"==typeof ArrayBuffer,el=e=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,eh=Object.prototype.toString,ec="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===eh.call(Blob),eu="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===eh.call(File);function ed(e){return ea&&(e instanceof ArrayBuffer||el(e))||ec&&e instanceof Blob||eu&&e instanceof File}var ep=s(1635);let ef=ep("socket.io-parser"),em=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],eg=5;!function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"}(n||(n={}));class ey{constructor(e){this.replacer=e}encode(e){return(ef("encoding packet %j",e),(e.type===n.EVENT||e.type===n.ACK)&&function e(t,s){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t)){for(let s=0,r=t.length;s=0&&t.num{delete this.acks[e];for(let t=0;t{this.io.clearTimeoutFn(i),t.apply(this,e)};n.withError=!0,this.acks[e]=n}emitWithAck(e,...t){return new Promise((s,r)=>{let i=(e,t)=>e?r(e):s(t);i.withError=!0,t.push(i),this.emit(e,...t)})}_addToQueue(e){let t;"function"==typeof e[e.length-1]&&(t=e.pop());let s={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((e,...r)=>{if(s!==this._queue[0])return;let i=null!==e;return i?s.tryCount>this._opts.retries&&(ex("packet [%d] is discarded after %d tries",s.id,s.tryCount),this._queue.shift(),t&&t(e)):(ex("packet [%d] was successfully sent",s.id),this._queue.shift(),t&&t(null,...r)),s.pending=!1,this._drainQueue()}),this._queue.push(s),this._drainQueue()}_drainQueue(e=!1){if(ex("draining queue"),!this.connected||0===this._queue.length)return;let t=this._queue[0];if(t.pending&&!e){ex("packet [%d] has already been sent and is waiting for an ack",t.id);return}t.pending=!0,t.tryCount++,ex("sending packet [%d] (try n\xb0%d)",t.id,t.tryCount),this.flags=t.flags,this.emit.apply(this,t.args)}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){ex("transport is open - connecting"),"function"==typeof this.auth?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:n.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){ex("close (%s)",e),this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{let t=this.sendBuffer.some(t=>String(t.id)===e);if(!t){let t=this.acks[e];delete this.acks[e],t.withError&&t.call(this,Error("socket has been disconnected"))}})}onpacket(e){let t=e.nsp===this.nsp;if(t)switch(e.type){case n.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case n.EVENT:case n.BINARY_EVENT:this.onevent(e);break;case n.ACK:case n.BINARY_ACK:this.onack(e);break;case n.DISCONNECT:this.ondisconnect();break;case n.CONNECT_ERROR:this.destroy();let s=Error(e.data.message);s.data=e.data.data,this.emitReserved("connect_error",s)}}onevent(e){let t=e.data||[];ex("emitting event %j",t),null!=e.id&&(ex("attaching ack callback to event"),t.push(this.ack(e.id))),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){let t=this._anyListeners.slice();for(let s of t)s.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&"string"==typeof e[e.length-1]&&(this._lastOffset=e[e.length-1])}ack(e){let t=this,s=!1;return function(...r){s||(s=!0,ex("sending ack %j",r),t.packet({type:n.ACK,id:e,data:r}))}}onack(e){let t=this.acks[e.id];if("function"!=typeof t){ex("bad ack %s",e.id);return}delete this.acks[e.id],ex("calling ack %s with %j",e.id,e.data),t.withError&&e.data.unshift(null),t.apply(this,e.data)}onconnect(e,t){ex("socket connected with id %s",e),this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){ex("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&(ex("performing disconnect (%s)",this.nsp),this.packet({type:n.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){let t=this._anyListeners;for(let s=0;s0&&e.jitter<=1?e.jitter:0,this.attempts=0}ek.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),s=Math.floor(t*this.jitter*e);e=(1&Math.floor(10*t))==0?e-s:e+s}return 0|Math.min(e,this.max)},ek.prototype.reset=function(){this.attempts=0},ek.prototype.setMin=function(e){this.ms=e},ek.prototype.setMax=function(e){this.max=e},ek.prototype.setJitter=function(e){this.jitter=e};let eS=en("socket.io-client:manager");class eT extends _{constructor(e,t){var s;super(),this.nsps={},this.subs=[],e&&"object"==typeof e&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.opts=t,S(this,t),this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(s=t.randomizationFactor)&&void 0!==s?s:.5),this.backoff=new ek({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this._readyState="closed",this.uri=e;let r=t.parser||o;this.encoder=new r.Encoder,this.decoder=new r.Decoder,this._autoConnect=!1!==t.autoConnect,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}randomizationFactor(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(e){if(eS("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;eS("opening %s",this.uri),this.engine=new ei(this.uri,this.opts);let t=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;let r=eC(t,"open",function(){s.onopen(),e&&e()}),i=t=>{eS("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",t),e?e(t):this.maybeReconnectOnOpen()},n=eC(t,"error",i);if(!1!==this._timeout){let e=this._timeout;eS("connect attempt will timeout after %d",e);let s=this.setTimeoutFn(()=>{eS("connect attempt timed out after %d",e),r(),i(Error("timeout")),t.close()},e);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}return this.subs.push(r),this.subs.push(n),this}connect(e){return this.open(e)}onopen(){eS("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");let e=this.engine;this.subs.push(eC(e,"ping",this.onping.bind(this)),eC(e,"data",this.ondata.bind(this)),eC(e,"error",this.onerror.bind(this)),eC(e,"close",this.onclose.bind(this)),eC(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(e){this.onclose("parse error",e)}}ondecoded(e){C(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){eS("error",e),this.emitReserved("error",e)}socket(e,t){let s=this.nsps[e];return s?this._autoConnect&&!s.active&&s.connect():(s=new ew(this,e,t),this.nsps[e]=s),s}_destroy(e){let t=Object.keys(this.nsps);for(let e of t){let t=this.nsps[e];if(t.active){eS("socket %s is still active, skipping close",e);return}}this._close()}_packet(e){eS("writing packet %j",e);let t=this.encoder.encode(e);for(let s=0;se()),this.subs.length=0,this.decoder.destroy()}_close(){eS("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,t){var s;eS("closed due to %s",e),this.cleanup(),null===(s=this.engine)||void 0===s||s.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let e=this;if(this.backoff.attempts>=this._reconnectionAttempts)eS("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let t=this.backoff.duration();eS("will wait %dms before reconnect attempt",t),this._reconnecting=!0;let s=this.setTimeoutFn(()=>{!e.skipReconnect&&(eS("attempting reconnect"),this.emitReserved("reconnect_attempt",e.backoff.attempts),e.skipReconnect||e.open(t=>{t?(eS("reconnect attempt error"),e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",t)):(eS("reconnect success"),e.onreconnect())}))},t);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}}onreconnect(){let e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}let eP=en("socket.io-client"),eO={};function eA(e,t){let s;"object"==typeof e&&(t=e,e=void 0),t=t||{};let r=function(e,t="",s){let r=e;s=s||"undefined"!=typeof location&&location,null==e&&(e=s.protocol+"//"+s.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?s.protocol+e:s.host+e),/^(https?|wss?):\/\//.test(e)||(eo("protocol-less url %s",e),e=void 0!==s?s.protocol+"//"+e:"https://"+e),eo("parse %s",e),r=J(e)),!r.port&&(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";let i=-1!==r.host.indexOf(":"),n=i?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+n+":"+r.port+t,r.href=r.protocol+"://"+n+(s&&s.port===r.port?"":":"+r.port),r}(e,t.path||"/socket.io"),i=r.source,n=r.id,o=r.path,a=eO[n]&&o in eO[n].nsps,l=t.forceNew||t["force new connection"]||!1===t.multiplex||a;return l?(eP("ignoring socket cache for %s",i),s=new eT(i,t)):(eO[n]||(eP("new io instance for %s",i),eO[n]=new eT(i,t)),s=eO[n]),r.query&&!t.query&&(t.query=r.queryKey),s.socket(r.path,t)}Object.assign(eA,{Manager:eT,Socket:ew,io:eA,connect:eA})}};
\ No newline at end of file
diff --git a/client/.next/server/chunks/673.js b/client/.next/server/chunks/673.js
new file mode 100644
index 0000000..3157160
--- /dev/null
+++ b/client/.next/server/chunks/673.js
@@ -0,0 +1 @@
+exports.id=673,exports.ids=[673],exports.modules={177:e=>{e.exports={style:{fontFamily:"'__Inter_f367f3', '__Inter_Fallback_f367f3'",fontStyle:"normal"},className:"__className_f367f3"}},216:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addBasePath",{enumerable:!0,get:function(){return o}});let n=r(1124),a=r(2038);function o(e,t){return(0,a.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,""))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2377:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"callServer",{enumerable:!0,get:function(){return a}});let n=r(3579);async function a(e,t){let r=(0,n.getServerActionDispatcher)();if(!r)throw Error("Invariant: missing action dispatcher.");return new Promise((n,a)=>{r({actionId:e,actionArgs:t,resolve:n,reject:a})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2438:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AppRouterAnnouncer",{enumerable:!0,get:function(){return u}});let n=r(4218),a=r(3638),o="next-route-announcer";function u(e){let{tree:t}=e,[r,u]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=function(){var e;let t=document.getElementsByName(o)[0];if(null==t?void 0:null==(e=t.shadowRoot)?void 0:e.childNodes[0])return t.shadowRoot.childNodes[0];{let e=document.createElement(o);e.style.cssText="position:absolute";let t=document.createElement("div");t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal";let r=e.attachShadow({mode:"open"});return r.appendChild(t),document.body.appendChild(e),t}}();return u(e),()=>{let e=document.getElementsByTagName(o)[0];(null==e?void 0:e.isConnected)&&document.body.removeChild(e)}},[]);let[i,l]=(0,n.useState)(""),s=(0,n.useRef)();return(0,n.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==s.current&&s.current!==e&&l(e),s.current=e},[t]),r?(0,a.createPortal)(i,r):null}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7328:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RSC_HEADER:function(){return r},ACTION:function(){return n},NEXT_ROUTER_STATE_TREE:function(){return a},NEXT_ROUTER_PREFETCH_HEADER:function(){return o},NEXT_URL:function(){return u},RSC_CONTENT_TYPE_HEADER:function(){return i},RSC_VARY_HEADER:function(){return l},FLIGHT_PARAMETERS:function(){return s},NEXT_RSC_UNION_QUERY:function(){return c}});let r="RSC",n="Next-Action",a="Next-Router-State-Tree",o="Next-Router-Prefetch",u="Next-Url",i="text/x-component",l=r+", "+a+", "+o+", "+u,s=[[r],[a],[o]],c="_rsc";("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3579:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getServerActionDispatcher:function(){return P},urlToUrlWithoutFlightMarker:function(){return O},createEmptyCacheNode:function(){return C},default:function(){return N}});let n=r(2212),a=n._(r(4218)),o=r(9236),u=r(2247),i=r(9286),l=r(5075),s=r(6320),c=r(619),d=r(3980),f=r(9415),p=r(216),_=r(2438),g=r(3825),h=r(8281),b=r(6631),v=r(7328),y=r(8128),m=r(8423),S=null,E=null;function P(){return E}let R={};function O(e){let t=new URL(e,location.origin);return t.searchParams.delete(v.NEXT_RSC_UNION_QUERY),t}function T(e){return e.origin!==window.location.origin}function x(e){let{appRouterState:t,sync:r}=e;return(0,a.useInsertionEffect)(()=>{let{tree:e,pushRef:n,canonicalUrl:a}=t,o={__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:e};n.pendingPush&&(0,i.createHrefFromUrl)(new URL(window.location.href))!==a?(n.pendingPush=!1,A&&A(o,"",a)):M&&M(o,"",a),r(t)},[t,r]),null}let C=()=>({status:o.CacheStates.LAZY_INITIALIZED,data:null,subTreeData:null,parallelRoutes:new Map}),A=null,M=null;function j(e){let{buildId:t,initialHead:r,initialTree:n,initialCanonicalUrl:i,children:c,assetPrefix:v}=e,P=(0,a.useMemo)(()=>(0,d.createInitialRouterState)({buildId:t,children:c,initialCanonicalUrl:i,initialTree:n,initialParallelRoutes:S,isServer:!0,location:null,initialHead:r}),[t,c,i,n,r]),[O,j,N]=(0,s.useReducerWithReduxDevtools)(P);(0,a.useEffect)(()=>{S=null},[]);let{canonicalUrl:I}=(0,s.useUnwrapState)(O),{searchParams:w,pathname:D}=(0,a.useMemo)(()=>{let e=new URL(I,"http://n");return{searchParams:e.searchParams,pathname:(0,m.hasBasePath)(e.pathname)?(0,y.removeBasePath)(e.pathname):e.pathname}},[I]),L=(0,a.useCallback)((e,t,r)=>{(0,a.startTransition)(()=>{j({type:u.ACTION_SERVER_PATCH,flightData:t,previousTree:e,overrideCanonicalUrl:r,cache:C(),mutable:{}})})},[j]),U=(0,a.useCallback)((e,t,r)=>{let n=new URL((0,p.addBasePath)(e),location.href);return j({type:u.ACTION_NAVIGATE,url:n,isExternalUrl:T(n),locationSearch:location.search,shouldScroll:null==r||r,navigateType:t,cache:C(),mutable:{}})},[j]);!function(e){let t=(0,a.useCallback)(t=>{(0,a.startTransition)(()=>{e({...t,type:u.ACTION_SERVER_ACTION,mutable:{},cache:C()})})},[e]);E=t}(j);let F=(0,a.useMemo)(()=>{let e={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{if((0,f.isBot)(window.navigator.userAgent))return;let r=new URL((0,p.addBasePath)(e),location.href);T(r)||(0,a.startTransition)(()=>{var e;j({type:u.ACTION_PREFETCH,url:r,kind:null!=(e=null==t?void 0:t.kind)?e:u.PrefetchKind.FULL})})},replace:(e,t)=>{void 0===t&&(t={}),(0,a.startTransition)(()=>{var r;U(e,"replace",null==(r=t.scroll)||r)})},push:(e,t)=>{void 0===t&&(t={}),(0,a.startTransition)(()=>{var r;U(e,"push",null==(r=t.scroll)||r)})},refresh:()=>{(0,a.startTransition)(()=>{j({type:u.ACTION_REFRESH,cache:C(),mutable:{},origin:window.location.origin})})},fastRefresh:()=>{throw Error("fastRefresh can only be used in development mode. Please use refresh instead.")}};return e},[j,U]);(0,a.useEffect)(()=>{window.next&&(window.next.router=F)},[F]),(0,a.useEffect)(()=>{function e(e){var t;e.persisted&&(null==(t=window.history.state)?void 0:t.__PRIVATE_NEXTJS_INTERNALS_TREE)&&j({type:u.ACTION_RESTORE,url:new URL(window.location.href),tree:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE})}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[j]);let{pushRef:H}=(0,s.useUnwrapState)(O);if(H.mpaNavigation){if(R.pendingMpaPath!==I){let e=window.location;H.pendingPush?e.assign(I):e.replace(I),R.pendingMpaPath=I}(0,a.use)((0,b.createInfinitePromise)())}(0,a.useEffect)(()=>{let e=e=>{let{state:t}=e;if(t){if(!t.__NA){window.location.reload();return}(0,a.startTransition)(()=>{j({type:u.ACTION_RESTORE,url:new URL(window.location.href),tree:t.__PRIVATE_NEXTJS_INTERNALS_TREE})})}};return window.addEventListener("popstate",e),()=>{A&&(window.history.pushState=A),M&&(window.history.replaceState=M),window.removeEventListener("popstate",e)}},[j]);let{cache:G,tree:B,nextUrl:V,focusAndScrollRef:k}=(0,s.useUnwrapState)(O),X=(0,a.useMemo)(()=>(0,h.findHeadInCache)(G,B[1]),[G,B]),W=a.default.createElement(g.RedirectBoundary,null,X,G.subTreeData,a.default.createElement(_.AppRouterAnnouncer,{tree:B}));return a.default.createElement(a.default.Fragment,null,a.default.createElement(x,{appRouterState:(0,s.useUnwrapState)(O),sync:N}),a.default.createElement(l.PathnameContext.Provider,{value:D},a.default.createElement(l.SearchParamsContext.Provider,{value:w},a.default.createElement(o.GlobalLayoutRouterContext.Provider,{value:{buildId:t,changeByServerResponse:L,tree:B,focusAndScrollRef:k,nextUrl:V}},a.default.createElement(o.AppRouterContext.Provider,{value:F},a.default.createElement(o.LayoutRouterContext.Provider,{value:{childNodes:G.parallelRoutes,tree:B,url:I}},W))))))}function N(e){let{globalErrorComponent:t,...r}=e;return a.default.createElement(c.ErrorBoundary,{errorComponent:t},a.default.createElement(j,r))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1720:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"bailoutToClientRendering",{enumerable:!0,get:function(){return o}});let n=r(5158),a=r(4749);function o(){let e=a.staticGenerationAsyncStorage.getStore();return null!=e&&!!e.forceStatic||((null==e?void 0:e.isStaticGeneration)&&(0,n.throwWithNoSSR)(),!1)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5523:(e,t,r)=>{"use strict";function n(e){}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"clientHookInServerComponentError",{enumerable:!0,get:function(){return n}}),r(143),r(4218),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},619:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ErrorBoundaryHandler:function(){return l},GlobalError:function(){return s},default:function(){return c},ErrorBoundary:function(){return d}});let n=r(143),a=n._(r(4218)),o=r(7804),u={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},text:{fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"}};function i(e){let{error:t}=e;if("function"==typeof fetch.__nextGetStaticStore){var r;let e=null==(r=fetch.__nextGetStaticStore())?void 0:r.getStore();if((null==e?void 0:e.isRevalidate)||(null==e?void 0:e.isStaticGeneration))throw console.error(t),t}return null}class l extends a.default.Component{static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error?a.default.createElement(a.default.Fragment,null,a.default.createElement(i,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,a.default.createElement(this.props.errorComponent,{error:this.state.error,reset:this.reset})):this.props.children}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}}function s(e){let{error:t}=e,r=null==t?void 0:t.digest;return a.default.createElement("html",{id:"__next_error__"},a.default.createElement("head",null),a.default.createElement("body",null,a.default.createElement(i,{error:t}),a.default.createElement("div",{style:u.error},a.default.createElement("div",null,a.default.createElement("h2",{style:u.text},"Application error: a "+(r?"server":"client")+"-side exception has occurred (see the "+(r?"server logs":"browser console")+" for more information)."),r?a.default.createElement("p",{style:u.text},"Digest: "+r):null))))}let c=s;function d(e){let{errorComponent:t,errorStyles:r,errorScripts:n,children:u}=e,i=(0,o.usePathname)();return t?a.default.createElement(l,{pathname:i,errorComponent:t,errorStyles:r,errorScripts:n},u):a.default.createElement(a.default.Fragment,null,u)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5432:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DYNAMIC_ERROR_CODE:function(){return r},DynamicServerError:function(){return n}});let r="DYNAMIC_SERVER_USAGE";class n extends Error{constructor(e){super("Dynamic server usage: "+e),this.digest=r}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6631:(e,t)=>{"use strict";let r;function n(){return r||(r=new Promise(()=>{})),r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createInfinitePromise",{enumerable:!0,get:function(){return n}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1459:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return S}}),r(143);let n=r(2212),a=n._(r(4218));r(3638);let o=r(9236),u=r(5400),i=r(6631),l=r(619),s=r(765),c=r(5244),d=r(3825),f=r(3456),p=r(2888),_=r(3075),g=["bottom","height","left","right","top","width","x","y"];function h(e,t){let r=e.getBoundingClientRect();return r.top>=0&&r.top<=t}class b extends a.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.props.focusAndScrollRef.apply&&this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,segmentPath:t}=this.props;if(e.apply){if(0!==e.segmentPaths.length&&!e.segmentPaths.some(e=>t.every((t,r)=>(0,s.matchSegment)(t,e[r]))))return;let r=null,n=e.hashFragment;if(n&&(r=function(e){var t;return"top"===e?document.body:null!=(t=document.getElementById(e))?t:document.getElementsByName(e)[0]}(n)),!r&&(r=null),!(r instanceof Element))return;for(;!(r instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let t=e.getBoundingClientRect();return g.every(e=>0===t[e])}(r);){if(null===r.nextElementSibling)return;r=r.nextElementSibling}e.apply=!1,e.hashFragment=null,e.segmentPaths=[],(0,c.handleSmoothScroll)(()=>{if(n){r.scrollIntoView();return}let e=document.documentElement,t=e.clientHeight;!h(r,t)&&(e.scrollTop=0,h(r,t)||r.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,r.focus()}}}}function v(e){let{segmentPath:t,children:r}=e,n=(0,a.useContext)(o.GlobalLayoutRouterContext);if(!n)throw Error("invariant global layout router not mounted");return a.default.createElement(b,{segmentPath:t,focusAndScrollRef:n.focusAndScrollRef},r)}function y(e){let{parallelRouterKey:t,url:r,childNodes:n,initialChildNode:l,segmentPath:c,tree:d,cacheKey:f}=e,p=(0,a.useContext)(o.GlobalLayoutRouterContext);if(!p)throw Error("invariant global layout router not mounted");let{buildId:_,changeByServerResponse:g,tree:h}=p,b=n.get(f);if(null!==l&&(b?b.status===o.CacheStates.LAZY_INITIALIZED&&(b.status=o.CacheStates.READY,b.subTreeData=l):(b={status:o.CacheStates.READY,data:null,subTreeData:l,parallelRoutes:new Map},n.set(f,b))),!b||b.status===o.CacheStates.LAZY_INITIALIZED){let e=function e(t,r){if(t){let[n,a]=t,o=2===t.length;if((0,s.matchSegment)(r[0],n)&&r[1].hasOwnProperty(a)){if(o){let t=e(void 0,r[1][a]);return[r[0],{...r[1],[a]:[t[0],t[1],t[2],"refetch"]}]}return[r[0],{...r[1],[a]:e(t.slice(2),r[1][a])}]}}return r}(["",...c],h);b={status:o.CacheStates.DATA_FETCH,data:(0,u.fetchServerResponse)(new URL(r,location.origin),e,p.nextUrl,_),subTreeData:null,head:b&&b.status===o.CacheStates.LAZY_INITIALIZED?b.head:void 0,parallelRoutes:b&&b.status===o.CacheStates.LAZY_INITIALIZED?b.parallelRoutes:new Map},n.set(f,b)}if(!b)throw Error("Child node should always exist");if(b.subTreeData&&b.data)throw Error("Child node should not have both subTreeData and data");if(b.data){let[e,t]=(0,a.use)(b.data);b.data=null,setTimeout(()=>{(0,a.startTransition)(()=>{g(h,e,t)})}),(0,a.use)((0,i.createInfinitePromise)())}b.subTreeData||(0,a.use)((0,i.createInfinitePromise)());let v=a.default.createElement(o.LayoutRouterContext.Provider,{value:{tree:d[1][t],childNodes:b.parallelRoutes,url:r}},b.subTreeData);return v}function m(e){let{children:t,loading:r,loadingStyles:n,loadingScripts:o,hasLoading:u}=e;return u?a.default.createElement(a.Suspense,{fallback:a.default.createElement(a.default.Fragment,null,n,o,r)},t):a.default.createElement(a.default.Fragment,null,t)}function S(e){let{parallelRouterKey:t,segmentPath:r,initialChildNode:n,childPropSegment:u,error:i,errorStyles:c,errorScripts:g,templateStyles:h,templateScripts:b,loading:S,loadingStyles:E,loadingScripts:P,hasLoading:R,template:O,notFound:T,notFoundStyles:x,styles:C}=e,A=(0,a.useContext)(o.LayoutRouterContext);if(!A)throw Error("invariant expected layout router to be mounted");let{childNodes:M,tree:j,url:N}=A,I=M.get(t);I||(I=new Map,M.set(t,I));let w=j[1][t][0],D=(0,p.getSegmentValue)(w),L=[w];return a.default.createElement(a.default.Fragment,null,C,L.map(e=>{let C=(0,s.matchSegment)(e,u),A=(0,p.getSegmentValue)(e),M=(0,_.createRouterCacheKey)(e);return a.default.createElement(o.TemplateContext.Provider,{key:(0,_.createRouterCacheKey)(e,!0),value:a.default.createElement(v,{segmentPath:r},a.default.createElement(l.ErrorBoundary,{errorComponent:i,errorStyles:c,errorScripts:g},a.default.createElement(m,{hasLoading:R,loading:S,loadingStyles:E,loadingScripts:P},a.default.createElement(f.NotFoundBoundary,{notFound:T,notFoundStyles:x},a.default.createElement(d.RedirectBoundary,null,a.default.createElement(y,{parallelRouterKey:t,url:N,tree:j,childNodes:I,initialChildNode:C?n:null,segmentPath:r,cacheKey:M,isActive:D===A}))))))},h,b,O)}))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},765:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{matchSegment:function(){return a},canSegmentBeOverridden:function(){return o}});let n=r(799),a=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1],o=(e,t)=>{var r;return!Array.isArray(e)&&!!Array.isArray(t)&&(null==(r=(0,n.getSegmentParam)(e))?void 0:r.param)===t[0]};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9686:(e,t)=>{"use strict";function r(e,t){if(e.isStaticGeneration&&e.experimental.ppr){if(!e.postpone)throw Error("Invariant: PPR is enabled but the postpone API is unavailable");e.postponeWasTriggered=!0,e.postpone("This page needs to bail out of prerendering at this point because it used "+t+". React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"maybePostpone",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7804:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ReadonlyURLSearchParams:function(){return p},useSearchParams:function(){return _},usePathname:function(){return g},ServerInsertedHTMLContext:function(){return l.ServerInsertedHTMLContext},useServerInsertedHTML:function(){return l.useServerInsertedHTML},useRouter:function(){return h},useParams:function(){return b},useSelectedLayoutSegments:function(){return v},useSelectedLayoutSegment:function(){return y},redirect:function(){return s.redirect},permanentRedirect:function(){return s.permanentRedirect},RedirectType:function(){return s.RedirectType},notFound:function(){return c.notFound}});let n=r(4218),a=r(9236),o=r(5075),u=r(5523),i=r(2888),l=r(5853),s=r(976),c=r(7265),d=Symbol("internal for urlsearchparams readonly");function f(){return Error("ReadonlyURLSearchParams cannot be modified")}class p{[Symbol.iterator](){return this[d][Symbol.iterator]()}append(){throw f()}delete(){throw f()}set(){throw f()}sort(){throw f()}constructor(e){this[d]=e,this.entries=e.entries.bind(e),this.forEach=e.forEach.bind(e),this.get=e.get.bind(e),this.getAll=e.getAll.bind(e),this.has=e.has.bind(e),this.keys=e.keys.bind(e),this.values=e.values.bind(e),this.toString=e.toString.bind(e),this.size=e.size}}function _(){(0,u.clientHookInServerComponentError)("useSearchParams");let e=(0,n.useContext)(o.SearchParamsContext),t=(0,n.useMemo)(()=>e?new p(e):null,[e]);{let{bailoutToClientRendering:e}=r(1720);e()}return t}function g(){return(0,u.clientHookInServerComponentError)("usePathname"),(0,n.useContext)(o.PathnameContext)}function h(){(0,u.clientHookInServerComponentError)("useRouter");let e=(0,n.useContext)(a.AppRouterContext);if(null===e)throw Error("invariant expected app router to be mounted");return e}function b(){(0,u.clientHookInServerComponentError)("useParams");let e=(0,n.useContext)(a.GlobalLayoutRouterContext),t=(0,n.useContext)(o.PathParamsContext);return(0,n.useMemo)(()=>(null==e?void 0:e.tree)?function e(t,r){void 0===r&&(r={});let n=t[1];for(let t of Object.values(n)){let n=t[0],a=Array.isArray(n),o=a?n[1]:n;if(!o||o.startsWith("__PAGE__"))continue;let u=a&&("c"===n[2]||"oc"===n[2]);u?r[n[0]]=n[1].split("/"):a&&(r[n[0]]=n[1]),r=e(t,r)}return r}(e.tree):t,[null==e?void 0:e.tree,t])}function v(e){void 0===e&&(e="children"),(0,u.clientHookInServerComponentError)("useSelectedLayoutSegments");let{tree:t}=(0,n.useContext)(a.LayoutRouterContext);return function e(t,r,n,a){let o;if(void 0===n&&(n=!0),void 0===a&&(a=[]),n)o=t[1][r];else{var u;let e=t[1];o=null!=(u=e.children)?u:Object.values(e)[0]}if(!o)return a;let l=o[0],s=(0,i.getSegmentValue)(l);return!s||s.startsWith("__PAGE__")?a:(a.push(s),e(o,r,!1,a))}(t,e)}function y(e){void 0===e&&(e="children"),(0,u.clientHookInServerComponentError)("useSelectedLayoutSegment");let t=v(e);return 0===t.length?null:t[0]}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3456:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"NotFoundBoundary",{enumerable:!0,get:function(){return i}});let n=r(143),a=n._(r(4218)),o=r(7804);class u extends a.default.Component{static getDerivedStateFromError(e){if((null==e?void 0:e.digest)==="NEXT_NOT_FOUND")return{notFoundTriggered:!0};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.notFoundTriggered?{notFoundTriggered:!1,previousPathname:e.pathname}:{notFoundTriggered:t.notFoundTriggered,previousPathname:e.pathname}}render(){return this.state.notFoundTriggered?a.default.createElement(a.default.Fragment,null,a.default.createElement("meta",{name:"robots",content:"noindex"}),!1,this.props.notFoundStyles,this.props.notFound):this.props.children}constructor(e){super(e),this.state={notFoundTriggered:!!e.asNotFound,previousPathname:e.pathname}}}function i(e){let{notFound:t,notFoundStyles:r,asNotFound:n,children:i}=e,l=(0,o.usePathname)();return t?a.default.createElement(u,{pathname:l,notFound:t,notFoundStyles:r,asNotFound:n},i):a.default.createElement(a.default.Fragment,null,i)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7265:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{notFound:function(){return n},isNotFoundError:function(){return a}});let r="NEXT_NOT_FOUND";function n(){let e=Error(r);throw e.digest=r,e}function a(e){return(null==e?void 0:e.digest)===r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},527:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PromiseQueue",{enumerable:!0,get:function(){return s}});let n=r(51),a=r(2581);var o=a._("_maxConcurrency"),u=a._("_runningCount"),i=a._("_queue"),l=a._("_processNext");class s{enqueue(e){let t,r;let a=new Promise((e,n)=>{t=e,r=n}),o=async()=>{try{n._(this,u)[u]++;let r=await e();t(r)}catch(e){r(e)}finally{n._(this,u)[u]--,n._(this,l)[l]()}};return n._(this,i)[i].push({promiseFn:a,task:o}),n._(this,l)[l](),a}bump(e){let t=n._(this,i)[i].findIndex(t=>t.promiseFn===e);if(t>-1){let e=n._(this,i)[i].splice(t,1)[0];n._(this,i)[i].unshift(e),n._(this,l)[l](!0)}}constructor(e=5){Object.defineProperty(this,l,{value:c}),Object.defineProperty(this,o,{writable:!0,value:void 0}),Object.defineProperty(this,u,{writable:!0,value:void 0}),Object.defineProperty(this,i,{writable:!0,value:void 0}),n._(this,o)[o]=e,n._(this,u)[u]=0,n._(this,i)[i]=[]}}function c(e){if(void 0===e&&(e=!1),(n._(this,u)[u]0){var t;null==(t=n._(this,i)[i].shift())||t.task()}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3825:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RedirectErrorBoundary:function(){return l},RedirectBoundary:function(){return s}});let n=r(2212),a=n._(r(4218)),o=r(7804),u=r(976);function i(e){let{redirect:t,reset:r,redirectType:n}=e,i=(0,o.useRouter)();return(0,a.useEffect)(()=>{a.default.startTransition(()=>{n===u.RedirectType.push?i.push(t,{}):i.replace(t,{}),r()})},[t,n,r,i]),null}class l extends a.default.Component{static getDerivedStateFromError(e){if((0,u.isRedirectError)(e)){let t=(0,u.getURLFromRedirectError)(e),r=(0,u.getRedirectTypeFromError)(e);return{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?a.default.createElement(i,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}constructor(e){super(e),this.state={redirect:null,redirectType:null}}}function s(e){let{children:t}=e,r=(0,o.useRouter)();return a.default.createElement(l,{router:r},t)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},976:(e,t,r)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RedirectType:function(){return n},getRedirectError:function(){return u},redirect:function(){return i},permanentRedirect:function(){return l},isRedirectError:function(){return s},getURLFromRedirectError:function(){return c},getRedirectTypeFromError:function(){return d}});let a=r(5403),o="NEXT_REDIRECT";function u(e,t,r){void 0===r&&(r=!1);let n=Error(o);n.digest=o+";"+t+";"+e+";"+r;let u=a.requestAsyncStorage.getStore();return u&&(n.mutableCookies=u.mutableCookies),n}function i(e,t){throw void 0===t&&(t="replace"),u(e,t,!1)}function l(e,t){throw void 0===t&&(t="replace"),u(e,t,!0)}function s(e){if("string"!=typeof(null==e?void 0:e.digest))return!1;let[t,r,n,a]=e.digest.split(";",4);return t===o&&("replace"===r||"push"===r)&&"string"==typeof n&&("true"===a||"false"===a)}function c(e){return s(e)?e.digest.split(";",3)[2]:null}function d(e){if(!s(e))throw Error("Not a redirect error");return e.digest.split(";",2)[1]}(function(e){e.push="push",e.replace="replace"})(n||(n={})),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},847:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=r(2212),a=n._(r(4218)),o=r(9236);function u(){let e=(0,a.useContext)(o.TemplateContext);return a.default.createElement(a.default.Fragment,null,e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8994:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"applyFlightData",{enumerable:!0,get:function(){return u}});let n=r(9236),a=r(5601),o=r(6800);function u(e,t,r,u){void 0===u&&(u=!1);let[i,l,s]=r.slice(-3);return null!==l&&(3===r.length?(t.status=n.CacheStates.READY,t.subTreeData=l,(0,a.fillLazyItemsTillLeafWithHead)(t,e,i,s,u)):(t.status=n.CacheStates.READY,t.subTreeData=e.subTreeData,t.parallelRoutes=new Map(e.parallelRoutes),(0,o.fillCacheWithNewSubTreeData)(t,e,r,u)),!0)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1155:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"applyRouterStatePatchToTree",{enumerable:!0,get:function(){return function e(t,r,o){let u;let[i,l,,,s]=r;if(1===t.length){let e=a(r,o);return e}let[c,d]=t;if(!(0,n.matchSegment)(c,i))return null;let f=2===t.length;if(f)u=a(l[d],o);else if(null===(u=e(t.slice(2),l[d],o)))return null;let p=[t[0],{...l,[d]:u}];return s&&(p[4]=!0),p}}});let n=r(765);function a(e,t){let[r,o]=e,[u,i]=t;if("__DEFAULT__"===u&&"__DEFAULT__"!==r)return e;if((0,n.matchSegment)(r,u)){let t={};for(let e in o){let r=void 0!==i[e];r?t[e]=a(o[e],i[e]):t[e]=o[e]}for(let e in i)t[e]||(t[e]=i[e]);let n=[r,t];return e[2]&&(n[2]=e[2]),e[3]&&(n[3]=e[3]),e[4]&&(n[4]=e[4]),n}return t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1705:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{extractPathFromFlightRouterState:function(){return s},computeChangedPath:function(){return c}});let n=r(5513),a=r(1516),o=r(765),u=e=>"/"===e[0]?e.slice(1):e,i=e=>"string"==typeof e?e:e[1];function l(e){return e.reduce((e,t)=>""===(t=u(t))||(0,a.isGroupSegment)(t)?e:e+"/"+t,"")||"/"}function s(e){var t;let r=Array.isArray(e[0])?e[0][1]:e[0];if("__DEFAULT__"===r||n.INTERCEPTION_ROUTE_MARKERS.some(e=>r.startsWith(e)))return;if(r.startsWith("__PAGE__"))return"";let a=[r],o=null!=(t=e[1])?t:{},u=o.children?s(o.children):void 0;if(void 0!==u)a.push(u);else for(let[e,t]of Object.entries(o)){if("children"===e)continue;let r=s(t);void 0!==r&&a.push(r)}return l(a)}function c(e,t){let r=function e(t,r){let[a,u]=t,[l,c]=r,d=i(a),f=i(l);if(n.INTERCEPTION_ROUTE_MARKERS.some(e=>d.startsWith(e)||f.startsWith(e)))return"";if(!(0,o.matchSegment)(a,l)){var p;return null!=(p=s(r))?p:""}for(let t in u)if(c[t]){let r=e(u[t],c[t]);if(null!==r)return i(l)+"/"+r}return null}(e,t);return null==r||"/"===r?r:l(r.split("/"))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9286:(e,t)=>{"use strict";function r(e,t){return void 0===t&&(t=!0),e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createHrefFromUrl",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3980:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createInitialRouterState",{enumerable:!0,get:function(){return i}});let n=r(9236),a=r(9286),o=r(5601),u=r(1705);function i(e){var t;let{buildId:r,initialTree:i,children:l,initialCanonicalUrl:s,initialParallelRoutes:c,isServer:d,location:f,initialHead:p}=e,_={status:n.CacheStates.READY,data:null,subTreeData:l,parallelRoutes:d?new Map:c};return(null===c||0===c.size)&&(0,o.fillLazyItemsTillLeafWithHead)(_,void 0,i,p),{buildId:r,tree:i,cache:_,prefetchCache:new Map,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{apply:!1,onlyHashChange:!1,hashFragment:null,segmentPaths:[]},canonicalUrl:f?(0,a.createHrefFromUrl)(f):s,nextUrl:null!=(t=(0,u.extractPathFromFlightRouterState)(i)||(null==f?void 0:f.pathname))?t:null}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3075:(e,t)=>{"use strict";function r(e,t){return void 0===t&&(t=!1),Array.isArray(e)?(e[0]+"|"+e[1]+"|"+e[2]).toLowerCase():t&&e.startsWith("__PAGE__")?"__PAGE__":e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRouterCacheKey",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5400:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"fetchServerResponse",{enumerable:!0,get:function(){return d}});let n=r(7328),a=r(3579),o=r(2377),u=r(2247),i=r(2948),l=r(8130),{createFromFetch:s}=r(9530);function c(e){return[(0,a.urlToUrlWithoutFlightMarker)(e).toString(),void 0]}async function d(e,t,r,d,f){let p={[n.RSC_HEADER]:"1",[n.NEXT_ROUTER_STATE_TREE]:encodeURIComponent(JSON.stringify(t))};f===u.PrefetchKind.AUTO&&(p[n.NEXT_ROUTER_PREFETCH_HEADER]="1"),r&&(p[n.NEXT_URL]=r);let _=(0,i.hexHash)([p[n.NEXT_ROUTER_PREFETCH_HEADER]||"0",p[n.NEXT_ROUTER_STATE_TREE],p[n.NEXT_URL]].join(","));try{let t=new URL(e);t.searchParams.set(n.NEXT_RSC_UNION_QUERY,_);let r=await fetch(t,{credentials:"same-origin",headers:p}),u=(0,a.urlToUrlWithoutFlightMarker)(r.url),i=r.redirected?u:void 0,f=r.headers.get("content-type")||"",g=!!r.headers.get(l.NEXT_DID_POSTPONE_HEADER);if(f!==n.RSC_CONTENT_TYPE_HEADER||!r.ok)return e.hash&&(u.hash=e.hash),c(u.toString());let[h,b]=await s(Promise.resolve(r),{callServer:o.callServer});if(d!==h)return c(r.url);return[b,i,g]}catch(t){return console.error("Failed to fetch RSC payload for "+e+". Falling back to browser navigation.",t),[e.toString(),void 0]}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5474:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"fillCacheWithDataProperty",{enumerable:!0,get:function(){return function e(t,r,o,u){let i=o.length<=2,[l,s]=o,c=(0,a.createRouterCacheKey)(s),d=r.parallelRoutes.get(l),f=t.parallelRoutes.get(l);f&&f!==d||(f=new Map(d),t.parallelRoutes.set(l,f));let p=null==d?void 0:d.get(c),_=f.get(c);if(i){_&&_.data&&_!==p||f.set(c,{status:n.CacheStates.DATA_FETCH,data:u(),subTreeData:null,parallelRoutes:new Map});return}if(!_||!p){_||f.set(c,{status:n.CacheStates.DATA_FETCH,data:u(),subTreeData:null,parallelRoutes:new Map});return}return _===p&&(_={status:_.status,data:_.data,subTreeData:_.subTreeData,parallelRoutes:new Map(_.parallelRoutes)},f.set(c,_)),e(_,p,o.slice(2),u)}}});let n=r(9236),a=r(3075);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6800:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"fillCacheWithNewSubTreeData",{enumerable:!0,get:function(){return function e(t,r,i,l){let s=i.length<=5,[c,d]=i,f=(0,u.createRouterCacheKey)(d),p=r.parallelRoutes.get(c);if(!p)return;let _=t.parallelRoutes.get(c);_&&_!==p||(_=new Map(p),t.parallelRoutes.set(c,_));let g=p.get(f),h=_.get(f);if(s){h&&h.data&&h!==g||(h={status:n.CacheStates.READY,data:null,subTreeData:i[3],parallelRoutes:g?new Map(g.parallelRoutes):new Map},g&&(0,a.invalidateCacheByRouterState)(h,g,i[2]),(0,o.fillLazyItemsTillLeafWithHead)(h,g,i[2],i[4],l),_.set(f,h));return}h&&g&&(h===g&&(h={status:h.status,data:h.data,subTreeData:h.subTreeData,parallelRoutes:new Map(h.parallelRoutes)},_.set(f,h)),e(h,g,i.slice(2),l))}}});let n=r(9236),a=r(8131),o=r(5601),u=r(3075);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5601:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"fillLazyItemsTillLeafWithHead",{enumerable:!0,get:function(){return function e(t,r,o,u,i){let l=0===Object.keys(o[1]).length;if(l){t.head=u;return}for(let l in o[1]){let s=o[1][l],c=s[0],d=(0,a.createRouterCacheKey)(c);if(r){let a=r.parallelRoutes.get(l);if(a){let r=new Map(a),o=r.get(d),c=i&&o?{status:o.status,data:o.data,subTreeData:o.subTreeData,parallelRoutes:new Map(o.parallelRoutes)}:{status:n.CacheStates.LAZY_INITIALIZED,data:null,subTreeData:null,parallelRoutes:new Map(null==o?void 0:o.parallelRoutes)};r.set(d,c),e(c,o,s,u,i),t.parallelRoutes.set(l,r);continue}}let f={status:n.CacheStates.LAZY_INITIALIZED,data:null,subTreeData:null,parallelRoutes:new Map},p=t.parallelRoutes.get(l);p?p.set(d,f):t.parallelRoutes.set(l,new Map([[d,f]])),e(f,void 0,s,u,i)}}}});let n=r(9236),a=r(3075);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3933:(e,t)=>{"use strict";var r;function n(e){let{kind:t,prefetchTime:r,lastUsedTime:n}=e;return Date.now()<(null!=n?n:r)+3e4?n?"reusable":"fresh":"auto"===t&&Date.now(){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleMutable",{enumerable:!0,get:function(){return o}});let n=r(1705);function a(e){return void 0!==e}function o(e,t){var r,o,u,i;let l=null==(o=t.shouldScroll)||o;return{buildId:e.buildId,canonicalUrl:a(t.canonicalUrl)?t.canonicalUrl===e.canonicalUrl?e.canonicalUrl:t.canonicalUrl:e.canonicalUrl,pushRef:{pendingPush:a(t.pendingPush)?t.pendingPush:e.pushRef.pendingPush,mpaNavigation:a(t.mpaNavigation)?t.mpaNavigation:e.pushRef.mpaNavigation,preserveCustomHistoryState:a(t.preserveCustomHistoryState)?t.preserveCustomHistoryState:e.pushRef.preserveCustomHistoryState},focusAndScrollRef:{apply:!!l&&(!!a(null==t?void 0:t.scrollableSegments)||e.focusAndScrollRef.apply),onlyHashChange:!!t.hashFragment&&e.canonicalUrl.split("#",1)[0]===(null==(r=t.canonicalUrl)?void 0:r.split("#",1)[0]),hashFragment:l?t.hashFragment&&""!==t.hashFragment?decodeURIComponent(t.hashFragment.slice(1)):e.focusAndScrollRef.hashFragment:null,segmentPaths:l?null!=(u=null==t?void 0:t.scrollableSegments)?u:e.focusAndScrollRef.segmentPaths:[]},cache:t.cache?t.cache:e.cache,prefetchCache:t.prefetchCache?t.prefetchCache:e.prefetchCache,tree:a(t.patchedTree)?t.patchedTree:e.tree,nextUrl:a(t.patchedTree)?null!=(i=(0,n.computeChangedPath)(e.tree,t.patchedTree))?i:e.canonicalUrl:e.nextUrl}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6241:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"invalidateCacheBelowFlightSegmentPath",{enumerable:!0,get:function(){return function e(t,r,a){let o=a.length<=2,[u,i]=a,l=(0,n.createRouterCacheKey)(i),s=r.parallelRoutes.get(u);if(!s)return;let c=t.parallelRoutes.get(u);if(c&&c!==s||(c=new Map(s),t.parallelRoutes.set(u,c)),o){c.delete(l);return}let d=s.get(l),f=c.get(l);f&&d&&(f===d&&(f={status:f.status,data:f.data,subTreeData:f.subTreeData,parallelRoutes:new Map(f.parallelRoutes)},c.set(l,f)),e(f,d,a.slice(2)))}}});let n=r(3075);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8131:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"invalidateCacheByRouterState",{enumerable:!0,get:function(){return a}});let n=r(3075);function a(e,t,r){for(let a in r[1]){let o=r[1][a][0],u=(0,n.createRouterCacheKey)(o),i=t.parallelRoutes.get(a);if(i){let t=new Map(i);t.delete(u),e.parallelRoutes.set(a,t)}}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3534:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,r){let n=t[0],a=r[0];if(Array.isArray(n)&&Array.isArray(a)){if(n[0]!==a[0]||n[2]!==a[2])return!0}else if(n!==a)return!0;if(t[4])return!r[4];if(r[4])return!0;let o=Object.values(t[1])[0],u=Object.values(r[1])[0];return!o||!u||e(o,u)}}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2877:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"fastRefreshReducer",{enumerable:!0,get:function(){return n}}),r(5400),r(9286),r(1155),r(3534),r(8024),r(8974),r(8994);let n=function(e,t){return e};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8281:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"findHeadInCache",{enumerable:!0,get:function(){return function e(t,r){let a=0===Object.keys(r).length;if(a)return t.head;for(let a in r){let[o,u]=r[a],i=t.parallelRoutes.get(a);if(!i)continue;let l=(0,n.createRouterCacheKey)(o),s=i.get(l);if(!s)continue;let c=e(s,u);if(c)return c}}}});let n=r(3075);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2888:(e,t)=>{"use strict";function r(e){return Array.isArray(e)?e[1]:e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getSegmentValue",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8024:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{handleExternalUrl:function(){return b},navigateReducer:function(){return y}});let n=r(9236),a=r(5400),o=r(9286),u=r(6241),i=r(5474),l=r(1155),s=r(1151),c=r(3534),d=r(2247),f=r(8974),p=r(8994),_=r(3933),g=r(3732),h=r(7003);function b(e,t,r,n){return t.previousTree=e.tree,t.mpaNavigation=!0,t.canonicalUrl=r,t.pendingPush=n,t.scrollableSegments=void 0,(0,f.handleMutable)(e,t)}function v(e){let t=[],[r,n]=e;if(0===Object.keys(n).length)return[[r]];for(let[e,a]of Object.entries(n))for(let n of v(a))""===r?t.push([e,...n]):t.push([r,e,...n]);return t}function y(e,t){let{url:r,isExternalUrl:y,navigateType:m,cache:S,mutable:E,shouldScroll:P}=t,{hash:R}=r,O=(0,o.createHrefFromUrl)(r),T="push"===m;(0,g.prunePrefetchCache)(e.prefetchCache);let x=JSON.stringify(E.previousTree)===JSON.stringify(e.tree);if(x)return(0,f.handleMutable)(e,E);if(E.preserveCustomHistoryState=!1,y)return b(e,E,r.toString(),T);let C=e.prefetchCache.get((0,o.createHrefFromUrl)(r,!1));if(!C){let t=(0,a.fetchServerResponse)(r,e.tree,e.nextUrl,e.buildId,void 0),n={data:t,kind:d.PrefetchKind.TEMPORARY,prefetchTime:Date.now(),treeAtTimeOfPrefetch:e.tree,lastUsedTime:null};e.prefetchCache.set((0,o.createHrefFromUrl)(r,!1),n),C=n}let A=(0,_.getPrefetchEntryCacheStatus)(C),{treeAtTimeOfPrefetch:M,data:j}=C;return h.prefetchQueue.bump(j),j.then(t=>{let[d,g,h]=t;if(C&&!C.lastUsedTime&&(C.lastUsedTime=Date.now()),"string"==typeof d)return b(e,E,d,T);let y=e.tree,m=e.cache,x=[];for(let t of d){let o=t.slice(0,-4),d=t.slice(-3)[0],f=["",...o],g=(0,l.applyRouterStatePatchToTree)(f,y,d);if(null===g&&(g=(0,l.applyRouterStatePatchToTree)(f,M,d)),null!==g){if((0,c.isNavigatingToNewRootLayout)(y,g))return b(e,E,O,T);let l=(0,p.applyFlightData)(m,S,t,(null==C?void 0:C.kind)==="auto"&&A===_.PrefetchCacheEntryStatus.reusable);(!l&&A===_.PrefetchCacheEntryStatus.stale||h)&&(l=function(e,t,r,a,o){let u=!1;e.status=n.CacheStates.READY,e.subTreeData=t.subTreeData,e.parallelRoutes=new Map(t.parallelRoutes);let l=v(a).map(e=>[...r,...e]);for(let r of l)(0,i.fillCacheWithDataProperty)(e,t,r,o),u=!0;return u}(S,m,o,d,()=>(0,a.fetchServerResponse)(r,y,e.nextUrl,e.buildId)));let P=(0,s.shouldHardNavigate)(f,y);for(let e of(P?(S.status=n.CacheStates.READY,S.subTreeData=m.subTreeData,(0,u.invalidateCacheBelowFlightSegmentPath)(S,m,o),E.cache=S):l&&(E.cache=S),m=S,y=g,v(d))){let t=[...o,...e];"__DEFAULT__"!==t[t.length-1]&&x.push(t)}}}return E.previousTree=e.tree,E.patchedTree=y,E.canonicalUrl=g?(0,o.createHrefFromUrl)(g):O,E.pendingPush=T,E.scrollableSegments=x,E.hashFragment=R,E.shouldScroll=P,(0,f.handleMutable)(e,E)},()=>e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7003:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{prefetchQueue:function(){return s},prefetchReducer:function(){return c}});let n=r(9286),a=r(5400),o=r(2247),u=r(3732),i=r(7328),l=r(527),s=new l.PromiseQueue(5);function c(e,t){(0,u.prunePrefetchCache)(e.prefetchCache);let{url:r}=t;r.searchParams.delete(i.NEXT_RSC_UNION_QUERY);let l=(0,n.createHrefFromUrl)(r,!1),c=e.prefetchCache.get(l);if(c&&(c.kind===o.PrefetchKind.TEMPORARY&&e.prefetchCache.set(l,{...c,kind:t.kind}),!(c.kind===o.PrefetchKind.AUTO&&t.kind===o.PrefetchKind.FULL)))return e;let d=s.enqueue(()=>(0,a.fetchServerResponse)(r,e.tree,e.nextUrl,e.buildId,t.kind));return e.prefetchCache.set(l,{treeAtTimeOfPrefetch:e.tree,data:d,kind:t.kind,prefetchTime:Date.now(),lastUsedTime:null}),e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3732:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"prunePrefetchCache",{enumerable:!0,get:function(){return a}});let n=r(3933);function a(e){for(let[t,r]of e)(0,n.getPrefetchEntryCacheStatus)(r)===n.PrefetchCacheEntryStatus.expired&&e.delete(t)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8929:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"refreshReducer",{enumerable:!0,get:function(){return d}});let n=r(5400),a=r(9286),o=r(1155),u=r(3534),i=r(8024),l=r(8974),s=r(9236),c=r(5601);function d(e,t){let{cache:r,mutable:d,origin:f}=t,p=e.canonicalUrl,_=e.tree,g=JSON.stringify(d.previousTree)===JSON.stringify(_);return g?(0,l.handleMutable)(e,d):(d.preserveCustomHistoryState=!1,r.data||(r.data=(0,n.fetchServerResponse)(new URL(p,f),[_[0],_[1],_[2],"refetch"],e.nextUrl,e.buildId)),r.data.then(t=>{let[n,f]=t;if("string"==typeof n)return(0,i.handleExternalUrl)(e,d,n,e.pushRef.pendingPush);for(let t of(r.data=null,n)){if(3!==t.length)return console.log("REFRESH FAILED"),e;let[n]=t,l=(0,o.applyRouterStatePatchToTree)([""],_,n);if(null===l)throw Error("SEGMENT MISMATCH");if((0,u.isNavigatingToNewRootLayout)(_,l))return(0,i.handleExternalUrl)(e,d,p,e.pushRef.pendingPush);let g=f?(0,a.createHrefFromUrl)(f):void 0;f&&(d.canonicalUrl=g);let[h,b]=t.slice(-2);null!==h&&(r.status=s.CacheStates.READY,r.subTreeData=h,(0,c.fillLazyItemsTillLeafWithHead)(r,void 0,n,b),d.cache=r,d.prefetchCache=new Map),d.previousTree=_,d.patchedTree=l,d.canonicalUrl=p,_=l}return(0,l.handleMutable)(e,d)},()=>e))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8333:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"restoreReducer",{enumerable:!0,get:function(){return a}});let n=r(9286);function a(e,t){let{url:r,tree:a}=t,o=(0,n.createHrefFromUrl)(r);return{buildId:e.buildId,canonicalUrl:o,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:e.cache,prefetchCache:e.prefetchCache,tree:a,nextUrl:r.pathname}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7023:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"serverActionReducer",{enumerable:!0,get:function(){return h}});let n=r(2377),a=r(7328),o=r(216),u=r(9286),i=r(8024),l=r(1155),s=r(3534),c=r(9236),d=r(8974),f=r(5601),{createFromFetch:p,encodeReply:_}=r(9530);async function g(e,t){let r,{actionId:u,actionArgs:i}=t,l=await _(i),s=await fetch("",{method:"POST",headers:{Accept:a.RSC_CONTENT_TYPE_HEADER,[a.ACTION]:u,[a.NEXT_ROUTER_STATE_TREE]:encodeURIComponent(JSON.stringify(e.tree)),...e.nextUrl?{[a.NEXT_URL]:e.nextUrl}:{}},body:l}),c=s.headers.get("x-action-redirect");try{let e=JSON.parse(s.headers.get("x-action-revalidated")||"[[],0,0]");r={paths:e[0]||[],tag:!!e[1],cookie:e[2]}}catch(e){r={paths:[],tag:!1,cookie:!1}}let d=c?new URL((0,o.addBasePath)(c),new URL(e.canonicalUrl,window.location.href)):void 0;if(s.headers.get("content-type")===a.RSC_CONTENT_TYPE_HEADER){let e=await p(Promise.resolve(s),{callServer:n.callServer});if(c){let[,t]=null!=e?e:[];return{actionFlightData:t,redirectLocation:d,revalidatedParts:r}}let[t,[,a]]=null!=e?e:[];return{actionResult:t,actionFlightData:a,redirectLocation:d,revalidatedParts:r}}return{redirectLocation:d,revalidatedParts:r}}function h(e,t){let{mutable:r,cache:n,resolve:a,reject:o}=t,p=e.canonicalUrl,_=e.tree,h=JSON.stringify(r.previousTree)===JSON.stringify(_);return h?(0,d.handleMutable)(e,r):(r.preserveCustomHistoryState=!1,r.inFlightServerAction=g(e,t),r.inFlightServerAction.then(t=>{let{actionResult:o,actionFlightData:g,redirectLocation:h}=t;if(h&&(e.pushRef.pendingPush=!0,r.pendingPush=!0),r.previousTree=e.tree,!g)return(r.actionResultResolved||(a(o),r.actionResultResolved=!0),h)?(0,i.handleExternalUrl)(e,r,h.href,e.pushRef.pendingPush):e;if("string"==typeof g)return(0,i.handleExternalUrl)(e,r,g,e.pushRef.pendingPush);for(let t of(r.inFlightServerAction=null,g)){if(3!==t.length)return console.log("SERVER ACTION APPLY FAILED"),e;let[a]=t,o=(0,l.applyRouterStatePatchToTree)([""],_,a);if(null===o)throw Error("SEGMENT MISMATCH");if((0,s.isNavigatingToNewRootLayout)(_,o))return(0,i.handleExternalUrl)(e,r,p,e.pushRef.pendingPush);let[u,d]=t.slice(-2);null!==u&&(n.status=c.CacheStates.READY,n.subTreeData=u,(0,f.fillLazyItemsTillLeafWithHead)(n,void 0,a,d),r.cache=n,r.prefetchCache=new Map),r.previousTree=_,r.patchedTree=o,r.canonicalUrl=p,_=o}if(h){let e=(0,u.createHrefFromUrl)(h,!1);r.canonicalUrl=e}return r.actionResultResolved||(a(o),r.actionResultResolved=!0),(0,d.handleMutable)(e,r)},t=>{if("rejected"===t.status)return r.actionResultResolved||(o(t.reason),r.actionResultResolved=!0),e;throw t}))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},507:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"serverPatchReducer",{enumerable:!0,get:function(){return s}});let n=r(9286),a=r(1155),o=r(3534),u=r(8024),i=r(8994),l=r(8974);function s(e,t){let{flightData:r,previousTree:s,overrideCanonicalUrl:c,cache:d,mutable:f}=t,p=JSON.stringify(s)===JSON.stringify(e.tree);if(!p)return console.log("TREE MISMATCH"),e;if(f.previousTree)return(0,l.handleMutable)(e,f);if(f.preserveCustomHistoryState=!1,"string"==typeof r)return(0,u.handleExternalUrl)(e,f,r,e.pushRef.pendingPush);let _=e.tree,g=e.cache;for(let t of r){let r=t.slice(0,-4),[l]=t.slice(-3,-2),s=(0,a.applyRouterStatePatchToTree)(["",...r],_,l);if(null===s)throw Error("SEGMENT MISMATCH");if((0,o.isNavigatingToNewRootLayout)(_,s))return(0,u.handleExternalUrl)(e,f,e.canonicalUrl,e.pushRef.pendingPush);let p=c?(0,n.createHrefFromUrl)(c):void 0;p&&(f.canonicalUrl=p),(0,i.applyFlightData)(g,d,t),f.previousTree=_,f.patchedTree=s,f.cache=d,g=d,_=s}return(0,l.handleMutable)(e,f)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2247:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{PrefetchKind:function(){return r},ACTION_REFRESH:function(){return n},ACTION_NAVIGATE:function(){return a},ACTION_RESTORE:function(){return o},ACTION_SERVER_PATCH:function(){return u},ACTION_PREFETCH:function(){return i},ACTION_FAST_REFRESH:function(){return l},ACTION_SERVER_ACTION:function(){return s},isThenable:function(){return c}});let n="refresh",a="navigate",o="restore",u="server-patch",i="prefetch",l="fast-refresh",s="server-action";function c(e){return e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then}(function(e){e.AUTO="auto",e.FULL="full",e.TEMPORARY="temporary"})(r||(r={})),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9474:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"reducer",{enumerable:!0,get:function(){return n}}),r(2247),r(8024),r(507),r(8333),r(8929),r(7003),r(2877),r(7023);let n=function(e,t){return e};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1151:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"shouldHardNavigate",{enumerable:!0,get:function(){return function e(t,r){let[a,o]=r,[u,i]=t;if(!(0,n.matchSegment)(u,a))return!!Array.isArray(u);let l=t.length<=2;return!l&&e(t.slice(2),o[i])}}});let n=r(765);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5318:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createSearchParamsBailoutProxy",{enumerable:!0,get:function(){return a}});let n=r(8608);function a(){return new Proxy({},{get(e,t){"string"==typeof t&&(0,n.staticGenerationBailout)("searchParams."+t)}})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8608:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"staticGenerationBailout",{enumerable:!0,get:function(){return l}});let n=r(5432),a=r(9686),o=r(4749);class u extends Error{constructor(...e){super(...e),this.code="NEXT_STATIC_GEN_BAILOUT"}}function i(e,t){let{dynamic:r,link:n}=t||{};return"Page"+(r?' with `dynamic = "'+r+'"`':"")+" couldn't be rendered statically because it used `"+e+"`."+(n?" See more info here: "+n:"")}let l=(e,t)=>{let r=o.staticGenerationAsyncStorage.getStore();if(!r)return!1;if(r.forceStatic)return!0;if(r.dynamicShouldError){var l;throw new u(i(e,{...t,dynamic:null!=(l=null==t?void 0:t.dynamic)?l:"error"}))}let s=i(e,{...t,link:"https://nextjs.org/docs/messages/dynamic-server-error"});if((0,a.maybePostpone)(r,e),r.revalidate=0,(null==t?void 0:t.dynamic)||(r.staticPrefetchBailout=!0),r.isStaticGeneration){let t=new n.DynamicServerError(s);throw r.dynamicUsageDescription=e,r.dynamicUsageStack=t.stack,t}return!1};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7303:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=r(143),a=n._(r(4218)),o=r(5318);function u(e){let{Component:t,propsForComponent:r,isStaticGeneration:n}=e;if(n){let e=(0,o.createSearchParamsBailoutProxy)();return a.default.createElement(t,{searchParams:e,...r})}return a.default.createElement(t,r)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6320:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{useUnwrapState:function(){return i},useReducerWithReduxDevtools:function(){return l}});let n=r(2212),a=n._(r(4218)),o=r(2247);function u(e){if(e instanceof Map){let t={};for(let[r,n]of e.entries()){if("function"==typeof n){t[r]="fn()";continue}if("object"==typeof n&&null!==n){if(n.$$typeof){t[r]=n.$$typeof.toString();continue}if(n._bundlerConfig){t[r]="FlightData";continue}}t[r]=u(n)}return t}if("object"==typeof e&&null!==e){let t={};for(let r in e){let n=e[r];if("function"==typeof n){t[r]="fn()";continue}if("object"==typeof n&&null!==n){if(n.$$typeof){t[r]=n.$$typeof.toString();continue}if(n.hasOwnProperty("_bundlerConfig")){t[r]="FlightData";continue}}t[r]=u(n)}return t}return Array.isArray(e)?e.map(u):e}function i(e){if((0,o.isThenable)(e)){let t=(0,a.use)(e);return t}return e}r(7485);let l=function(e){return[e,()=>{},()=>{}]};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8423:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hasBasePath",{enumerable:!0,get:function(){return a}});let n=r(8869);function a(e){return(0,n.pathHasPrefix)(e,"")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2038:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return o}});let n=r(4538),a=r(1242),o=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:o}=(0,a.parsePath)(e);return""+(0,n.removeTrailingSlash)(t)+r+o};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8128:(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeBasePath",{enumerable:!0,get:function(){return n}}),r(8423),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8130:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{NEXT_QUERY_PARAM_PREFIX:function(){return r},PRERENDER_REVALIDATE_HEADER:function(){return n},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return a},NEXT_DID_POSTPONE_HEADER:function(){return o},RSC_PREFETCH_SUFFIX:function(){return u},RSC_SUFFIX:function(){return i},NEXT_DATA_SUFFIX:function(){return l},NEXT_META_SUFFIX:function(){return s},NEXT_BODY_SUFFIX:function(){return c},NEXT_CACHE_TAGS_HEADER:function(){return d},NEXT_CACHE_SOFT_TAGS_HEADER:function(){return f},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return p},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return _},NEXT_CACHE_TAG_MAX_LENGTH:function(){return g},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return h},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return b},CACHE_ONE_YEAR:function(){return v},MIDDLEWARE_FILENAME:function(){return y},MIDDLEWARE_LOCATION_REGEXP:function(){return m},INSTRUMENTATION_HOOK_FILENAME:function(){return S},PAGES_DIR_ALIAS:function(){return E},DOT_NEXT_ALIAS:function(){return P},ROOT_DIR_ALIAS:function(){return R},APP_DIR_ALIAS:function(){return O},RSC_MOD_REF_PROXY_ALIAS:function(){return T},RSC_ACTION_VALIDATE_ALIAS:function(){return x},RSC_ACTION_PROXY_ALIAS:function(){return C},RSC_ACTION_ENCRYPTION_ALIAS:function(){return A},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return M},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return j},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return N},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return I},SERVER_PROPS_SSG_CONFLICT:function(){return w},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return D},SERVER_PROPS_EXPORT_ERROR:function(){return L},GSP_NO_RETURNED_VALUE:function(){return U},GSSP_NO_RETURNED_VALUE:function(){return F},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return H},GSSP_COMPONENT_MEMBER_ERROR:function(){return G},NON_STANDARD_NODE_ENV:function(){return B},SSG_FALLBACK_EXPORT_ERROR:function(){return V},ESLINT_DEFAULT_DIRS:function(){return k},ESLINT_PROMPT_VALUES:function(){return X},SERVER_RUNTIME:function(){return W},WEBPACK_LAYERS:function(){return $},WEBPACK_RESOURCE_QUERIES:function(){return K}});let r="nxtP",n="x-prerender-revalidate",a="x-prerender-revalidate-if-generated",o="x-nextjs-postponed",u=".prefetch.rsc",i=".rsc",l=".json",s=".meta",c=".body",d="x-next-cache-tags",f="x-next-cache-soft-tags",p="x-next-revalidated-tags",_="x-next-revalidate-tag-token",g=256,h=1024,b="_N_T_",v=31536e3,y="middleware",m=`(?:src/)?${y}`,S="instrumentation",E="private-next-pages",P="private-dot-next",R="private-next-root-dir",O="private-next-app-dir",T="private-next-rsc-mod-ref-proxy",x="private-next-rsc-action-validate",C="private-next-rsc-action-proxy",A="private-next-rsc-action-encryption",M="private-next-rsc-action-client-wrapper",j="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",N="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",I="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",w="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",D="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",L="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",U="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",F="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",H="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",G="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",B='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',V="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",k=["app","pages","components","lib","src"],X=[{title:"Strict",recommended:!0,config:{extends:"next/core-web-vitals"}},{title:"Base",config:{extends:"next"}},{title:"Cancel",config:null}],W={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},Y={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"},$={...Y,GROUP:{server:[Y.reactServerComponents,Y.actionBrowser,Y.appMetadataRoute,Y.appRouteHandler],nonClientServerTarget:[Y.middleware,Y.api],app:[Y.reactServerComponents,Y.actionBrowser,Y.appMetadataRoute,Y.appRouteHandler,Y.serverSideRendering,Y.appPagesBrowser]}},K={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},799:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getSegmentParam",{enumerable:!0,get:function(){return a}});let n=r(5513);function a(e){let t=n.INTERCEPTION_ROUTE_MARKERS.find(t=>e.startsWith(t));return(t&&(e=e.slice(t.length)),e.startsWith("[[...")&&e.endsWith("]]"))?{type:"optional-catchall",param:e.slice(5,-2)}:e.startsWith("[...")&&e.endsWith("]")?{type:"catchall",param:e.slice(4,-1)}:e.startsWith("[")&&e.endsWith("]")?{type:"dynamic",param:e.slice(1,-1)}:null}},5513:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{INTERCEPTION_ROUTE_MARKERS:function(){return a},isInterceptionRouteAppPath:function(){return o},extractInterceptionRouteInformation:function(){return u}});let n=r(1356),a=["(..)(..)","(.)","(..)","(...)"];function o(e){return void 0!==e.split("/").find(e=>a.find(t=>e.startsWith(t)))}function u(e){let t,r,o;for(let n of e.split("/"))if(r=a.find(e=>n.startsWith(e))){[t,o]=e.split(r,2);break}if(!t||!r||!o)throw Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`);switch(t=(0,n.normalizeAppPath)(t),r){case"(.)":o="/"===t?`/${o}`:t+"/"+o;break;case"(..)":if("/"===t)throw Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`);o=t.split("/").slice(0,-1).concat(o).join("/");break;case"(...)":o="/"+o;break;case"(..)(..)":let u=t.split("/");if(u.length<=2)throw Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`);o=u.slice(0,-2).concat(o).join("/");break;default:throw Error("Invariant: unexpected marker")}return{interceptingRoute:t,interceptedRoute:o}}},2337:(e,t,r)=>{"use strict";e.exports=r(399)},9236:(e,t,r)=>{"use strict";e.exports=r(2337).vendored.contexts.AppRouterContext},5075:(e,t,r)=>{"use strict";e.exports=r(2337).vendored.contexts.HooksClientContext},5853:(e,t,r)=>{"use strict";e.exports=r(2337).vendored.contexts.ServerInsertedHtml},3638:(e,t,r)=>{"use strict";e.exports=r(2337).vendored["react-ssr"].ReactDOM},9530:(e,t,r)=>{"use strict";e.exports=r(2337).vendored["react-ssr"].ReactServerDOMWebpackClientEdge},4218:(e,t,r)=>{"use strict";e.exports=r(2337).vendored["react-ssr"].React},2948:(e,t)=>{"use strict";function r(e){let t=5381;for(let r=0;r>>0}function n(e){return r(e).toString(36).slice(0,5)}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{djb2Hash:function(){return r},hexHash:function(){return n}})},5158:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{NEXT_DYNAMIC_NO_SSR_CODE:function(){return r},throwWithNoSSR:function(){return n}});let r="NEXT_DYNAMIC_NO_SSR_CODE";function n(){let e=Error(r);throw e.digest=r,e}},8755:(e,t)=>{"use strict";function r(e){return e.startsWith("/")?e:"/"+e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ensureLeadingSlash",{enumerable:!0,get:function(){return r}})},7485:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ActionQueueContext:function(){return l},createMutableActionQueue:function(){return d}});let n=r(2212),a=r(2247),o=r(9474),u=n._(r(4218)),i=r(3579),l=u.default.createContext(null);function s(e,t){null!==e.pending&&(e.pending=e.pending.next,null!==e.pending&&c({actionQueue:e,action:e.pending,setState:t}))}async function c(e){let{actionQueue:t,action:r,setState:n}=e,o=t.state;if(!o)throw Error("Invariant: Router state not initialized");t.pending=r,t.last=r;let u=r.payload,l=t.action(o,u);function c(e){if(r.discarded){t.needsRefresh&&null===t.pending&&(t.needsRefresh=!1,t.dispatch({type:a.ACTION_REFRESH,cache:(0,i.createEmptyCacheNode)(),mutable:{},origin:window.location.origin},n));return}t.state=e,t.devToolsInstance&&t.devToolsInstance.send(u,e),s(t,n),r.resolve(e)}(0,a.isThenable)(l)?l.then(c,e=>{s(t,n),r.reject(e)}):c(l)}function d(){let e={state:null,dispatch:(t,r)=>(function(e,t,r){let n;let o=new Promise((e,t)=>{n={resolve:e,reject:t}}),i={payload:t,next:null,resolve:n.resolve,reject:n.reject};(0,u.startTransition)(()=>{r(o)}),null===e.pending?c({actionQueue:e,action:i,setState:r}):t.type===a.ACTION_NAVIGATE?(e.pending.discarded=!0,e.pending.payload.type===a.ACTION_SERVER_ACTION&&(e.needsRefresh=!0),c({actionQueue:e,action:i,setState:r})):(null!==e.last&&(e.last.next=i),e.last=i)})(e,t,r),action:async(e,t)=>{if(null===e)throw Error("Invariant: Router state not initialized");let r=(0,o.reducer)(e,t);return r},pending:null,last:null};return e}},1124:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addPathPrefix",{enumerable:!0,get:function(){return a}});let n=r(1242);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:o}=(0,n.parsePath)(e);return""+t+r+a+o}},1356:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{normalizeAppPath:function(){return o},normalizeRscURL:function(){return u}});let n=r(8755),a=r(1516);function o(e){return(0,n.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,a.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:e+"/"+t,""))}function u(e){return e.replace(/\.rsc($|\?)/,"$1")}},5244:(e,t)=>{"use strict";function r(e,t){if(void 0===t&&(t={}),t.onlyHashChange){e();return}let r=document.documentElement,n=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleSmoothScroll",{enumerable:!0,get:function(){return r}})},9415:(e,t)=>{"use strict";function r(e){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(e)}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isBot",{enumerable:!0,get:function(){return r}})},1242:(e,t)=>{"use strict";function r(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"parsePath",{enumerable:!0,get:function(){return r}})},8869:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"pathHasPrefix",{enumerable:!0,get:function(){return a}});let n=r(1242);function a(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},4538:(e,t)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},1516:(e,t)=>{"use strict";function r(e){return"("===e[0]&&e.endsWith(")")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isGroupSegment",{enumerable:!0,get:function(){return r}})},8775:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{prefixes:function(){return a},bootstrap:function(){return i},wait:function(){return l},error:function(){return s},warn:function(){return c},ready:function(){return d},info:function(){return f},event:function(){return p},trace:function(){return _},warnOnce:function(){return h}});let n=r(6106),a={wait:(0,n.white)((0,n.bold)("○")),error:(0,n.red)((0,n.bold)("⨯")),warn:(0,n.yellow)((0,n.bold)("⚠")),ready:"▲",info:(0,n.white)((0,n.bold)(" ")),event:(0,n.green)((0,n.bold)("✓")),trace:(0,n.magenta)((0,n.bold)("\xbb"))},o={log:"log",warn:"warn",error:"error"};function u(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in o?o[e]:"log",n=a[e];0===t.length?console[r](""):console[r](" "+n,...t)}function i(...e){console.log(" ",...e)}function l(...e){u("wait",...e)}function s(...e){u("error",...e)}function c(...e){u("warn",...e)}function d(...e){u("ready",...e)}function f(...e){u("info",...e)}function p(...e){u("event",...e)}function _(...e){u("trace",...e)}let g=new Set;function h(...e){g.has(e[0])||(g.add(e.join(" ")),c(...e))}},5153:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createProxy",{enumerable:!0,get:function(){return a}});let n=r(5951),a=n.createClientModuleProxy},8730:(e,t,r)=>{"use strict";let{createProxy:n}=r(5153);e.exports=n("/home/marti/Documentos/Gitea/resistencia/client/node_modules/next/dist/client/components/app-router.js")},7284:(e,t,r)=>{"use strict";let{createProxy:n}=r(5153);e.exports=n("/home/marti/Documentos/Gitea/resistencia/client/node_modules/next/dist/client/components/error-boundary.js")},9195:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DYNAMIC_ERROR_CODE:function(){return r},DynamicServerError:function(){return n}});let r="DYNAMIC_SERVER_USAGE";class n extends Error{constructor(e){super("Dynamic server usage: "+e),this.digest=r}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8165:(e,t,r)=>{"use strict";let{createProxy:n}=r(5153);e.exports=n("/home/marti/Documentos/Gitea/resistencia/client/node_modules/next/dist/client/components/layout-router.js")},2236:(e,t)=>{"use strict";function r(e,t){if(e.isStaticGeneration&&e.experimental.ppr){if(!e.postpone)throw Error("Invariant: PPR is enabled but the postpone API is unavailable");e.postponeWasTriggered=!0,e.postpone("This page needs to bail out of prerendering at this point because it used "+t+". React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"maybePostpone",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4009:(e,t,r)=>{"use strict";let{createProxy:n}=r(5153);e.exports=n("/home/marti/Documentos/Gitea/resistencia/client/node_modules/next/dist/client/components/not-found-boundary.js")},9291:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=r(5196),a=n._(r(3542)),o={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};function u(){return a.default.createElement(a.default.Fragment,null,a.default.createElement("title",null,"404: This page could not be found."),a.default.createElement("div",{style:o.error},a.default.createElement("div",null,a.default.createElement("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),a.default.createElement("h1",{className:"next-error-h1",style:o.h1},"404"),a.default.createElement("div",{style:o.desc},a.default.createElement("h2",{style:o.h2},"This page could not be found.")))))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5676:(e,t,r)=>{"use strict";let{createProxy:n}=r(5153);e.exports=n("/home/marti/Documentos/Gitea/resistencia/client/node_modules/next/dist/client/components/render-from-template-context.js")},1263:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createSearchParamsBailoutProxy",{enumerable:!0,get:function(){return a}});let n=r(3657);function a(){return new Proxy({},{get(e,t){"string"==typeof t&&(0,n.staticGenerationBailout)("searchParams."+t)}})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3657:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"staticGenerationBailout",{enumerable:!0,get:function(){return l}});let n=r(9195),a=r(2236),o=r(5869);class u extends Error{constructor(...e){super(...e),this.code="NEXT_STATIC_GEN_BAILOUT"}}function i(e,t){let{dynamic:r,link:n}=t||{};return"Page"+(r?' with `dynamic = "'+r+'"`':"")+" couldn't be rendered statically because it used `"+e+"`."+(n?" See more info here: "+n:"")}let l=(e,t)=>{let r=o.staticGenerationAsyncStorage.getStore();if(!r)return!1;if(r.forceStatic)return!0;if(r.dynamicShouldError){var l;throw new u(i(e,{...t,dynamic:null!=(l=null==t?void 0:t.dynamic)?l:"error"}))}let s=i(e,{...t,link:"https://nextjs.org/docs/messages/dynamic-server-error"});if((0,a.maybePostpone)(r,e),r.revalidate=0,(null==t?void 0:t.dynamic)||(r.staticPrefetchBailout=!0),r.isStaticGeneration){let t=new n.DynamicServerError(s);throw r.dynamicUsageDescription=e,r.dynamicUsageStack=t.stack,t}return!1};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7701:(e,t,r)=>{"use strict";let{createProxy:n}=r(5153);e.exports=n("/home/marti/Documentos/Gitea/resistencia/client/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js")},4389:e=>{"use strict";(()=>{var t={491:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ContextAPI=void 0;let n=r(223),a=r(172),o=r(930),u="context",i=new n.NoopContextManager;class l{constructor(){}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(u,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(u)||i}disable(){this._getContextManager().disable(),(0,a.unregisterGlobal)(u,o.DiagAPI.instance())}}t.ContextAPI=l},930:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagAPI=void 0;let n=r(56),a=r(912),o=r(957),u=r(172);class i{constructor(){function e(e){return function(...t){let r=(0,u.getGlobal)("diag");if(r)return r[e](...t)}}let t=this;t.setLogger=(e,r={logLevel:o.DiagLogLevel.INFO})=>{var n,i,l;if(e===t){let e=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return t.error(null!==(n=e.stack)&&void 0!==n?n:e.message),!1}"number"==typeof r&&(r={logLevel:r});let s=(0,u.getGlobal)("diag"),c=(0,a.createLogLevelDiagLogger)(null!==(i=r.logLevel)&&void 0!==i?i:o.DiagLogLevel.INFO,e);if(s&&!r.suppressOverrideMessage){let e=null!==(l=Error().stack)&&void 0!==l?l:"";s.warn(`Current logger will be overwritten from ${e}`),c.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,u.registerGlobal)("diag",c,t,!0)},t.disable=()=>{(0,u.unregisterGlobal)("diag",t)},t.createComponentLogger=e=>new n.DiagComponentLogger(e),t.verbose=e("verbose"),t.debug=e("debug"),t.info=e("info"),t.warn=e("warn"),t.error=e("error")}static instance(){return this._instance||(this._instance=new i),this._instance}}t.DiagAPI=i},653:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MetricsAPI=void 0;let n=r(660),a=r(172),o=r(930),u="metrics";class i{constructor(){}static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(u,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(u)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(u,o.DiagAPI.instance())}}t.MetricsAPI=i},181:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PropagationAPI=void 0;let n=r(172),a=r(874),o=r(194),u=r(277),i=r(369),l=r(930),s="propagation",c=new a.NoopTextMapPropagator;class d{constructor(){this.createBaggage=i.createBaggage,this.getBaggage=u.getBaggage,this.getActiveBaggage=u.getActiveBaggage,this.setBaggage=u.setBaggage,this.deleteBaggage=u.deleteBaggage}static getInstance(){return this._instance||(this._instance=new d),this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(s,e,l.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(s,l.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(s)||c}}t.PropagationAPI=d},997:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TraceAPI=void 0;let n=r(172),a=r(846),o=r(139),u=r(607),i=r(930),l="trace";class s{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider,this.wrapSpanContext=o.wrapSpanContext,this.isSpanContextValid=o.isSpanContextValid,this.deleteSpan=u.deleteSpan,this.getSpan=u.getSpan,this.getActiveSpan=u.getActiveSpan,this.getSpanContext=u.getSpanContext,this.setSpan=u.setSpan,this.setSpanContext=u.setSpanContext}static getInstance(){return this._instance||(this._instance=new s),this._instance}setGlobalTracerProvider(e){let t=(0,n.registerGlobal)(l,this._proxyTracerProvider,i.DiagAPI.instance());return t&&this._proxyTracerProvider.setDelegate(e),t}getTracerProvider(){return(0,n.getGlobal)(l)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(l,i.DiagAPI.instance()),this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=s},277:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;let n=r(491),a=r(780),o=(0,a.createContextKey)("OpenTelemetry Baggage Key");function u(e){return e.getValue(o)||void 0}t.getBaggage=u,t.getActiveBaggage=function(){return u(n.ContextAPI.getInstance().active())},t.setBaggage=function(e,t){return e.setValue(o,t)},t.deleteBaggage=function(e){return e.deleteValue(o)}},993:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaggageImpl=void 0;class r{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){let t=this._entries.get(e);if(t)return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map(([e,t])=>[e,t])}setEntry(e,t){let n=new r(this._entries);return n._entries.set(e,t),n}removeEntry(e){let t=new r(this._entries);return t._entries.delete(e),t}removeEntries(...e){let t=new r(this._entries);for(let r of e)t._entries.delete(r);return t}clear(){return new r}}t.BaggageImpl=r},830:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.baggageEntryMetadataSymbol=void 0,t.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},369:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.baggageEntryMetadataFromString=t.createBaggage=void 0;let n=r(930),a=r(993),o=r(830),u=n.DiagAPI.instance();t.createBaggage=function(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))},t.baggageEntryMetadataFromString=function(e){return"string"!=typeof e&&(u.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:o.baggageEntryMetadataSymbol,toString:()=>e}}},67:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.context=void 0;let n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopContextManager=void 0;let n=r(780);class a{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=a},780:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ROOT_CONTEXT=t.createContextKey=void 0,t.createContextKey=function(e){return Symbol.for(e)};class r{constructor(e){let t=this;t._currentContext=e?new Map(e):new Map,t.getValue=e=>t._currentContext.get(e),t.setValue=(e,n)=>{let a=new r(t._currentContext);return a._currentContext.set(e,n),a},t.deleteValue=e=>{let n=new r(t._currentContext);return n._currentContext.delete(e),n}}}t.ROOT_CONTEXT=new r},506:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.diag=void 0;let n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagComponentLogger=void 0;let n=r(172);class a{constructor(e){this._namespace=e.namespace||"DiagComponentLogger"}debug(...e){return o("debug",this._namespace,e)}error(...e){return o("error",this._namespace,e)}info(...e){return o("info",this._namespace,e)}warn(...e){return o("warn",this._namespace,e)}verbose(...e){return o("verbose",this._namespace,e)}}function o(e,t,r){let a=(0,n.getGlobal)("diag");if(a)return r.unshift(t),a[e](...r)}t.DiagComponentLogger=a},972:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagConsoleLogger=void 0;let r=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class n{constructor(){for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0}),t.createLogLevelDiagLogger=void 0;let n=r(957);t.createLogLevelDiagLogger=function(e,t){function r(r,n){let a=t[r];return"function"==typeof a&&e>=n?a.bind(t):function(){}}return en.DiagLogLevel.ALL&&(e=n.DiagLogLevel.ALL),t=t||{},{error:r("error",n.DiagLogLevel.ERROR),warn:r("warn",n.DiagLogLevel.WARN),info:r("info",n.DiagLogLevel.INFO),debug:r("debug",n.DiagLogLevel.DEBUG),verbose:r("verbose",n.DiagLogLevel.VERBOSE)}}},957:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagLogLevel=void 0,function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"}(t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;let n=r(200),a=r(521),o=r(130),u=a.VERSION.split(".")[0],i=Symbol.for(`opentelemetry.js.api.${u}`),l=n._globalThis;t.registerGlobal=function(e,t,r,n=!1){var o;let u=l[i]=null!==(o=l[i])&&void 0!==o?o:{version:a.VERSION};if(!n&&u[e]){let t=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);return r.error(t.stack||t.message),!1}if(u.version!==a.VERSION){let t=Error(`@opentelemetry/api: Registration of version v${u.version} for ${e} does not match previously registered API v${a.VERSION}`);return r.error(t.stack||t.message),!1}return u[e]=t,r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`),!0},t.getGlobal=function(e){var t,r;let n=null===(t=l[i])||void 0===t?void 0:t.version;if(n&&(0,o.isCompatible)(n))return null===(r=l[i])||void 0===r?void 0:r[e]},t.unregisterGlobal=function(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);let r=l[i];r&&delete r[e]}},130:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isCompatible=t._makeCompatibilityCheck=void 0;let n=r(521),a=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function o(e){let t=new Set([e]),r=new Set,n=e.match(a);if(!n)return()=>!1;let o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(null!=o.prerelease)return function(t){return t===e};function u(e){return r.add(e),!1}return function(e){if(t.has(e))return!0;if(r.has(e))return!1;let n=e.match(a);if(!n)return u(e);let i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};return null!=i.prerelease||o.major!==i.major?u(e):0===o.major?o.minor===i.minor&&o.patch<=i.patch?(t.add(e),!0):u(e):o.minor<=i.minor?(t.add(e),!0):u(e)}}t._makeCompatibilityCheck=o,t.isCompatible=o(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.metrics=void 0;let n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueType=void 0,function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"}(t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class r{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=r;class n{}t.NoopMetric=n;class a extends n{add(e,t){}}t.NoopCounterMetric=a;class o extends n{add(e,t){}}t.NoopUpDownCounterMetric=o;class u extends n{record(e,t){}}t.NoopHistogramMetric=u;class i{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=i;class l extends i{}t.NoopObservableCounterMetric=l;class s extends i{}t.NoopObservableGaugeMetric=s;class c extends i{}t.NoopObservableUpDownCounterMetric=c,t.NOOP_METER=new r,t.NOOP_COUNTER_METRIC=new a,t.NOOP_HISTOGRAM_METRIC=new u,t.NOOP_UP_DOWN_COUNTER_METRIC=new o,t.NOOP_OBSERVABLE_COUNTER_METRIC=new l,t.NOOP_OBSERVABLE_GAUGE_METRIC=new s,t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new c,t.createNoopMeter=function(){return t.NOOP_METER}},660:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;let n=r(102);class a{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=a,t.NOOP_METER_PROVIDER=new a},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t._globalThis=void 0,t._globalThis="object"==typeof globalThis?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.propagation=void 0;let n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopTextMapPropagator=void 0;class r{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=r},194:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.defaultTextMapSetter=t.defaultTextMapGetter=void 0,t.defaultTextMapGetter={get(e,t){if(null!=e)return e[t]},keys:e=>null==e?[]:Object.keys(e)},t.defaultTextMapSetter={set(e,t,r){null!=e&&(e[t]=r)}}},845:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.trace=void 0;let n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NonRecordingSpan=void 0;let n=r(476);class a{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return!1}recordException(e,t){}}t.NonRecordingSpan=a},614:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopTracer=void 0;let n=r(491),a=r(607),o=r(403),u=r(139),i=n.ContextAPI.getInstance();class l{startSpan(e,t,r=i.active()){let n=!!(null==t?void 0:t.root);if(n)return new o.NonRecordingSpan;let l=r&&(0,a.getSpanContext)(r);return"object"==typeof l&&"string"==typeof l.spanId&&"string"==typeof l.traceId&&"number"==typeof l.traceFlags&&(0,u.isSpanContextValid)(l)?new o.NonRecordingSpan(l):new o.NonRecordingSpan}startActiveSpan(e,t,r,n){let o,u,l;if(arguments.length<2)return;2==arguments.length?l=t:3==arguments.length?(o=t,l=r):(o=t,u=r,l=n);let s=null!=u?u:i.active(),c=this.startSpan(e,o,s),d=(0,a.setSpan)(s,c);return i.with(d,l,void 0,c)}}t.NoopTracer=l},124:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopTracerProvider=void 0;let n=r(614);class a{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=a},125:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ProxyTracer=void 0;let n=r(614),a=new n.NoopTracer;class o{constructor(e,t,r,n){this._provider=e,this.name=t,this.version=r,this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){let a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate)return this._delegate;let e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):a}}t.ProxyTracer=o},846:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ProxyTracerProvider=void 0;let n=r(125),a=r(124),o=new a.NoopTracerProvider;class u{getTracer(e,t,r){var a;return null!==(a=this.getDelegateTracer(e,t,r))&&void 0!==a?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return null!==(e=this._delegate)&&void 0!==e?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return null===(n=this._delegate)||void 0===n?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=u},996:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SamplingDecision=void 0,function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"}(t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;let n=r(780),a=r(403),o=r(491),u=(0,n.createContextKey)("OpenTelemetry Context Key SPAN");function i(e){return e.getValue(u)||void 0}function l(e,t){return e.setValue(u,t)}t.getSpan=i,t.getActiveSpan=function(){return i(o.ContextAPI.getInstance().active())},t.setSpan=l,t.deleteSpan=function(e){return e.deleteValue(u)},t.setSpanContext=function(e,t){return l(e,new a.NonRecordingSpan(t))},t.getSpanContext=function(e){var t;return null===(t=i(e))||void 0===t?void 0:t.spanContext()}},325:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TraceStateImpl=void 0;let n=r(564);class a{constructor(e){this._internalState=new Map,e&&this._parse(e)}set(e,t){let r=this._clone();return r._internalState.has(e)&&r._internalState.delete(e),r._internalState.set(e,t),r}unset(e){let t=this._clone();return t._internalState.delete(e),t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce((e,t)=>(e.push(t+"="+this.get(t)),e),[]).join(",")}_parse(e){!(e.length>512)&&(this._internalState=e.split(",").reverse().reduce((e,t)=>{let r=t.trim(),a=r.indexOf("=");if(-1!==a){let o=r.slice(0,a),u=r.slice(a+1,t.length);(0,n.validateKey)(o)&&(0,n.validateValue)(u)&&e.set(o,u)}return e},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let e=new a;return e._internalState=new Map(this._internalState),e}}t.TraceStateImpl=a},564:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateValue=t.validateKey=void 0;let r="[_0-9a-z-*/]",n=`[a-z]${r}{0,255}`,a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`,o=RegExp(`^(?:${n}|${a})$`),u=/^[ -~]{0,255}[!-~]$/,i=/,|=/;t.validateKey=function(e){return o.test(e)},t.validateValue=function(e){return u.test(e)&&!i.test(e)}},98:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createTraceState=void 0;let n=r(325);t.createTraceState=function(e){return new n.TraceStateImpl(e)}},476:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;let n=r(475);t.INVALID_SPANID="0000000000000000",t.INVALID_TRACEID="00000000000000000000000000000000",t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SpanKind=void 0,function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"}(t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;let n=r(476),a=r(403),o=/^([0-9a-f]{32})$/i,u=/^[0-9a-f]{16}$/i;function i(e){return o.test(e)&&e!==n.INVALID_TRACEID}function l(e){return u.test(e)&&e!==n.INVALID_SPANID}t.isValidTraceId=i,t.isValidSpanId=l,t.isSpanContextValid=function(e){return i(e.traceId)&&l(e.spanId)},t.wrapSpanContext=function(e){return new a.NonRecordingSpan(e)}},847:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SpanStatusCode=void 0,function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"}(t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TraceFlags=void 0,function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"}(t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,t.VERSION="1.6.0"}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var o=r[e]={exports:{}},u=!0;try{t[e].call(o.exports,o,o.exports,n),u=!1}finally{u&&delete r[e]}return o.exports}n.ab=__dirname+"/";var a={};(()=>{Object.defineProperty(a,"__esModule",{value:!0}),a.trace=a.propagation=a.metrics=a.diag=a.context=a.INVALID_SPAN_CONTEXT=a.INVALID_TRACEID=a.INVALID_SPANID=a.isValidSpanId=a.isValidTraceId=a.isSpanContextValid=a.createTraceState=a.TraceFlags=a.SpanStatusCode=a.SpanKind=a.SamplingDecision=a.ProxyTracerProvider=a.ProxyTracer=a.defaultTextMapSetter=a.defaultTextMapGetter=a.ValueType=a.createNoopMeter=a.DiagLogLevel=a.DiagConsoleLogger=a.ROOT_CONTEXT=a.createContextKey=a.baggageEntryMetadataFromString=void 0;var e=n(369);Object.defineProperty(a,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return e.baggageEntryMetadataFromString}});var t=n(780);Object.defineProperty(a,"createContextKey",{enumerable:!0,get:function(){return t.createContextKey}}),Object.defineProperty(a,"ROOT_CONTEXT",{enumerable:!0,get:function(){return t.ROOT_CONTEXT}});var r=n(972);Object.defineProperty(a,"DiagConsoleLogger",{enumerable:!0,get:function(){return r.DiagConsoleLogger}});var o=n(957);Object.defineProperty(a,"DiagLogLevel",{enumerable:!0,get:function(){return o.DiagLogLevel}});var u=n(102);Object.defineProperty(a,"createNoopMeter",{enumerable:!0,get:function(){return u.createNoopMeter}});var i=n(901);Object.defineProperty(a,"ValueType",{enumerable:!0,get:function(){return i.ValueType}});var l=n(194);Object.defineProperty(a,"defaultTextMapGetter",{enumerable:!0,get:function(){return l.defaultTextMapGetter}}),Object.defineProperty(a,"defaultTextMapSetter",{enumerable:!0,get:function(){return l.defaultTextMapSetter}});var s=n(125);Object.defineProperty(a,"ProxyTracer",{enumerable:!0,get:function(){return s.ProxyTracer}});var c=n(846);Object.defineProperty(a,"ProxyTracerProvider",{enumerable:!0,get:function(){return c.ProxyTracerProvider}});var d=n(996);Object.defineProperty(a,"SamplingDecision",{enumerable:!0,get:function(){return d.SamplingDecision}});var f=n(357);Object.defineProperty(a,"SpanKind",{enumerable:!0,get:function(){return f.SpanKind}});var p=n(847);Object.defineProperty(a,"SpanStatusCode",{enumerable:!0,get:function(){return p.SpanStatusCode}});var _=n(475);Object.defineProperty(a,"TraceFlags",{enumerable:!0,get:function(){return _.TraceFlags}});var g=n(98);Object.defineProperty(a,"createTraceState",{enumerable:!0,get:function(){return g.createTraceState}});var h=n(139);Object.defineProperty(a,"isSpanContextValid",{enumerable:!0,get:function(){return h.isSpanContextValid}}),Object.defineProperty(a,"isValidTraceId",{enumerable:!0,get:function(){return h.isValidTraceId}}),Object.defineProperty(a,"isValidSpanId",{enumerable:!0,get:function(){return h.isValidSpanId}});var b=n(476);Object.defineProperty(a,"INVALID_SPANID",{enumerable:!0,get:function(){return b.INVALID_SPANID}}),Object.defineProperty(a,"INVALID_TRACEID",{enumerable:!0,get:function(){return b.INVALID_TRACEID}}),Object.defineProperty(a,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return b.INVALID_SPAN_CONTEXT}});let v=n(67);Object.defineProperty(a,"context",{enumerable:!0,get:function(){return v.context}});let y=n(506);Object.defineProperty(a,"diag",{enumerable:!0,get:function(){return y.diag}});let m=n(886);Object.defineProperty(a,"metrics",{enumerable:!0,get:function(){return m.metrics}});let S=n(939);Object.defineProperty(a,"propagation",{enumerable:!0,get:function(){return S.propagation}});let E=n(845);Object.defineProperty(a,"trace",{enumerable:!0,get:function(){return E.trace}}),a.default={context:v.context,diag:y.diag,metrics:m.metrics,propagation:S.propagation,trace:E.trace}})(),e.exports=a})()},9368:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{NEXT_QUERY_PARAM_PREFIX:function(){return r},PRERENDER_REVALIDATE_HEADER:function(){return n},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return a},NEXT_DID_POSTPONE_HEADER:function(){return o},RSC_PREFETCH_SUFFIX:function(){return u},RSC_SUFFIX:function(){return i},NEXT_DATA_SUFFIX:function(){return l},NEXT_META_SUFFIX:function(){return s},NEXT_BODY_SUFFIX:function(){return c},NEXT_CACHE_TAGS_HEADER:function(){return d},NEXT_CACHE_SOFT_TAGS_HEADER:function(){return f},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return p},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return _},NEXT_CACHE_TAG_MAX_LENGTH:function(){return g},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return h},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return b},CACHE_ONE_YEAR:function(){return v},MIDDLEWARE_FILENAME:function(){return y},MIDDLEWARE_LOCATION_REGEXP:function(){return m},INSTRUMENTATION_HOOK_FILENAME:function(){return S},PAGES_DIR_ALIAS:function(){return E},DOT_NEXT_ALIAS:function(){return P},ROOT_DIR_ALIAS:function(){return R},APP_DIR_ALIAS:function(){return O},RSC_MOD_REF_PROXY_ALIAS:function(){return T},RSC_ACTION_VALIDATE_ALIAS:function(){return x},RSC_ACTION_PROXY_ALIAS:function(){return C},RSC_ACTION_ENCRYPTION_ALIAS:function(){return A},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return M},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return j},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return N},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return I},SERVER_PROPS_SSG_CONFLICT:function(){return w},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return D},SERVER_PROPS_EXPORT_ERROR:function(){return L},GSP_NO_RETURNED_VALUE:function(){return U},GSSP_NO_RETURNED_VALUE:function(){return F},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return H},GSSP_COMPONENT_MEMBER_ERROR:function(){return G},NON_STANDARD_NODE_ENV:function(){return B},SSG_FALLBACK_EXPORT_ERROR:function(){return V},ESLINT_DEFAULT_DIRS:function(){return k},ESLINT_PROMPT_VALUES:function(){return X},SERVER_RUNTIME:function(){return W},WEBPACK_LAYERS:function(){return $},WEBPACK_RESOURCE_QUERIES:function(){return K}});let r="nxtP",n="x-prerender-revalidate",a="x-prerender-revalidate-if-generated",o="x-nextjs-postponed",u=".prefetch.rsc",i=".rsc",l=".json",s=".meta",c=".body",d="x-next-cache-tags",f="x-next-cache-soft-tags",p="x-next-revalidated-tags",_="x-next-revalidate-tag-token",g=256,h=1024,b="_N_T_",v=31536e3,y="middleware",m=`(?:src/)?${y}`,S="instrumentation",E="private-next-pages",P="private-dot-next",R="private-next-root-dir",O="private-next-app-dir",T="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",x="private-next-rsc-action-validate",C="private-next-rsc-action-proxy",A="private-next-rsc-action-encryption",M="private-next-rsc-action-client-wrapper",j="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",N="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",I="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",w="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",D="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",L="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",U="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",F="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",H="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",G="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",B='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',V="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",k=["app","pages","components","lib","src"],X=[{title:"Strict",recommended:!0,config:{extends:"next/core-web-vitals"}},{title:"Base",config:{extends:"next"}},{title:"Cancel",config:null}],W={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},Y={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"},$={...Y,GROUP:{server:[Y.reactServerComponents,Y.actionBrowser,Y.appMetadataRoute,Y.appRouteHandler],nonClientServerTarget:[Y.middleware,Y.api],app:[Y.reactServerComponents,Y.actionBrowser,Y.appMetadataRoute,Y.appRouteHandler,Y.serverSideRendering,Y.appPagesBrowser]}},K={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},6106:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{reset:function(){return l},bold:function(){return s},dim:function(){return c},italic:function(){return d},underline:function(){return f},inverse:function(){return p},hidden:function(){return _},strikethrough:function(){return g},black:function(){return h},red:function(){return b},green:function(){return v},yellow:function(){return y},blue:function(){return m},magenta:function(){return S},purple:function(){return E},cyan:function(){return P},white:function(){return R},gray:function(){return O},bgBlack:function(){return T},bgRed:function(){return x},bgGreen:function(){return C},bgYellow:function(){return A},bgBlue:function(){return M},bgMagenta:function(){return j},bgCyan:function(){return N},bgWhite:function(){return I}});let{env:n,stdout:a}=(null==(r=globalThis)?void 0:r.process)??{},o=n&&!n.NO_COLOR&&(n.FORCE_COLOR||(null==a?void 0:a.isTTY)&&!n.CI&&"dumb"!==n.TERM),u=(e,t,r,n)=>{let a=e.substring(0,n)+r,o=e.substring(n+t.length),i=o.indexOf(t);return~i?a+u(o,t,r,i):a+o},i=(e,t,r=e)=>n=>{let a=""+n,o=a.indexOf(t,e.length);return~o?e+u(a,t,r,o)+t:e+a+t},l=o?e=>`\x1b[0m${e}\x1b[0m`:String,s=o?i("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"):String,c=o?i("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"):String,d=o?i("\x1b[3m","\x1b[23m"):String,f=o?i("\x1b[4m","\x1b[24m"):String,p=o?i("\x1b[7m","\x1b[27m"):String,_=o?i("\x1b[8m","\x1b[28m"):String,g=o?i("\x1b[9m","\x1b[29m"):String,h=o?i("\x1b[30m","\x1b[39m"):String,b=o?i("\x1b[31m","\x1b[39m"):String,v=o?i("\x1b[32m","\x1b[39m"):String,y=o?i("\x1b[33m","\x1b[39m"):String,m=o?i("\x1b[34m","\x1b[39m"):String,S=o?i("\x1b[35m","\x1b[39m"):String,E=o?i("\x1b[38;2;173;127;168m","\x1b[39m"):String,P=o?i("\x1b[36m","\x1b[39m"):String,R=o?i("\x1b[37m","\x1b[39m"):String,O=o?i("\x1b[90m","\x1b[39m"):String,T=o?i("\x1b[40m","\x1b[49m"):String,x=o?i("\x1b[41m","\x1b[49m"):String,C=o?i("\x1b[42m","\x1b[49m"):String,A=o?i("\x1b[43m","\x1b[49m"):String,M=o?i("\x1b[44m","\x1b[49m"):String,j=o?i("\x1b[45m","\x1b[49m"):String,N=o?i("\x1b[46m","\x1b[49m"):String,I=o?i("\x1b[47m","\x1b[49m"):String},2564:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{renderToReadableStream:function(){return n.renderToReadableStream},decodeReply:function(){return n.decodeReply},decodeAction:function(){return n.decodeAction},decodeFormState:function(){return n.decodeFormState},AppRouter:function(){return a.default},LayoutRouter:function(){return o.default},RenderFromTemplateContext:function(){return u.default},staticGenerationAsyncStorage:function(){return i.staticGenerationAsyncStorage},requestAsyncStorage:function(){return l.requestAsyncStorage},actionAsyncStorage:function(){return s.actionAsyncStorage},staticGenerationBailout:function(){return c.staticGenerationBailout},createSearchParamsBailoutProxy:function(){return f.createSearchParamsBailoutProxy},serverHooks:function(){return p},preloadStyle:function(){return g.preloadStyle},preloadFont:function(){return g.preloadFont},preconnect:function(){return g.preconnect},taintObjectReference:function(){return h.taintObjectReference},StaticGenerationSearchParamsBailoutProvider:function(){return d.default},NotFoundBoundary:function(){return y},patchFetch:function(){return m}});let n=r(5951),a=b(r(8730)),o=b(r(8165)),u=b(r(5676)),i=r(5869),l=r(4580),s=r(2934),c=r(3657),d=b(r(7701)),f=r(1263),p=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=v(t);if(r&&r.has(e))return r.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var u=a?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(n,o,u):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(9195)),_=r(1040),g=r(8483),h=r(3369);function b(e){return e&&e.__esModule?e:{default:e}}function v(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(v=function(e){return e?r:t})(e)}let{NotFoundBoundary:y}=r(4009);function m(){return(0,_.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:i.staticGenerationAsyncStorage})}},8483:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{preloadStyle:function(){return a},preloadFont:function(){return o},preconnect:function(){return u}});let n=function(e){return e&&e.__esModule?e:{default:e}}(r(8337));function a(e,t){let r={as:"style"};"string"==typeof t&&(r.crossOrigin=t),n.default.preload(e,r)}function o(e,t,r){let a={as:"font",type:t};"string"==typeof r&&(a.crossOrigin=r),n.default.preload(e,a)}function u(e,t){n.default.preconnect(e,"string"==typeof t?{crossOrigin:t}:void 0)}},3369:(e,t,r)=>{"use strict";function n(){throw Error("Taint can only be used with the taint flag.")}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{taintObjectReference:function(){return a},taintUniqueValue:function(){return o}}),r(3542);let a=n,o=n},6132:(e,t)=>{"use strict";var r;Object.defineProperty(t,"x",{enumerable:!0,get:function(){return r}}),function(e){e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE"}(r||(r={}))},7096:(e,t,r)=>{"use strict";e.exports=r(399)},8337:(e,t,r)=>{"use strict";e.exports=r(7096).vendored["react-rsc"].ReactDOM},4656:(e,t,r)=>{"use strict";e.exports=r(7096).vendored["react-rsc"].ReactJsxRuntime},5951:(e,t,r)=>{"use strict";e.exports=r(7096).vendored["react-rsc"].ReactServerDOMWebpackServerEdge},3542:(e,t,r)=>{"use strict";e.exports=r(7096).vendored["react-rsc"].React},1040:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{validateTags:function(){return s},addImplicitTags:function(){return d},patchFetch:function(){return p}});let n=r(4875),a=r(4640),o=r(9368),u=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=l(t);if(r&&r.has(e))return r.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var u=a?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(n,o,u):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(8775)),i=r(2236);function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(l=function(e){return e?r:t})(e)}function s(e,t){let r=[],n=[];for(let t of e)"string"!=typeof t?n.push({tag:t,reason:"invalid type, must be a string"}):t.length>o.NEXT_CACHE_TAG_MAX_LENGTH?n.push({tag:t,reason:`exceeded max length of ${o.NEXT_CACHE_TAG_MAX_LENGTH}`}):r.push(t);if(n.length>0)for(let{tag:e,reason:r}of(console.warn(`Warning: invalid tags passed to ${t}: `),n))console.log(`tag: "${e}" ${r}`);return r}let c=e=>{let t=["/layout"];if(e.startsWith("/")){let r=e.split("/");for(let e=1;er.every(r=>e[r]===t[r]))||e.fetchMetrics.push({url:t.url,cacheStatus:t.cacheStatus,cacheReason:t.cacheReason,status:t.status,method:t.method,start:t.start,end:Date.now(),idx:e.nextFetchId||0})}function p({serverHooks:e,staticGenerationAsyncStorage:t}){if(globalThis._nextOriginalFetch||(globalThis._nextOriginalFetch=globalThis.fetch),globalThis.fetch.__nextPatched)return;let{DynamicServerError:r}=e,l=globalThis._nextOriginalFetch;globalThis.fetch=async(e,c)=>{var p,_;let g;try{(g=new URL(e instanceof Request?e.url:e)).username="",g.password=""}catch{g=void 0}let h=(null==g?void 0:g.href)??"",b=Date.now(),v=(null==c?void 0:null==(p=c.method)?void 0:p.toUpperCase())||"GET",y=(null==(_=null==c?void 0:c.next)?void 0:_.internal)===!0;return await (0,a.getTracer)().trace(y?n.NextNodeServerSpan.internalFetch:n.AppRenderSpan.fetch,{kind:a.SpanKind.CLIENT,spanName:["fetch",v,h].filter(Boolean).join(" "),attributes:{"http.url":h,"http.method":v,"net.peer.name":null==g?void 0:g.hostname,"net.peer.port":(null==g?void 0:g.port)||void 0}},async()=>{var n;let a,p,_;let g=t.getStore()||(null==fetch.__nextGetStaticStore?void 0:fetch.__nextGetStaticStore.call(fetch)),v=e&&"object"==typeof e&&"string"==typeof e.method,m=t=>(v?e[t]:null)||(null==c?void 0:c[t]);if(!g||y||g.isDraftMode)return l(e,c);let S=t=>{var r,n,a;return void 0!==(null==c?void 0:null==(r=c.next)?void 0:r[t])?null==c?void 0:null==(n=c.next)?void 0:n[t]:v?null==(a=e.next)?void 0:a[t]:void 0},E=S("revalidate"),P=s(S("tags")||[],`fetch ${e.toString()}`);if(Array.isArray(P))for(let e of(g.tags||(g.tags=[]),P))g.tags.includes(e)||g.tags.push(e);let R=d(g),O="only-cache"===g.fetchCache,T="force-cache"===g.fetchCache,x="default-cache"===g.fetchCache,C="default-no-store"===g.fetchCache,A="only-no-store"===g.fetchCache,M="force-no-store"===g.fetchCache,j=m("cache"),N="";"string"==typeof j&&void 0!==E&&(v&&"default"===j||u.warn(`fetch for ${h} on ${g.urlPathname} specified "cache: ${j}" and "revalidate: ${E}", only one should be specified.`),j=void 0),"force-cache"===j?E=!1:("no-cache"===j||"no-store"===j||M||A)&&(E=0),("no-cache"===j||"no-store"===j)&&(N=`cache: ${j}`),("number"==typeof E||!1===E)&&(_=E);let I=m("headers"),w="function"==typeof(null==I?void 0:I.get)?I:new Headers(I||{}),D=w.get("authorization")||w.get("cookie"),L=!["get","head"].includes((null==(n=m("method"))?void 0:n.toLowerCase())||"get"),U=(D||L)&&0===g.revalidate;if(M&&(N="fetchCache = force-no-store"),A){if("force-cache"===j||void 0!==_&&(!1===_||_>0))throw Error(`cache: 'force-cache' used on fetch for ${h} with 'export const fetchCache = 'only-no-store'`);N="fetchCache = only-no-store"}if(O&&"no-store"===j)throw Error(`cache: 'no-store' used on fetch for ${h} with 'export const fetchCache = 'only-cache'`);T&&(void 0===E||0===E)&&(N="fetchCache = force-cache",_=!1),void 0===_?x?(_=!1,N="fetchCache = default-cache"):U?(_=0,N="auto no cache"):C?(_=0,N="fetchCache = default-no-store"):(N="auto cache",_="boolean"!=typeof g.revalidate&&void 0!==g.revalidate&&g.revalidate):N||(N=`revalidate: ${_}`),!U&&(void 0===g.revalidate||"number"==typeof _&&(!1===g.revalidate||"number"==typeof g.revalidate&&_0||!1===_;if(g.incrementalCache&&F)try{a=await g.incrementalCache.fetchCacheKey(h,v?e:c)}catch(t){console.error("Failed to generate cache key for",e)}let H=g.nextFetchId??1;g.nextFetchId=H+1;let G="number"!=typeof _?o.CACHE_ONE_YEAR:_,B=async(t,r)=>{let n=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...t?[]:["signal"]];if(v){let t=e,r={body:t._ogBody||t.body};for(let e of n)r[e]=t[e];e=new Request(t.url,r)}else if(c){let e=c;for(let t of(c={body:c._ogBody||c.body},n))c[t]=e[t]}let o={...c,next:{...null==c?void 0:c.next,fetchType:"origin",fetchIdx:H}};return l(e,o).then(async n=>{if(t||f(g,{start:b,url:h,cacheReason:r||N,cacheStatus:0===_||r?"skip":"miss",status:n.status,method:o.method||"GET"}),200===n.status&&g.incrementalCache&&a&&F){let t=Buffer.from(await n.arrayBuffer());try{await g.incrementalCache.set(a,{kind:"FETCH",data:{headers:Object.fromEntries(n.headers.entries()),body:t.toString("base64"),status:n.status,url:n.url},revalidate:G},{fetchCache:!0,revalidate:_,fetchUrl:h,fetchIdx:H,tags:P})}catch(t){console.warn("Failed to set fetch cache",e,t)}let r=new Response(t,{headers:new Headers(n.headers),status:n.status});return Object.defineProperty(r,"url",{value:n.url}),r}return n})},V=()=>Promise.resolve();if(a&&g.incrementalCache){V=await g.incrementalCache.lock(a);let e=g.isOnDemandRevalidate?null:await g.incrementalCache.get(a,{kindHint:"fetch",revalidate:_,fetchUrl:h,fetchIdx:H,tags:P,softTags:R});if(e?await V():p="cache-control: no-cache (hard refresh)",(null==e?void 0:e.value)&&"FETCH"===e.value.kind&&!(g.isRevalidate&&e.isStale)){e.isStale&&(g.pendingRevalidates||(g.pendingRevalidates=[]),g.pendingRevalidates.push(B(!0).catch(console.error)));let t=e.value.data;f(g,{start:b,url:h,cacheReason:N,cacheStatus:"hit",status:t.status||200,method:(null==c?void 0:c.method)||"GET"});let r=new Response(Buffer.from(t.body,"base64"),{headers:t.headers,status:t.status});return Object.defineProperty(r,"url",{value:e.value.data.url}),r}}if(g.isStaticGeneration&&c&&"object"==typeof c){let{cache:t}=c;if("no-store"===t){let t=`no-store fetch ${e}${g.urlPathname?` ${g.urlPathname}`:""}`,n=new r(t);g.dynamicUsageErr=n,g.dynamicUsageStack=n.stack,g.dynamicUsageDescription=t,(0,i.maybePostpone)(g,t),g.revalidate=0}let n="next"in c,{next:a={}}=c;if("number"==typeof a.revalidate&&(void 0===g.revalidate||"number"==typeof g.revalidate&&a.revalidatet,globalThis.fetch.__nextPatched=!0}},4875:(e,t)=>{"use strict";var r,n,a,o,u,i,l,s,c,d,f;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{NextVanillaSpanAllowlist:function(){return p},BaseServerSpan:function(){return r},LoadComponentsSpan:function(){return n},NextServerSpan:function(){return a},NextNodeServerSpan:function(){return o},StartServerSpan:function(){return u},RenderSpan:function(){return i},RouterSpan:function(){return s},AppRenderSpan:function(){return l},NodeSpan:function(){return c},AppRouteRouteHandlersSpan:function(){return d},ResolveMetadataSpan:function(){return f}}),function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"}(r||(r={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(n||(n={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(o||(o={})),(u||(u={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(i||(i={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(l||(l={})),(s||(s={})).executeRoute="Router.executeRoute",(c||(c={})).runHandler="Node.runHandler",(d||(d={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));let p=["BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport"]},4640:(e,t,r)=>{"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getTracer:function(){return v},SpanStatusCode:function(){return l},SpanKind:function(){return s}});let a=r(4875);try{n=r(4389)}catch(e){n=r(4389)}let{context:o,propagation:u,trace:i,SpanStatusCode:l,SpanKind:s,ROOT_CONTEXT:c}=n,d=e=>null!==e&&"object"==typeof e&&"function"==typeof e.then,f=(e,t)=>{(null==t?void 0:t.bubble)===!0?e.setAttribute("next.bubble",!0):(t&&e.recordException(t),e.setStatus({code:l.ERROR,message:null==t?void 0:t.message})),e.end()},p=new Map,_=n.createContextKey("next.rootSpanId"),g=0,h=()=>g++;class b{getTracerInstance(){return i.getTracer("next.js","0.0.1")}getContext(){return o}getActiveScopeSpan(){return i.getSpan(null==o?void 0:o.active())}withPropagatedContext(e,t){if(o.active()!==c)return t();let r=u.extract(c,e.headers);return o.with(r,t)}trace(...e){var t;let[r,n,u]=e,{fn:l,options:s}="function"==typeof n?{fn:n,options:{}}:{fn:u,options:{...n}};if(!a.NextVanillaSpanAllowlist.includes(r)&&"1"!==process.env.NEXT_OTEL_VERBOSE||s.hideSpan)return l();let g=s.spanName??r,b=this.getSpanContext((null==s?void 0:s.parentSpan)??this.getActiveScopeSpan()),v=!1;b?(null==(t=i.getSpanContext(b))?void 0:t.isRemote)&&(v=!0):(b=c,v=!0);let y=h();return s.attributes={"next.span_name":g,"next.span_type":r,...s.attributes},o.with(b.setValue(_,y),()=>this.getTracerInstance().startActiveSpan(g,s,e=>{let t=()=>{p.delete(y)};v&&p.set(y,new Map(Object.entries(s.attributes??{})));try{if(l.length>1)return l(e,t=>f(e,t));let r=l(e);return d(r)?r.then(()=>e.end(),t=>f(e,t)).finally(t):(e.end(),t()),r}catch(r){throw f(e,r),t(),r}}))}wrap(...e){let t=this,[r,n,u]=3===e.length?e:[e[0],{},e[1]];return a.NextVanillaSpanAllowlist.includes(r)||"1"===process.env.NEXT_OTEL_VERBOSE?function(){let e=n;"function"==typeof e&&"function"==typeof u&&(e=e.apply(this,arguments));let a=arguments.length-1,i=arguments[a];if("function"!=typeof i)return t.trace(r,e,()=>u.apply(this,arguments));{let n=t.getContext().bind(o.active(),i);return t.trace(r,e,(e,t)=>(arguments[a]=function(e){return null==t||t(e),n.apply(this,arguments)},u.apply(this,arguments)))}}:u}startSpan(...e){let[t,r]=e,n=this.getSpanContext((null==r?void 0:r.parentSpan)??this.getActiveScopeSpan());return this.getTracerInstance().startSpan(t,r,n)}getSpanContext(e){let t=e?i.setSpan(o.active(),e):void 0;return t}getRootSpanAttributes(){let e=o.active().getValue(_);return p.get(e)}}let v=(()=>{let e=new b;return()=>e})()},51:(e,t,r)=>{"use strict";function n(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}r.r(t),r.d(t,{_:()=>n,_class_private_field_loose_base:()=>n})},2581:(e,t,r)=>{"use strict";r.r(t),r.d(t,{_:()=>a,_class_private_field_loose_key:()=>a});var n=0;function a(e){return"__private_"+n+++"_"+e}},143:(e,t,r)=>{"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.r(t),r.d(t,{_:()=>n,_interop_require_default:()=>n})},2212:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function a(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=o?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(a,u,i):a[u]=e[u]}return a.default=e,r&&r.set(e,a),a}r.r(t),r.d(t,{_:()=>a,_interop_require_wildcard:()=>a})},5196:(e,t,r)=>{"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.r(t),r.d(t,{_:()=>n,_interop_require_default:()=>n})}};
\ No newline at end of file
diff --git a/client/.next/server/chunks/687.js b/client/.next/server/chunks/687.js
new file mode 100644
index 0000000..f2d25b9
--- /dev/null
+++ b/client/.next/server/chunks/687.js
@@ -0,0 +1,6 @@
+"use strict";exports.id=687,exports.ids=[687],exports.modules={687:(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 E},NextScript:function(){return g},Html:function(){return y},Main:function(){return S},default:function(){return Document}});let r=u(n(6689)),i=n(2285),o=n(5778),s=n(9630),a=u(n(676)),l=n(3112);function u(e){return e&&e.__esModule?e:{default:e}}let c=new Set;function f(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 d(e,t){let{assetPrefix:n,buildManifest:i,assetQueryString:o,disableOptimizedLoading:s,crossOrigin:a}=e;return i.polyfillFiles.filter(e=>e.endsWith(".js")&&!e.endsWith(".module.js")).map(e=>r.default.createElement("script",{key:e,defer:!s,nonce:t.nonce,crossOrigin:t.crossOrigin||a,noModule:!0,src:`${n}/_next/${e}${o}`}))}function p({styles:e}){if(!e)return null;let t=Array.isArray(e)?e:[];if(e.props&&Array.isArray(e.props.children)){let n=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=>n(e)&&t.push(e)):n(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 h(e,t,n){let{dynamicImports:i,assetPrefix:o,isDevelopment:s,assetQueryString:a,disableOptimizedLoading:l,crossOrigin:u}=e;return i.map(e=>!e.endsWith(".js")||n.allFiles.includes(e)?null:r.default.createElement("script",{async:!s&&l,defer:!l,key:e,src:`${o}/_next/${encodeURI(e)}${a}`,nonce:t.nonce,crossOrigin:t.crossOrigin||u}))}function m(e,t,n){var i;let{assetPrefix:o,buildManifest:s,isDevelopment:a,assetQueryString:l,disableOptimizedLoading:u,crossOrigin:c}=e,f=n.allFiles.filter(e=>e.endsWith(".js")),d=null==(i=s.lowPriorityFiles)?void 0:i.filter(e=>e.endsWith(".js"));return[...f,...d].map(e=>r.default.createElement("script",{key:e,src:`${o}/_next/${encodeURI(e)}${l}`,nonce:t.nonce,async:!a&&u,defer:!u,crossOrigin:t.crossOrigin||c}))}function _(e,t){let{scriptLoader:n,disableOptimizedLoading:i,crossOrigin:o}=e,s=function(e,t){let{assetPrefix:n,scriptLoader:i,crossOrigin:o,nextScriptWorkers:s}=e;if(!s)return null;try{let{partytownSnippet:e}=require("@builder.io/partytown/integration"),s=Array.isArray(t.children)?t.children:[t.children],a=s.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,!a&&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:s,children:a,dangerouslySetInnerHTML:l,...u}=e,c={};if(s)c.src=s;else if(l&&l.__html)c.dangerouslySetInnerHTML={__html:l.__html};else if(a)c.dangerouslySetInnerHTML={__html:"string"==typeof a?a:Array.isArray(a)?a.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:s||n,nonce:t.nonce,"data-nscript":"worker",crossOrigin:t.crossOrigin||o})}))}catch(e){return(0,a.default)(e)&&"MODULE_NOT_FOUND"!==e.code&&console.warn(`Warning: ${e.message}`),null}}(e,t),l=(n.beforeInteractive||[]).filter(e=>e.src).map((e,n)=>{let{strategy:s,...a}=e;return r.default.createElement("script",{...a,key:a.src||n,defer:a.defer??!i,nonce:t.nonce,"data-nscript":"beforeInteractive",crossOrigin:t.crossOrigin||o})});return r.default.createElement(r.default.Fragment,null,s,l)}class E extends r.default.Component{static #e=this.contextType=l.HtmlContext;getCssLinks(e){let{assetPrefix:t,assetQueryString:n,dynamicImports:i,crossOrigin:o,optimizeCss:s,optimizeFonts:a}=this.context,l=e.allFiles.filter(e=>e.endsWith(".css")),u=new Set(e.sharedFiles),c=new Set([]),f=Array.from(new Set(i.filter(e=>e.endsWith(".css"))));if(f.length){let e=new Set(l);f=f.filter(t=>!(e.has(t)||u.has(t))),c=new Set(f),l.push(...f)}let d=[];return l.forEach(e=>{let i=u.has(e);s||d.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 a=c.has(e);d.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":a?void 0:i?"":void 0,"data-n-p":a?void 0:i?void 0:""}))}),a&&(d=this.makeStylesheetInert(d)),0===d.length?null:d}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,s=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})),...s.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:s,dangerouslySetInnerHTML:a,src:l,...u}=e,c="";return a&&a.__html?c=a.__html:s&&(c="string"==typeof s?s:Array.isArray(s)?s.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 h(this.context,this.props,e)}getPreNextScripts(){return _(this.context,this.props)}getScripts(e){return m(this.context,this.props,e)}getPolyfillScripts(){return d(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:s,__NEXT_DATA__:a,dangerousAsPath:l,headTags:u,unstable_runtimeJS:c,unstable_JsPreload:d,disableOptimizedLoading:h,optimizeCss:m,optimizeFonts:_,assetPrefix:E,nextFontManifest:g}=this.context,y=!1===c,S=!1===d||!h;this.context.docComponentsRendered.Head=!0;let{head:I}=this.context,T=[],P=[];I&&(I.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&&T.push(t),T.push(e)):e&&(t&&("meta"!==e.type||!e.props.charSet)&&P.push(t),P.push(e))}),I=T.concat(P));let O=r.default.Children.toArray(this.props.children).filter(Boolean);_&&!i&&(O=this.makeStylesheetInert(O));let v=!1,b=!1;I=r.default.Children.map(I||[],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?b=!0:"script"===t&&(n.src&&-1>n.src.indexOf("ampproject")||n.dangerouslySetInnerHTML&&(!n.type||"text/javascript"===n.type))&&(r="404: This page could not be found. Francia Ocupada: WWII 404
This page could not be found.