Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +6 -0
- README.md +145 -0
- apps/fetal_plane_app.py +367 -0
- apps/pregnancy_risk_app.py +188 -0
- apps/pregnancy_risk_prediction.py +99 -0
- config/requirements.txt +5 -0
- data/Dataset - Updated.csv +1206 -0
- docs/DOCUMENTATION.md +276 -0
- docs/PROJECT_STRUCTURE.md +223 -0
- frontend/.gitignore +24 -0
- frontend/README.md +69 -0
- frontend/eslint.config.js +23 -0
- frontend/index.html +14 -0
- frontend/node_modules/.bin/acorn +3 -0
- frontend/node_modules/.bin/autoprefixer +3 -0
- frontend/node_modules/.bin/baseline-browser-mapping +3 -0
- frontend/node_modules/.bin/browserslist +3 -0
- frontend/node_modules/.bin/esbuild +3 -0
- frontend/node_modules/.bin/eslint +3 -0
- frontend/node_modules/.bin/jiti +3 -0
- frontend/node_modules/.bin/js-yaml +3 -0
- frontend/node_modules/.bin/jsesc +3 -0
- frontend/node_modules/.bin/json5 +3 -0
- frontend/node_modules/.bin/mkdirp +3 -0
- frontend/node_modules/.bin/nanoid +3 -0
- frontend/node_modules/.bin/node-which +3 -0
- frontend/node_modules/.bin/parser +3 -0
- frontend/node_modules/.bin/rollup +3 -0
- frontend/node_modules/.bin/semver +3 -0
- frontend/node_modules/.bin/tsc +3 -0
- frontend/node_modules/.bin/tsserver +3 -0
- frontend/node_modules/.bin/update-browserslist-db +3 -0
- frontend/node_modules/.bin/vite +3 -0
- frontend/node_modules/.package-lock.json +0 -0
- frontend/node_modules/.vite/deps/@clerk_clerk-react.js +0 -0
- frontend/node_modules/.vite/deps/@clerk_clerk-react.js.map +0 -0
- frontend/node_modules/.vite/deps/_metadata.json +52 -0
- frontend/node_modules/.vite/deps/chunk-I5HANLAN.js +278 -0
- frontend/node_modules/.vite/deps/chunk-I5HANLAN.js.map +7 -0
- frontend/node_modules/.vite/deps/chunk-X4QARNC5.js +1004 -0
- frontend/node_modules/.vite/deps/chunk-X4QARNC5.js.map +7 -0
- frontend/node_modules/.vite/deps/package.json +3 -0
- frontend/node_modules/.vite/deps/react-dom.js +5 -0
- frontend/node_modules/.vite/deps/react-dom.js.map +7 -0
- frontend/node_modules/.vite/deps/react-dom_client.js +0 -0
- frontend/node_modules/.vite/deps/react-dom_client.js.map +0 -0
- frontend/node_modules/.vite/deps/react.js +4 -0
- frontend/node_modules/.vite/deps/react.js.map +7 -0
- frontend/node_modules/.vite/deps/react_jsx-dev-runtime.js +279 -0
- frontend/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +7 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,9 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
frontend/node_modules/@esbuild/darwin-arm64/bin/esbuild filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
frontend/node_modules/@rollup/rollup-darwin-arm64/rollup.darwin-arm64.node filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
frontend/node_modules/@tailwindcss/oxide-darwin-arm64/tailwindcss-oxide.darwin-arm64.node filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
frontend/node_modules/esbuild/bin/esbuild filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
frontend/node_modules/fsevents/fsevents.node filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
frontend/node_modules/lightningcss-darwin-arm64/lightningcss.darwin-arm64.node filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🔬 Medical AI System - Organized Codebase
|
| 2 |
+
|
| 3 |
+
## 📁 Project Structure
|
| 4 |
+
|
| 5 |
+
```
|
| 6 |
+
hackathon15092025/
|
| 7 |
+
├── 📱 apps/ # Streamlit Applications
|
| 8 |
+
│ ├── pregnancy_risk_app.py # Pregnancy risk prediction (Port 8501)
|
| 9 |
+
│ ├── fetal_plane_app.py # Fetal ultrasound classification (Port 8502)
|
| 10 |
+
│ └── pregnancy_risk_prediction.py # Model training script
|
| 11 |
+
│
|
| 12 |
+
├── 🎨 assets/ # Static Assets
|
| 13 |
+
│ └── static/
|
| 14 |
+
│ └── css/
|
| 15 |
+
│ └── style.css # Satoshi font styling
|
| 16 |
+
│
|
| 17 |
+
├── ⚙️ config/ # Configuration Files
|
| 18 |
+
│ ├── requirements.txt # Pregnancy risk dependencies
|
| 19 |
+
│ └── requirements_fetal.txt # Fetal plane dependencies
|
| 20 |
+
│
|
| 21 |
+
├── 📊 data/ # Datasets
|
| 22 |
+
│ ├── Dataset - Updated.csv # Pregnancy risk dataset (1,187 records)
|
| 23 |
+
│ └── Dataset/ # Additional data files
|
| 24 |
+
│
|
| 25 |
+
├── 📋 docs/ # Documentation
|
| 26 |
+
│ ├── README.md # Main project overview
|
| 27 |
+
│ ├── README_FETAL.md # Fetal plane classification guide
|
| 28 |
+
│ ├── DOCUMENTATION.md # Comprehensive system documentation
|
| 29 |
+
│ └── PROJECT_STRUCTURE.md # Detailed project organization
|
| 30 |
+
│
|
| 31 |
+
├── 🤖 models/ # Trained Models
|
| 32 |
+
│ ├── pregnancy_risk_model.pkl # Random Forest model (100% accuracy)
|
| 33 |
+
│ ├── label_encoder.pkl # Label encoder
|
| 34 |
+
│ ├── feature_columns.pkl # Feature column names
|
| 35 |
+
│ └── fetal_plane_model/ # Vision Transformer model (91.69% accuracy)
|
| 36 |
+
│ ├── config.json
|
| 37 |
+
│ ├── model.safetensors
|
| 38 |
+
│ ├── preprocessor_config.json
|
| 39 |
+
│ └── label_encoder.pkl
|
| 40 |
+
│
|
| 41 |
+
├── 🔧 scripts/ # Training Scripts
|
| 42 |
+
│ ├── fetal_plane_classifier.py # ViT model training
|
| 43 |
+
│ ├── train_fetal_model.py # Standard training script
|
| 44 |
+
│ └── train_fetal_model_thermal.py # Thermal-safe training for M4
|
| 45 |
+
│
|
| 46 |
+
├── 🗂️ FETAL_PLANES_ZENODO/ # Ultrasound Dataset
|
| 47 |
+
│ ├── FETAL_PLANES_DB_data.csv # Labels (12,400 images)
|
| 48 |
+
│ ├── Images/ # Ultrasound images (PNG format)
|
| 49 |
+
│ └── README.md # Dataset documentation
|
| 50 |
+
│
|
| 51 |
+
└── 🌐 index.html # Main Dashboard
|
| 52 |
+
```
|
| 53 |
+
|
| 54 |
+
## 🚀 Quick Start
|
| 55 |
+
|
| 56 |
+
### 1. Install Dependencies
|
| 57 |
+
```bash
|
| 58 |
+
# Install pregnancy risk dependencies
|
| 59 |
+
pip install -r config/requirements.txt
|
| 60 |
+
|
| 61 |
+
# Install fetal plane dependencies
|
| 62 |
+
pip install -r config/requirements_fetal.txt
|
| 63 |
+
```
|
| 64 |
+
|
| 65 |
+
### 2. Run Applications
|
| 66 |
+
```bash
|
| 67 |
+
# Terminal 1: Pregnancy Risk App
|
| 68 |
+
cd apps && streamlit run pregnancy_risk_app.py --server.port 8501
|
| 69 |
+
|
| 70 |
+
# Terminal 2: Fetal Plane App
|
| 71 |
+
cd apps && streamlit run fetal_plane_app.py --server.port 8502
|
| 72 |
+
|
| 73 |
+
# Terminal 3: Main Dashboard
|
| 74 |
+
open index.html
|
| 75 |
+
```
|
| 76 |
+
|
| 77 |
+
## 📱 Applications
|
| 78 |
+
|
| 79 |
+
| Application | Location | Port | Description |
|
| 80 |
+
|-------------|----------|------|-------------|
|
| 81 |
+
| **Main Dashboard** | `index.html` | - | HTML dashboard with navigation |
|
| 82 |
+
| **Pregnancy Risk** | `apps/pregnancy_risk_app.py` | 8501 | Risk prediction interface |
|
| 83 |
+
| **Fetal Planes** | `apps/fetal_plane_app.py` | 8502 | Ultrasound classification |
|
| 84 |
+
|
| 85 |
+
## 🎯 Model Performance
|
| 86 |
+
|
| 87 |
+
### Pregnancy Risk Model
|
| 88 |
+
- **Accuracy**: 100%
|
| 89 |
+
- **Algorithm**: Random Forest Classifier
|
| 90 |
+
- **Features**: 11 clinical parameters
|
| 91 |
+
- **Dataset**: 1,187 patient records
|
| 92 |
+
- **Inference**: <1ms
|
| 93 |
+
|
| 94 |
+
### Fetal Plane Model
|
| 95 |
+
- **Validation Accuracy**: 91.69%
|
| 96 |
+
- **Algorithm**: Vision Transformer (ViT-Base-Patch16-224)
|
| 97 |
+
- **Classes**: 9 anatomical planes
|
| 98 |
+
- **Dataset**: 12,400 ultrasound images
|
| 99 |
+
- **Inference**: <100ms
|
| 100 |
+
- **Optimization**: Apple Silicon MPS
|
| 101 |
+
|
| 102 |
+
## 🔧 Development
|
| 103 |
+
|
| 104 |
+
### Training Models
|
| 105 |
+
```bash
|
| 106 |
+
# Train pregnancy risk model
|
| 107 |
+
cd apps && python pregnancy_risk_prediction.py
|
| 108 |
+
|
| 109 |
+
# Train fetal plane model (thermal-safe for M4)
|
| 110 |
+
cd scripts && python train_fetal_model_thermal.py
|
| 111 |
+
```
|
| 112 |
+
|
| 113 |
+
### Project Organization Benefits
|
| 114 |
+
- ✅ **Clean Structure**: Logical separation of concerns
|
| 115 |
+
- ✅ **Easy Navigation**: Clear folder hierarchy
|
| 116 |
+
- ✅ **Maintainable**: Organized code and documentation
|
| 117 |
+
- ✅ **Scalable**: Easy to add new features
|
| 118 |
+
- ✅ **Professional**: Industry-standard organization
|
| 119 |
+
|
| 120 |
+
## 📊 System Requirements
|
| 121 |
+
|
| 122 |
+
- **Python**: 3.9+
|
| 123 |
+
- **Platform**: macOS with Apple Silicon (M1/M2/M3/M4)
|
| 124 |
+
- **RAM**: 8GB+ recommended
|
| 125 |
+
- **Storage**: 2GB+ for datasets and models
|
| 126 |
+
|
| 127 |
+
## 🔒 Privacy & Security
|
| 128 |
+
|
| 129 |
+
- **Local Processing**: All AI inference runs locally
|
| 130 |
+
- **No Data Storage**: Patient data not permanently stored
|
| 131 |
+
- **HIPAA Compliant**: Privacy-by-design architecture
|
| 132 |
+
- **Secure Models**: No data leakage in model weights
|
| 133 |
+
|
| 134 |
+
## 📞 Support
|
| 135 |
+
|
| 136 |
+
For detailed documentation, see the `docs/` directory:
|
| 137 |
+
- `docs/DOCUMENTATION.md` - Comprehensive system documentation
|
| 138 |
+
- `docs/PROJECT_STRUCTURE.md` - Detailed project organization
|
| 139 |
+
- `docs/README_FETAL.md` - Fetal plane classification guide
|
| 140 |
+
|
| 141 |
+
---
|
| 142 |
+
|
| 143 |
+
*Last Updated: January 2025*
|
| 144 |
+
*Version: 2.0 - Organized Structure*
|
| 145 |
+
*Platform: Apple Silicon Optimized*
|
apps/fetal_plane_app.py
ADDED
|
@@ -0,0 +1,367 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
import os
|
| 3 |
+
import torch
|
| 4 |
+
from PIL import Image
|
| 5 |
+
import numpy as np
|
| 6 |
+
from transformers import ViTImageProcessor, ViTForImageClassification
|
| 7 |
+
import joblib
|
| 8 |
+
import plotly.express as px
|
| 9 |
+
import pandas as pd
|
| 10 |
+
import platform
|
| 11 |
+
|
| 12 |
+
def get_device():
|
| 13 |
+
if torch.backends.mps.is_available() and torch.backends.mps.is_built():
|
| 14 |
+
return torch.device("mps")
|
| 15 |
+
elif torch.cuda.is_available():
|
| 16 |
+
return torch.device("cuda")
|
| 17 |
+
else:
|
| 18 |
+
return torch.device("cpu")
|
| 19 |
+
|
| 20 |
+
def optimize_for_apple_silicon():
|
| 21 |
+
if platform.machine() == 'arm64':
|
| 22 |
+
os.environ['PYTORCH_ENABLE_MPS_FALLBACK'] = '1'
|
| 23 |
+
if torch.backends.mps.is_available():
|
| 24 |
+
try:
|
| 25 |
+
if hasattr(torch.backends.mps, 'empty_cache'):
|
| 26 |
+
torch.backends.mps.empty_cache()
|
| 27 |
+
except AttributeError:
|
| 28 |
+
pass
|
| 29 |
+
|
| 30 |
+
st.set_page_config(
|
| 31 |
+
page_title="Fetal Plane Classification",
|
| 32 |
+
page_icon="🔬",
|
| 33 |
+
layout="wide"
|
| 34 |
+
)
|
| 35 |
+
|
| 36 |
+
with open('../assets/static/css/style.css') as f:
|
| 37 |
+
st.markdown(f'<style>{f.read()}</style>', unsafe_allow_html=True)
|
| 38 |
+
|
| 39 |
+
st.title("🔬 Fetal Ultrasound Plane Classification")
|
| 40 |
+
st.markdown("""
|
| 41 |
+
This AI-powered application classifies fetal ultrasound images into different anatomical planes.
|
| 42 |
+
Upload an ultrasound image to get instant classification results.
|
| 43 |
+
""")
|
| 44 |
+
|
| 45 |
+
@st.cache_resource
|
| 46 |
+
def load_model():
|
| 47 |
+
optimize_for_apple_silicon()
|
| 48 |
+
device = get_device()
|
| 49 |
+
|
| 50 |
+
model_dir = '../models/fetal_plane_model'
|
| 51 |
+
|
| 52 |
+
if not os.path.exists(model_dir):
|
| 53 |
+
st.error(f"Model not found at {model_dir}. Please train the model first.")
|
| 54 |
+
return None, None, None, None
|
| 55 |
+
|
| 56 |
+
try:
|
| 57 |
+
processor = ViTImageProcessor.from_pretrained(model_dir)
|
| 58 |
+
model = ViTForImageClassification.from_pretrained(model_dir)
|
| 59 |
+
model = model.to(device)
|
| 60 |
+
model.eval()
|
| 61 |
+
label_encoder = joblib.load(os.path.join(model_dir, 'label_encoder.pkl'))
|
| 62 |
+
|
| 63 |
+
st.success(f"🚀 Model loaded on {device} ({platform.machine()})")
|
| 64 |
+
return model, processor, label_encoder, device
|
| 65 |
+
except Exception as e:
|
| 66 |
+
st.error(f"Error loading model: {e}")
|
| 67 |
+
return None, None, None, None
|
| 68 |
+
|
| 69 |
+
def predict_image(image, model, processor, label_encoder, device):
|
| 70 |
+
if image.mode != 'RGB':
|
| 71 |
+
image = image.convert('RGB')
|
| 72 |
+
|
| 73 |
+
inputs = processor(images=image, return_tensors="pt")
|
| 74 |
+
inputs = {k: v.to(device) for k, v in inputs.items()}
|
| 75 |
+
|
| 76 |
+
with torch.no_grad():
|
| 77 |
+
outputs = model(**inputs)
|
| 78 |
+
predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
|
| 79 |
+
probabilities = predictions[0].cpu().numpy()
|
| 80 |
+
|
| 81 |
+
predicted_class_idx = np.argmax(probabilities)
|
| 82 |
+
predicted_label = label_encoder.inverse_transform([predicted_class_idx])[0]
|
| 83 |
+
confidence = probabilities[predicted_class_idx]
|
| 84 |
+
|
| 85 |
+
results = []
|
| 86 |
+
for i, prob in enumerate(probabilities):
|
| 87 |
+
label = label_encoder.inverse_transform([i])[0]
|
| 88 |
+
results.append({
|
| 89 |
+
'Class': label,
|
| 90 |
+
'Probability': prob,
|
| 91 |
+
'Percentage': f"{prob*100:.1f}%"
|
| 92 |
+
})
|
| 93 |
+
|
| 94 |
+
results_df = pd.DataFrame(results).sort_values('Probability', ascending=False)
|
| 95 |
+
|
| 96 |
+
return predicted_label, confidence, results_df
|
| 97 |
+
|
| 98 |
+
model, processor, label_encoder, device = load_model()
|
| 99 |
+
|
| 100 |
+
if model is not None:
|
| 101 |
+
st.sidebar.header("Model Information")
|
| 102 |
+
st.sidebar.success("✅ Model loaded successfully")
|
| 103 |
+
st.sidebar.info(f"**Classes:** {len(label_encoder.classes_)}")
|
| 104 |
+
|
| 105 |
+
with st.sidebar.expander("Available Classes"):
|
| 106 |
+
for i, class_name in enumerate(label_encoder.classes_):
|
| 107 |
+
plane, brain_type = class_name.split('_', 1)
|
| 108 |
+
st.write(f"**{plane}**")
|
| 109 |
+
st.write(f"└─ {brain_type}")
|
| 110 |
+
|
| 111 |
+
col1, col2 = st.columns([2, 1])
|
| 112 |
+
|
| 113 |
+
with col1:
|
| 114 |
+
st.header("🔬 Fetal Ultrasound Classification")
|
| 115 |
+
|
| 116 |
+
# Alternative upload method using camera input (bypasses 403 errors)
|
| 117 |
+
st.subheader("📤 Upload Your Image")
|
| 118 |
+
|
| 119 |
+
# Method 1: Camera input (works better than file_uploader)
|
| 120 |
+
camera_image = st.camera_input("📷 Take a photo of your ultrasound image")
|
| 121 |
+
|
| 122 |
+
if camera_image is not None:
|
| 123 |
+
try:
|
| 124 |
+
image = Image.open(camera_image)
|
| 125 |
+
st.image(image, caption="Captured Image", use_column_width=True)
|
| 126 |
+
|
| 127 |
+
if st.button("🔬 Classify Captured Image", type="primary"):
|
| 128 |
+
with st.spinner("Analyzing captured image..."):
|
| 129 |
+
predicted_label, confidence, results_df = predict_image(
|
| 130 |
+
image, model, processor, label_encoder, device
|
| 131 |
+
)
|
| 132 |
+
|
| 133 |
+
st.success("✅ Classification completed!")
|
| 134 |
+
|
| 135 |
+
plane, brain_type = predicted_label.split('_', 1)
|
| 136 |
+
|
| 137 |
+
col_result1, col_result2 = st.columns(2)
|
| 138 |
+
|
| 139 |
+
with col_result1:
|
| 140 |
+
st.metric(
|
| 141 |
+
"🎯 Predicted Plane",
|
| 142 |
+
plane,
|
| 143 |
+
help="Primary anatomical plane detected"
|
| 144 |
+
)
|
| 145 |
+
|
| 146 |
+
with col_result2:
|
| 147 |
+
st.metric(
|
| 148 |
+
"🧠 Brain Classification",
|
| 149 |
+
brain_type,
|
| 150 |
+
help="Specific brain plane type (if applicable)"
|
| 151 |
+
)
|
| 152 |
+
|
| 153 |
+
st.metric(
|
| 154 |
+
"📊 Confidence Score",
|
| 155 |
+
f"{confidence*100:.1f}%",
|
| 156 |
+
help="Model confidence in the prediction"
|
| 157 |
+
)
|
| 158 |
+
|
| 159 |
+
if confidence > 0.8:
|
| 160 |
+
st.success("🟢 High confidence prediction")
|
| 161 |
+
elif confidence > 0.6:
|
| 162 |
+
st.warning("🟡 Moderate confidence prediction")
|
| 163 |
+
else:
|
| 164 |
+
st.error("🔴 Low confidence prediction - manual review recommended")
|
| 165 |
+
|
| 166 |
+
except Exception as e:
|
| 167 |
+
st.error(f"Error processing captured image: {e}")
|
| 168 |
+
|
| 169 |
+
# Method 2: Manual file path input
|
| 170 |
+
st.subheader("📁 Or Enter Image Path")
|
| 171 |
+
|
| 172 |
+
image_path = st.text_input(
|
| 173 |
+
"Enter full path to your ultrasound image:",
|
| 174 |
+
placeholder="/path/to/your/ultrasound_image.png",
|
| 175 |
+
help="Enter the complete file path to your ultrasound image"
|
| 176 |
+
)
|
| 177 |
+
|
| 178 |
+
if image_path and st.button("🔍 Load and Classify"):
|
| 179 |
+
try:
|
| 180 |
+
if os.path.exists(image_path):
|
| 181 |
+
image = Image.open(image_path)
|
| 182 |
+
st.image(image, caption=f"Loaded: {os.path.basename(image_path)}", use_column_width=True)
|
| 183 |
+
|
| 184 |
+
with st.spinner("Analyzing loaded image..."):
|
| 185 |
+
predicted_label, confidence, results_df = predict_image(
|
| 186 |
+
image, model, processor, label_encoder, device
|
| 187 |
+
)
|
| 188 |
+
|
| 189 |
+
st.success("✅ Classification completed!")
|
| 190 |
+
|
| 191 |
+
plane, brain_type = predicted_label.split('_', 1)
|
| 192 |
+
|
| 193 |
+
col_result1, col_result2 = st.columns(2)
|
| 194 |
+
|
| 195 |
+
with col_result1:
|
| 196 |
+
st.metric("🎯 Predicted Plane", plane)
|
| 197 |
+
|
| 198 |
+
with col_result2:
|
| 199 |
+
st.metric("🧠 Brain Classification", brain_type)
|
| 200 |
+
|
| 201 |
+
st.metric("📊 Confidence Score", f"{confidence*100:.1f}%")
|
| 202 |
+
|
| 203 |
+
if confidence > 0.8:
|
| 204 |
+
st.success("🟢 High confidence prediction")
|
| 205 |
+
elif confidence > 0.6:
|
| 206 |
+
st.warning("🟡 Moderate confidence prediction")
|
| 207 |
+
else:
|
| 208 |
+
st.error("🔴 Low confidence prediction - manual review recommended")
|
| 209 |
+
else:
|
| 210 |
+
st.error("File not found. Please check the path and try again.")
|
| 211 |
+
except Exception as e:
|
| 212 |
+
st.error(f"Error loading image: {e}")
|
| 213 |
+
|
| 214 |
+
st.divider()
|
| 215 |
+
|
| 216 |
+
# Alternative method: Sample images
|
| 217 |
+
st.subheader("🧪 Or Test with Sample Images")
|
| 218 |
+
st.info("💡 **Alternative Method** - Choose from dataset images")
|
| 219 |
+
sample_images_dir = '../datasets/FETAL_PLANES_ZENODO/Images'
|
| 220 |
+
|
| 221 |
+
if os.path.exists(sample_images_dir):
|
| 222 |
+
sample_files = [f for f in os.listdir(sample_images_dir) if f.endswith('.png')][:10]
|
| 223 |
+
if sample_files:
|
| 224 |
+
selected_sample = st.selectbox(
|
| 225 |
+
"Choose a sample image to test:",
|
| 226 |
+
[''] + sample_files,
|
| 227 |
+
help="Select from dataset images to test the model"
|
| 228 |
+
)
|
| 229 |
+
|
| 230 |
+
if selected_sample:
|
| 231 |
+
sample_path = os.path.join(sample_images_dir, selected_sample)
|
| 232 |
+
try:
|
| 233 |
+
sample_image = Image.open(sample_path)
|
| 234 |
+
st.image(sample_image, caption=f"Sample: {selected_sample}", use_column_width=True)
|
| 235 |
+
|
| 236 |
+
if st.button("🔬 Classify Sample Image", type="primary"):
|
| 237 |
+
with st.spinner("Analyzing sample image..."):
|
| 238 |
+
predicted_label, confidence, results_df = predict_image(
|
| 239 |
+
sample_image, model, processor, label_encoder, device
|
| 240 |
+
)
|
| 241 |
+
|
| 242 |
+
# Display results
|
| 243 |
+
col1, col2 = st.columns(2)
|
| 244 |
+
|
| 245 |
+
with col1:
|
| 246 |
+
st.success(f"**Predicted Class:** {predicted_label}")
|
| 247 |
+
st.info(f"**Confidence:** {confidence:.1%}")
|
| 248 |
+
|
| 249 |
+
with col2:
|
| 250 |
+
fig = px.bar(
|
| 251 |
+
results_df,
|
| 252 |
+
x='Probability',
|
| 253 |
+
y='Class',
|
| 254 |
+
orientation='h',
|
| 255 |
+
title="Classification Probabilities",
|
| 256 |
+
color='Probability',
|
| 257 |
+
color_continuous_scale='viridis'
|
| 258 |
+
)
|
| 259 |
+
fig.update_layout(height=400)
|
| 260 |
+
st.plotly_chart(fig, use_container_width=True)
|
| 261 |
+
except Exception as e:
|
| 262 |
+
st.error(f"Error loading sample image: {e}")
|
| 263 |
+
|
| 264 |
+
st.divider()
|
| 265 |
+
|
| 266 |
+
st.success("✅ **403 Error Fixed!** Multiple upload methods available - no browser restrictions!")
|
| 267 |
+
|
| 268 |
+
# Add helpful information
|
| 269 |
+
with st.expander("ℹ️ Upload Methods Available"):
|
| 270 |
+
st.markdown("""
|
| 271 |
+
**Three Ways to Upload:**
|
| 272 |
+
|
| 273 |
+
1. **📷 Camera Input**: Take a photo of your ultrasound (works on mobile/desktop)
|
| 274 |
+
2. **📁 File Path**: Enter the full path to your image file
|
| 275 |
+
3. **🧪 Sample Images**: Choose from dataset images below
|
| 276 |
+
|
| 277 |
+
**All methods provide:**
|
| 278 |
+
- **Same AI accuracy**: 91.69% validation accuracy (97-99% on test images)
|
| 279 |
+
- **No 403 errors**: Completely bypasses browser upload restrictions
|
| 280 |
+
- **Instant results**: Fast classification with confidence scores
|
| 281 |
+
|
| 282 |
+
**Supported formats:** PNG, JPG, JPEG
|
| 283 |
+
""")
|
| 284 |
+
|
| 285 |
+
with col2:
|
| 286 |
+
if 'results_df' in locals():
|
| 287 |
+
st.header("📊 Detailed Results")
|
| 288 |
+
|
| 289 |
+
st.subheader("All Class Probabilities")
|
| 290 |
+
|
| 291 |
+
top_5 = results_df.head(5)
|
| 292 |
+
|
| 293 |
+
fig = px.bar(
|
| 294 |
+
top_5,
|
| 295 |
+
x='Probability',
|
| 296 |
+
y='Class',
|
| 297 |
+
orientation='h',
|
| 298 |
+
title="Top 5 Predictions",
|
| 299 |
+
color='Probability',
|
| 300 |
+
color_continuous_scale='viridis'
|
| 301 |
+
)
|
| 302 |
+
fig.update_layout(height=400, showlegend=False)
|
| 303 |
+
st.plotly_chart(fig, use_container_width=True)
|
| 304 |
+
|
| 305 |
+
st.subheader("Probability Table")
|
| 306 |
+
st.dataframe(
|
| 307 |
+
results_df[['Class', 'Percentage']],
|
| 308 |
+
use_container_width=True,
|
| 309 |
+
hide_index=True
|
| 310 |
+
)
|
| 311 |
+
|
| 312 |
+
st.header("📋 Classification Guide")
|
| 313 |
+
|
| 314 |
+
col_guide1, col_guide2 = st.columns(2)
|
| 315 |
+
|
| 316 |
+
with col_guide1:
|
| 317 |
+
st.subheader("🔬 Fetal Planes")
|
| 318 |
+
st.markdown("""
|
| 319 |
+
- **Fetal Brain**: Neural structures and brain anatomy
|
| 320 |
+
- **Fetal Abdomen**: Abdominal organs and structures
|
| 321 |
+
- **Fetal Thorax**: Chest cavity and heart
|
| 322 |
+
- **Fetal Femur**: Thigh bone measurements
|
| 323 |
+
- **Maternal Cervix**: Cervical anatomy
|
| 324 |
+
- **Other**: Non-specific or unclear planes
|
| 325 |
+
""")
|
| 326 |
+
|
| 327 |
+
with col_guide2:
|
| 328 |
+
st.subheader("🧠 Brain Plane Types")
|
| 329 |
+
st.markdown("""
|
| 330 |
+
- **Trans-thalamic**: Through thalamus region
|
| 331 |
+
- **Trans-ventricular**: Through brain ventricles
|
| 332 |
+
- **Trans-cerebellum**: Through cerebellum
|
| 333 |
+
- **Other**: Non-specific brain views
|
| 334 |
+
- **Not A Brain**: Non-brain anatomical planes
|
| 335 |
+
""")
|
| 336 |
+
|
| 337 |
+
st.header("🎯 Model Performance")
|
| 338 |
+
|
| 339 |
+
performance_col1, performance_col2, performance_col3 = st.columns(3)
|
| 340 |
+
|
| 341 |
+
with performance_col1:
|
| 342 |
+
st.metric("Model Architecture", "Vision Transformer (ViT)")
|
| 343 |
+
|
| 344 |
+
with performance_col2:
|
| 345 |
+
st.metric("Training Images", "~12,000")
|
| 346 |
+
|
| 347 |
+
with performance_col3:
|
| 348 |
+
st.metric("Classification Classes", len(label_encoder.classes_) if label_encoder else "N/A")
|
| 349 |
+
|
| 350 |
+
else:
|
| 351 |
+
st.error("❌ Model not available. Please train the model first by running:")
|
| 352 |
+
st.code("python fetal_plane_classifier.py", language="bash")
|
| 353 |
+
|
| 354 |
+
st.header("🚀 Getting Started")
|
| 355 |
+
st.markdown("""
|
| 356 |
+
1. **Train the Model**: Run the training script to create the classification model
|
| 357 |
+
2. **Upload Images**: Use the interface above to upload ultrasound images
|
| 358 |
+
3. **Get Predictions**: Receive instant AI-powered classifications
|
| 359 |
+
4. **Review Results**: Analyze confidence scores and detailed probabilities
|
| 360 |
+
""")
|
| 361 |
+
|
| 362 |
+
st.markdown("""
|
| 363 |
+
---
|
| 364 |
+
**Disclaimer:** This AI model is for research and educational purposes only.
|
| 365 |
+
It should not replace professional medical diagnosis or clinical decision-making.
|
| 366 |
+
Always consult qualified healthcare professionals for medical interpretations.
|
| 367 |
+
""")
|
apps/pregnancy_risk_app.py
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
import pandas as pd
|
| 3 |
+
import numpy as np
|
| 4 |
+
from sklearn.ensemble import RandomForestClassifier
|
| 5 |
+
from sklearn.preprocessing import LabelEncoder
|
| 6 |
+
from sklearn.model_selection import train_test_split
|
| 7 |
+
from sklearn.metrics import accuracy_score
|
| 8 |
+
import joblib
|
| 9 |
+
import os
|
| 10 |
+
|
| 11 |
+
st.set_page_config(
|
| 12 |
+
page_title="Pregnancy Risk Prediction",
|
| 13 |
+
page_icon="🤱",
|
| 14 |
+
layout="wide"
|
| 15 |
+
)
|
| 16 |
+
|
| 17 |
+
with open('../assets/static/css/style.css') as f:
|
| 18 |
+
st.markdown(f'<style>{f.read()}</style>', unsafe_allow_html=True)
|
| 19 |
+
|
| 20 |
+
st.title("🤱 Pregnancy Risk Prediction Model")
|
| 21 |
+
st.markdown("""
|
| 22 |
+
This application predicts pregnancy risk levels based on various health parameters.
|
| 23 |
+
Please enter the patient's information below to get a risk assessment.
|
| 24 |
+
""")
|
| 25 |
+
|
| 26 |
+
@st.cache_data
|
| 27 |
+
def load_and_train_model():
|
| 28 |
+
df = pd.read_csv('../data/Dataset - Updated.csv')
|
| 29 |
+
|
| 30 |
+
df = df.dropna(subset=['Risk Level'])
|
| 31 |
+
|
| 32 |
+
numerical_cols = ['Age', 'Systolic BP', 'Diastolic', 'BS', 'Body Temp', 'BMI', 'Heart Rate']
|
| 33 |
+
for col in numerical_cols:
|
| 34 |
+
if col in df.columns:
|
| 35 |
+
df[col] = df[col].fillna(df[col].median())
|
| 36 |
+
|
| 37 |
+
categorical_cols = ['Previous Complications', 'Preexisting Diabetes', 'Gestational Diabetes', 'Mental Health']
|
| 38 |
+
for col in categorical_cols:
|
| 39 |
+
if col in df.columns:
|
| 40 |
+
df[col] = df[col].fillna(df[col].mode()[0])
|
| 41 |
+
|
| 42 |
+
feature_columns = ['Age', 'Systolic BP', 'Diastolic', 'BS', 'Body Temp', 'BMI',
|
| 43 |
+
'Previous Complications', 'Preexisting Diabetes', 'Gestational Diabetes',
|
| 44 |
+
'Mental Health', 'Heart Rate']
|
| 45 |
+
|
| 46 |
+
X = df[feature_columns]
|
| 47 |
+
y = df['Risk Level']
|
| 48 |
+
|
| 49 |
+
le = LabelEncoder()
|
| 50 |
+
y_encoded = le.fit_transform(y)
|
| 51 |
+
|
| 52 |
+
X_train, X_test, y_train, y_test = train_test_split(X, y_encoded, test_size=0.2, random_state=42, stratify=y_encoded)
|
| 53 |
+
|
| 54 |
+
model = RandomForestClassifier(n_estimators=100, max_depth=10, random_state=42)
|
| 55 |
+
model.fit(X_train, y_train)
|
| 56 |
+
|
| 57 |
+
y_pred = model.predict(X_test)
|
| 58 |
+
accuracy = accuracy_score(y_test, y_pred)
|
| 59 |
+
|
| 60 |
+
return model, le, feature_columns, accuracy, df
|
| 61 |
+
|
| 62 |
+
model, label_encoder, feature_columns, accuracy, df = load_and_train_model()
|
| 63 |
+
|
| 64 |
+
st.sidebar.header("Model Information")
|
| 65 |
+
st.sidebar.metric("Model Accuracy", f"{accuracy:.2%}")
|
| 66 |
+
st.sidebar.metric("Total Samples", len(df))
|
| 67 |
+
st.sidebar.metric("High Risk Cases", len(df[df['Risk Level'] == 'High']))
|
| 68 |
+
st.sidebar.metric("Low Risk Cases", len(df[df['Risk Level'] == 'Low']))
|
| 69 |
+
|
| 70 |
+
st.header("Patient Information")
|
| 71 |
+
|
| 72 |
+
col1, col2 = st.columns(2)
|
| 73 |
+
|
| 74 |
+
with col1:
|
| 75 |
+
st.subheader("Basic Information")
|
| 76 |
+
age = st.number_input("Age", min_value=15, max_value=50, value=25, help="Patient's age in years")
|
| 77 |
+
bmi = st.number_input("BMI", min_value=15.0, max_value=50.0, value=24.0, step=0.1, help="Body Mass Index")
|
| 78 |
+
body_temp = st.number_input("Body Temperature (°F)", min_value=95.0, max_value=105.0, value=98.6, step=0.1)
|
| 79 |
+
|
| 80 |
+
st.subheader("Blood Pressure")
|
| 81 |
+
systolic_bp = st.number_input("Systolic BP", min_value=80, max_value=200, value=120, help="Systolic blood pressure")
|
| 82 |
+
diastolic_bp = st.number_input("Diastolic BP", min_value=50, max_value=120, value=80, help="Diastolic blood pressure")
|
| 83 |
+
|
| 84 |
+
with col2:
|
| 85 |
+
st.subheader("Health Metrics")
|
| 86 |
+
blood_sugar = st.number_input("Blood Sugar", min_value=3.0, max_value=20.0, value=7.0, step=0.1, help="Blood sugar level")
|
| 87 |
+
heart_rate = st.number_input("Heart Rate", min_value=50, max_value=120, value=75, help="Heart rate in BPM")
|
| 88 |
+
|
| 89 |
+
st.subheader("Medical History")
|
| 90 |
+
prev_complications = st.selectbox("Previous Complications", [0, 1], format_func=lambda x: "No" if x == 0 else "Yes")
|
| 91 |
+
preexisting_diabetes = st.selectbox("Preexisting Diabetes", [0, 1], format_func=lambda x: "No" if x == 0 else "Yes")
|
| 92 |
+
gestational_diabetes = st.selectbox("Gestational Diabetes", [0, 1], format_func=lambda x: "No" if x == 0 else "Yes")
|
| 93 |
+
mental_health = st.selectbox("Mental Health Issues", [0, 1], format_func=lambda x: "No" if x == 0 else "Yes")
|
| 94 |
+
|
| 95 |
+
if st.button("Predict Risk Level", type="primary"):
|
| 96 |
+
patient_data = {
|
| 97 |
+
'Age': age,
|
| 98 |
+
'Systolic BP': systolic_bp,
|
| 99 |
+
'Diastolic': diastolic_bp,
|
| 100 |
+
'BS': blood_sugar,
|
| 101 |
+
'Body Temp': body_temp,
|
| 102 |
+
'BMI': bmi,
|
| 103 |
+
'Previous Complications': prev_complications,
|
| 104 |
+
'Preexisting Diabetes': preexisting_diabetes,
|
| 105 |
+
'Gestational Diabetes': gestational_diabetes,
|
| 106 |
+
'Mental Health': mental_health,
|
| 107 |
+
'Heart Rate': heart_rate
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
patient_df = pd.DataFrame([patient_data], columns=feature_columns)
|
| 111 |
+
|
| 112 |
+
prediction = model.predict(patient_df)[0]
|
| 113 |
+
probability = model.predict_proba(patient_df)[0]
|
| 114 |
+
|
| 115 |
+
risk_level = label_encoder.inverse_transform([prediction])[0]
|
| 116 |
+
|
| 117 |
+
st.header("Prediction Results")
|
| 118 |
+
|
| 119 |
+
col1, col2, col3 = st.columns(3)
|
| 120 |
+
|
| 121 |
+
with col1:
|
| 122 |
+
if risk_level == "High":
|
| 123 |
+
st.error(f"🚨 **Risk Level: {risk_level}**")
|
| 124 |
+
else:
|
| 125 |
+
st.success(f"✅ **Risk Level: {risk_level}**")
|
| 126 |
+
|
| 127 |
+
with col2:
|
| 128 |
+
st.metric("High Risk Probability", f"{probability[1]:.1%}")
|
| 129 |
+
|
| 130 |
+
with col3:
|
| 131 |
+
st.metric("Low Risk Probability", f"{probability[0]:.1%}")
|
| 132 |
+
|
| 133 |
+
st.subheader("Risk Factors Analysis")
|
| 134 |
+
|
| 135 |
+
feature_importance = pd.DataFrame({
|
| 136 |
+
'Feature': feature_columns,
|
| 137 |
+
'Importance': model.feature_importances_,
|
| 138 |
+
'Patient_Value': [patient_data[col] for col in feature_columns]
|
| 139 |
+
}).sort_values('Importance', ascending=False)
|
| 140 |
+
|
| 141 |
+
st.write("**Model-based Risk Assessment:**")
|
| 142 |
+
if risk_level == "High":
|
| 143 |
+
st.warning(f"The model predicts **{risk_level} Risk** with {probability[1]:.1%} confidence.")
|
| 144 |
+
else:
|
| 145 |
+
st.success(f"The model predicts **{risk_level} Risk** with {probability[0]:.1%} confidence.")
|
| 146 |
+
|
| 147 |
+
st.write("**Top Contributing Factors (by model importance):**")
|
| 148 |
+
top_features = feature_importance.head(5)
|
| 149 |
+
for _, row in top_features.iterrows():
|
| 150 |
+
importance_pct = row['Importance'] * 100
|
| 151 |
+
st.write(f"• **{row['Feature']}**: {row['Patient_Value']} (Model weight: {importance_pct:.1f}%)")
|
| 152 |
+
|
| 153 |
+
st.subheader("Recommendations")
|
| 154 |
+
if risk_level == "High":
|
| 155 |
+
st.markdown("""
|
| 156 |
+
**High Risk - Immediate Actions Recommended:**
|
| 157 |
+
- Consult with healthcare provider immediately
|
| 158 |
+
- Regular monitoring of blood pressure and blood sugar
|
| 159 |
+
- Follow prescribed medication regimen
|
| 160 |
+
- Maintain regular prenatal appointments
|
| 161 |
+
- Monitor fetal movements and report any concerns
|
| 162 |
+
""")
|
| 163 |
+
else:
|
| 164 |
+
st.markdown("""
|
| 165 |
+
**Low Risk - Preventive Care:**
|
| 166 |
+
- Continue regular prenatal care
|
| 167 |
+
- Maintain healthy diet and exercise routine
|
| 168 |
+
- Monitor weight gain as recommended
|
| 169 |
+
- Take prenatal vitamins as prescribed
|
| 170 |
+
- Report any unusual symptoms to healthcare provider
|
| 171 |
+
""")
|
| 172 |
+
|
| 173 |
+
if st.checkbox("Show Feature Importance"):
|
| 174 |
+
st.subheader("Model Feature Importance")
|
| 175 |
+
|
| 176 |
+
feature_importance = pd.DataFrame({
|
| 177 |
+
'Feature': feature_columns,
|
| 178 |
+
'Importance': model.feature_importances_
|
| 179 |
+
}).sort_values('Importance', ascending=True)
|
| 180 |
+
|
| 181 |
+
st.bar_chart(feature_importance.set_index('Feature'))
|
| 182 |
+
|
| 183 |
+
st.markdown("""
|
| 184 |
+
---
|
| 185 |
+
**Disclaimer:** This prediction model is for educational and informational purposes only.
|
| 186 |
+
It should not replace professional medical advice, diagnosis, or treatment.
|
| 187 |
+
Always consult with qualified healthcare providers for medical decisions.
|
| 188 |
+
""")
|
apps/pregnancy_risk_prediction.py
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
import numpy as np
|
| 3 |
+
from sklearn.model_selection import train_test_split
|
| 4 |
+
from sklearn.ensemble import RandomForestClassifier
|
| 5 |
+
from sklearn.preprocessing import LabelEncoder
|
| 6 |
+
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
|
| 7 |
+
import joblib
|
| 8 |
+
import warnings
|
| 9 |
+
warnings.filterwarnings('ignore')
|
| 10 |
+
|
| 11 |
+
def load_and_preprocess_data(file_path):
|
| 12 |
+
df = pd.read_csv(file_path)
|
| 13 |
+
|
| 14 |
+
df = df.dropna(subset=['Risk Level'])
|
| 15 |
+
|
| 16 |
+
numerical_cols = ['Age', 'Systolic BP', 'Diastolic', 'BS', 'Body Temp', 'BMI', 'Heart Rate']
|
| 17 |
+
for col in numerical_cols:
|
| 18 |
+
if col in df.columns:
|
| 19 |
+
df[col] = df[col].fillna(df[col].median())
|
| 20 |
+
|
| 21 |
+
categorical_cols = ['Previous Complications', 'Preexisting Diabetes', 'Gestational Diabetes', 'Mental Health']
|
| 22 |
+
for col in categorical_cols:
|
| 23 |
+
if col in df.columns:
|
| 24 |
+
df[col] = df[col].fillna(df[col].mode()[0])
|
| 25 |
+
|
| 26 |
+
return df
|
| 27 |
+
|
| 28 |
+
def train_model(df):
|
| 29 |
+
feature_columns = ['Age', 'Systolic BP', 'Diastolic', 'BS', 'Body Temp', 'BMI',
|
| 30 |
+
'Previous Complications', 'Preexisting Diabetes', 'Gestational Diabetes',
|
| 31 |
+
'Mental Health', 'Heart Rate']
|
| 32 |
+
|
| 33 |
+
X = df[feature_columns]
|
| 34 |
+
y = df['Risk Level']
|
| 35 |
+
|
| 36 |
+
le = LabelEncoder()
|
| 37 |
+
y_encoded = le.fit_transform(y)
|
| 38 |
+
|
| 39 |
+
X_train, X_test, y_train, y_test = train_test_split(X, y_encoded, test_size=0.2, random_state=42, stratify=y_encoded)
|
| 40 |
+
|
| 41 |
+
rf_model = RandomForestClassifier(
|
| 42 |
+
n_estimators=100,
|
| 43 |
+
max_depth=10,
|
| 44 |
+
min_samples_split=5,
|
| 45 |
+
min_samples_leaf=2,
|
| 46 |
+
random_state=42
|
| 47 |
+
)
|
| 48 |
+
|
| 49 |
+
rf_model.fit(X_train, y_train)
|
| 50 |
+
|
| 51 |
+
y_pred = rf_model.predict(X_test)
|
| 52 |
+
|
| 53 |
+
accuracy = accuracy_score(y_test, y_pred)
|
| 54 |
+
|
| 55 |
+
print(f"Model Accuracy: {accuracy:.4f}")
|
| 56 |
+
print("\nClassification Report:")
|
| 57 |
+
print(classification_report(y_test, y_pred, target_names=le.classes_))
|
| 58 |
+
|
| 59 |
+
feature_importance = pd.DataFrame({
|
| 60 |
+
'feature': feature_columns,
|
| 61 |
+
'importance': rf_model.feature_importances_
|
| 62 |
+
}).sort_values('importance', ascending=False)
|
| 63 |
+
|
| 64 |
+
print("\nFeature Importance:")
|
| 65 |
+
print(feature_importance)
|
| 66 |
+
|
| 67 |
+
return rf_model, le, feature_columns
|
| 68 |
+
|
| 69 |
+
def predict_risk(model, label_encoder, feature_columns, patient_data):
|
| 70 |
+
patient_df = pd.DataFrame([patient_data], columns=feature_columns)
|
| 71 |
+
|
| 72 |
+
prediction = model.predict(patient_df)[0]
|
| 73 |
+
probability = model.predict_proba(patient_df)[0]
|
| 74 |
+
|
| 75 |
+
risk_level = label_encoder.inverse_transform([prediction])[0]
|
| 76 |
+
|
| 77 |
+
return risk_level, probability
|
| 78 |
+
|
| 79 |
+
def main():
|
| 80 |
+
print("Loading and preprocessing data...")
|
| 81 |
+
df = load_and_preprocess_data('/Users/karthik/Projects/hackathon15092025/data/Dataset - Updated.csv')
|
| 82 |
+
|
| 83 |
+
print(f"Dataset shape: {df.shape}")
|
| 84 |
+
print(f"Risk Level distribution:")
|
| 85 |
+
print(df['Risk Level'].value_counts())
|
| 86 |
+
|
| 87 |
+
print("\nTraining model...")
|
| 88 |
+
model, label_encoder, feature_columns = train_model(df)
|
| 89 |
+
|
| 90 |
+
joblib.dump(model, '/Users/karthik/Projects/hackathon15092025/models/pregnancy_risk_model.pkl')
|
| 91 |
+
joblib.dump(label_encoder, '/Users/karthik/Projects/hackathon15092025/models/label_encoder.pkl')
|
| 92 |
+
joblib.dump(feature_columns, '/Users/karthik/Projects/hackathon15092025/models/feature_columns.pkl')
|
| 93 |
+
print("\nModel saved successfully!")
|
| 94 |
+
|
| 95 |
+
print("\nModel training completed successfully!")
|
| 96 |
+
print("Use the predict_risk() function to make predictions for new patients.")
|
| 97 |
+
|
| 98 |
+
if __name__ == "__main__":
|
| 99 |
+
main()
|
config/requirements.txt
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
pandas==2.0.3
|
| 2 |
+
numpy==1.24.3
|
| 3 |
+
scikit-learn==1.3.0
|
| 4 |
+
streamlit==1.25.0
|
| 5 |
+
joblib==1.3.1
|
data/Dataset - Updated.csv
ADDED
|
@@ -0,0 +1,1206 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Age,Systolic BP,Diastolic,BS,Body Temp,BMI,Previous Complications,Preexisting Diabetes,Gestational Diabetes,Mental Health,Heart Rate,Risk Level
|
| 2 |
+
22,90,60,9,100,18,1,1,0,1,80,High
|
| 3 |
+
22,110,70,7.1,98,20.4,0,0,0,0,74,Low
|
| 4 |
+
27,110,70,7.5,98,23,1,0,0,0,72,Low
|
| 5 |
+
20,100,70,7.2,98,21.2,0,0,0,0,74,Low
|
| 6 |
+
20,90,60,7.5,98,19.7,0,0,0,0,74,Low
|
| 7 |
+
22,120,70,7.01,98,24,0,0,0,0,76,Low
|
| 8 |
+
20,110,70,9,102,17.6,0,1,0,0,78,High
|
| 9 |
+
23,110,80,7,98,21.3,0,0,0,0,74,Low
|
| 10 |
+
22,90,60,6.4,98,22,0,0,0,0,72,Low
|
| 11 |
+
26,110,70,12,100,30.2,1,1,1,1,80,High
|
| 12 |
+
25,100,60,7,98,24.5,0,1,0,0,74,Low
|
| 13 |
+
22,120,70,9.9,101,30,1,0,1,0,84,High
|
| 14 |
+
23,100,60,6.4,98,21,0,0,0,0,66,Low
|
| 15 |
+
19,90,60,6,98,21.5,0,0,0,0,70,Low
|
| 16 |
+
22,100,60,7.1,98,,0,0,0,0,74,Low
|
| 17 |
+
23,90,60,7,98,21,1,0,0,0,72,Low
|
| 18 |
+
18,100,70,7.5,98,18.6,0,1,0,0,74,Low
|
| 19 |
+
20,110,80,7.1,98,19,0,0,0,0,74,Low
|
| 20 |
+
24,110,60,6.5,98,21.2,0,0,0,0,70,Low
|
| 21 |
+
21,110,70,6.6,98,20,0,1,0,1,74,Low
|
| 22 |
+
44,140,100,14,98,25.3,0,1,0,1,88,High
|
| 23 |
+
18,110,70,7,98,19,0,1,0,1,76,Low
|
| 24 |
+
23,100,70,7.5,100,21,0,0,0,1,74,Low
|
| 25 |
+
17,120,80,8,98,19,0,0,0,0,70,Low
|
| 26 |
+
21,100,60,6.2,98,20.4,0,0,0,0,66,Low
|
| 27 |
+
23,120,80,7.1,98,23.8,0,0,0,0,74,Low
|
| 28 |
+
18,90,60,7.3,98,20.2,0,0,0,0,72,Low
|
| 29 |
+
25,120,70,7,98,23.7,0,0,0,0,70,Low
|
| 30 |
+
21,100,60,6.5,98,24.2,0,0,0,0,76,Low
|
| 31 |
+
19,110,70,7,100,21,0,1,0,0,70,Low
|
| 32 |
+
26,140,90,12,101,25,0,1,0,1,80,High
|
| 33 |
+
18,100,70,7,100,18.6,0,0,0,0,76,Low
|
| 34 |
+
28,90,60,6.9,98,24,0,0,0,0,68,Low
|
| 35 |
+
20,110,70,7,98,19.3,0,0,0,0,76,Low
|
| 36 |
+
25,90,60,7.9,98,21.2,0,0,0,0,72,Low
|
| 37 |
+
17,110,80,6.7,98,18.8,0,0,0,0,78,Low
|
| 38 |
+
26,90,60,7,98,23.4,0,1,0,0,74,Low
|
| 39 |
+
24,110,70,7.1,100,22.8,1,0,0,0,78,Low
|
| 40 |
+
19,130,80,8,98,18.5,0,0,0,0,70,Low
|
| 41 |
+
28,150,100,9,98,30.1,0,0,1,0,88,High
|
| 42 |
+
40,150,90,11,100,26.6,1,1,0,1,80,High
|
| 43 |
+
23,90,60,7,98,23,0,0,0,0,70,Low
|
| 44 |
+
18,130,80,6.6,98,18.5,0,0,0,0,74,Low
|
| 45 |
+
17,100,70,6.1,98,18.5,0,0,0,0,78,Low
|
| 46 |
+
37,110,70,7.5,98,23,0,0,0,0,68,Low
|
| 47 |
+
29,120,80,7,98,23.2,0,0,0,0,76,Low
|
| 48 |
+
26,160,100,6.9,98,22.9,0,0,0,1,72,Low
|
| 49 |
+
19,150,100,7.2,98,22.5,0,0,0,1,77,Low
|
| 50 |
+
22,140,90,7,98,21,0,1,0,1,70,Low
|
| 51 |
+
18,120,80,6,98,19.4,0,0,0,1,76,Low
|
| 52 |
+
21,110,70,7.9,98,21,0,0,0,1,72,Low
|
| 53 |
+
34,100,60,14,98,30,1,0,1,1,74,High
|
| 54 |
+
19,110,70,6.7,98,18.6,0,0,0,0,68,Low
|
| 55 |
+
35,160,100,18,98,33,1,1,1,0,60,High
|
| 56 |
+
36,130,90,13,98,26,1,1,0,1,90,High
|
| 57 |
+
32,130,110,15,100,26.6,1,1,0,1,88,High
|
| 58 |
+
25,140,90,11,98,25.2,1,1,0,1,78,High
|
| 59 |
+
38,140,100,17,98,25.7,1,1,0,0,80,High
|
| 60 |
+
48,140,96,19,98,27,0,1,0,0,86,High
|
| 61 |
+
27,120,70,9,101,25.5,0,1,0,0,80,High
|
| 62 |
+
25,90,60,6.9,98,23,0,0,0,0,70,Low
|
| 63 |
+
21,90,60,6.1,98,20,0,0,0,1,72,Low
|
| 64 |
+
19,100,70,6,98,18.9,0,0,0,0,76,Low
|
| 65 |
+
20,100,60,6.6,98,19,0,0,0,0,74,Low
|
| 66 |
+
28,100,70,7,98,23.1,0,0,0,0,70,Low
|
| 67 |
+
29,120,80,7.7,98,24.4,0,0,0,0,76,Low
|
| 68 |
+
19,130,90,9,100,17,0,0,1,0,88,High
|
| 69 |
+
24,180,90,7.6,98,30,0,0,1,0,80,High
|
| 70 |
+
30,140,100,9,98,30.3,1,0,1,1,84,High
|
| 71 |
+
28,160,90,7.9,98,31,0,0,1,1,66,High
|
| 72 |
+
39,140,100,14,98,25,1,1,0,1,78,High
|
| 73 |
+
28,110,70,7,98,24,0,0,0,1,72,Low
|
| 74 |
+
35,90,60,7.8,98,24.7,0,0,0,1,76,Low
|
| 75 |
+
29,120,80,7.1,98,23,0,0,0,1,72,Low
|
| 76 |
+
32,110,70,6.9,98,24.8,0,0,0,0,76,Low
|
| 77 |
+
29,120,80,7.7,98,22,0,0,0,0,70,Low
|
| 78 |
+
18,100,70,5.3,98,18.6,0,0,0,0,72,Low
|
| 79 |
+
24,100,60,6.6,98,20.5,0,0,0,0,78,Low
|
| 80 |
+
30,100,60,7.8,98,24,0,0,0,0,77,Low
|
| 81 |
+
25,90,65,8,100,32,1,0,1,0,62,High
|
| 82 |
+
30,130,90,11,98,25,1,1,0,1,82,High
|
| 83 |
+
36,130,100,14,98,26.7,1,1,0,1,90,High
|
| 84 |
+
18,100,70,5.7,101,17.6,0,0,1,1,88,High
|
| 85 |
+
25,120,80,6.6,98,23,0,0,0,1,74,Low
|
| 86 |
+
20,110,70,6.1,98,21,0,0,0,0,70,Low
|
| 87 |
+
35,100,60,7.9,98,24,0,0,0,0,77,Low
|
| 88 |
+
30,110,70,7.4,98,28,0,0,0,0,70,Low
|
| 89 |
+
24,120,85,6.1,98,23.2,0,0,0,0,76,Low
|
| 90 |
+
31,140,90,17,98,26.6,0,1,0,1,88,High
|
| 91 |
+
18,120,80,5.2,98,18.5,0,0,0,0,74,Low
|
| 92 |
+
20,110,70,5.5,98,19,0,0,0,0,72,Low
|
| 93 |
+
18,110,65,5.3,98,24,0,0,0,0,70,Low
|
| 94 |
+
28,120,80,6.3,98,24.9,0,0,0,0,76,Low
|
| 95 |
+
25,110,70,6,98,24.2,0,0,0,0,70,Low
|
| 96 |
+
39,140,90,18,98,27,1,1,0,0,86,High
|
| 97 |
+
28,180,120,9,98,33,1,0,1,0,88,High
|
| 98 |
+
20,160,90,7.8,100,30,0,1,1,1,90,High
|
| 99 |
+
33,140,90,7.7,98,24,0,0,0,0,74,Low
|
| 100 |
+
41,120,85,18,98,27,1,1,0,1,78,High
|
| 101 |
+
25,140,100,11,98,30.1,0,0,1,1,90,High
|
| 102 |
+
35,140,100,14,98,25.9,1,1,0,1,86,High
|
| 103 |
+
33,150,100,12,98,27.2,0,1,0,1,80,High
|
| 104 |
+
27,150,110,11,98,25,0,1,0,1,85,High
|
| 105 |
+
22,130,90,7.7,97,30.3,0,1,1,1,82,High
|
| 106 |
+
25,140,100,9,98,32.2,0,1,1,1,78,High
|
| 107 |
+
23,140,90,8,98,17,0,1,1,1,76,High
|
| 108 |
+
24,150,100,7.9,98,29.9,1,0,1,1,77,High
|
| 109 |
+
29,150,100,13,98,25,1,1,0,0,82,High
|
| 110 |
+
26,160,100,11,100,26.2,0,1,0,0,90,High
|
| 111 |
+
19,150,100,7,98,18,0,0,1,0,62,High
|
| 112 |
+
22,140,90,7.6,98,31.4,0,0,1,0,86,High
|
| 113 |
+
25,160,100,11,98,25.8,1,1,0,0,88,High
|
| 114 |
+
36,130,90,17,98,25.3,1,1,0,0,66,High
|
| 115 |
+
24,130,110,10,101,32.4,0,0,1,0,78,High
|
| 116 |
+
25,140,90,12,98,31.3,0,0,1,0,82,High
|
| 117 |
+
20,140,100,7.9,98,29.9,0,0,1,0,88,High
|
| 118 |
+
30,140,100,14,98,27.5,1,1,0,1,90,High
|
| 119 |
+
30,140,100,11,98,26.7,1,1,0,1,92,High
|
| 120 |
+
19,130,90,7.5,97,18.4,0,0,1,1,78,High
|
| 121 |
+
24,180,90,9,98,18.2,0,1,0,1,77,High
|
| 122 |
+
28,160,90,9,98,25.4,0,1,0,1,84,High
|
| 123 |
+
39,140,100,18,98,28,1,1,0,1,74,High
|
| 124 |
+
18,140,100,8,98,18.3,0,0,1,1,76,High
|
| 125 |
+
30,140,100,11,97,25.9,0,1,0,1,77,High
|
| 126 |
+
30,130,90,9,98,31.6,0,1,1,0,78,High
|
| 127 |
+
39,130,100,19,98,27,1,1,0,0,80,High
|
| 128 |
+
18,100,70,7,98,17.8,0,0,1,0,86,High
|
| 129 |
+
25,140,90,9,98,30,0,0,1,0,79,High
|
| 130 |
+
38,140,90,16,101,28,0,1,0,0,78,High
|
| 131 |
+
24,180,120,9,100,29,0,1,0,0,76,High
|
| 132 |
+
20,160,90,7.8,98,18,0,0,1,0,77,
|
| 133 |
+
35,150,90,15,98,26.5,1,1,0,0,60,High
|
| 134 |
+
33,160,100,13,98,25.7,1,1,0,0,70,High
|
| 135 |
+
29,130,90,11,97,26.4,1,1,0,1,74,High
|
| 136 |
+
35,140,100,15,98,25,1,1,0,0,79,High
|
| 137 |
+
35,140,90,16,98,27,0,1,0,1,88,High
|
| 138 |
+
30,150,90,12,98,26,0,1,0,0,79,High
|
| 139 |
+
36,170,120,14,98,29,1,1,0,1,90,High
|
| 140 |
+
28,160,120,11,100,27.4,0,1,0,0,92,
|
| 141 |
+
29,110,70,10,98,33,1,0,1,1,80,High
|
| 142 |
+
28,160,90,9,98,32.9,0,0,1,0,78,High
|
| 143 |
+
22,180,140,7.7,98,17.8,1,0,1,1,87,High
|
| 144 |
+
18,140,100,7,98,17,0,0,1,0,88,High
|
| 145 |
+
33,150,100,11,100,,0,0,0,1,84,High
|
| 146 |
+
20,140,90,7.5,98,29,0,0,0,0,80,High
|
| 147 |
+
23,150,90,8,98,26,0,0,0,1,90,High
|
| 148 |
+
22,160,120,7.9,98,28,0,0,0,0,79,High
|
| 149 |
+
25,150,90,8,98,27,1,0,0,1,77,High
|
| 150 |
+
30,150,100,11,101,25.7,1,1,0,0,64,High
|
| 151 |
+
32,150,110,11,98,29.6,1,1,0,1,78,High
|
| 152 |
+
22,130,90,8,98,30.5,0,0,1,1,82,High
|
| 153 |
+
27,140,90,8.6,98,31,0,0,1,1,84,High
|
| 154 |
+
25,140,100,8.4,98,30.3,0,0,1,1,86,High
|
| 155 |
+
35,130,90,16,102,25,1,1,0,1,86,High
|
| 156 |
+
23,180,130,7.8,98,29,1,0,1,1,88,High
|
| 157 |
+
26,140,90,8.3,98,30,1,0,1,1,89,High
|
| 158 |
+
24,120,90,8.1,98,32.9,0,0,1,1,77,High
|
| 159 |
+
25,130,100,8.2,98,33,0,0,1,1,78,High
|
| 160 |
+
25,130,80,8.7,100,25,1,0,0,1,80,High
|
| 161 |
+
28,120,80,9,98,27,1,1,0,1,83,High
|
| 162 |
+
25,130,90,8,98,30,1,0,1,1,84,High
|
| 163 |
+
18,140,100,7,98,33,0,0,1,1,86,High
|
| 164 |
+
23,140,95,7.7,98,31.4,0,0,1,1,88,High
|
| 165 |
+
30,140,90,11,97,25,1,1,0,1,86,High
|
| 166 |
+
36,140,90,17,98,25.2,1,1,0,1,88,High
|
| 167 |
+
18,120,90,7.2,98,27,0,0,0,1,90,High
|
| 168 |
+
21,140,90,7.4,98,28.4,0,0,0,1,78,High
|
| 169 |
+
22,130,90,7.7,98,27,0,0,0,1,80,High
|
| 170 |
+
28,140,80,8.9,99,35,1,0,1,1,86,High
|
| 171 |
+
31,130,80,9,98,29.7,1,1,0,1,88,High
|
| 172 |
+
20,130,80,7,98,27.5,0,0,0,1,82,High
|
| 173 |
+
20,140,80,6.9,98,25,0,0,0,1,78,High
|
| 174 |
+
30,130,90,11,98,28,1,1,0,1,77,High
|
| 175 |
+
28,140,80,9,98,26,1,1,0,1,76,High
|
| 176 |
+
27,130,100,8.8,98,30,1,0,1,1,60,High
|
| 177 |
+
22,140,90,7,98,25,0,0,0,1,62,High
|
| 178 |
+
33,140,80,13,98,26,1,1,0,1,90,High
|
| 179 |
+
22,140,70,7,98,27,0,0,0,1,88,High
|
| 180 |
+
27,130,90,10,101,28,0,1,0,1,87,High
|
| 181 |
+
25,130,90,9.8,98,30.2,0,0,1,1,88,High
|
| 182 |
+
25,130,100,7.8,98,30.6,0,0,1,1,86,High
|
| 183 |
+
33,160,100,12,98,29.3,0,1,0,1,84,High
|
| 184 |
+
32,200,100,11,98,28.5,0,1,0,1,80,High
|
| 185 |
+
35,160,100,14,101,27.4,0,1,0,1,78,High
|
| 186 |
+
25,130,90,7.7,98,30.3,1,0,1,1,79,High
|
| 187 |
+
30,130,90,9.9,98,29.9,1,1,0,1,76,High
|
| 188 |
+
28,140,90,8,98,25.7,0,1,0,1,80,High
|
| 189 |
+
19,140,90,6.9,98,26.5,0,0,0,1,88,High
|
| 190 |
+
25,140,100,7.9,97,25.6,0,0,0,1,88,High
|
| 191 |
+
26,140,80,8,98,33.3,1,0,1,1,79,High
|
| 192 |
+
22,140,90,7.1,98,25,0,0,0,1,80,High
|
| 193 |
+
30,150,100,10,98,26,1,1,0,1,78,High
|
| 194 |
+
33,130,80,12,98,27,0,1,0,1,77,High
|
| 195 |
+
29,180,100,9.7,97,28,0,1,0,1,88,High
|
| 196 |
+
24,160,100,7.8,98,29,0,1,0,1,90,High
|
| 197 |
+
23,100,70,7.1,98,29.8,1,1,0,1,84,High
|
| 198 |
+
34,110,80,14,98,28.4,0,1,0,1,88,High
|
| 199 |
+
23,130,90,8,98,30.5,1,0,1,1,84,High
|
| 200 |
+
38,120,100,17,101,26.9,0,1,0,1,62,High
|
| 201 |
+
28,110,70,5.6,98,23.2,0,0,0,0,72,Low
|
| 202 |
+
22,120,80,4.5,98,19,0,0,0,0,72,Low
|
| 203 |
+
29,110,70,5.8,98,20,0,0,0,0,72,Low
|
| 204 |
+
24,110,80,4.9,98,21,0,0,0,0,72,Low
|
| 205 |
+
28,140,80,6.6,98,22,0,0,0,0,72,Low
|
| 206 |
+
35,110,70,6.9,98,23,0,0,0,0,72,Low
|
| 207 |
+
27,120,80,6,98,24,0,0,0,0,72,Low
|
| 208 |
+
21,130,80,5.6,98,,0,0,0,0,72,Low
|
| 209 |
+
30,140,90,6.8,98,23,0,0,0,0,72,Low
|
| 210 |
+
23,110,70,3.9,98,22,0,1,0,0,72,
|
| 211 |
+
26,100,70,4.7,98,21,0,0,0,0,72,Low
|
| 212 |
+
32,110,70,6.6,98,20,0,0,0,0,72,Low
|
| 213 |
+
29,100,60,6.9,98,21,0,0,0,0,72,Low
|
| 214 |
+
21,100,70,3.6,98,22,0,0,0,0,72,Low
|
| 215 |
+
23,110,70,4.1,98,23,0,0,0,0,72,Low
|
| 216 |
+
28,100,70,5.3,98,22,0,0,0,0,72,Low
|
| 217 |
+
30,110,60,6.9,98,21,0,0,0,0,72,Low
|
| 218 |
+
33,100,60,7,98,20,0,0,0,0,72,Low
|
| 219 |
+
34,100,70,7.01,98,20.4,0,0,0,0,72,Low
|
| 220 |
+
21,100,60,3.9,98,21,0,0,0,0,72,
|
| 221 |
+
31,110,70,7,98,,0,0,0,0,72,Low
|
| 222 |
+
37,110,60,7.2,98,19,0,0,0,0,72,Low
|
| 223 |
+
35,140,80,7,98,20,0,0,0,1,72,Low
|
| 224 |
+
34,120,80,6.9,98,21,0,0,0,1,72,Low
|
| 225 |
+
32,120,70,6.7,98,22,0,0,0,1,72,Low
|
| 226 |
+
38,110,80,7,98,23,0,0,0,1,72,Low
|
| 227 |
+
19,120,70,4.1,98,24,0,0,0,0,76,
|
| 228 |
+
22,110,80,4.4,98,20,0,0,0,0,76,Low
|
| 229 |
+
24,120,70,4.6,98,19,0,0,0,0,76,Low
|
| 230 |
+
25,120,80,4.7,98,18.5,0,0,0,0,76,Low
|
| 231 |
+
22,110,70,4.4,98,20,0,0,0,0,76,Low
|
| 232 |
+
27,110,80,4.9,98,21,0,0,0,0,76,Low
|
| 233 |
+
28,100,60,5.01,98,22,0,0,0,0,76,Low
|
| 234 |
+
21,120,70,4.1,98,23,0,0,0,0,76,Low
|
| 235 |
+
28,110,70,5.7,98,,0,0,0,0,76,Low
|
| 236 |
+
26,100,60,6.02,98,24.1,0,0,0,0,76,Low
|
| 237 |
+
25,120,60,5.9,98,24,0,0,0,0,76,Low
|
| 238 |
+
24,100,70,6.4,98,22.4,0,0,0,0,76,Low
|
| 239 |
+
21,110,70,5.3,98,23,0,0,0,0,76,Low
|
| 240 |
+
27,100,70,6.7,98,20,0,0,0,0,76,Low
|
| 241 |
+
33,100,60,6.9,98,22.8,0,0,0,0,76,Low
|
| 242 |
+
31,100,60,6.6,99,19,0,0,0,0,76,Low
|
| 243 |
+
35,100,70,7,98,20,0,0,0,0,76,Low
|
| 244 |
+
36,100,65,7,98,21,0,0,0,0,76,Low
|
| 245 |
+
32,120,70,6.8,98,23,0,0,0,0,76,Low
|
| 246 |
+
33,110,80,6.7,98,21,0,0,0,0,76,Low
|
| 247 |
+
34,120,80,6,98,24,0,0,0,0,76,Low
|
| 248 |
+
30,130,70,6,98,19,0,0,0,0,76,Low
|
| 249 |
+
32,120,90,6.3,98,19,0,0,0,0,76,Low
|
| 250 |
+
31,115,80,6.5,98,19,0,0,0,0,76,Low
|
| 251 |
+
20,120,80,4,98,20,0,0,0,0,76,Low
|
| 252 |
+
22,110,70,4.3,98,20,0,0,0,0,76,Low
|
| 253 |
+
25,130,100,4.8,98,20,0,0,0,0,76,Low
|
| 254 |
+
29,90,60,5.5,98,20,0,0,0,0,76,Low
|
| 255 |
+
27,100,70,6,98,20,0,0,0,0,76,Low
|
| 256 |
+
21,100,60,4.2,98,21,0,0,0,0,76,Low
|
| 257 |
+
18,110,60,3.9,98,21,0,0,0,0,76,Low
|
| 258 |
+
17,140,80,3.6,98,21,0,0,0,0,76,Low
|
| 259 |
+
33,120,60,6,98,21,0,0,0,1,76,Low
|
| 260 |
+
36,110,60,6.8,98,21,0,0,0,1,76,Low
|
| 261 |
+
35,140,70,6.7,98,22,0,0,0,1,74,Low
|
| 262 |
+
34,130,100,6.6,98,22,0,0,0,1,74,Low
|
| 263 |
+
30,110,70,6.3,98,22,0,0,0,1,74,Low
|
| 264 |
+
41,120,90,7,98,22,0,0,0,0,74,Low
|
| 265 |
+
23,110,80,4.4,98,22,0,0,0,0,74,Low
|
| 266 |
+
23,110,60,4,98,23,0,0,0,0,74,Low
|
| 267 |
+
24,110,70,5,98,23,0,0,0,0,74,Low
|
| 268 |
+
23,130,80,5,98,23,0,0,0,0,74,Low
|
| 269 |
+
26,110,60,5.01,98,23,0,0,0,0,74,Low
|
| 270 |
+
22,120,70,4.8,98,23,0,0,0,0,74,Low
|
| 271 |
+
23,120,80,4.3,98,24,0,0,0,0,74,Low
|
| 272 |
+
21,100,60,3.6,98,24,0,0,0,0,74,Low
|
| 273 |
+
21,120,70,3.4,98,24,0,0,0,0,74,Low
|
| 274 |
+
24,120,80,4.03,98,24,0,0,0,0,74,Low
|
| 275 |
+
29,100,60,5.9,98,24,0,0,0,0,74,Low
|
| 276 |
+
26,120,70,6,98,23.1,0,0,0,0,74,Low
|
| 277 |
+
25,120,80,5.6,98,23.5,0,0,0,0,74,Low
|
| 278 |
+
28,110,70,6.04,98,22.1,0,0,0,0,74,Low
|
| 279 |
+
29,100,60,7,98,24.3,0,1,0,1,74,Low
|
| 280 |
+
30,140,100,6.9,97,22.4,0,0,0,0,74,Low
|
| 281 |
+
32,130,80,6.7,98,24.5,0,0,0,0,74,Low
|
| 282 |
+
28,110,80,6.4,98,24.4,0,0,0,0,74,Low
|
| 283 |
+
27,110,60,6.3,98,24.3,0,0,0,0,74,Low
|
| 284 |
+
30,140,110,6.7,98,24.1,0,0,0,0,74,Low
|
| 285 |
+
26,100,70,6.2,98,24,0,0,0,0,74,Low
|
| 286 |
+
22,120,85,4.1,98,23.9,0,0,0,0,74,Low
|
| 287 |
+
27,110,70,6.5,98,21.2,0,0,0,0,74,Low
|
| 288 |
+
20,110,80,5,98,24.9,0,1,0,0,74,Low
|
| 289 |
+
25,120,90,5.7,98,19,0,0,0,0,74,Low
|
| 290 |
+
18,100,80,3.7,98,19,0,0,0,0,74,Low
|
| 291 |
+
22,110,70,3.6,98,19,0,0,0,0,74,Low
|
| 292 |
+
19,110,80,3.5,98,19,0,0,0,0,74,Low
|
| 293 |
+
25,120,70,4.7,98,21.1,0,0,0,0,74,Low
|
| 294 |
+
28,110,70,6,98,21.2,0,0,0,0,74,Low
|
| 295 |
+
29,120,60,7,98,21.3,0,0,0,0,74,Low
|
| 296 |
+
18,120,70,4,98,21.5,0,0,0,0,74,Low
|
| 297 |
+
17,120,80,4,98,21.6,0,0,0,0,74,Low
|
| 298 |
+
37,110,70,7,98,22.2,0,0,0,0,74,Low
|
| 299 |
+
28,100,65,6.7,98,25.2,0,0,0,0,74,Low
|
| 300 |
+
26,120,90,7,98,26.3,0,0,0,0,74,Low
|
| 301 |
+
19,110,80,3,98,19.7,0,0,0,0,74,Low
|
| 302 |
+
22,100,60,4,98,24.9,0,0,0,0,74,Low
|
| 303 |
+
18,110,60,5,98,24.9,0,0,0,0,74,Low
|
| 304 |
+
21,100,60,3.8,98,24.9,0,0,0,0,74,Low
|
| 305 |
+
34,130,90,6.6,98,24.9,0,1,0,0,74,Low
|
| 306 |
+
19,100,79,3.3,98,21.2,0,1,0,0,74,Low
|
| 307 |
+
25,130,90,5.5,98,21.2,0,0,0,0,74,Low
|
| 308 |
+
36,100,70,6.9,98,21.2,0,0,0,0,77,Low
|
| 309 |
+
28,120,80,6,98,21.2,0,0,0,0,77,Low
|
| 310 |
+
25,120,90,5,98,19,0,0,0,0,77,Low
|
| 311 |
+
36,100,70,7,98,20,0,0,0,0,77,Low
|
| 312 |
+
28,120,80,6.6,98,21,0,0,0,0,77,Low
|
| 313 |
+
26,130,70,6.7,98,22,0,0,0,0,77,Low
|
| 314 |
+
20,100,70,4.7,98,23,0,0,0,0,77,Low
|
| 315 |
+
21,110,80,3.5,98,24,0,0,0,0,77,Low
|
| 316 |
+
20,120,60,3,98,23,0,0,0,0,70,Low
|
| 317 |
+
28,120,80,6,98,22,0,0,0,0,70,Low
|
| 318 |
+
29,140,100,7,98,21,0,0,0,0,70,Low
|
| 319 |
+
30,130,90,7,98,20,0,0,0,0,70,Low
|
| 320 |
+
19,120,60,4,98,19,0,0,0,0,70,Low
|
| 321 |
+
24,100,60,4.4,98,20,0,0,0,0,70,Low
|
| 322 |
+
28,140,110,4.9,98,21,0,0,0,0,70,Low
|
| 323 |
+
39,110,70,7,98,22,0,0,0,0,70,Low
|
| 324 |
+
28,100,60,6.9,98,23,0,0,0,0,70,Low
|
| 325 |
+
24,110,60,4.1,98,24,0,0,0,0,70,Low
|
| 326 |
+
25,80,60,4.5,98,23,0,0,0,0,70,Low
|
| 327 |
+
29,120,80,6.8,98,22,0,0,0,0,70,Low
|
| 328 |
+
19,120,90,3.8,98,21,0,0,0,0,70,Low
|
| 329 |
+
18,120,70,3.5,98,20,0,0,0,0,70,Low
|
| 330 |
+
24,130,70,4.2,98,19,0,0,0,0,70,Low
|
| 331 |
+
30,140,110,6.8,98,18.5,0,0,0,0,70,Low
|
| 332 |
+
18,100,60,3,98,18.9,0,0,0,0,70,Low
|
| 333 |
+
30,115,85,7,98,18.7,0,0,0,0,70,Low
|
| 334 |
+
36,100,70,7,98,18.8,0,0,0,0,70,Low
|
| 335 |
+
18,110,70,4,98,24.5,0,0,0,0,70,Low
|
| 336 |
+
25,105,75,5,98,23,0,0,0,0,70,Low
|
| 337 |
+
31,110,80,6,98,22.5,0,0,0,0,72,Low
|
| 338 |
+
25,120,80,4.9,98,21,0,0,0,0,72,
|
| 339 |
+
25,120,70,5.9,98,20,0,0,0,0,72,
|
| 340 |
+
39,130,80,7,98,19,0,0,0,0,72,Low
|
| 341 |
+
28,90,60,6.7,98,18.7,0,0,0,0,72,Low
|
| 342 |
+
20,120,70,3.6,100,20,0,0,0,0,72,Low
|
| 343 |
+
33,130,80,5.8,98,21,0,0,0,0,72,Low
|
| 344 |
+
29,90,60,6.8,98,22,0,0,0,0,72,Low
|
| 345 |
+
30,120,70,7,98,23,0,0,0,0,72,Low
|
| 346 |
+
20,130,60,4,98,24,0,0,0,0,72,Low
|
| 347 |
+
23,100,60,5,98,23,0,0,0,0,72,Low
|
| 348 |
+
19,120,60,3.5,98,22,0,0,0,0,77,Low
|
| 349 |
+
31,100,70,6.9,98,21,0,0,0,0,77,Low
|
| 350 |
+
25,125,80,5.5,98,20,0,0,0,0,77,Low
|
| 351 |
+
37,100,70,7,98,19,0,0,0,0,77,Low
|
| 352 |
+
21,110,80,3.3,98,20,0,0,0,0,77,Low
|
| 353 |
+
20,120,70,3.5,98,21,0,0,0,0,77,Low
|
| 354 |
+
32,100,60,6.6,98,22,0,0,0,0,77,Low
|
| 355 |
+
26,110,65,6.1,98,23,0,0,0,0,72,Low
|
| 356 |
+
28,120,85,6.5,98,24,0,0,0,0,72,Low
|
| 357 |
+
35,115,75,7,98,24.1,0,0,0,0,72,Low
|
| 358 |
+
28,125,85,5,98,19.6,0,0,0,0,72,Low
|
| 359 |
+
18,130,75,3.01,98,19,0,0,0,0,72,Low
|
| 360 |
+
36,110,85,6,98,20,0,0,0,0,72,Low
|
| 361 |
+
33,125,75,5.7,98,21,0,0,0,0,72,Low
|
| 362 |
+
31,120,70,6.9,98,22,0,0,0,0,72,Low
|
| 363 |
+
29,135,80,6.5,98,23,0,0,0,0,72,Low
|
| 364 |
+
20,120,75,5,98,24,0,0,0,0,72,Low
|
| 365 |
+
30,135,75,6,98,22,0,0,0,0,72,Low
|
| 366 |
+
25,,,5.3,98,19,0,1,0,0,72,Low
|
| 367 |
+
32,100,60,6.7,98,20,0,0,0,0,72,Low
|
| 368 |
+
25,120,70,5.9,98,21,0,0,0,0,72,Low
|
| 369 |
+
22,120,80,4.1,98,22,0,0,0,0,72,Low
|
| 370 |
+
18,120,90,3.9,98,23,0,0,0,0,72,Low
|
| 371 |
+
29,140,80,6.4,98,24,0,0,0,0,72,Low
|
| 372 |
+
28,120,60,6,98,23,0,0,0,0,72,Low
|
| 373 |
+
22,130,60,4,98,22,0,0,0,0,72,Low
|
| 374 |
+
18,130,70,3.7,98,21,0,0,0,0,72,Low
|
| 375 |
+
29,125,65,6.7,98,20,0,0,0,0,72,Low
|
| 376 |
+
28,120,80,6.1,98,19,0,0,0,0,72,Low
|
| 377 |
+
22,100,70,4,98,18.5,0,0,0,0,72,Low
|
| 378 |
+
18,90,70,3,98,18.6,0,0,0,0,72,Low
|
| 379 |
+
28,100,80,6,98,18.7,0,0,0,0,72,Low
|
| 380 |
+
19,115,85,3.4,98,19,0,0,0,0,72,Low
|
| 381 |
+
19,120,60,4.01,98,20,0,1,0,0,72,Low
|
| 382 |
+
28,,,4.6,98,21,0,0,0,0,72,Low
|
| 383 |
+
21,130,90,3.9,98,22,0,0,0,0,72,Low
|
| 384 |
+
23,110,80,3.5,98,23,0,0,0,0,72,Low
|
| 385 |
+
25,100,60,4,98,24,0,0,0,0,72,Low
|
| 386 |
+
24,110,60,3.6,99,23,0,0,0,0,72,Low
|
| 387 |
+
32,115,70,6.7,98,22,0,0,0,0,72,Low
|
| 388 |
+
20,140,110,4.2,98,20,0,0,0,0,72,Low
|
| 389 |
+
17,100,70,3.5,98,21,0,0,0,0,72,Low
|
| 390 |
+
24,110,80,5,98,18.5,0,0,0,0,74,Low
|
| 391 |
+
33,120,70,6,98,19,0,0,0,0,74,Low
|
| 392 |
+
26,120,70,4,98,20,0,0,0,1,74,Low
|
| 393 |
+
28,140,100,6.7,98,21,0,0,0,1,74,Low
|
| 394 |
+
19,100,70,3.9,98,22,0,0,0,1,74,Low
|
| 395 |
+
32,125,75,6.9,98,23,0,0,0,1,74,Low
|
| 396 |
+
24,90,70,4.5,98,24,0,0,0,1,74,Low
|
| 397 |
+
26,120,80,4.8,98,23,0,0,0,1,74,Low
|
| 398 |
+
23,120,70,4.9,98,22,0,0,0,1,74,Low
|
| 399 |
+
21,130,80,3.4,98,21,0,0,0,1,74,Low
|
| 400 |
+
20,130,70,3.6,98,20,0,0,0,0,74,Low
|
| 401 |
+
40,100,60,7,98,19,0,0,0,0,74,Low
|
| 402 |
+
39,90,60,7,98,20,0,0,0,0,74,Low
|
| 403 |
+
37,120,70,6.9,98,21,0,0,0,0,74,Low
|
| 404 |
+
31,100,70,6.6,98,24,0,0,0,0,74,Low
|
| 405 |
+
27,120,60,5.9,98,23,0,0,0,0,74,Low
|
| 406 |
+
23,110,90,4.8,98,22,0,0,0,0,74,Low
|
| 407 |
+
22,130,95,4.4,98,24.4,0,0,0,0,74,Low
|
| 408 |
+
27,140,90,5.7,98,22,0,0,0,0,74,Low
|
| 409 |
+
19,130,100,4.1,98,23,0,0,0,0,74,Low
|
| 410 |
+
20,110,80,4,98,24,0,0,0,0,74,Low
|
| 411 |
+
33,,100,6.7,98,21,0,0,0,0,74,Low
|
| 412 |
+
32,135,95,7,98,20,0,0,0,0,74,Low
|
| 413 |
+
23,130,65,5,98,19,0,0,0,0,74,Low
|
| 414 |
+
26,110,70,5.5,98,18.5,0,0,0,0,74,Low
|
| 415 |
+
25,120,80,5,98,18.9,0,0,0,0,74,Low
|
| 416 |
+
20,110,60,4,98,19,0,0,0,0,70,Low
|
| 417 |
+
21,110,70,4.01,98,20,0,0,0,0,70,Low
|
| 418 |
+
21,100,60,3.9,98,21,0,0,0,0,70,Low
|
| 419 |
+
23,110,70,4.4,98,22,0,0,0,0,70,Low
|
| 420 |
+
30,110,60,5.9,97,23,0,0,0,0,70,Low
|
| 421 |
+
21,110,60,4,98,24,0,0,0,0,70,Low
|
| 422 |
+
28,110,70,6.7,98,23,0,0,0,0,70,Low
|
| 423 |
+
24,120,80,5.5,98,22,0,0,0,0,70,Low
|
| 424 |
+
20,110,80,4,98,21,0,0,0,0,70,Low
|
| 425 |
+
25,100,70,5.5,98,20,0,0,0,0,70,Low
|
| 426 |
+
24,100,60,5.2,98,19,0,0,0,0,70,Low
|
| 427 |
+
30,120,80,6,98,19,0,0,0,0,70,Low
|
| 428 |
+
28,110,80,5.7,98,19,0,0,0,0,70,Low
|
| 429 |
+
24,110,60,4.8,98,19,0,0,0,0,70,Low
|
| 430 |
+
20,130,80,3.6,98,19,0,0,0,0,70,Low
|
| 431 |
+
31,130,80,6.7,98,19,0,0,0,0,74,Low
|
| 432 |
+
28,140,80,7,98,20,0,0,0,0,74,Low
|
| 433 |
+
22,130,90,4,98,20,0,0,0,0,74,Low
|
| 434 |
+
21,120,90,3.9,98,20,0,0,0,0,74,Low
|
| 435 |
+
18,120,90,3.3,98,20,0,0,0,0,74,Low
|
| 436 |
+
30,140,90,6.6,98,20,0,0,0,0,74,Low
|
| 437 |
+
30,140,95,7,98,20,0,0,0,0,74,Low
|
| 438 |
+
18,140,100,3.7,98,21,0,0,0,0,74,Low
|
| 439 |
+
19,110,70,3.6,98,21,0,0,0,0,74,Low
|
| 440 |
+
22,90,60,4.01,98,21,0,0,0,0,74,Low
|
| 441 |
+
21,110,60,4,98,21,0,0,0,0,74,Low
|
| 442 |
+
25,100,60,5,98,21,0,0,0,0,74,Low
|
| 443 |
+
32,120,70,6,98,21,0,0,0,0,74,Low
|
| 444 |
+
28,110,60,6.1,98,21,0,0,0,0,74,Low
|
| 445 |
+
24,110,70,5.3,98,22,0,0,0,0,74,Low
|
| 446 |
+
23,130,70,5.2,98,22,0,0,0,0,74,Low
|
| 447 |
+
29,85,65,6,98,22,0,1,0,0,72,Low
|
| 448 |
+
21,95,65,4.9,98,22,0,0,0,0,72,Low
|
| 449 |
+
34,110,70,7,98,22,0,1,0,0,72,Low
|
| 450 |
+
30,140,100,6.9,98,22,0,0,0,0,72,Low
|
| 451 |
+
17,110,60,3.4,98,23,0,0,0,0,72,Low
|
| 452 |
+
30,100,60,6,98,23,0,0,0,0,72,Low
|
| 453 |
+
27,120,60,5.6,98,23,0,0,0,0,72,Low
|
| 454 |
+
20,120,70,4,98,23,0,0,0,0,72,Low
|
| 455 |
+
23,120,70,4.4,99,23,0,0,0,0,72,Low
|
| 456 |
+
18,110,70,3.7,98,23,0,0,0,0,72,Low
|
| 457 |
+
30,105,65,7,98,23,0,0,0,0,72,Low
|
| 458 |
+
25,115,75,5.9,98,24,0,0,0,0,72,Low
|
| 459 |
+
20,110,60,4,98,24,0,0,0,0,72,Low
|
| 460 |
+
25,130,80,4.4,98,24,0,0,0,0,72,Low
|
| 461 |
+
30,140,90,6,98,24,0,0,0,0,72,Low
|
| 462 |
+
25,140,90,5.5,98,24,0,0,0,0,72,Low
|
| 463 |
+
29,140,90,6.9,98,24,0,0,0,0,72,Low
|
| 464 |
+
25,140,100,5.7,98,18.5,0,0,0,0,72,Low
|
| 465 |
+
27,130,100,5.6,98,18.5,0,0,0,0,72,Low
|
| 466 |
+
23,120,85,4.9,98,18.5,0,0,0,0,72,Low
|
| 467 |
+
22,160,120,4.1,98,18.5,0,0,0,0,72,Low
|
| 468 |
+
19,100,60,3.9,98,18.5,0,0,0,0,72,Low
|
| 469 |
+
24,110,70,4.3,98,18.5,0,0,0,0,70,Low
|
| 470 |
+
28,120,80,5.7,98,22.9,0,0,0,0,70,Low
|
| 471 |
+
36,120,80,7,98,22.9,0,0,0,0,70,Low
|
| 472 |
+
33,130,75,6.8,98,22.9,0,0,0,0,70,Low
|
| 473 |
+
28,110,70,5.07,98,22.9,0,0,0,0,70,Low
|
| 474 |
+
36,140,90,6.09,97,22.9,0,0,0,0,70,Low
|
| 475 |
+
28,130,80,6.6,98,22.9,0,0,0,0,70,Low
|
| 476 |
+
26,125,75,6,98,21.3,0,0,0,0,70,Low
|
| 477 |
+
30,115,75,7,98,21.3,0,0,0,0,70,Low
|
| 478 |
+
18,120,80,3,98,21.3,0,0,0,0,70,Low
|
| 479 |
+
29,110,70,6,98,21.3,0,0,0,0,70,Low
|
| 480 |
+
21,90,60,5,98,21.3,0,0,0,0,70,Low
|
| 481 |
+
325,100,65,6.1,98,21.3,0,0,0,0,66,Low
|
| 482 |
+
35,100,70,6.1,98,24.7,0,0,0,0,66,Low
|
| 483 |
+
22,120,85,6.1,98,24.7,0,0,0,0,88,Low
|
| 484 |
+
23,120,90,6.1,98,24.7,0,0,0,0,60,Low
|
| 485 |
+
25,90,70,6.1,98,24.7,0,0,0,0,80,Low
|
| 486 |
+
30,120,80,6.1,98,24.7,0,0,0,0,70,Low
|
| 487 |
+
23,120,90,6.1,98,23.9,0,0,0,0,70,Low
|
| 488 |
+
32,120,90,7.5,98,23.9,0,0,0,0,70,Low
|
| 489 |
+
42,120,80,7.5,98,23.9,0,0,0,0,70,Low
|
| 490 |
+
23,90,60,7.5,98,23.9,0,0,0,0,76,Low
|
| 491 |
+
15,76,49,7.5,98,23.9,0,0,0,0,77,Low
|
| 492 |
+
15,120,80,7,98,21.6,0,0,0,0,70,Low
|
| 493 |
+
25,120,80,7,98,21.6,0,0,0,0,66,Low
|
| 494 |
+
22,100,65,7,98,21.6,0,0,0,0,80,Low
|
| 495 |
+
35,100,70,7,98,21.6,0,0,0,0,60,Low
|
| 496 |
+
19,120,85,7,98,21.6,0,0,0,0,60,Low
|
| 497 |
+
25,120,80,6.8,98,21.6,0,0,0,0,66,Low
|
| 498 |
+
48,140,90,15,98,21.6,0,0,0,0,90,Low
|
| 499 |
+
25,140,100,6.8,98,21.6,0,0,0,0,80,Low
|
| 500 |
+
19,120,60,5.01,98,19.2,0,0,0,0,74,Low
|
| 501 |
+
23,140,90,9.8,98,30,0,0,1,1,80,High
|
| 502 |
+
34,85,60,11,102,25,1,1,0,1,86,High
|
| 503 |
+
50,140,90,15,98,29,1,1,0,1,90,High
|
| 504 |
+
25,140,100,6.8,98,18,0,0,0,1,80,High
|
| 505 |
+
42,140,100,18,98,26,1,1,0,1,90,High
|
| 506 |
+
32,140,100,7.9,98,25,1,0,0,1,78,High
|
| 507 |
+
50,140,95,17,98,28,0,1,0,1,60,High
|
| 508 |
+
38,135,60,7.9,101,30.7,0,0,1,1,86,High
|
| 509 |
+
39,90,70,9,98,29.9,0,1,0,1,80,High
|
| 510 |
+
30,140,100,15,98,25.1,1,1,0,1,70,High
|
| 511 |
+
63,140,90,15,98,26.9,0,1,0,1,90,High
|
| 512 |
+
25,140,100,7.9,98,27.3,1,0,0,1,80,High
|
| 513 |
+
30,120,80,7.9,101,30,0,0,1,0,76,High
|
| 514 |
+
55,140,100,18,98,26,0,1,0,0,90,High
|
| 515 |
+
32,140,100,7.9,98,31,0,0,1,0,78,High
|
| 516 |
+
30,140,100,15,98,29,0,1,0,0,70,High
|
| 517 |
+
48,120,80,11,98,28,0,1,0,0,88,High
|
| 518 |
+
49,140,90,15,98,27,0,1,0,0,90,High
|
| 519 |
+
25,140,100,7.5,98,26,0,0,0,0,80,High
|
| 520 |
+
55,129,85,7.5,98,25,0,0,0,0,88,Low
|
| 521 |
+
25,100,90,7.5,98,26,0,0,0,0,76,Low
|
| 522 |
+
35,120,80,7.5,98,27,0,0,0,0,80,Low
|
| 523 |
+
21,90,65,7.5,98,28,0,0,0,0,76,Low
|
| 524 |
+
18,90,60,7.5,98,29,0,0,0,0,70,Low
|
| 525 |
+
21,120,80,7.5,98,28,0,0,0,0,76,Low
|
| 526 |
+
16,100,70,7.2,98,27,0,0,0,0,80,Low
|
| 527 |
+
19,120,75,7.2,98,26,0,0,0,0,66,Low
|
| 528 |
+
28,115,60,7.8,101,25,0,0,0,0,86,Low
|
| 529 |
+
50,120,80,7.8,98,25.6,0,0,0,0,70,Low
|
| 530 |
+
19,90,70,7.8,98,25.7,0,1,0,0,80,Low
|
| 531 |
+
30,120,80,7.8,98,25.8,0,0,0,0,70,Low
|
| 532 |
+
31,120,60,6.1,98,26,0,0,0,0,76,Low
|
| 533 |
+
23,120,70,7.8,98,25,0,0,0,0,70,Low
|
| 534 |
+
29,130,70,7.8,98,27,0,0,0,0,78,Low
|
| 535 |
+
32,120,90,7.8,98,25,0,0,0,0,70,Low
|
| 536 |
+
42,120,80,7.8,98,28,0,0,0,0,70,Low
|
| 537 |
+
23,90,60,7.8,98,29,0,1,0,0,76,Low
|
| 538 |
+
19,120,80,7,98,28,0,0,0,0,70,Low
|
| 539 |
+
15,76,49,7.8,98,18,0,0,0,0,77,Low
|
| 540 |
+
20,120,75,7.8,98,18,0,0,0,0,70,Low
|
| 541 |
+
48,120,80,11,98,17,1,1,0,1,88,High
|
| 542 |
+
15,120,80,7.8,98,18,0,0,0,0,70,Low
|
| 543 |
+
25,120,80,7.8,98,18.4,0,0,0,0,66,Low
|
| 544 |
+
22,100,65,7.8,98,24.7,0,0,0,0,80,Low
|
| 545 |
+
12,120,95,7.8,98,25,0,0,0,0,68,Low
|
| 546 |
+
35,100,70,7.8,98,26,0,0,0,0,70,Low
|
| 547 |
+
19,120,85,7.8,102,18,0,0,1,1,60,High
|
| 548 |
+
60,90,65,6.8,98,29,0,0,0,0,77,Low
|
| 549 |
+
23,115,75,4.8,98,25,0,0,0,0,72,Low
|
| 550 |
+
33,130,90,6,97,20,0,0,0,0,74,Low
|
| 551 |
+
22,100,65,4.8,98,21,0,0,0,0,88,Low
|
| 552 |
+
32,120,95,6.8,98,22,0,0,0,0,68,Low
|
| 553 |
+
35,100,70,6.8,98,23,0,0,0,0,66,Low
|
| 554 |
+
19,120,90,6.8,98,24,0,0,0,0,72,Low
|
| 555 |
+
60,90,65,6.8,98,19,0,1,0,0,77,Low
|
| 556 |
+
55,120,90,6.8,98,18.6,0,0,0,0,78,Low
|
| 557 |
+
50,130,100,16,102,30,1,1,0,0,86,High
|
| 558 |
+
27,120,90,6.8,98,24,0,0,0,0,68,Low
|
| 559 |
+
60,140,90,12,98,34,0,1,1,0,87,High
|
| 560 |
+
55,100,70,6.8,98,24.5,0,0,0,0,76,Low
|
| 561 |
+
60,140,80,16,98,26,0,1,0,1,60,High
|
| 562 |
+
19,120,90,5,102,17,0,0,0,1,90,High
|
| 563 |
+
17,140,100,6.8,103,16,0,0,0,1,86,High
|
| 564 |
+
60,120,80,6.8,98,24.9,0,0,0,1,77,Low
|
| 565 |
+
22,100,65,6.8,98,22,0,0,0,1,80,Low
|
| 566 |
+
36,140,100,13,102,26,1,1,0,1,86,High
|
| 567 |
+
22,90,60,6.8,98,22,0,0,0,0,77,Low
|
| 568 |
+
25,120,100,6.8,98,24,0,0,0,0,66,Low
|
| 569 |
+
35,100,60,15,98,26,1,1,0,0,80,High
|
| 570 |
+
40,140,100,13,101,26.8,1,1,0,1,66,High
|
| 571 |
+
27,120,70,6.8,98,22,0,0,0,0,77,Low
|
| 572 |
+
36,140,100,6.8,98,23,0,0,0,0,76,Low
|
| 573 |
+
22,90,60,6.8,98,24,0,0,0,0,77,Low
|
| 574 |
+
25,120,100,6.8,98,21,0,0,0,0,66,Low
|
| 575 |
+
35,100,60,15,98,27.6,1,1,0,1,80,High
|
| 576 |
+
40,140,100,13,101,28.7,1,1,0,1,66,High
|
| 577 |
+
27,120,70,6.8,98,24,0,0,0,0,77,Low
|
| 578 |
+
27,120,70,6.8,98,23,0,0,0,0,77,Low
|
| 579 |
+
65,130,80,15,98,29,0,1,0,0,86,High
|
| 580 |
+
35,140,80,13,98,31,0,0,1,0,80,High
|
| 581 |
+
29,90,70,10,98,31.5,1,0,1,0,80,High
|
| 582 |
+
30,120,80,6.8,98,20,0,0,0,0,70,Low
|
| 583 |
+
35,120,60,6.1,98,21,0,0,0,0,76,Low
|
| 584 |
+
23,140,90,6.8,98,22,0,0,0,0,70,Low
|
| 585 |
+
23,130,70,6.8,98,23,0,0,0,0,78,Low
|
| 586 |
+
35,85,60,11,102,26,0,1,0,0,86,High
|
| 587 |
+
32,120,90,6.8,98,22,0,0,0,0,70,Low
|
| 588 |
+
43,130,80,18,98,28,1,1,0,0,60,High
|
| 589 |
+
23,99,60,6.8,98,20,0,0,0,0,76,Low
|
| 590 |
+
19,120,80,5,98,21,0,0,0,0,70,Low
|
| 591 |
+
15,76,49,4.9,98,22,0,0,0,0,77,Low
|
| 592 |
+
30,120,75,6.8,98,23,0,0,0,0,70,Low
|
| 593 |
+
48,120,80,11,98,29,1,1,0,1,,High
|
| 594 |
+
15,120,80,6.8,98,23,0,0,0,0,70,Low
|
| 595 |
+
48,140,90,15,98,,0,1,0,1,90,High
|
| 596 |
+
25,140,100,6.8,98,26,0,0,1,1,80,High
|
| 597 |
+
29,100,70,6.8,98,20,0,0,0,0,80,Low
|
| 598 |
+
32,120,80,6.8,98,21,0,0,0,0,70,Low
|
| 599 |
+
35,120,60,6.1,98,22,0,0,0,0,76,Low
|
| 600 |
+
23,140,90,6.8,98,23,0,0,0,0,70,Low
|
| 601 |
+
23,130,70,6.8,98,24,0,0,0,0,78,Low
|
| 602 |
+
34,85,60,11,102,26.6,1,1,0,0,86,High
|
| 603 |
+
32,120,90,6.8,98,21,0,0,0,0,70,Low
|
| 604 |
+
42,130,80,18,98,29,0,1,0,1,78,High
|
| 605 |
+
23,90,60,6.8,98,19,0,0,0,1,76,Low
|
| 606 |
+
19,120,80,4,98,20,0,0,0,0,70,Low
|
| 607 |
+
15,76,49,3.6,98,21,0,0,0,0,77,Low
|
| 608 |
+
20,120,75,6.8,98,22,0,0,0,0,70,Low
|
| 609 |
+
48,120,80,11,98,23,0,0,0,0,78,Low
|
| 610 |
+
15,120,80,6.8,98,24,0,0,0,0,70,Low
|
| 611 |
+
50,140,90,15,98,28.9,1,1,0,1,90,High
|
| 612 |
+
23,120,60,4.1,98,20.9,0,0,0,0,72,Low
|
| 613 |
+
48,120,80,11,98,29.9,1,1,0,1,88,High
|
| 614 |
+
30,120,80,6.9,98,20,0,0,0,0,76,Low
|
| 615 |
+
18,120,80,6.9,98,21,0,0,0,0,76,Low
|
| 616 |
+
17,90,60,6.9,98,22,0,0,0,0,76,Low
|
| 617 |
+
17,90,63,6.9,98,23,0,0,0,0,70,Low
|
| 618 |
+
25,120,90,6.7,98,24,0,0,0,0,70,Low
|
| 619 |
+
17,120,80,6.7,98,23,0,0,0,0,76,Low
|
| 620 |
+
13,90,65,7.9,98,22,0,0,0,0,80,Low
|
| 621 |
+
31,120,60,6.1,98,21,0,0,0,0,76,Low
|
| 622 |
+
29,130,70,6.1,98,20,0,0,0,0,78,Low
|
| 623 |
+
19,120,80,7,98,19,0,0,0,0,70,Low
|
| 624 |
+
28,85,60,6,97,20,0,0,0,0,86,Low
|
| 625 |
+
50,140,80,6.7,98,21,0,0,0,0,70,Low
|
| 626 |
+
29,90,70,6.7,98,22,0,0,0,0,80,Low
|
| 627 |
+
31,120,60,6.1,98,23,0,0,0,0,76,Low
|
| 628 |
+
29,130,70,6.7,98,24,0,0,0,0,78,Low
|
| 629 |
+
17,85,60,4,102,22,0,1,0,0,76,Low
|
| 630 |
+
19,120,80,7,98,23,0,0,0,0,70,Low
|
| 631 |
+
20,110,60,7,100,21,0,0,0,0,70,Low
|
| 632 |
+
19,120,80,7,98,20,0,0,0,0,70,Low
|
| 633 |
+
20,120,75,7.01,100,19,0,0,0,0,70,Low
|
| 634 |
+
48,120,80,11,98,27.9,1,1,0,0,88,High
|
| 635 |
+
30,120,80,6.9,98,20,0,0,0,0,76,Low
|
| 636 |
+
18,120,80,6.9,98,21,0,0,0,0,76,Low
|
| 637 |
+
17,90,60,6.9,98,22,0,0,0,0,76,Low
|
| 638 |
+
17,90,63,6.9,98,23,0,0,0,0,70,Low
|
| 639 |
+
25,120,90,6.7,98,24,0,0,0,0,80,Low
|
| 640 |
+
17,120,80,6.7,102,21,0,0,0,0,76,Low
|
| 641 |
+
13,90,65,7.9,101,22,0,0,0,0,80,Low
|
| 642 |
+
31,120,60,6.1,98,19,0,0,0,0,76,Low
|
| 643 |
+
29,130,70,6.1,98,18,0,0,0,0,78,Low
|
| 644 |
+
19,120,80,7,98,20,0,0,0,0,70,Low
|
| 645 |
+
28,85,60,9,101,27,1,1,0,1,86,High
|
| 646 |
+
50,140,80,6.7,98,24,0,0,0,0,70,Low
|
| 647 |
+
29,90,70,6.7,98,23,0,0,0,0,80,Low
|
| 648 |
+
31,120,60,6.1,98,,0,0,0,0,76,Low
|
| 649 |
+
29,130,70,6.7,98,18.6,0,0,0,0,78,Low
|
| 650 |
+
17,85,60,9,102,17.3,0,0,1,1,86,High
|
| 651 |
+
19,120,80,7,98,24.4,0,0,0,0,70,Low
|
| 652 |
+
20,110,60,7,100,23.3,0,0,0,0,70,Low
|
| 653 |
+
32,120,65,6,101,22.3,0,0,0,0,76,Low
|
| 654 |
+
26,85,60,6,101,21.5,0,0,0,0,70,Low
|
| 655 |
+
29,130,70,7.7,98,19,0,0,0,0,78,Low
|
| 656 |
+
19,120,80,7,98,20.4,0,0,0,0,70,Low
|
| 657 |
+
54,130,70,12,98,19.6,0,0,0,0,67,Low
|
| 658 |
+
44,120,90,16,98,28.9,1,1,0,1,89,High
|
| 659 |
+
23,130,70,6.9,98,19,0,0,0,0,70,Low
|
| 660 |
+
22,85,60,6.9,98,20,0,0,0,0,76,Low
|
| 661 |
+
55,120,90,7,98,21,0,0,0,0,70,Low
|
| 662 |
+
35,120,80,6.9,98,22,0,0,0,0,78,Low
|
| 663 |
+
21,90,60,6.9,98,23,0,0,0,0,86,Low
|
| 664 |
+
16,90,65,6.9,98,24,0,0,0,0,76,Low
|
| 665 |
+
33,115,65,7,98,23,0,0,0,0,70,Low
|
| 666 |
+
12,95,60,6.9,98,22,0,0,0,0,65,Low
|
| 667 |
+
28,120,90,6.9,98,21,0,0,0,0,70,Low
|
| 668 |
+
21,90,65,6.9,98,20,0,0,0,0,76,Low
|
| 669 |
+
18,90,60,6.9,98,19,0,0,0,0,70,Low
|
| 670 |
+
21,120,80,6.9,98,18.5,0,0,0,0,76,Low
|
| 671 |
+
16,100,70,6.9,98,18.6,0,0,0,0,80,Low
|
| 672 |
+
19,120,75,6.9,98,18.9,0,0,0,0,66,Low
|
| 673 |
+
23,100,85,6.9,98,19,0,0,0,0,66,Low
|
| 674 |
+
22,120,90,7.8,98,24,0,0,0,0,82,Low
|
| 675 |
+
60,120,85,15,98,29.6,1,1,0,1,60,High
|
| 676 |
+
13,90,65,6.8,101,19.4,0,0,0,1,80,Low
|
| 677 |
+
23,120,90,6.8,98,19.4,0,0,0,1,60,Low
|
| 678 |
+
28,115,60,6.8,101,19.4,0,0,0,1,76,Low
|
| 679 |
+
50,120,80,6.8,98,24.5,0,0,0,0,70,Low
|
| 680 |
+
29,130,70,6.8,98,20,0,0,0,0,78,Low
|
| 681 |
+
19,120,80,7,98,21,0,0,0,0,70,Low
|
| 682 |
+
19,120,85,7.8,98,22,0,0,0,0,60,Low
|
| 683 |
+
60,90,65,6.8,98,23,0,0,0,0,77,Low
|
| 684 |
+
55,120,90,6.8,98,24,0,0,0,0,66,Low
|
| 685 |
+
25,120,80,6.8,98,21,0,0,0,0,66,Low
|
| 686 |
+
12,120,95,6.8,98,23,0,0,0,0,60,Low
|
| 687 |
+
35,100,70,6.8,98,,0,0,0,0,60,
|
| 688 |
+
19,120,90,6.8,98,18.5,0,0,0,0,60,Low
|
| 689 |
+
60,90,65,6.8,98,24,0,0,0,0,77,Low
|
| 690 |
+
50,130,80,16,102,27.7,0,1,0,1,88,High
|
| 691 |
+
27,120,90,6.8,102,24.4,0,0,0,0,68,Low
|
| 692 |
+
55,100,70,6.8,101,24.4,0,0,0,0,80,Low
|
| 693 |
+
12,120,90,6.8,98,24.4,0,0,0,0,80,Low
|
| 694 |
+
60,120,80,6.8,98,24.4,0,0,0,0,77,Low
|
| 695 |
+
25,120,100,6.8,98,24.4,0,0,0,0,60,Low
|
| 696 |
+
22,90,60,6.8,98,24.4,0,0,0,0,77,Low
|
| 697 |
+
30,120,80,6.8,98,24.4,0,0,0,0,70,Low
|
| 698 |
+
35,120,60,6.1,98,24.4,0,0,0,0,76,Low
|
| 699 |
+
23,130,70,6.8,98,24.4,0,0,0,0,78,Low
|
| 700 |
+
43,130,80,18,98,25.9,1,1,0,1,60,High
|
| 701 |
+
19,120,80,7,98,20,0,0,0,0,70,Low
|
| 702 |
+
30,120,75,6.8,98,23,0,0,0,0,70,Low
|
| 703 |
+
32,120,80,6.8,98,21,0,0,0,0,70,Low
|
| 704 |
+
23,130,70,6.8,98,24,0,0,0,0,78,Low
|
| 705 |
+
42,130,80,18,98,26.8,0,1,0,0,88,High
|
| 706 |
+
19,120,80,7,98,20,0,0,0,0,70,Low
|
| 707 |
+
31,110,90,6.8,100,21,0,0,0,0,70,Low
|
| 708 |
+
19,120,80,7,98,22,0,0,0,0,70,Low
|
| 709 |
+
25,120,80,6.9,98,23,0,0,0,0,66,Low
|
| 710 |
+
31,120,60,6.1,98,24,0,0,0,0,76,Low
|
| 711 |
+
23,120,90,6.9,98,24.5,0,0,0,0,70,Low
|
| 712 |
+
29,130,70,6.9,98,24.1,0,0,0,0,78,Low
|
| 713 |
+
48,120,80,11,98,29,1,1,0,1,88,High
|
| 714 |
+
18,120,80,5.9,102,18.9,0,0,0,0,76,Low
|
| 715 |
+
18,85,60,5.5,101,18.9,0,0,0,0,76,Low
|
| 716 |
+
29,130,70,5.5,98,18.9,0,0,0,0,78,Low
|
| 717 |
+
23,120,75,6,98,18.9,0,0,0,0,70,Low
|
| 718 |
+
15,120,80,7.5,98,18.9,0,0,0,0,70,Low
|
| 719 |
+
30,120,80,7.5,101,18.9,0,0,0,0,76,Low
|
| 720 |
+
40,120,95,6.9,98,18.9,0,0,0,0,70,Low
|
| 721 |
+
60,120,85,15,98,27.8,0,1,0,1,60,High
|
| 722 |
+
50,130,100,16,98,26.7,0,1,0,1,85,High
|
| 723 |
+
28,115,60,7.5,101,19,0,0,0,0,76,Low
|
| 724 |
+
31,120,60,6.1,98,20,0,0,0,0,76,Low
|
| 725 |
+
23,120,80,6.5,98,21,0,0,0,0,70,Low
|
| 726 |
+
29,130,70,6.5,98,22,0,0,0,0,78,Low
|
| 727 |
+
22,100,65,6.5,98,23,0,0,0,0,70,Low
|
| 728 |
+
49,120,90,6.5,98,24,0,0,0,0,77,Low
|
| 729 |
+
28,90,60,6.5,98,23,0,0,0,0,72,Low
|
| 730 |
+
12,90,60,6.5,102,22,0,0,0,0,66,Low
|
| 731 |
+
20,100,90,6.5,98,21,0,0,0,0,68,Low
|
| 732 |
+
23,100,85,6.5,98,20,0,0,0,0,66,Low
|
| 733 |
+
22,120,90,6.5,98,19,0,0,0,0,72,Low
|
| 734 |
+
21,120,80,7.5,98,20,0,0,0,0,77,Low
|
| 735 |
+
60,120,80,7.5,98,21,0,0,0,0,75,Low
|
| 736 |
+
50,130,100,16,98,26,1,1,0,0,85,High
|
| 737 |
+
17,90,65,7.5,103,30,0,0,1,1,67,High
|
| 738 |
+
29,130,70,7.5,98,19,0,0,0,1,78,Low
|
| 739 |
+
19,120,80,7,98,20,0,0,0,1,70,Low
|
| 740 |
+
19,120,85,4,98,21,0,0,0,1,60,Low
|
| 741 |
+
30,90,65,7,98,22,0,0,0,1,77,Low
|
| 742 |
+
28,85,60,6,101,23,0,0,0,1,68,Low
|
| 743 |
+
50,120,80,7,98,24,0,0,0,0,70,Low
|
| 744 |
+
39,110,70,6.9,98,23,0,0,0,0,80,Low
|
| 745 |
+
29,130,70,6,98,22,0,0,0,0,78,Low
|
| 746 |
+
17,90,60,5,102,21,0,0,0,0,78,Low
|
| 747 |
+
32,120,90,7,100,20,0,0,0,0,70,Low
|
| 748 |
+
42,120,90,6,98,19,0,0,0,0,70,Low
|
| 749 |
+
36,120,90,7,98,18.6,0,0,0,0,72,Low
|
| 750 |
+
30,120,80,7.1,101,18.7,0,0,0,0,76,Low
|
| 751 |
+
15,70,50,6,98,18.8,0,0,0,0,70,Low
|
| 752 |
+
10,100,50,6,99,18.9,0,0,0,0,70,Low
|
| 753 |
+
12,100,50,6.4,98,19,0,0,0,0,70,Low
|
| 754 |
+
12,100,50,6,98,24,0,1,0,0,70,Low
|
| 755 |
+
23,130,70,7.01,98,23,0,0,0,0,78,Low
|
| 756 |
+
32,120,90,6.9,98,20,0,0,0,0,70,Low
|
| 757 |
+
19,120,80,7,98,22,0,0,0,0,70,Low
|
| 758 |
+
20,120,75,7.01,100,21,0,0,0,0,70,Low
|
| 759 |
+
48,120,80,7,98,19,0,0,0,0,70,Low
|
| 760 |
+
30,120,80,6.9,101,24,0,0,0,0,76,Low
|
| 761 |
+
18,120,80,6.9,102,20,0,0,0,0,76,Low
|
| 762 |
+
17,90,60,6.9,101,23,0,0,0,0,76,Low
|
| 763 |
+
17,90,63,6.9,101,22,0,0,0,0,70,Low
|
| 764 |
+
25,120,90,6.7,101,21,0,0,0,0,80,Low
|
| 765 |
+
17,120,80,6.7,102,19,0,0,0,0,76,Low
|
| 766 |
+
13,90,65,7.9,101,24,0,0,0,0,80,Low
|
| 767 |
+
31,120,60,6.1,98,23,0,0,0,0,76,Low
|
| 768 |
+
29,130,70,6.1,98,20,0,0,0,0,78,Low
|
| 769 |
+
19,120,80,7,98,21,0,0,0,0,70,Low
|
| 770 |
+
28,85,60,9,101,22,0,0,0,0,76,Low
|
| 771 |
+
50,140,80,6.7,98,22.3,0,0,0,0,70,Low
|
| 772 |
+
29,90,70,6.7,98,23.2,0,0,0,0,80,Low
|
| 773 |
+
31,120,60,6.1,98,24.5,0,0,0,0,76,Low
|
| 774 |
+
29,130,70,6.7,98,23.6,0,0,0,0,78,Low
|
| 775 |
+
17,85,60,9,102,16.8,0,1,0,0,86,High
|
| 776 |
+
19,120,80,4,98,19,0,0,0,0,70,Low
|
| 777 |
+
20,110,60,3.9,100,24,0,0,0,0,70,Low
|
| 778 |
+
32,120,65,6,101,23,0,0,0,1,76,Low
|
| 779 |
+
27,120,70,6.8,98,20,0,1,0,1,77,Low
|
| 780 |
+
27,120,70,6.8,98,22,0,0,0,1,77,Low
|
| 781 |
+
32,120,90,6.8,98,21,0,0,0,1,70,Low
|
| 782 |
+
23,99,60,6.8,98,24,0,0,0,0,76,Low
|
| 783 |
+
15,76,49,6.8,98,19,0,0,0,0,77,Low
|
| 784 |
+
15,120,80,6.8,98,23,0,0,0,0,70,Low
|
| 785 |
+
29,100,70,6.8,98,18.6,0,0,0,0,80,Low
|
| 786 |
+
35,120,60,6.1,98,20,0,0,0,1,76,Low
|
| 787 |
+
32,120,90,6.8,98,22,0,0,0,1,70,Low
|
| 788 |
+
23,90,60,6.8,98,21,0,0,0,1,76,Low
|
| 789 |
+
15,76,49,6.8,98,21,0,0,0,1,77,Low
|
| 790 |
+
20,120,75,6.8,98,21,0,0,0,1,70,Low
|
| 791 |
+
48,120,80,5.9,98,21,0,0,0,1,77,Low
|
| 792 |
+
15,120,80,6.8,98,24.4,0,0,0,1,70,Low
|
| 793 |
+
30,120,80,6.8,101,24.4,0,0,0,1,76,Low
|
| 794 |
+
18,120,80,6.8,102,24.4,0,0,0,1,76,Low
|
| 795 |
+
17,90,60,6.8,101,24.4,0,0,0,1,76,Low
|
| 796 |
+
15,76,49,6.8,98,24.4,0,0,0,0,77,Low
|
| 797 |
+
19,120,75,6.8,98,24.4,0,0,0,0,70,Low
|
| 798 |
+
48,120,80,11,98,27.9,1,1,0,0,88,High
|
| 799 |
+
15,120,80,5.9,98,23.4,0,0,0,0,70,Low
|
| 800 |
+
22,100,65,4.9,98,23.4,0,0,0,0,80,Low
|
| 801 |
+
35,100,70,6.9,98,23.4,0,0,0,0,60,Low
|
| 802 |
+
19,120,85,4,98,23.4,0,0,0,0,60,Low
|
| 803 |
+
60,90,65,7,98,23.4,0,0,0,0,77,Low
|
| 804 |
+
50,120,80,7,98,22,0,0,0,0,70,Low
|
| 805 |
+
17,,60,4,102,22,0,0,0,0,76,Low
|
| 806 |
+
32,120,,7,98,22,1,0,0,1,,
|
| 807 |
+
42,120,80,7,98,21,0,0,0,0,70,Low
|
| 808 |
+
23,90,60,4.7,98,24,0,0,0,0,76,Low
|
| 809 |
+
19,120,80,7,98,23,0,0,0,0,70,Low
|
| 810 |
+
15,76,49,3.9,98,21,0,1,0,0,77,Low
|
| 811 |
+
16,120,75,4,98,20,0,0,0,0,74,Low
|
| 812 |
+
15,120,80,4.01,98,20,0,0,0,0,70,Low
|
| 813 |
+
17,70,50,5,98,22.5,0,0,0,0,70,Low
|
| 814 |
+
17,90,60,5.5,98,23,0,0,0,0,76,Low
|
| 815 |
+
17,90,63,4.5,98,19,0,0,0,0,70,Low
|
| 816 |
+
25,120,90,6.5,98,20,0,0,0,0,80,Low
|
| 817 |
+
17,120,80,3.5,98,21,0,0,0,0,76,Low
|
| 818 |
+
19,90,65,4.5,98,22,0,0,0,0,70,Low
|
| 819 |
+
15,80,60,3.5,98,23,0,0,0,0,80,Low
|
| 820 |
+
60,90,65,7.5,98,24,0,0,0,1,77,Low
|
| 821 |
+
50,120,80,7.5,98,23,0,0,0,1,70,Low
|
| 822 |
+
19,90,70,4.5,98,22,0,0,0,1,80,Low
|
| 823 |
+
31,120,60,6.1,98,21,0,0,0,1,76,Low
|
| 824 |
+
23,120,90,5.5,98,20,0,0,0,0,70,Low
|
| 825 |
+
17,85,60,3.5,102,19,0,0,0,0,66,Low
|
| 826 |
+
32,120,90,7.5,98,20,0,0,0,0,70,Low
|
| 827 |
+
42,120,80,7.5,98,21,0,0,0,0,70,Low
|
| 828 |
+
42,90,60,7.5,98,22,1,0,0,1,76,Low
|
| 829 |
+
19,120,80,7,98,23,0,0,0,0,70,Low
|
| 830 |
+
15,78,49,5.5,98,24,0,0,0,0,77,Low
|
| 831 |
+
16,70,50,3,100,23,0,0,0,0,70,Low
|
| 832 |
+
16,100,70,4,98,22,0,0,0,0,80,Low
|
| 833 |
+
19,120,75,4.4,98,21,0,0,0,0,66,Low
|
| 834 |
+
22,100,65,5,98,20,0,0,0,0,70,Low
|
| 835 |
+
49,120,90,7.5,98,19,0,0,0,0,77,Low
|
| 836 |
+
28,90,60,6.5,98,20,0,0,0,0,72,
|
| 837 |
+
12,90,60,3,102,21,0,0,0,0,66,Low
|
| 838 |
+
20,100,90,3.5,98,22,1,1,0,1,74,Low
|
| 839 |
+
23,100,85,5,98,23,0,0,0,0,66,Low
|
| 840 |
+
22,120,90,5.01,98,24,0,0,0,0,70,Low
|
| 841 |
+
21,120,80,5,98,,0,0,0,0,77,Low
|
| 842 |
+
21,75,50,5,98,22,0,1,0,0,60,Low
|
| 843 |
+
12,90,60,3.7,102,21,0,0,0,0,60,Low
|
| 844 |
+
60,120,80,7.5,98,19,0,0,0,0,75,Low
|
| 845 |
+
55,100,65,7,98,20,0,0,0,0,66,Low
|
| 846 |
+
45,120,95,6.5,98,21,0,0,0,0,66,Low
|
| 847 |
+
35,100,70,7,98,22,0,0,0,0,66,Low
|
| 848 |
+
22,120,85,4.5,98,23,0,0,0,0,78,Low
|
| 849 |
+
24,120,70,4.07,98,24,0,0,0,0,72,Low
|
| 850 |
+
17,90,65,3.5,98,24,0,0,0,0,67,Low
|
| 851 |
+
24,120,80,5.5,98,23,0,0,0,0,70,Low
|
| 852 |
+
23,120,80,5.01,98,22,1,1,0,1,70,Low
|
| 853 |
+
19,85,60,3.3,98,21,0,0,0,0,76,Low
|
| 854 |
+
32,120,90,6.5,98,20,0,0,0,0,70,Low
|
| 855 |
+
42,120,80,7,98,19,0,0,0,0,70,Low
|
| 856 |
+
25,140,100,8,98,31,1,0,1,1,88,High
|
| 857 |
+
40,140,100,14,98,27.2,1,1,0,1,90,High
|
| 858 |
+
32,140,100,7.9,98,32.3,1,0,1,1,84,High
|
| 859 |
+
24,90,65,7,101,33,1,0,1,1,60,High
|
| 860 |
+
37,120,90,11,98,26,1,1,0,1,88,High
|
| 861 |
+
17,110,75,7,101,16.8,0,0,1,1,76,High
|
| 862 |
+
40,120,90,12,98,26.8,0,1,0,1,86,High
|
| 863 |
+
40,160,100,14,98,26.6,0,1,0,1,87,High
|
| 864 |
+
32,140,90,9,98,28.9,0,1,0,1,88,High
|
| 865 |
+
22,90,60,7.9,102,27,,,0,1,66,High
|
| 866 |
+
35,140,100,9,98,26,0,1,0,1,62,High
|
| 867 |
+
54,140,100,15,98,25.7,1,1,0,1,66,High
|
| 868 |
+
40,120,95,11,98,25.9,0,1,0,1,80,High
|
| 869 |
+
45,120,85,15,98,28,0,1,0,1,60,High
|
| 870 |
+
55,140,95,19,98,29.8,0,1,0,1,77,High
|
| 871 |
+
50,130,100,16,98,26.3,0,1,0,1,75,High
|
| 872 |
+
17,90,65,6.1,103,26.4,0,0,0,1,77,High
|
| 873 |
+
28,85,60,8,101,34,1,0,1,1,86,High
|
| 874 |
+
50,120,80,15,98,29,1,1,0,1,70,High
|
| 875 |
+
17,85,60,9,102,17.2,0,0,1,1,86,High
|
| 876 |
+
33,120,75,10,98,28.1,1,1,0,1,80,High
|
| 877 |
+
48,120,80,11,98,28.7,0,1,0,1,88,High
|
| 878 |
+
50,140,95,17,98,29.5,1,1,0,0,60,High
|
| 879 |
+
30,140,100,10,98,26,0,1,0,0,70,High
|
| 880 |
+
29,120,75,7.2,100,33,0,0,1,0,70,High
|
| 881 |
+
48,120,80,11,98,28.7,0,1,0,0,88,High
|
| 882 |
+
50,140,90,15,98,29.6,1,1,0,0,77,High
|
| 883 |
+
25,140,100,7.2,98,30.1,1,0,1,0,80,High
|
| 884 |
+
55,140,80,17,101,29.7,0,1,0,0,76,High
|
| 885 |
+
40,140,100,13,98,27,1,1,0,0,77,High
|
| 886 |
+
28,120,80,8,102,33.4,1,0,1,1,76,High
|
| 887 |
+
32,140,100,9,98,31.9,0,0,1,1,70,High
|
| 888 |
+
17,90,60,8,101,17.5,0,0,1,1,78,High
|
| 889 |
+
17,90,63,8,101,18,0,1,0,1,70,High
|
| 890 |
+
25,120,90,12,101,26,1,1,0,1,80,High
|
| 891 |
+
17,120,80,7,102,18.1,0,0,1,1,76,High
|
| 892 |
+
19,90,65,9,101,30.4,0,0,1,1,70,High
|
| 893 |
+
37,120,90,11,98,25.9,1,1,0,1,88,High
|
| 894 |
+
17,110,75,7,101,18,0,0,0,1,76,High
|
| 895 |
+
25,120,90,11,98,26.8,0,1,0,1,80,High
|
| 896 |
+
40,160,100,16,98,27,1,1,0,1,77,High
|
| 897 |
+
32,140,90,10,98,28,0,1,0,1,88,High
|
| 898 |
+
22,90,60,8,102,30.3,0,0,1,1,62,High
|
| 899 |
+
35,140,100,9,98,28.4,1,1,0,1,88,High
|
| 900 |
+
54,140,100,15,98,29.8,0,1,0,1,66,High
|
| 901 |
+
40,120,95,11,98,29.7,1,1,0,1,80,High
|
| 902 |
+
21,90,60,9,102,26.7,0,1,0,1,60,High
|
| 903 |
+
60,120,85,15,98,29,1,1,0,0,60,High
|
| 904 |
+
55,140,95,19,98,28.5,0,1,0,0,77,High
|
| 905 |
+
50,130,100,16,98,29.1,0,1,0,0,76,High
|
| 906 |
+
23,90,65,9,101,27.6,0,1,0,0,80,High
|
| 907 |
+
17,90,65,7.7,103,30,0,0,1,0,67,High
|
| 908 |
+
17,85,60,6.3,102,,0,0,1,0,86,High
|
| 909 |
+
40,120,75,7.7,98,32,1,0,1,0,70,High
|
| 910 |
+
48,120,80,11,98,28,1,1,0,1,88,High
|
| 911 |
+
22,120,60,9,98,32,0,0,1,1,80,High
|
| 912 |
+
55,120,90,18,98,29.7,0,1,0,1,60,High
|
| 913 |
+
35,85,60,11,98,25.7,0,1,0,1,86,High
|
| 914 |
+
43,120,90,15,98,27.3,1,1,0,1,80,High
|
| 915 |
+
32,120,65,8,101,,0,0,1,1,86,High
|
| 916 |
+
23,120,80,4.4,98,23,0,0,0,1,72,Low
|
| 917 |
+
32,90,60,11,100,26.8,1,1,0,1,80,High
|
| 918 |
+
26,110,70,5.9,98,20,0,0,0,1,72,
|
| 919 |
+
27,110,75,6,98,21,0,0,0,0,70,
|
| 920 |
+
20,100,65,3.7,98,22,0,0,0,0,74,Low
|
| 921 |
+
20,90,60,7.5,98,23,0,0,0,0,74,Low
|
| 922 |
+
22,120,80,4.1,98,21,0,0,0,0,72,Low
|
| 923 |
+
22,,,7,102,,0,0,1,0,82,
|
| 924 |
+
26,110,80,5.8,98,20,0,0,0,0,74,Low
|
| 925 |
+
22,90,60,4.4,98,21,0,0,0,0,70,Low
|
| 926 |
+
21,110,70,9,100,26,0,1,0,1,80,High
|
| 927 |
+
25,100,60,5,98,19,0,0,0,0,72,Low
|
| 928 |
+
20,120,70,8.01,101,,0,0,1,1,84,High
|
| 929 |
+
29,100,60,,98,20,0,1,0,1,69,
|
| 930 |
+
20,90,60,4,98,21,0,0,0,0,72,Low
|
| 931 |
+
32,100,60,7.1,98,22,0,0,0,0,72,Low
|
| 932 |
+
23,90,60,5.6,98,23,0,0,0,0,71,Low
|
| 933 |
+
18,100,70,3.5,98,24,0,0,0,0,72,Low
|
| 934 |
+
21,110,80,5.1,98,20,0,0,0,0,74,Low
|
| 935 |
+
25,110,60,6.5,98,21,0,0,0,0,72,Low
|
| 936 |
+
21,110,70,4.9,98,22.9,0,0,0,0,74,Low
|
| 937 |
+
43,140,100,14,98,27.3,1,0,0,1,88,High
|
| 938 |
+
19,110,70,4,98,18.5,0,0,0,0,72,Low
|
| 939 |
+
27,100,70,7,100,18.6,0,0,0,0,70,Low
|
| 940 |
+
18,120,80,3.3,98,18.7,0,0,0,0,70,Low
|
| 941 |
+
20,100,60,4.1,98,18.8,0,0,0,0,68,Low
|
| 942 |
+
23,120,80,5,98,18.9,0,0,0,0,70,Low
|
| 943 |
+
18,90,60,3,98,19,0,0,0,0,70,Low
|
| 944 |
+
29,120,70,7,98,19.1,0,0,0,0,70,Low
|
| 945 |
+
23,100,60,4.5,98,19.2,0,0,0,0,70,Low
|
| 946 |
+
31,110,70,7,100,19.3,0,0,0,0,72,Low
|
| 947 |
+
25,140,90,9,101,26.1,1,1,0,1,80,High
|
| 948 |
+
29,100,70,7.1,100,19.4,0,0,0,0,76,Low
|
| 949 |
+
28,90,60,5.9,98,19.5,0,0,0,0,73,Low
|
| 950 |
+
22,110,70,5,98,19.6,0,0,0,0,72,Low
|
| 951 |
+
25,90,60,6.9,98,19.7,0,0,0,0,72,Low
|
| 952 |
+
17,110,80,3.6,98,19.8,0,0,0,0,72,Low
|
| 953 |
+
28,90,60,7,98,19.9,0,0,0,0,74,Low
|
| 954 |
+
24,110,70,5.1,100,0,0,1,0,0,78,Low
|
| 955 |
+
19,130,80,4,98,20.1,0,0,0,0,70,Low
|
| 956 |
+
31,150,100,10,98,26.2,1,1,0,1,88,High
|
| 957 |
+
40,150,90,12,100,27.2,1,1,0,1,88,High
|
| 958 |
+
21,90,60,5,98,21.8,0,0,0,0,72,Low
|
| 959 |
+
18,130,80,3.9,98,23,0,0,0,0,70,Low
|
| 960 |
+
17,100,70,3.5,98,22.4,0,0,0,0,70,Low
|
| 961 |
+
35,110,70,7.5,98,22.5,0,0,0,0,68,Low
|
| 962 |
+
32,120,80,7,98,22.7,0,0,0,0,72,Low
|
| 963 |
+
26,130,100,6.9,98,22.8,0,0,0,0,72,Low
|
| 964 |
+
19,150,100,5.2,98,22.9,0,0,0,0,73,Low
|
| 965 |
+
22,140,90,6,98,23,0,0,0,0,70,Low
|
| 966 |
+
18,120,80,5,98,21.9,0,0,0,0,72,Low
|
| 967 |
+
21,110,70,5.9,98,21.8,0,0,0,0,74,Low
|
| 968 |
+
37,100,60,14,98,28.2,1,1,0,1,82,High
|
| 969 |
+
29,110,70,6.7,98,21.7,0,0,0,0,70,Low
|
| 970 |
+
36,160,100,13,98,29.7,0,1,0,1,60,High
|
| 971 |
+
39,130,90,15,98,28.9,1,1,0,1,90,High
|
| 972 |
+
33,130,110,12,100,27.8,0,1,0,1,88,High
|
| 973 |
+
35,140,90,11,100,26.7,0,1,0,1,88,High
|
| 974 |
+
39,140,100,17,98,25.6,1,1,0,1,80,High
|
| 975 |
+
49,140,96,19,98,29.5,1,1,0,1,86,High
|
| 976 |
+
28,120,70,9,101,,1,1,0,1,80,High
|
| 977 |
+
25,90,60,5.9,98,20,0,0,0,0,72,Low
|
| 978 |
+
21,90,60,4.1,98,21,0,0,0,0,70,Low
|
| 979 |
+
19,100,70,4,98,22,0,0,0,0,72,Low
|
| 980 |
+
20,100,60,4.6,98,23,0,0,0,0,72,
|
| 981 |
+
27,100,70,6,98,24,0,0,0,0,72,Low
|
| 982 |
+
28,120,80,7,98,19,0,0,0,0,74,Low
|
| 983 |
+
23,130,90,9,100,25.6,1,1,0,0,87,High
|
| 984 |
+
34,170,90,8.8,98,37,1,0,1,1,88,High
|
| 985 |
+
33,140,100,9,98,27.1,1,1,0,1,86,High
|
| 986 |
+
28,160,90,7.9,98,35.1,1,0,1,1,62,High
|
| 987 |
+
39,140,100,14,98,,,,0,1,88,
|
| 988 |
+
26,110,70,7,98,20,0,0,0,0,70,Low
|
| 989 |
+
33,90,60,7,98,21,0,0,0,0,72,Low
|
| 990 |
+
27,120,80,7.1,98,22,0,0,0,0,72,Low
|
| 991 |
+
31,110,70,6.9,98,23,0,0,0,0,72,Low
|
| 992 |
+
29,120,80,7,98,24,0,0,0,0,72,Low
|
| 993 |
+
18,100,70,4,98,,0,0,0,1,70,
|
| 994 |
+
24,100,60,6,98,18,0,0,0,0,70,
|
| 995 |
+
30,100,60,7,98,18.7,0,0,0,0,77,Low
|
| 996 |
+
25,90,65,8,100,26,1,1,0,1,62,High
|
| 997 |
+
34,130,90,11,98,27,1,1,0,1,82,High
|
| 998 |
+
36,130,100,14,101,26.3,1,1,0,1,90,High
|
| 999 |
+
19,100,70,6.7,101,27.1,1,0,0,1,88,High
|
| 1000 |
+
24,120,80,6.6,98,19.9,0,0,0,0,74,Low
|
| 1001 |
+
20,110,70,4.1,98,,0,0,0,0,72,Low
|
| 1002 |
+
23,130,100,6.2,98,17.9,1,1,1,1,84,High
|
| 1003 |
+
33,130,80,7.9,98,33,1,1,0,0,88,High
|
| 1004 |
+
23,140,85,6.8,98,24.6,1,1,0,1,82,High
|
| 1005 |
+
40,90,65,11,98,36,1,1,0,0,83,High
|
| 1006 |
+
34,120,100,8,98,25,1,1,0,1,86,High
|
| 1007 |
+
27,90,60,7.2,102,26,1,1,0,0,90,High
|
| 1008 |
+
33,120,90,7,98,29.9,1,1,0,1,87,High
|
| 1009 |
+
34,130,100,8,98,30,1,1,0,1,80,High
|
| 1010 |
+
24,95,65,6.6,99,17.8,1,1,0,1,78,High
|
| 1011 |
+
29,120,90,6.9,98,25,1,1,0,1,76,High
|
| 1012 |
+
25,80,50,7,98,26,1,1,0,1,72,High
|
| 1013 |
+
16,125,85,5,98,15,0,0,1,1,68,High
|
| 1014 |
+
25,135,95,6.8,98,17,1,0,1,1,60,High
|
| 1015 |
+
19,75,45,5.5,98,17,1,0,1,1,66,High
|
| 1016 |
+
21,95,60,6,100,17.7,1,0,1,1,88,High
|
| 1017 |
+
27,90,65,7,101,26.6,1,0,1,1,88,High
|
| 1018 |
+
24,100,80,6,101,24,1,0,1,1,88,High
|
| 1019 |
+
27,105,80,7,102,27,1,0,1,0,90,High
|
| 1020 |
+
19,85,65,5,101,17.9,1,0,1,0,92,High
|
| 1021 |
+
37,80,55,10,98,33,1,0,1,0,81,High
|
| 1022 |
+
17,100,60,4.7,98,15.6,0,0,1,1,78,High
|
| 1023 |
+
42,115,95,14,98,36,0,0,0,1,77,High
|
| 1024 |
+
19,100,70,4,98,17,1,0,0,1,76,High
|
| 1025 |
+
29,105,75,8,98,24.5,1,0,0,1,74,High
|
| 1026 |
+
32,120,95,9,98,27.7,1,0,0,1,88,High
|
| 1027 |
+
25,85,65,7.7,102,17.8,1,0,0,1,80,High
|
| 1028 |
+
22,125,95,6.9,98,16,1,0,1,1,82,High
|
| 1029 |
+
32,120,60,8.1,98,25.9,1,0,1,1,84,High
|
| 1030 |
+
33,90,55,7.5,98,31,1,0,1,1,86,High
|
| 1031 |
+
22,120,75,6,98,23,1,0,1,1,90,High
|
| 1032 |
+
26,80,45,7.5,98,24.1,1,0,1,1,82,High
|
| 1033 |
+
26,70,40,7.8,100,24.5,1,0,1,1,82,High
|
| 1034 |
+
33,100,70,7.5,98,24.5,1,0,1,1,78,High
|
| 1035 |
+
18,120,90,4.9,98,24.5,1,0,1,1,68,High
|
| 1036 |
+
21,100,65,5.8,98,24.5,1,0,0,1,62,High
|
| 1037 |
+
39,120,90,7.5,98,32,1,0,0,1,72,High
|
| 1038 |
+
28,90,60,7.5,98,30,1,0,0,1,80,High
|
| 1039 |
+
22,90,60,7.5,102,17.6,1,1,0,1,88,High
|
| 1040 |
+
20,100,90,7.5,98,15.5,1,1,0,1,86,High
|
| 1041 |
+
22,100,85,7.5,98,16,1,1,0,1,80,High
|
| 1042 |
+
24,120,90,7.5,98,17,1,1,0,1,90,High
|
| 1043 |
+
22,120,80,7.5,98,17,1,1,0,1,90,High
|
| 1044 |
+
21,75,50,7.5,98,17,1,1,0,1,60,High
|
| 1045 |
+
21,90,60,7.5,102,17,1,1,0,1,68,High
|
| 1046 |
+
44,120,80,15,98,35,1,1,0,1,70,High
|
| 1047 |
+
45,100,65,14,98,35,1,1,0,1,72,High
|
| 1048 |
+
37,120,95,9,98,35,0,1,0,1,88,High
|
| 1049 |
+
25,100,70,7,98,24.4,0,1,1,1,90,High
|
| 1050 |
+
26,120,85,7,98,24.4,0,1,1,1,86,High
|
| 1051 |
+
23,90,65,6.8,101,24.4,0,1,1,0,84,High
|
| 1052 |
+
32,120,90,8.4,98,24.4,0,1,1,0,82,High
|
| 1053 |
+
27,90,65,7.2,103,24.4,0,1,0,0,80,High
|
| 1054 |
+
29,120,80,7.5,98,24.4,0,1,0,0,88,High
|
| 1055 |
+
28,120,80,7,98,24.4,0,1,0,0,87,High
|
| 1056 |
+
19,85,60,6,102,16.6,0,1,0,0,77,High
|
| 1057 |
+
19,120,90,6,98,17,0,1,0,0,77,High
|
| 1058 |
+
32,120,80,9,98,26,0,1,0,1,76,High
|
| 1059 |
+
35,140,100,9.3,98,31,0,1,0,1,78,High
|
| 1060 |
+
30,140,100,8,98,30,0,1,0,1,80,High
|
| 1061 |
+
22,140,100,6.9,98,17,0,1,0,1,90,High
|
| 1062 |
+
24,90,65,7,101,24,0,1,0,1,66,High
|
| 1063 |
+
20,120,90,4.8,98,23,0,1,0,1,77,High
|
| 1064 |
+
17,110,75,4,101,15.9,0,1,0,1,90,High
|
| 1065 |
+
30,120,90,8.9,98,25.3,0,1,0,1,92,High
|
| 1066 |
+
27,160,100,9,98,17,0,1,0,1,80,High
|
| 1067 |
+
31,140,90,9,98,25,1,1,1,0,80,High
|
| 1068 |
+
21,90,60,6.9,102,24.4,0,1,1,0,77,High
|
| 1069 |
+
25,140,100,7,98,24.4,1,1,1,0,82,High
|
| 1070 |
+
45,140,100,15,98,34,0,1,1,0,84,High
|
| 1071 |
+
41,120,95,11,98,34.5,0,1,1,0,90,High
|
| 1072 |
+
29,120,85,9,98,26,1,1,1,0,88,High
|
| 1073 |
+
25,140,95,7,98,24.9,0,1,1,0,86,High
|
| 1074 |
+
20,130,100,6,98,17.9,0,0,1,0,82,High
|
| 1075 |
+
37,90,65,12,103,32,0,0,1,0,78,High
|
| 1076 |
+
29,140,90,8,101,27,0,0,0,0,72,High
|
| 1077 |
+
30,120,80,9,98,30,0,0,0,0,60,High
|
| 1078 |
+
17,85,60,6,102,17,1,0,0,0,62,High
|
| 1079 |
+
33,120,75,10,98,27.6,0,0,1,0,58,High
|
| 1080 |
+
49,120,80,17,98,37,0,0,1,0,66,High
|
| 1081 |
+
29,140,95,7,98,28,0,0,1,0,72,High
|
| 1082 |
+
30,140,100,10,98,25.1,1,0,1,0,70,High
|
| 1083 |
+
27,120,75,7.2,100,25.7,1,0,0,1,80,High
|
| 1084 |
+
25,120,80,11,98,24.9,1,0,1,1,90,High
|
| 1085 |
+
21,140,90,7,98,24.1,0,0,0,1,72,High
|
| 1086 |
+
25,140,100,7.2,98,24.7,0,0,1,1,80,High
|
| 1087 |
+
35,140,80,10,101,31,1,0,0,1,90,High
|
| 1088 |
+
40,140,100,18,98,33,1,0,0,1,88,High
|
| 1089 |
+
28,120,80,9,102,27.9,1,0,0,1,87,High
|
| 1090 |
+
22,140,100,8,98,24.4,1,0,0,1,77,High
|
| 1091 |
+
27,90,60,11,101,24.8,1,0,0,1,78,High
|
| 1092 |
+
29,90,65,8,101,27.5,1,1,0,1,76,High
|
| 1093 |
+
18,120,90,7.2,101,17.2,1,1,0,1,82,High
|
| 1094 |
+
21,120,80,7,102,17.8,0,1,1,1,90,High
|
| 1095 |
+
39,90,65,11,101,29,0,1,0,1,92,High
|
| 1096 |
+
27,120,90,9,98,28,1,0,0,1,78,High
|
| 1097 |
+
25,110,75,8.3,101,24.4,1,0,0,1,77,High
|
| 1098 |
+
27,120,90,7.5,98,25.2,1,0,0,1,76,High
|
| 1099 |
+
30,160,100,11,98,27.2,1,1,1,1,74,High
|
| 1100 |
+
32,140,90,13,98,26,1,0,1,1,80,High
|
| 1101 |
+
21,90,60,8,98,16.9,1,1,1,1,88,High
|
| 1102 |
+
35,140,100,9,98,31.1,1,0,0,1,86,High
|
| 1103 |
+
34,140,100,10,98,28.3,1,1,1,1,84,High
|
| 1104 |
+
18,120,80,9,98,17,0,1,0,1,84,High
|
| 1105 |
+
20,110,80,11,98,17.7,0,1,0,1,84,High
|
| 1106 |
+
22,140,90,10,98,17.5,0,1,0,1,84,High
|
| 1107 |
+
25,100,60,8,98,23,0,1,0,1,84,High
|
| 1108 |
+
24,120,70,11,98,24,0,1,0,1,84,High
|
| 1109 |
+
28,140,85,13,98,23,0,1,0,1,84,High
|
| 1110 |
+
29,130,70,10,98,24,0,1,0,1,84,High
|
| 1111 |
+
31,120,60,12,98,24.1,0,1,0,1,84,High
|
| 1112 |
+
21,130,80,7.6,98,24.1,0,1,0,1,84,High
|
| 1113 |
+
22,90,60,7.6,98,24.1,0,1,0,1,84,High
|
| 1114 |
+
21,90,65,7.6,98,24.1,0,1,0,1,84,High
|
| 1115 |
+
20,100,60,7,99,24.1,0,1,0,1,84,High
|
| 1116 |
+
17,110,70,6.5,98,24.1,0,1,0,1,84,High
|
| 1117 |
+
19,110,75,5.9,98,24.1,0,1,0,1,84,High
|
| 1118 |
+
29,110,80,11,98,24.1,0,1,0,1,84,High
|
| 1119 |
+
27,150,90,10,98,24.5,0,1,0,1,84,High
|
| 1120 |
+
28,150,100,9,98,24.5,0,1,0,1,78,High
|
| 1121 |
+
24,140,100,8,98,24.5,0,1,0,1,78,High
|
| 1122 |
+
21,110,75,7,98,24.5,0,1,0,1,78,High
|
| 1123 |
+
20,120,80,5,98,24.5,0,1,0,1,78,High
|
| 1124 |
+
26,130,80,9,98,24.5,0,1,1,1,78,High
|
| 1125 |
+
28,120,80,9.7,100,24.5,0,1,1,1,78,High
|
| 1126 |
+
33,115,75,11.1,98,24.5,0,1,1,1,78,High
|
| 1127 |
+
31,125,65,11.5,98,17.1,0,1,1,1,78,High
|
| 1128 |
+
32,105,55,12,98,17.1,0,1,0,0,90,High
|
| 1129 |
+
29,100,60,10,98,18.1,0,1,0,0,90,High
|
| 1130 |
+
27,90,70,8.9,98,17.8,0,1,0,0,90,High
|
| 1131 |
+
22,100,60,6.9,98,17.8,0,1,0,0,90,High
|
| 1132 |
+
24,100,70,5.9,98,17.8,0,1,0,0,90,High
|
| 1133 |
+
20,120,90,5,98,17.8,0,1,0,0,90,High
|
| 1134 |
+
21,120,90,5.6,98,17.8,0,1,0,0,90,High
|
| 1135 |
+
28,120,100,8.8,98,17.8,0,1,0,0,90,High
|
| 1136 |
+
30,120,80,9,98,17.8,0,1,0,0,90,High
|
| 1137 |
+
39,120,75,14,98,17.8,0,1,0,0,82,High
|
| 1138 |
+
41,120,85,17,98,17.8,0,1,0,0,86,High
|
| 1139 |
+
37,120,80,12,98,24,0,1,0,0,88,High
|
| 1140 |
+
21,120,70,6.2,98,24,0,1,0,0,80,High
|
| 1141 |
+
22,120,90,6,98,24,0,1,0,0,84,High
|
| 1142 |
+
26,120,80,7,98,24,0,1,0,0,85,High
|
| 1143 |
+
27,120,80,7.6,98,24,0,1,0,0,77,High
|
| 1144 |
+
27,120,60,6,98,25,0,1,0,0,77,High
|
| 1145 |
+
27,115,65,5.9,98,29,0,1,0,0,77,High
|
| 1146 |
+
27,115,75,7,98,28,0,1,0,1,77,High
|
| 1147 |
+
27,115,60,7.7,98,28,0,1,0,1,77,High
|
| 1148 |
+
27,130,60,6,98,28,0,1,0,1,77,High
|
| 1149 |
+
27,140,60,6.5,98,24.7,1,1,0,1,77,High
|
| 1150 |
+
27,135,60,6.8,98,24.7,1,1,0,1,60,High
|
| 1151 |
+
21,120,60,6.3,98,24.7,1,1,0,1,58,High
|
| 1152 |
+
22,110,60,5.9,98,24.7,1,1,0,1,81,High
|
| 1153 |
+
21,90,60,5.1,98,24.7,1,1,0,1,62,High
|
| 1154 |
+
20,95,60,6.5,98,24.7,0,1,0,1,64,High
|
| 1155 |
+
16,95,60,5,101,24.7,0,1,0,1,60,High
|
| 1156 |
+
17,100,60,5.6,98,24.7,0,1,0,1,60,High
|
| 1157 |
+
19,100,60,7.8,98,24.7,0,1,0,1,60,High
|
| 1158 |
+
22,100,60,6.6,98,24.7,0,1,1,1,60,High
|
| 1159 |
+
31,100,60,11,98,24.7,0,1,1,1,60,High
|
| 1160 |
+
25,100,60,8,98,25,0,1,0,1,60,High
|
| 1161 |
+
34,100,60,13,98,25,0,1,0,1,60,High
|
| 1162 |
+
26,100,60,8.7,98,25,1,1,0,1,90,High
|
| 1163 |
+
27,100,60,7,98,25,1,1,0,1,90,High
|
| 1164 |
+
43,100,60,18,98,25,1,1,1,1,90,High
|
| 1165 |
+
36,100,60,,98,25,1,1,0,1,90,High
|
| 1166 |
+
39,100,60,16,98,25,1,1,0,1,90,High
|
| 1167 |
+
19,100,60,5,98,25,1,1,1,1,90,High
|
| 1168 |
+
18,100,60,5.5,98,25,1,1,0,1,90,High
|
| 1169 |
+
20,100,60,6,98,25,1,1,0,1,90,High
|
| 1170 |
+
22,100,60,4,98,25,1,1,0,1,90,High
|
| 1171 |
+
23,100,60,7,98,25,0,1,0,1,90,High
|
| 1172 |
+
24,100,80,6.1,98,,0,1,0,1,88,High
|
| 1173 |
+
21,100,60,6.7,98,23,0,1,0,1,86,High
|
| 1174 |
+
28,100,70,8.9,98,23,0,1,0,1,88,High
|
| 1175 |
+
29,100,55,11,98,23,0,1,0,1,84,High
|
| 1176 |
+
34,100,65,13,98,23,0,1,0,1,82,High
|
| 1177 |
+
33,100,60,11,98,23,0,1,0,1,85,High
|
| 1178 |
+
22,100,70,8,98,23,0,1,0,1,84,High
|
| 1179 |
+
23,100,75,4.9,98,23,0,1,0,1,90,High
|
| 1180 |
+
21,100,70,5.8,98,23,0,1,0,1,92,High
|
| 1181 |
+
20,100,80,5,98,23,0,1,0,1,78,High
|
| 1182 |
+
17,120,75,4,98,23,0,1,0,1,77,High
|
| 1183 |
+
18,110,70,4,98,24.2,0,1,0,0,76,High
|
| 1184 |
+
19,140,100,4,98,24.2,0,1,0,0,74,High
|
| 1185 |
+
22,150,110,4.7,98,24.2,0,1,0,0,70,High
|
| 1186 |
+
23,130,95,6,98,24.2,0,1,0,0,68,High
|
| 1187 |
+
29,125,85,7.3,98,24.2,0,1,0,0,70,High
|
| 1188 |
+
21,115,75,5,98,24.2,0,1,0,0,90,High
|
| 1189 |
+
28,95,75,8.9,98,24.2,0,1,0,0,88,High
|
| 1190 |
+
22,110,70,6,98,24.2,0,1,0,0,84,High
|
| 1191 |
+
27,120,60,9,98,24.2,0,1,0,0,82,High
|
| 1192 |
+
23,130,90,4,98,23.9,0,1,0,0,86,High
|
| 1193 |
+
26,110,80,6,98,23.9,0,1,0,0,88,High
|
| 1194 |
+
24,120,90,4.8,98,23.9,0,1,0,0,80,High
|
| 1195 |
+
25,90,60,5.2,98,23.9,0,1,0,0,78,High
|
| 1196 |
+
21,100,60,5.7,98,23.9,0,1,0,0,77,High
|
| 1197 |
+
20,115,75,4.7,98,23.9,0,1,0,0,76,High
|
| 1198 |
+
17,95,65,3.8,98,23.9,0,1,0,0,74,High
|
| 1199 |
+
19,115,95,4,98,23.9,0,1,0,0,77,High
|
| 1200 |
+
20,120,100,6,98,23.9,0,1,1,0,80,High
|
| 1201 |
+
30,120,90,7,98,23.9,0,0,1,0,88,High
|
| 1202 |
+
41,140,95,16,98,22,0,0,1,1,90,High
|
| 1203 |
+
25,110,90,6,98,19,0,0,1,1,92,High
|
| 1204 |
+
21,150,110,4.9,98,21.5,0,0,1,1,66,High
|
| 1205 |
+
23,130,100,5.1,98,27,0,0,1,1,60,High
|
| 1206 |
+
26,120,90,6.7,98,23.9,0,0,1,0,58,High
|
docs/DOCUMENTATION.md
ADDED
|
@@ -0,0 +1,276 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🔬 Medical AI System Documentation
|
| 2 |
+
|
| 3 |
+
## Project Overview
|
| 4 |
+
|
| 5 |
+
This project contains two advanced AI systems for medical imaging and risk assessment:
|
| 6 |
+
|
| 7 |
+
1. **Pregnancy Risk Prediction Model** - Predicts pregnancy complications using clinical data
|
| 8 |
+
2. **Fetal Ultrasound Plane Classification** - Classifies fetal ultrasound images into anatomical planes
|
| 9 |
+
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
## 🤱 Pregnancy Risk Prediction Model
|
| 13 |
+
|
| 14 |
+
### Model Performance
|
| 15 |
+
- **Algorithm**: Random Forest Classifier
|
| 16 |
+
- **Accuracy**: 100% on test data
|
| 17 |
+
- **Features**: 11 clinical parameters
|
| 18 |
+
- **Classes**: High Risk, Low Risk
|
| 19 |
+
- **Dataset**: 1,187 patient records
|
| 20 |
+
|
| 21 |
+
### Key Features
|
| 22 |
+
- Age, Blood Pressure (Systolic/Diastolic)
|
| 23 |
+
- Blood Sugar, Body Temperature, BMI
|
| 24 |
+
- Medical History (Previous Complications, Diabetes)
|
| 25 |
+
- Mental Health, Heart Rate
|
| 26 |
+
|
| 27 |
+
### Feature Importance (Top 5)
|
| 28 |
+
1. **Blood Sugar (BS)**: 22.8%
|
| 29 |
+
2. **Preexisting Diabetes**: 21.6%
|
| 30 |
+
3. **Heart Rate**: 16.0%
|
| 31 |
+
4. **BMI**: 14.7%
|
| 32 |
+
5. **Gestational Diabetes**: 8.5%
|
| 33 |
+
|
| 34 |
+
### Model Metrics
|
| 35 |
+
```
|
| 36 |
+
Classification Report:
|
| 37 |
+
precision recall f1-score support
|
| 38 |
+
High 1.00 1.00 1.00 95
|
| 39 |
+
Low 1.00 1.00 1.00 143
|
| 40 |
+
accuracy 1.00 238
|
| 41 |
+
macro avg 1.00 1.00 1.00 238
|
| 42 |
+
weighted avg 1.00 1.00 1.00 238
|
| 43 |
+
```
|
| 44 |
+
|
| 45 |
+
---
|
| 46 |
+
|
| 47 |
+
## 🔬 Fetal Ultrasound Plane Classification
|
| 48 |
+
|
| 49 |
+
### Model Performance
|
| 50 |
+
- **Algorithm**: Vision Transformer (ViT-Base-Patch16-224)
|
| 51 |
+
- **Validation Accuracy**: 91.69%
|
| 52 |
+
- **Training Time**: 18.5 minutes (Apple Silicon M4)
|
| 53 |
+
- **Dataset**: 12,400 ultrasound images
|
| 54 |
+
- **Classes**: 9 anatomical plane categories
|
| 55 |
+
|
| 56 |
+
### Training Configuration
|
| 57 |
+
- **Device**: Apple Silicon MPS (Metal Performance Shaders)
|
| 58 |
+
- **Batch Size**: 2 (thermal-optimized)
|
| 59 |
+
- **Epochs**: 2
|
| 60 |
+
- **Learning Rate**: 5e-5
|
| 61 |
+
- **Architecture**: ARM64 optimized
|
| 62 |
+
|
| 63 |
+
### Classification Categories
|
| 64 |
+
|
| 65 |
+
#### Fetal Brain Planes (4 types)
|
| 66 |
+
1. **Trans-thalamic**: 1,638 images
|
| 67 |
+
2. **Trans-cerebellum**: 714 images
|
| 68 |
+
3. **Trans-ventricular**: 597 images
|
| 69 |
+
4. **Other brain views**: 143 images
|
| 70 |
+
|
| 71 |
+
#### Anatomical Structures (4 types)
|
| 72 |
+
1. **Fetal thorax**: 1,718 images
|
| 73 |
+
2. **Maternal cervix**: 1,626 images
|
| 74 |
+
3. **Fetal femur**: 1,040 images
|
| 75 |
+
4. **Fetal abdomen**: 711 images
|
| 76 |
+
|
| 77 |
+
#### Quality Control (1 type)
|
| 78 |
+
1. **Other/Unclear**: 4,213 images
|
| 79 |
+
|
| 80 |
+
### Training Metrics
|
| 81 |
+
```
|
| 82 |
+
Final Training Loss: 0.21
|
| 83 |
+
Validation Loss: 0.316
|
| 84 |
+
Training Speed: 4.47 iterations/second
|
| 85 |
+
System Resources:
|
| 86 |
+
- CPU Usage: 5.4% (post-training)
|
| 87 |
+
- Memory Usage: 65.3%
|
| 88 |
+
- Temperature: Stable (no overheating)
|
| 89 |
+
```
|
| 90 |
+
|
| 91 |
+
### Apple Silicon Optimizations
|
| 92 |
+
- **MPS Acceleration**: Full M4 chip utilization
|
| 93 |
+
- **Thermal Management**: Prevented overheating
|
| 94 |
+
- **Memory Efficiency**: Optimized batch sizes
|
| 95 |
+
- **Native Performance**: ARM64 PyTorch builds
|
| 96 |
+
|
| 97 |
+
---
|
| 98 |
+
|
| 99 |
+
## 🏗️ System Architecture
|
| 100 |
+
|
| 101 |
+
### Project Structure
|
| 102 |
+
```
|
| 103 |
+
hackathon15092025/
|
| 104 |
+
├── src/ # Source code
|
| 105 |
+
│ ├── app.py # Pregnancy risk Streamlit app
|
| 106 |
+
│ └── pregnancy_risk_prediction.py
|
| 107 |
+
├── fetal_plane_app.py # Fetal plane Streamlit app
|
| 108 |
+
├── fetal_plane_classifier.py # Training script
|
| 109 |
+
├── models/ # Trained models
|
| 110 |
+
│ ├── pregnancy_risk_model.pkl
|
| 111 |
+
│ └── fetal_plane_model/
|
| 112 |
+
├── data/ # Datasets
|
| 113 |
+
│ └── Dataset - Updated.csv
|
| 114 |
+
├── FETAL_PLANES_ZENODO/ # Ultrasound dataset
|
| 115 |
+
├── static/css/ # Styling
|
| 116 |
+
├── index.html # Main dashboard
|
| 117 |
+
└── requirements*.txt # Dependencies
|
| 118 |
+
```
|
| 119 |
+
|
| 120 |
+
### Technology Stack
|
| 121 |
+
- **Machine Learning**: scikit-learn, PyTorch, Transformers
|
| 122 |
+
- **Web Framework**: Streamlit
|
| 123 |
+
- **Frontend**: HTML5, CSS3, JavaScript
|
| 124 |
+
- **Visualization**: Plotly, Matplotlib
|
| 125 |
+
- **Deployment**: Apple Silicon optimized
|
| 126 |
+
|
| 127 |
+
---
|
| 128 |
+
|
| 129 |
+
## 🚀 Deployment Guide
|
| 130 |
+
|
| 131 |
+
### Prerequisites
|
| 132 |
+
- Python 3.9+
|
| 133 |
+
- macOS with Apple Silicon (M1/M2/M3/M4)
|
| 134 |
+
- 8GB+ RAM recommended
|
| 135 |
+
|
| 136 |
+
### Installation
|
| 137 |
+
```bash
|
| 138 |
+
# Clone repository
|
| 139 |
+
cd /Users/karthik/Projects/hackathon15092025
|
| 140 |
+
|
| 141 |
+
# Install dependencies
|
| 142 |
+
pip install -r requirements.txt
|
| 143 |
+
pip install -r requirements_fetal.txt
|
| 144 |
+
|
| 145 |
+
# Train models (if needed)
|
| 146 |
+
python src/pregnancy_risk_prediction.py
|
| 147 |
+
python train_fetal_model_thermal.py
|
| 148 |
+
```
|
| 149 |
+
|
| 150 |
+
### Running Applications
|
| 151 |
+
```bash
|
| 152 |
+
# Pregnancy Risk App (Port 8501)
|
| 153 |
+
streamlit run src/app.py
|
| 154 |
+
|
| 155 |
+
# Fetal Plane App (Port 8502)
|
| 156 |
+
streamlit run fetal_plane_app.py --server.port 8502
|
| 157 |
+
|
| 158 |
+
# Main Dashboard
|
| 159 |
+
open index.html
|
| 160 |
+
```
|
| 161 |
+
|
| 162 |
+
---
|
| 163 |
+
|
| 164 |
+
## 📊 Performance Benchmarks
|
| 165 |
+
|
| 166 |
+
### Pregnancy Risk Model
|
| 167 |
+
| Metric | Value |
|
| 168 |
+
|--------|-------|
|
| 169 |
+
| Training Accuracy | 100% |
|
| 170 |
+
| Validation Accuracy | 100% |
|
| 171 |
+
| Inference Time | <1ms |
|
| 172 |
+
| Model Size | 2.3MB |
|
| 173 |
+
| Features | 11 |
|
| 174 |
+
|
| 175 |
+
### Fetal Plane Model
|
| 176 |
+
| Metric | Value |
|
| 177 |
+
|--------|-------|
|
| 178 |
+
| Training Accuracy | 95.4% |
|
| 179 |
+
| Validation Accuracy | 91.69% |
|
| 180 |
+
| Inference Time | <100ms |
|
| 181 |
+
| Model Size | 346MB |
|
| 182 |
+
| Parameters | 86M |
|
| 183 |
+
|
| 184 |
+
### System Performance (M4 MacBook)
|
| 185 |
+
| Resource | Usage |
|
| 186 |
+
|----------|-------|
|
| 187 |
+
| CPU | 5.4% (idle) |
|
| 188 |
+
| Memory | 65.3% |
|
| 189 |
+
| GPU (MPS) | Active |
|
| 190 |
+
| Temperature | Stable |
|
| 191 |
+
|
| 192 |
+
---
|
| 193 |
+
|
| 194 |
+
## 🔒 Security & Privacy
|
| 195 |
+
|
| 196 |
+
### Data Protection
|
| 197 |
+
- **No Data Storage**: Patient data not permanently stored
|
| 198 |
+
- **Local Processing**: All inference runs locally
|
| 199 |
+
- **HIPAA Considerations**: Designed for privacy compliance
|
| 200 |
+
- **Secure Models**: No data leakage in model weights
|
| 201 |
+
|
| 202 |
+
### Recommendations
|
| 203 |
+
- Use in controlled medical environments
|
| 204 |
+
- Implement proper access controls
|
| 205 |
+
- Regular security audits
|
| 206 |
+
- Compliance with local regulations
|
| 207 |
+
|
| 208 |
+
---
|
| 209 |
+
|
| 210 |
+
## 🎯 Clinical Applications
|
| 211 |
+
|
| 212 |
+
### Pregnancy Risk Assessment
|
| 213 |
+
- **Primary Care**: Initial risk screening
|
| 214 |
+
- **Obstetrics**: Prenatal care planning
|
| 215 |
+
- **Emergency**: Rapid risk evaluation
|
| 216 |
+
- **Telemedicine**: Remote consultations
|
| 217 |
+
|
| 218 |
+
### Ultrasound Classification
|
| 219 |
+
- **Radiology**: Image quality control
|
| 220 |
+
- **Training**: Medical education tool
|
| 221 |
+
- **Workflow**: Automated image sorting
|
| 222 |
+
- **Research**: Large-scale studies
|
| 223 |
+
|
| 224 |
+
---
|
| 225 |
+
|
| 226 |
+
## ⚠️ Limitations & Disclaimers
|
| 227 |
+
|
| 228 |
+
### Model Limitations
|
| 229 |
+
- **Educational Purpose**: Not for clinical diagnosis
|
| 230 |
+
- **Validation Needed**: Requires clinical validation
|
| 231 |
+
- **Population Bias**: Trained on specific datasets
|
| 232 |
+
- **Continuous Learning**: Models need regular updates
|
| 233 |
+
|
| 234 |
+
### Usage Guidelines
|
| 235 |
+
- Always consult qualified healthcare professionals
|
| 236 |
+
- Use as decision support, not replacement
|
| 237 |
+
- Validate results with clinical judgment
|
| 238 |
+
- Report unusual predictions for review
|
| 239 |
+
|
| 240 |
+
---
|
| 241 |
+
|
| 242 |
+
## 📈 Future Enhancements
|
| 243 |
+
|
| 244 |
+
### Planned Features
|
| 245 |
+
- **Multi-language Support**: International deployment
|
| 246 |
+
- **Real-time Monitoring**: Continuous risk assessment
|
| 247 |
+
- **Integration APIs**: EHR system connectivity
|
| 248 |
+
- **Advanced Models**: Transformer-based improvements
|
| 249 |
+
|
| 250 |
+
### Research Directions
|
| 251 |
+
- **Federated Learning**: Multi-site model training
|
| 252 |
+
- **Explainable AI**: Enhanced interpretability
|
| 253 |
+
- **Edge Deployment**: Mobile device optimization
|
| 254 |
+
- **Clinical Trials**: Prospective validation studies
|
| 255 |
+
|
| 256 |
+
---
|
| 257 |
+
|
| 258 |
+
## 📞 Support & Contact
|
| 259 |
+
|
| 260 |
+
### Technical Support
|
| 261 |
+
- **Documentation**: This file and README files
|
| 262 |
+
- **Issues**: Check terminal logs for errors
|
| 263 |
+
- **Performance**: Monitor system resources
|
| 264 |
+
- **Updates**: Regular dependency updates
|
| 265 |
+
|
| 266 |
+
### Development Team
|
| 267 |
+
- **AI/ML Engineering**: Model development and optimization
|
| 268 |
+
- **Medical Informatics**: Clinical workflow integration
|
| 269 |
+
- **Software Engineering**: Application development
|
| 270 |
+
- **Quality Assurance**: Testing and validation
|
| 271 |
+
|
| 272 |
+
---
|
| 273 |
+
|
| 274 |
+
*Last Updated: January 2025*
|
| 275 |
+
*Version: 1.0*
|
| 276 |
+
*Platform: Apple Silicon Optimized*
|
docs/PROJECT_STRUCTURE.md
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🏗️ Medical AI System - Project Structure
|
| 2 |
+
|
| 3 |
+
## 📁 Complete Directory Structure
|
| 4 |
+
|
| 5 |
+
```
|
| 6 |
+
hackathon15092025/
|
| 7 |
+
├── 📋 Documentation
|
| 8 |
+
│ ├── README.md # Main project overview
|
| 9 |
+
│ ├── README_FETAL.md # Fetal plane classification guide
|
| 10 |
+
│ ├── DOCUMENTATION.md # Comprehensive system documentation
|
| 11 |
+
│ └── PROJECT_STRUCTURE.md # This file - project organization
|
| 12 |
+
│
|
| 13 |
+
├── 🌐 Web Interface
|
| 14 |
+
│ ├── index.html # Main dashboard with navbar and iframes
|
| 15 |
+
│ └── static/
|
| 16 |
+
│ └── css/
|
| 17 |
+
│ └── style.css # Satoshi font styling for Streamlit
|
| 18 |
+
│
|
| 19 |
+
├── 🤱 Pregnancy Risk Prediction System
|
| 20 |
+
│ ├── src/
|
| 21 |
+
│ │ ├── app.py # Streamlit web app (Port 8501)
|
| 22 |
+
│ │ └── pregnancy_risk_prediction.py # Model training script
|
| 23 |
+
│ └── models/
|
| 24 |
+
│ ├── pregnancy_risk_model.pkl # Trained Random Forest model
|
| 25 |
+
│ ├── label_encoder.pkl # Label encoder
|
| 26 |
+
│ └── feature_columns.pkl # Feature column names
|
| 27 |
+
│
|
| 28 |
+
├── 🔬 Fetal Ultrasound Classification System
|
| 29 |
+
│ ├── fetal_plane_app.py # Streamlit web app (Port 8502)
|
| 30 |
+
│ ├── fetal_plane_classifier.py # ViT model training script
|
| 31 |
+
│ ├── train_fetal_model.py # Standard training script
|
| 32 |
+
│ ├── train_fetal_model_thermal.py # Thermal-safe training for M4
|
| 33 |
+
│ └── models/
|
| 34 |
+
│ └── fetal_plane_model/ # Trained Vision Transformer model
|
| 35 |
+
│ ├── config.json
|
| 36 |
+
│ ├── model.safetensors
|
| 37 |
+
│ ├── preprocessor_config.json
|
| 38 |
+
│ ├── label_encoder.pkl
|
| 39 |
+
│ └── checkpoint-*/ # Training checkpoints
|
| 40 |
+
│
|
| 41 |
+
├── 📊 Datasets
|
| 42 |
+
│ ├── data/
|
| 43 |
+
│ │ ├── Dataset - Updated.csv # Pregnancy risk dataset (1,187 records)
|
| 44 |
+
│ │ └── Dataset/ # Additional audio data
|
| 45 |
+
│ └── FETAL_PLANES_ZENODO/ # Fetal ultrasound dataset
|
| 46 |
+
│ ├── FETAL_PLANES_DB_data.csv # Labels (12,400 images)
|
| 47 |
+
│ ├── FETAL_PLANES_DB_data.xlsx # Excel version
|
| 48 |
+
│ ├── Images/ # Ultrasound images (PNG format)
|
| 49 |
+
│ └── README.md # Dataset documentation
|
| 50 |
+
│
|
| 51 |
+
└── ⚙️ Configuration & Dependencies
|
| 52 |
+
├── requirements.txt # Pregnancy risk dependencies
|
| 53 |
+
└── requirements_fetal.txt # Fetal plane dependencies (Apple Silicon)
|
| 54 |
+
```
|
| 55 |
+
|
| 56 |
+
## 🚀 Application Ports & URLs
|
| 57 |
+
|
| 58 |
+
| Application | Port | URL | Description |
|
| 59 |
+
|-------------|------|-----|-------------|
|
| 60 |
+
| **Main Dashboard** | - | `file://index.html` | HTML dashboard with navigation |
|
| 61 |
+
| **Pregnancy Risk** | 8501 | `http://localhost:8501` | Risk prediction interface |
|
| 62 |
+
| **Fetal Planes** | 8502 | `http://localhost:8502` | Ultrasound classification |
|
| 63 |
+
|
| 64 |
+
## 📱 Navigation Structure
|
| 65 |
+
|
| 66 |
+
### Main Dashboard (index.html)
|
| 67 |
+
```
|
| 68 |
+
🏠 Home
|
| 69 |
+
├── Welcome section
|
| 70 |
+
├── Feature overview
|
| 71 |
+
└── System introduction
|
| 72 |
+
|
| 73 |
+
🤱 Pregnancy Risk (iframe: localhost:8501)
|
| 74 |
+
├── Patient information form
|
| 75 |
+
├── Risk prediction results
|
| 76 |
+
├── Feature importance analysis
|
| 77 |
+
└── Medical recommendations
|
| 78 |
+
|
| 79 |
+
🔬 Fetal Planes (iframe: localhost:8502)
|
| 80 |
+
├── Image upload interface
|
| 81 |
+
├── Ultrasound classification
|
| 82 |
+
├── Confidence scores
|
| 83 |
+
└── Anatomical plane identification
|
| 84 |
+
|
| 85 |
+
📋 Documentation
|
| 86 |
+
├── Performance metrics
|
| 87 |
+
├── Model specifications
|
| 88 |
+
├── Training results
|
| 89 |
+
└── Technical details
|
| 90 |
+
|
| 91 |
+
ℹ️ About
|
| 92 |
+
├── System overview
|
| 93 |
+
├── Technology stack
|
| 94 |
+
├── Performance metrics
|
| 95 |
+
└── Privacy & security
|
| 96 |
+
```
|
| 97 |
+
|
| 98 |
+
## 🔧 Technical Architecture
|
| 99 |
+
|
| 100 |
+
### Frontend Layer
|
| 101 |
+
- **HTML5 Dashboard**: Responsive design with Satoshi font
|
| 102 |
+
- **CSS3 Styling**: Modern UI with gradients and animations
|
| 103 |
+
- **JavaScript Navigation**: Seamless page transitions
|
| 104 |
+
- **Iframe Integration**: Borderless embedding of Streamlit apps
|
| 105 |
+
|
| 106 |
+
### Backend Layer
|
| 107 |
+
- **Streamlit Apps**: Interactive web interfaces
|
| 108 |
+
- **Python ML Models**: scikit-learn and PyTorch
|
| 109 |
+
- **Apple Silicon Optimization**: MPS acceleration
|
| 110 |
+
- **Local Processing**: No external API dependencies
|
| 111 |
+
|
| 112 |
+
### Data Layer
|
| 113 |
+
- **CSV Datasets**: Structured medical data
|
| 114 |
+
- **PNG Images**: Ultrasound imaging data
|
| 115 |
+
- **Pickle Models**: Serialized trained models
|
| 116 |
+
- **JSON Configs**: Model configurations
|
| 117 |
+
|
| 118 |
+
## 🎯 Model Specifications
|
| 119 |
+
|
| 120 |
+
### Pregnancy Risk Model
|
| 121 |
+
```yaml
|
| 122 |
+
Algorithm: Random Forest Classifier
|
| 123 |
+
Accuracy: 100%
|
| 124 |
+
Features: 11 clinical parameters
|
| 125 |
+
Dataset: 1,187 patient records
|
| 126 |
+
Inference: <1ms
|
| 127 |
+
Model Size: 2.3MB
|
| 128 |
+
Framework: scikit-learn
|
| 129 |
+
```
|
| 130 |
+
|
| 131 |
+
### Fetal Plane Model
|
| 132 |
+
```yaml
|
| 133 |
+
Algorithm: Vision Transformer (ViT-Base-Patch16-224)
|
| 134 |
+
Validation Accuracy: 91.69%
|
| 135 |
+
Classes: 9 anatomical planes
|
| 136 |
+
Dataset: 12,400 ultrasound images
|
| 137 |
+
Inference: <100ms
|
| 138 |
+
Model Size: 346MB
|
| 139 |
+
Framework: PyTorch + Transformers
|
| 140 |
+
Optimization: Apple Silicon MPS
|
| 141 |
+
```
|
| 142 |
+
|
| 143 |
+
## 🔄 Deployment Workflow
|
| 144 |
+
|
| 145 |
+
### 1. Environment Setup
|
| 146 |
+
```bash
|
| 147 |
+
# Activate global environment
|
| 148 |
+
globalvenv
|
| 149 |
+
|
| 150 |
+
# Install dependencies
|
| 151 |
+
pip install -r requirements.txt
|
| 152 |
+
pip install -r requirements_fetal.txt
|
| 153 |
+
```
|
| 154 |
+
|
| 155 |
+
### 2. Model Training (Optional)
|
| 156 |
+
```bash
|
| 157 |
+
# Train pregnancy risk model
|
| 158 |
+
python src/pregnancy_risk_prediction.py
|
| 159 |
+
|
| 160 |
+
# Train fetal plane model (thermal-safe)
|
| 161 |
+
python train_fetal_model_thermal.py
|
| 162 |
+
```
|
| 163 |
+
|
| 164 |
+
### 3. Application Startup
|
| 165 |
+
```bash
|
| 166 |
+
# Terminal 1: Pregnancy Risk App
|
| 167 |
+
python -m streamlit run src/app.py --server.port 8501 --server.headless true
|
| 168 |
+
|
| 169 |
+
# Terminal 2: Fetal Plane App
|
| 170 |
+
python -m streamlit run fetal_plane_app.py --server.port 8502 --server.headless true
|
| 171 |
+
|
| 172 |
+
# Terminal 3: Main Dashboard
|
| 173 |
+
open index.html
|
| 174 |
+
```
|
| 175 |
+
|
| 176 |
+
## 📊 Performance Monitoring
|
| 177 |
+
|
| 178 |
+
### System Resources (Apple Silicon M4)
|
| 179 |
+
- **CPU Usage**: 5.4% (idle)
|
| 180 |
+
- **Memory Usage**: 65.3%
|
| 181 |
+
- **GPU (MPS)**: Active acceleration
|
| 182 |
+
- **Temperature**: Stable (thermal management)
|
| 183 |
+
|
| 184 |
+
### Application Performance
|
| 185 |
+
- **Dashboard Load**: <1s
|
| 186 |
+
- **Streamlit Apps**: <3s startup
|
| 187 |
+
- **Model Inference**: Real-time
|
| 188 |
+
- **Navigation**: Instant transitions
|
| 189 |
+
|
| 190 |
+
## 🔒 Security & Privacy
|
| 191 |
+
|
| 192 |
+
### Data Protection
|
| 193 |
+
- ✅ **Local Processing**: No external data transmission
|
| 194 |
+
- ✅ **No Persistent Storage**: Patient data not saved
|
| 195 |
+
- ✅ **HIPAA Compliance**: Privacy-by-design architecture
|
| 196 |
+
- ✅ **Secure Models**: No data leakage in weights
|
| 197 |
+
|
| 198 |
+
### Access Control
|
| 199 |
+
- 🔐 **Local Access Only**: localhost binding
|
| 200 |
+
- 🔐 **No Authentication**: Suitable for controlled environments
|
| 201 |
+
- 🔐 **Audit Logging**: Terminal output for monitoring
|
| 202 |
+
- 🔐 **Error Handling**: Graceful failure modes
|
| 203 |
+
|
| 204 |
+
## 🚀 Future Enhancements
|
| 205 |
+
|
| 206 |
+
### Planned Features
|
| 207 |
+
- [ ] **Multi-language Support**: International deployment
|
| 208 |
+
- [ ] **Real-time Monitoring**: System health dashboard
|
| 209 |
+
- [ ] **API Integration**: RESTful endpoints
|
| 210 |
+
- [ ] **Mobile Optimization**: Responsive design improvements
|
| 211 |
+
|
| 212 |
+
### Technical Improvements
|
| 213 |
+
- [ ] **Model Versioning**: MLOps pipeline
|
| 214 |
+
- [ ] **A/B Testing**: Model comparison framework
|
| 215 |
+
- [ ] **Performance Metrics**: Real-time monitoring
|
| 216 |
+
- [ ] **Auto-scaling**: Dynamic resource allocation
|
| 217 |
+
|
| 218 |
+
---
|
| 219 |
+
|
| 220 |
+
*Last Updated: January 2025*
|
| 221 |
+
*Version: 1.0*
|
| 222 |
+
*Platform: Apple Silicon Optimized*
|
| 223 |
+
*Status: Production Ready*
|
frontend/.gitignore
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Logs
|
| 2 |
+
logs
|
| 3 |
+
*.log
|
| 4 |
+
npm-debug.log*
|
| 5 |
+
yarn-debug.log*
|
| 6 |
+
yarn-error.log*
|
| 7 |
+
pnpm-debug.log*
|
| 8 |
+
lerna-debug.log*
|
| 9 |
+
|
| 10 |
+
node_modules
|
| 11 |
+
dist
|
| 12 |
+
dist-ssr
|
| 13 |
+
*.local
|
| 14 |
+
|
| 15 |
+
# Editor directories and files
|
| 16 |
+
.vscode/*
|
| 17 |
+
!.vscode/extensions.json
|
| 18 |
+
.idea
|
| 19 |
+
.DS_Store
|
| 20 |
+
*.suo
|
| 21 |
+
*.ntvs*
|
| 22 |
+
*.njsproj
|
| 23 |
+
*.sln
|
| 24 |
+
*.sw?
|
frontend/README.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# React + TypeScript + Vite
|
| 2 |
+
|
| 3 |
+
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
| 4 |
+
|
| 5 |
+
Currently, two official plugins are available:
|
| 6 |
+
|
| 7 |
+
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
|
| 8 |
+
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
|
| 9 |
+
|
| 10 |
+
## Expanding the ESLint configuration
|
| 11 |
+
|
| 12 |
+
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
|
| 13 |
+
|
| 14 |
+
```js
|
| 15 |
+
export default tseslint.config([
|
| 16 |
+
globalIgnores(['dist']),
|
| 17 |
+
{
|
| 18 |
+
files: ['**/*.{ts,tsx}'],
|
| 19 |
+
extends: [
|
| 20 |
+
// Other configs...
|
| 21 |
+
|
| 22 |
+
// Remove tseslint.configs.recommended and replace with this
|
| 23 |
+
...tseslint.configs.recommendedTypeChecked,
|
| 24 |
+
// Alternatively, use this for stricter rules
|
| 25 |
+
...tseslint.configs.strictTypeChecked,
|
| 26 |
+
// Optionally, add this for stylistic rules
|
| 27 |
+
...tseslint.configs.stylisticTypeChecked,
|
| 28 |
+
|
| 29 |
+
// Other configs...
|
| 30 |
+
],
|
| 31 |
+
languageOptions: {
|
| 32 |
+
parserOptions: {
|
| 33 |
+
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
| 34 |
+
tsconfigRootDir: import.meta.dirname,
|
| 35 |
+
},
|
| 36 |
+
// other options...
|
| 37 |
+
},
|
| 38 |
+
},
|
| 39 |
+
])
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
|
| 43 |
+
|
| 44 |
+
```js
|
| 45 |
+
// eslint.config.js
|
| 46 |
+
import reactX from 'eslint-plugin-react-x'
|
| 47 |
+
import reactDom from 'eslint-plugin-react-dom'
|
| 48 |
+
|
| 49 |
+
export default tseslint.config([
|
| 50 |
+
globalIgnores(['dist']),
|
| 51 |
+
{
|
| 52 |
+
files: ['**/*.{ts,tsx}'],
|
| 53 |
+
extends: [
|
| 54 |
+
// Other configs...
|
| 55 |
+
// Enable lint rules for React
|
| 56 |
+
reactX.configs['recommended-typescript'],
|
| 57 |
+
// Enable lint rules for React DOM
|
| 58 |
+
reactDom.configs.recommended,
|
| 59 |
+
],
|
| 60 |
+
languageOptions: {
|
| 61 |
+
parserOptions: {
|
| 62 |
+
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
| 63 |
+
tsconfigRootDir: import.meta.dirname,
|
| 64 |
+
},
|
| 65 |
+
// other options...
|
| 66 |
+
},
|
| 67 |
+
},
|
| 68 |
+
])
|
| 69 |
+
```
|
frontend/eslint.config.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import js from '@eslint/js'
|
| 2 |
+
import globals from 'globals'
|
| 3 |
+
import reactHooks from 'eslint-plugin-react-hooks'
|
| 4 |
+
import reactRefresh from 'eslint-plugin-react-refresh'
|
| 5 |
+
import tseslint from 'typescript-eslint'
|
| 6 |
+
import { globalIgnores } from 'eslint/config'
|
| 7 |
+
|
| 8 |
+
export default tseslint.config([
|
| 9 |
+
globalIgnores(['dist']),
|
| 10 |
+
{
|
| 11 |
+
files: ['**/*.{ts,tsx}'],
|
| 12 |
+
extends: [
|
| 13 |
+
js.configs.recommended,
|
| 14 |
+
tseslint.configs.recommended,
|
| 15 |
+
reactHooks.configs['recommended-latest'],
|
| 16 |
+
reactRefresh.configs.vite,
|
| 17 |
+
],
|
| 18 |
+
languageOptions: {
|
| 19 |
+
ecmaVersion: 2020,
|
| 20 |
+
globals: globals.browser,
|
| 21 |
+
},
|
| 22 |
+
},
|
| 23 |
+
])
|
frontend/index.html
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8" />
|
| 5 |
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
| 6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
+
<title>Medical AI Dashboard - Secure Access</title>
|
| 8 |
+
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
|
| 9 |
+
</head>
|
| 10 |
+
<body>
|
| 11 |
+
<div id="root"></div>
|
| 12 |
+
<script type="module" src="/src/main.tsx"></script>
|
| 13 |
+
</body>
|
| 14 |
+
</html>
|
frontend/node_modules/.bin/acorn
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4c3eb6f1d8932790dbff043839f8ee7686bc614a59ef577e96fed618a4a4b1b8
|
| 3 |
+
size 60
|
frontend/node_modules/.bin/autoprefixer
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6824869930667f7b287f708f9e07f6abeecbff48d97779576f59372856566c8f
|
| 3 |
+
size 554
|
frontend/node_modules/.bin/baseline-browser-mapping
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6bcb5b0e5524624d75a16f2dbfe80cdf26db8e7ff743252c39d20558e30eaa3e
|
| 3 |
+
size 2032
|
frontend/node_modules/.bin/browserslist
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0529540ec3f1805330afdb3b826fc5b006f7f9b946155fbb7e5932cbcf876015
|
| 3 |
+
size 4347
|
frontend/node_modules/.bin/esbuild
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f7357c1e944f135066b69260729b07a39d1b39a03bfe7d84644224fc827595ed
|
| 3 |
+
size 9867346
|
frontend/node_modules/.bin/eslint
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6280b95e2a6ab3b04be45cbd3b1627654be518e6a4da163ec0adcbba9cd5fcd8
|
| 3 |
+
size 5610
|
frontend/node_modules/.bin/jiti
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8829aad7e953f97ef9e25782c99eafa013efa0c36db7c2ffebcc140bd8eeaf54
|
| 3 |
+
size 794
|
frontend/node_modules/.bin/js-yaml
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6d7749dfd8019095970f4366cd09ec3abef9deaa3f870709dffecb027e58902d
|
| 3 |
+
size 2736
|
frontend/node_modules/.bin/jsesc
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:775eddbcc7769fa4d7d4d7b29c155a1bcd4221190462789545410f82e8328892
|
| 3 |
+
size 3833
|
frontend/node_modules/.bin/json5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5625791d31c1a385ca8e8823119fc659b61cd53957b2bd494bc8941486684bd4
|
| 3 |
+
size 3592
|
frontend/node_modules/.bin/mkdirp
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0eb283be7c2af1807175ebc420a183bca619b27b86a328c87ef5a356f37e7fff
|
| 3 |
+
size 2430
|
frontend/node_modules/.bin/nanoid
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e4eb9be1a3e3feb3f8979ef08c3bf3ef8430f4f22df9c4e427353a1577accbe8
|
| 3 |
+
size 1129
|
frontend/node_modules/.bin/node-which
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:055f0ac4eed1a1591d033d59462972968bf3483b4cc07e163589569c0fb999f0
|
| 3 |
+
size 985
|
frontend/node_modules/.bin/parser
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c7c62937ddbdad55475054a193073fca01092879a86b278182b28a850b8d4ebd
|
| 3 |
+
size 363
|
frontend/node_modules/.bin/rollup
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7c516fd3f66a6b330567934d81e6b227eb7904571301d3cc55148f22435c5367
|
| 3 |
+
size 81327
|
frontend/node_modules/.bin/semver
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a3ed56435cbd4b3f07a80c4a343edd86d787f89bf2cee0105bdf68cb653ba2a0
|
| 3 |
+
size 4717
|
frontend/node_modules/.bin/tsc
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8d5fa5bd883fec0979fc2004f1fe1d99aef40570155d550eadc0b03b55513bf0
|
| 3 |
+
size 45
|
frontend/node_modules/.bin/tsserver
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a088f0c3419bcb2f7b860ad42e4c9f25ead067eda70af6a10d0a7d453954aada
|
| 3 |
+
size 50
|
frontend/node_modules/.bin/update-browserslist-db
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:047bd636b5ff5b27c7a85c6fe64da0d03dd60649e818869b939d4e7897ddb3fa
|
| 3 |
+
size 912
|
frontend/node_modules/.bin/vite
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fa03478846d229651a3c6aa64833ba2c6cbf580a798b92bd8f47c7480bafb5d8
|
| 3 |
+
size 2574
|
frontend/node_modules/.package-lock.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
frontend/node_modules/.vite/deps/@clerk_clerk-react.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
frontend/node_modules/.vite/deps/@clerk_clerk-react.js.map
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
frontend/node_modules/.vite/deps/_metadata.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"hash": "cffce755",
|
| 3 |
+
"configHash": "1531d494",
|
| 4 |
+
"lockfileHash": "37413a44",
|
| 5 |
+
"browserHash": "c75496ec",
|
| 6 |
+
"optimized": {
|
| 7 |
+
"react": {
|
| 8 |
+
"src": "../../react/index.js",
|
| 9 |
+
"file": "react.js",
|
| 10 |
+
"fileHash": "41324778",
|
| 11 |
+
"needsInterop": true
|
| 12 |
+
},
|
| 13 |
+
"react-dom": {
|
| 14 |
+
"src": "../../react-dom/index.js",
|
| 15 |
+
"file": "react-dom.js",
|
| 16 |
+
"fileHash": "4bf46e18",
|
| 17 |
+
"needsInterop": true
|
| 18 |
+
},
|
| 19 |
+
"react/jsx-dev-runtime": {
|
| 20 |
+
"src": "../../react/jsx-dev-runtime.js",
|
| 21 |
+
"file": "react_jsx-dev-runtime.js",
|
| 22 |
+
"fileHash": "6e43be7d",
|
| 23 |
+
"needsInterop": true
|
| 24 |
+
},
|
| 25 |
+
"react/jsx-runtime": {
|
| 26 |
+
"src": "../../react/jsx-runtime.js",
|
| 27 |
+
"file": "react_jsx-runtime.js",
|
| 28 |
+
"fileHash": "1903cb98",
|
| 29 |
+
"needsInterop": true
|
| 30 |
+
},
|
| 31 |
+
"@clerk/clerk-react": {
|
| 32 |
+
"src": "../../@clerk/clerk-react/dist/index.mjs",
|
| 33 |
+
"file": "@clerk_clerk-react.js",
|
| 34 |
+
"fileHash": "7c4aa8e8",
|
| 35 |
+
"needsInterop": false
|
| 36 |
+
},
|
| 37 |
+
"react-dom/client": {
|
| 38 |
+
"src": "../../react-dom/client.js",
|
| 39 |
+
"file": "react-dom_client.js",
|
| 40 |
+
"fileHash": "53671813",
|
| 41 |
+
"needsInterop": true
|
| 42 |
+
}
|
| 43 |
+
},
|
| 44 |
+
"chunks": {
|
| 45 |
+
"chunk-I5HANLAN": {
|
| 46 |
+
"file": "chunk-I5HANLAN.js"
|
| 47 |
+
},
|
| 48 |
+
"chunk-X4QARNC5": {
|
| 49 |
+
"file": "chunk-X4QARNC5.js"
|
| 50 |
+
}
|
| 51 |
+
}
|
| 52 |
+
}
|
frontend/node_modules/.vite/deps/chunk-I5HANLAN.js
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import {
|
| 2 |
+
__commonJS,
|
| 3 |
+
require_react
|
| 4 |
+
} from "./chunk-X4QARNC5.js";
|
| 5 |
+
|
| 6 |
+
// node_modules/react-dom/cjs/react-dom.development.js
|
| 7 |
+
var require_react_dom_development = __commonJS({
|
| 8 |
+
"node_modules/react-dom/cjs/react-dom.development.js"(exports) {
|
| 9 |
+
"use strict";
|
| 10 |
+
(function() {
|
| 11 |
+
function noop() {
|
| 12 |
+
}
|
| 13 |
+
function testStringCoercion(value) {
|
| 14 |
+
return "" + value;
|
| 15 |
+
}
|
| 16 |
+
function createPortal$1(children, containerInfo, implementation) {
|
| 17 |
+
var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
|
| 18 |
+
try {
|
| 19 |
+
testStringCoercion(key);
|
| 20 |
+
var JSCompiler_inline_result = false;
|
| 21 |
+
} catch (e) {
|
| 22 |
+
JSCompiler_inline_result = true;
|
| 23 |
+
}
|
| 24 |
+
JSCompiler_inline_result && (console.error(
|
| 25 |
+
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
|
| 26 |
+
"function" === typeof Symbol && Symbol.toStringTag && key[Symbol.toStringTag] || key.constructor.name || "Object"
|
| 27 |
+
), testStringCoercion(key));
|
| 28 |
+
return {
|
| 29 |
+
$$typeof: REACT_PORTAL_TYPE,
|
| 30 |
+
key: null == key ? null : "" + key,
|
| 31 |
+
children,
|
| 32 |
+
containerInfo,
|
| 33 |
+
implementation
|
| 34 |
+
};
|
| 35 |
+
}
|
| 36 |
+
function getCrossOriginStringAs(as, input) {
|
| 37 |
+
if ("font" === as) return "";
|
| 38 |
+
if ("string" === typeof input)
|
| 39 |
+
return "use-credentials" === input ? input : "";
|
| 40 |
+
}
|
| 41 |
+
function getValueDescriptorExpectingObjectForWarning(thing) {
|
| 42 |
+
return null === thing ? "`null`" : void 0 === thing ? "`undefined`" : "" === thing ? "an empty string" : 'something with type "' + typeof thing + '"';
|
| 43 |
+
}
|
| 44 |
+
function getValueDescriptorExpectingEnumForWarning(thing) {
|
| 45 |
+
return null === thing ? "`null`" : void 0 === thing ? "`undefined`" : "" === thing ? "an empty string" : "string" === typeof thing ? JSON.stringify(thing) : "number" === typeof thing ? "`" + thing + "`" : 'something with type "' + typeof thing + '"';
|
| 46 |
+
}
|
| 47 |
+
function resolveDispatcher() {
|
| 48 |
+
var dispatcher = ReactSharedInternals.H;
|
| 49 |
+
null === dispatcher && console.error(
|
| 50 |
+
"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
|
| 51 |
+
);
|
| 52 |
+
return dispatcher;
|
| 53 |
+
}
|
| 54 |
+
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
|
| 55 |
+
var React = require_react(), Internals = {
|
| 56 |
+
d: {
|
| 57 |
+
f: noop,
|
| 58 |
+
r: function() {
|
| 59 |
+
throw Error(
|
| 60 |
+
"Invalid form element. requestFormReset must be passed a form that was rendered by React."
|
| 61 |
+
);
|
| 62 |
+
},
|
| 63 |
+
D: noop,
|
| 64 |
+
C: noop,
|
| 65 |
+
L: noop,
|
| 66 |
+
m: noop,
|
| 67 |
+
X: noop,
|
| 68 |
+
S: noop,
|
| 69 |
+
M: noop
|
| 70 |
+
},
|
| 71 |
+
p: 0,
|
| 72 |
+
findDOMNode: null
|
| 73 |
+
}, REACT_PORTAL_TYPE = Symbol.for("react.portal"), ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
|
| 74 |
+
"function" === typeof Map && null != Map.prototype && "function" === typeof Map.prototype.forEach && "function" === typeof Set && null != Set.prototype && "function" === typeof Set.prototype.clear && "function" === typeof Set.prototype.forEach || console.error(
|
| 75 |
+
"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"
|
| 76 |
+
);
|
| 77 |
+
exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals;
|
| 78 |
+
exports.createPortal = function(children, container) {
|
| 79 |
+
var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
|
| 80 |
+
if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType)
|
| 81 |
+
throw Error("Target container is not a DOM element.");
|
| 82 |
+
return createPortal$1(children, container, null, key);
|
| 83 |
+
};
|
| 84 |
+
exports.flushSync = function(fn) {
|
| 85 |
+
var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p;
|
| 86 |
+
try {
|
| 87 |
+
if (ReactSharedInternals.T = null, Internals.p = 2, fn)
|
| 88 |
+
return fn();
|
| 89 |
+
} finally {
|
| 90 |
+
ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f() && console.error(
|
| 91 |
+
"flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task."
|
| 92 |
+
);
|
| 93 |
+
}
|
| 94 |
+
};
|
| 95 |
+
exports.preconnect = function(href, options) {
|
| 96 |
+
"string" === typeof href && href ? null != options && "object" !== typeof options ? console.error(
|
| 97 |
+
"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.",
|
| 98 |
+
getValueDescriptorExpectingEnumForWarning(options)
|
| 99 |
+
) : null != options && "string" !== typeof options.crossOrigin && console.error(
|
| 100 |
+
"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.",
|
| 101 |
+
getValueDescriptorExpectingObjectForWarning(options.crossOrigin)
|
| 102 |
+
) : console.error(
|
| 103 |
+
"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
|
| 104 |
+
getValueDescriptorExpectingObjectForWarning(href)
|
| 105 |
+
);
|
| 106 |
+
"string" === typeof href && (options ? (options = options.crossOrigin, options = "string" === typeof options ? "use-credentials" === options ? options : "" : void 0) : options = null, Internals.d.C(href, options));
|
| 107 |
+
};
|
| 108 |
+
exports.prefetchDNS = function(href) {
|
| 109 |
+
if ("string" !== typeof href || !href)
|
| 110 |
+
console.error(
|
| 111 |
+
"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
|
| 112 |
+
getValueDescriptorExpectingObjectForWarning(href)
|
| 113 |
+
);
|
| 114 |
+
else if (1 < arguments.length) {
|
| 115 |
+
var options = arguments[1];
|
| 116 |
+
"object" === typeof options && options.hasOwnProperty("crossOrigin") ? console.error(
|
| 117 |
+
"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
|
| 118 |
+
getValueDescriptorExpectingEnumForWarning(options)
|
| 119 |
+
) : console.error(
|
| 120 |
+
"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
|
| 121 |
+
getValueDescriptorExpectingEnumForWarning(options)
|
| 122 |
+
);
|
| 123 |
+
}
|
| 124 |
+
"string" === typeof href && Internals.d.D(href);
|
| 125 |
+
};
|
| 126 |
+
exports.preinit = function(href, options) {
|
| 127 |
+
"string" === typeof href && href ? null == options || "object" !== typeof options ? console.error(
|
| 128 |
+
"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.",
|
| 129 |
+
getValueDescriptorExpectingEnumForWarning(options)
|
| 130 |
+
) : "style" !== options.as && "script" !== options.as && console.error(
|
| 131 |
+
'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are "style" and "script".',
|
| 132 |
+
getValueDescriptorExpectingEnumForWarning(options.as)
|
| 133 |
+
) : console.error(
|
| 134 |
+
"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
|
| 135 |
+
getValueDescriptorExpectingObjectForWarning(href)
|
| 136 |
+
);
|
| 137 |
+
if ("string" === typeof href && options && "string" === typeof options.as) {
|
| 138 |
+
var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin), integrity = "string" === typeof options.integrity ? options.integrity : void 0, fetchPriority = "string" === typeof options.fetchPriority ? options.fetchPriority : void 0;
|
| 139 |
+
"style" === as ? Internals.d.S(
|
| 140 |
+
href,
|
| 141 |
+
"string" === typeof options.precedence ? options.precedence : void 0,
|
| 142 |
+
{
|
| 143 |
+
crossOrigin,
|
| 144 |
+
integrity,
|
| 145 |
+
fetchPriority
|
| 146 |
+
}
|
| 147 |
+
) : "script" === as && Internals.d.X(href, {
|
| 148 |
+
crossOrigin,
|
| 149 |
+
integrity,
|
| 150 |
+
fetchPriority,
|
| 151 |
+
nonce: "string" === typeof options.nonce ? options.nonce : void 0
|
| 152 |
+
});
|
| 153 |
+
}
|
| 154 |
+
};
|
| 155 |
+
exports.preinitModule = function(href, options) {
|
| 156 |
+
var encountered = "";
|
| 157 |
+
"string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + ".");
|
| 158 |
+
void 0 !== options && "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : options && "as" in options && "script" !== options.as && (encountered += " The `as` option encountered was " + getValueDescriptorExpectingEnumForWarning(options.as) + ".");
|
| 159 |
+
if (encountered)
|
| 160 |
+
console.error(
|
| 161 |
+
"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s",
|
| 162 |
+
encountered
|
| 163 |
+
);
|
| 164 |
+
else
|
| 165 |
+
switch (encountered = options && "string" === typeof options.as ? options.as : "script", encountered) {
|
| 166 |
+
case "script":
|
| 167 |
+
break;
|
| 168 |
+
default:
|
| 169 |
+
encountered = getValueDescriptorExpectingEnumForWarning(encountered), console.error(
|
| 170 |
+
'ReactDOM.preinitModule(): Currently the only supported "as" type for this function is "script" but received "%s" instead. This warning was generated for `href` "%s". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',
|
| 171 |
+
encountered,
|
| 172 |
+
href
|
| 173 |
+
);
|
| 174 |
+
}
|
| 175 |
+
if ("string" === typeof href)
|
| 176 |
+
if ("object" === typeof options && null !== options) {
|
| 177 |
+
if (null == options.as || "script" === options.as)
|
| 178 |
+
encountered = getCrossOriginStringAs(
|
| 179 |
+
options.as,
|
| 180 |
+
options.crossOrigin
|
| 181 |
+
), Internals.d.M(href, {
|
| 182 |
+
crossOrigin: encountered,
|
| 183 |
+
integrity: "string" === typeof options.integrity ? options.integrity : void 0,
|
| 184 |
+
nonce: "string" === typeof options.nonce ? options.nonce : void 0
|
| 185 |
+
});
|
| 186 |
+
} else null == options && Internals.d.M(href);
|
| 187 |
+
};
|
| 188 |
+
exports.preload = function(href, options) {
|
| 189 |
+
var encountered = "";
|
| 190 |
+
"string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + ".");
|
| 191 |
+
null == options || "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : "string" === typeof options.as && options.as || (encountered += " The `as` option encountered was " + getValueDescriptorExpectingObjectForWarning(options.as) + ".");
|
| 192 |
+
encountered && console.error(
|
| 193 |
+
'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel="preload" as="..." />` tag.%s',
|
| 194 |
+
encountered
|
| 195 |
+
);
|
| 196 |
+
if ("string" === typeof href && "object" === typeof options && null !== options && "string" === typeof options.as) {
|
| 197 |
+
encountered = options.as;
|
| 198 |
+
var crossOrigin = getCrossOriginStringAs(
|
| 199 |
+
encountered,
|
| 200 |
+
options.crossOrigin
|
| 201 |
+
);
|
| 202 |
+
Internals.d.L(href, encountered, {
|
| 203 |
+
crossOrigin,
|
| 204 |
+
integrity: "string" === typeof options.integrity ? options.integrity : void 0,
|
| 205 |
+
nonce: "string" === typeof options.nonce ? options.nonce : void 0,
|
| 206 |
+
type: "string" === typeof options.type ? options.type : void 0,
|
| 207 |
+
fetchPriority: "string" === typeof options.fetchPriority ? options.fetchPriority : void 0,
|
| 208 |
+
referrerPolicy: "string" === typeof options.referrerPolicy ? options.referrerPolicy : void 0,
|
| 209 |
+
imageSrcSet: "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,
|
| 210 |
+
imageSizes: "string" === typeof options.imageSizes ? options.imageSizes : void 0,
|
| 211 |
+
media: "string" === typeof options.media ? options.media : void 0
|
| 212 |
+
});
|
| 213 |
+
}
|
| 214 |
+
};
|
| 215 |
+
exports.preloadModule = function(href, options) {
|
| 216 |
+
var encountered = "";
|
| 217 |
+
"string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + ".");
|
| 218 |
+
void 0 !== options && "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : options && "as" in options && "string" !== typeof options.as && (encountered += " The `as` option encountered was " + getValueDescriptorExpectingObjectForWarning(options.as) + ".");
|
| 219 |
+
encountered && console.error(
|
| 220 |
+
'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel="modulepreload" as="..." />` tag.%s',
|
| 221 |
+
encountered
|
| 222 |
+
);
|
| 223 |
+
"string" === typeof href && (options ? (encountered = getCrossOriginStringAs(
|
| 224 |
+
options.as,
|
| 225 |
+
options.crossOrigin
|
| 226 |
+
), Internals.d.m(href, {
|
| 227 |
+
as: "string" === typeof options.as && "script" !== options.as ? options.as : void 0,
|
| 228 |
+
crossOrigin: encountered,
|
| 229 |
+
integrity: "string" === typeof options.integrity ? options.integrity : void 0
|
| 230 |
+
})) : Internals.d.m(href));
|
| 231 |
+
};
|
| 232 |
+
exports.requestFormReset = function(form) {
|
| 233 |
+
Internals.d.r(form);
|
| 234 |
+
};
|
| 235 |
+
exports.unstable_batchedUpdates = function(fn, a) {
|
| 236 |
+
return fn(a);
|
| 237 |
+
};
|
| 238 |
+
exports.useFormState = function(action, initialState, permalink) {
|
| 239 |
+
return resolveDispatcher().useFormState(action, initialState, permalink);
|
| 240 |
+
};
|
| 241 |
+
exports.useFormStatus = function() {
|
| 242 |
+
return resolveDispatcher().useHostTransitionStatus();
|
| 243 |
+
};
|
| 244 |
+
exports.version = "19.1.1";
|
| 245 |
+
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
|
| 246 |
+
})();
|
| 247 |
+
}
|
| 248 |
+
});
|
| 249 |
+
|
| 250 |
+
// node_modules/react-dom/index.js
|
| 251 |
+
var require_react_dom = __commonJS({
|
| 252 |
+
"node_modules/react-dom/index.js"(exports, module) {
|
| 253 |
+
if (false) {
|
| 254 |
+
checkDCE();
|
| 255 |
+
module.exports = null;
|
| 256 |
+
} else {
|
| 257 |
+
module.exports = require_react_dom_development();
|
| 258 |
+
}
|
| 259 |
+
}
|
| 260 |
+
});
|
| 261 |
+
|
| 262 |
+
export {
|
| 263 |
+
require_react_dom
|
| 264 |
+
};
|
| 265 |
+
/*! Bundled license information:
|
| 266 |
+
|
| 267 |
+
react-dom/cjs/react-dom.development.js:
|
| 268 |
+
(**
|
| 269 |
+
* @license React
|
| 270 |
+
* react-dom.development.js
|
| 271 |
+
*
|
| 272 |
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 273 |
+
*
|
| 274 |
+
* This source code is licensed under the MIT license found in the
|
| 275 |
+
* LICENSE file in the root directory of this source tree.
|
| 276 |
+
*)
|
| 277 |
+
*/
|
| 278 |
+
//# sourceMappingURL=chunk-I5HANLAN.js.map
|
frontend/node_modules/.vite/deps/chunk-I5HANLAN.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": 3,
|
| 3 |
+
"sources": ["../../react-dom/cjs/react-dom.development.js", "../../react-dom/index.js"],
|
| 4 |
+
"sourcesContent": ["/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n try {\n testStringCoercion(key);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n JSCompiler_inline_result &&\n (console.error(\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n key[Symbol.toStringTag]) ||\n key.constructor.name ||\n \"Object\"\n ),\n testStringCoercion(key));\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n }\n function getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n }\n function getValueDescriptorExpectingObjectForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function getValueDescriptorExpectingEnumForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : \"string\" === typeof thing\n ? JSON.stringify(thing)\n : \"number\" === typeof thing\n ? \"`\" + thing + \"`\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(\n \"Invalid form element. requestFormReset must be passed a form that was rendered by React.\"\n );\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n (\"function\" === typeof Map &&\n null != Map.prototype &&\n \"function\" === typeof Map.prototype.forEach &&\n \"function\" === typeof Set &&\n null != Set.prototype &&\n \"function\" === typeof Set.prototype.clear &&\n \"function\" === typeof Set.prototype.forEach) ||\n console.error(\n \"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"\n );\n exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\n exports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(\"Target container is not a DOM element.\");\n return createPortal$1(children, container, null, key);\n };\n exports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn))\n return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f() &&\n console.error(\n \"flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\"\n );\n }\n };\n exports.preconnect = function (href, options) {\n \"string\" === typeof href && href\n ? null != options && \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : null != options &&\n \"string\" !== typeof options.crossOrigin &&\n console.error(\n \"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.\",\n getValueDescriptorExpectingObjectForWarning(options.crossOrigin)\n )\n : console.error(\n \"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n };\n exports.prefetchDNS = function (href) {\n if (\"string\" !== typeof href || !href)\n console.error(\n \"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n else if (1 < arguments.length) {\n var options = arguments[1];\n \"object\" === typeof options && options.hasOwnProperty(\"crossOrigin\")\n ? console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n );\n }\n \"string\" === typeof href && Internals.d.D(href);\n };\n exports.preinit = function (href, options) {\n \"string\" === typeof href && href\n ? null == options || \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : \"style\" !== options.as &&\n \"script\" !== options.as &&\n console.error(\n 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are \"style\" and \"script\".',\n getValueDescriptorExpectingEnumForWarning(options.as)\n )\n : console.error(\n \"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n if (\n \"string\" === typeof href &&\n options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence\n ? options.precedence\n : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n };\n exports.preinitModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"script\" !== options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingEnumForWarning(options.as) +\n \".\");\n if (encountered)\n console.error(\n \"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\",\n encountered\n );\n else\n switch (\n ((encountered =\n options && \"string\" === typeof options.as ? options.as : \"script\"),\n encountered)\n ) {\n case \"script\":\n break;\n default:\n (encountered =\n getValueDescriptorExpectingEnumForWarning(encountered)),\n console.error(\n 'ReactDOM.preinitModule(): Currently the only supported \"as\" type for this function is \"script\" but received \"%s\" instead. This warning was generated for `href` \"%s\". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',\n encountered,\n href\n );\n }\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as)\n (encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.M(href, {\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0,\n nonce:\n \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n } else null == options && Internals.d.M(href);\n };\n exports.preload = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n null == options || \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : (\"string\" === typeof options.as && options.as) ||\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel=\"preload\" as=\"...\" />` tag.%s',\n encountered\n );\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n encountered = options.as;\n var crossOrigin = getCrossOriginStringAs(\n encountered,\n options.crossOrigin\n );\n Internals.d.L(href, encountered, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet\n ? options.imageSrcSet\n : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes\n ? options.imageSizes\n : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n };\n exports.preloadModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"string\" !== typeof options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel=\"modulepreload\" as=\"...\" />` tag.%s',\n encountered\n );\n \"string\" === typeof href &&\n (options\n ? ((encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0\n }))\n : Internals.d.m(href));\n };\n exports.requestFormReset = function (form) {\n Internals.d.r(form);\n };\n exports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n };\n exports.useFormState = function (action, initialState, permalink) {\n return resolveDispatcher().useFormState(action, initialState, permalink);\n };\n exports.useFormStatus = function () {\n return resolveDispatcher().useHostTransitionStatus();\n };\n exports.version = \"19.1.1\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n", "'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n"],
|
| 5 |
+
"mappings": "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",
|
| 6 |
+
"names": []
|
| 7 |
+
}
|
frontend/node_modules/.vite/deps/chunk-X4QARNC5.js
ADDED
|
@@ -0,0 +1,1004 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
var __create = Object.create;
|
| 2 |
+
var __defProp = Object.defineProperty;
|
| 3 |
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
| 4 |
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
| 5 |
+
var __getProtoOf = Object.getPrototypeOf;
|
| 6 |
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
| 7 |
+
var __commonJS = (cb, mod) => function __require() {
|
| 8 |
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
| 9 |
+
};
|
| 10 |
+
var __export = (target, all) => {
|
| 11 |
+
for (var name in all)
|
| 12 |
+
__defProp(target, name, { get: all[name], enumerable: true });
|
| 13 |
+
};
|
| 14 |
+
var __copyProps = (to, from, except, desc) => {
|
| 15 |
+
if (from && typeof from === "object" || typeof from === "function") {
|
| 16 |
+
for (let key of __getOwnPropNames(from))
|
| 17 |
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
| 18 |
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
| 19 |
+
}
|
| 20 |
+
return to;
|
| 21 |
+
};
|
| 22 |
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
| 23 |
+
// If the importer is in node compatibility mode or this is not an ESM
|
| 24 |
+
// file that has been converted to a CommonJS file using a Babel-
|
| 25 |
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
| 26 |
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
| 27 |
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
| 28 |
+
mod
|
| 29 |
+
));
|
| 30 |
+
|
| 31 |
+
// node_modules/react/cjs/react.development.js
|
| 32 |
+
var require_react_development = __commonJS({
|
| 33 |
+
"node_modules/react/cjs/react.development.js"(exports, module) {
|
| 34 |
+
"use strict";
|
| 35 |
+
(function() {
|
| 36 |
+
function defineDeprecationWarning(methodName, info) {
|
| 37 |
+
Object.defineProperty(Component.prototype, methodName, {
|
| 38 |
+
get: function() {
|
| 39 |
+
console.warn(
|
| 40 |
+
"%s(...) is deprecated in plain JavaScript React classes. %s",
|
| 41 |
+
info[0],
|
| 42 |
+
info[1]
|
| 43 |
+
);
|
| 44 |
+
}
|
| 45 |
+
});
|
| 46 |
+
}
|
| 47 |
+
function getIteratorFn(maybeIterable) {
|
| 48 |
+
if (null === maybeIterable || "object" !== typeof maybeIterable)
|
| 49 |
+
return null;
|
| 50 |
+
maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"];
|
| 51 |
+
return "function" === typeof maybeIterable ? maybeIterable : null;
|
| 52 |
+
}
|
| 53 |
+
function warnNoop(publicInstance, callerName) {
|
| 54 |
+
publicInstance = (publicInstance = publicInstance.constructor) && (publicInstance.displayName || publicInstance.name) || "ReactClass";
|
| 55 |
+
var warningKey = publicInstance + "." + callerName;
|
| 56 |
+
didWarnStateUpdateForUnmountedComponent[warningKey] || (console.error(
|
| 57 |
+
"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",
|
| 58 |
+
callerName,
|
| 59 |
+
publicInstance
|
| 60 |
+
), didWarnStateUpdateForUnmountedComponent[warningKey] = true);
|
| 61 |
+
}
|
| 62 |
+
function Component(props, context, updater) {
|
| 63 |
+
this.props = props;
|
| 64 |
+
this.context = context;
|
| 65 |
+
this.refs = emptyObject;
|
| 66 |
+
this.updater = updater || ReactNoopUpdateQueue;
|
| 67 |
+
}
|
| 68 |
+
function ComponentDummy() {
|
| 69 |
+
}
|
| 70 |
+
function PureComponent(props, context, updater) {
|
| 71 |
+
this.props = props;
|
| 72 |
+
this.context = context;
|
| 73 |
+
this.refs = emptyObject;
|
| 74 |
+
this.updater = updater || ReactNoopUpdateQueue;
|
| 75 |
+
}
|
| 76 |
+
function testStringCoercion(value) {
|
| 77 |
+
return "" + value;
|
| 78 |
+
}
|
| 79 |
+
function checkKeyStringCoercion(value) {
|
| 80 |
+
try {
|
| 81 |
+
testStringCoercion(value);
|
| 82 |
+
var JSCompiler_inline_result = false;
|
| 83 |
+
} catch (e) {
|
| 84 |
+
JSCompiler_inline_result = true;
|
| 85 |
+
}
|
| 86 |
+
if (JSCompiler_inline_result) {
|
| 87 |
+
JSCompiler_inline_result = console;
|
| 88 |
+
var JSCompiler_temp_const = JSCompiler_inline_result.error;
|
| 89 |
+
var JSCompiler_inline_result$jscomp$0 = "function" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object";
|
| 90 |
+
JSCompiler_temp_const.call(
|
| 91 |
+
JSCompiler_inline_result,
|
| 92 |
+
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
|
| 93 |
+
JSCompiler_inline_result$jscomp$0
|
| 94 |
+
);
|
| 95 |
+
return testStringCoercion(value);
|
| 96 |
+
}
|
| 97 |
+
}
|
| 98 |
+
function getComponentNameFromType(type) {
|
| 99 |
+
if (null == type) return null;
|
| 100 |
+
if ("function" === typeof type)
|
| 101 |
+
return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;
|
| 102 |
+
if ("string" === typeof type) return type;
|
| 103 |
+
switch (type) {
|
| 104 |
+
case REACT_FRAGMENT_TYPE:
|
| 105 |
+
return "Fragment";
|
| 106 |
+
case REACT_PROFILER_TYPE:
|
| 107 |
+
return "Profiler";
|
| 108 |
+
case REACT_STRICT_MODE_TYPE:
|
| 109 |
+
return "StrictMode";
|
| 110 |
+
case REACT_SUSPENSE_TYPE:
|
| 111 |
+
return "Suspense";
|
| 112 |
+
case REACT_SUSPENSE_LIST_TYPE:
|
| 113 |
+
return "SuspenseList";
|
| 114 |
+
case REACT_ACTIVITY_TYPE:
|
| 115 |
+
return "Activity";
|
| 116 |
+
}
|
| 117 |
+
if ("object" === typeof type)
|
| 118 |
+
switch ("number" === typeof type.tag && console.error(
|
| 119 |
+
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
|
| 120 |
+
), type.$$typeof) {
|
| 121 |
+
case REACT_PORTAL_TYPE:
|
| 122 |
+
return "Portal";
|
| 123 |
+
case REACT_CONTEXT_TYPE:
|
| 124 |
+
return (type.displayName || "Context") + ".Provider";
|
| 125 |
+
case REACT_CONSUMER_TYPE:
|
| 126 |
+
return (type._context.displayName || "Context") + ".Consumer";
|
| 127 |
+
case REACT_FORWARD_REF_TYPE:
|
| 128 |
+
var innerType = type.render;
|
| 129 |
+
type = type.displayName;
|
| 130 |
+
type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef");
|
| 131 |
+
return type;
|
| 132 |
+
case REACT_MEMO_TYPE:
|
| 133 |
+
return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo";
|
| 134 |
+
case REACT_LAZY_TYPE:
|
| 135 |
+
innerType = type._payload;
|
| 136 |
+
type = type._init;
|
| 137 |
+
try {
|
| 138 |
+
return getComponentNameFromType(type(innerType));
|
| 139 |
+
} catch (x) {
|
| 140 |
+
}
|
| 141 |
+
}
|
| 142 |
+
return null;
|
| 143 |
+
}
|
| 144 |
+
function getTaskName(type) {
|
| 145 |
+
if (type === REACT_FRAGMENT_TYPE) return "<>";
|
| 146 |
+
if ("object" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE)
|
| 147 |
+
return "<...>";
|
| 148 |
+
try {
|
| 149 |
+
var name = getComponentNameFromType(type);
|
| 150 |
+
return name ? "<" + name + ">" : "<...>";
|
| 151 |
+
} catch (x) {
|
| 152 |
+
return "<...>";
|
| 153 |
+
}
|
| 154 |
+
}
|
| 155 |
+
function getOwner() {
|
| 156 |
+
var dispatcher = ReactSharedInternals.A;
|
| 157 |
+
return null === dispatcher ? null : dispatcher.getOwner();
|
| 158 |
+
}
|
| 159 |
+
function UnknownOwner() {
|
| 160 |
+
return Error("react-stack-top-frame");
|
| 161 |
+
}
|
| 162 |
+
function hasValidKey(config) {
|
| 163 |
+
if (hasOwnProperty.call(config, "key")) {
|
| 164 |
+
var getter = Object.getOwnPropertyDescriptor(config, "key").get;
|
| 165 |
+
if (getter && getter.isReactWarning) return false;
|
| 166 |
+
}
|
| 167 |
+
return void 0 !== config.key;
|
| 168 |
+
}
|
| 169 |
+
function defineKeyPropWarningGetter(props, displayName) {
|
| 170 |
+
function warnAboutAccessingKey() {
|
| 171 |
+
specialPropKeyWarningShown || (specialPropKeyWarningShown = true, console.error(
|
| 172 |
+
"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
|
| 173 |
+
displayName
|
| 174 |
+
));
|
| 175 |
+
}
|
| 176 |
+
warnAboutAccessingKey.isReactWarning = true;
|
| 177 |
+
Object.defineProperty(props, "key", {
|
| 178 |
+
get: warnAboutAccessingKey,
|
| 179 |
+
configurable: true
|
| 180 |
+
});
|
| 181 |
+
}
|
| 182 |
+
function elementRefGetterWithDeprecationWarning() {
|
| 183 |
+
var componentName = getComponentNameFromType(this.type);
|
| 184 |
+
didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = true, console.error(
|
| 185 |
+
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
|
| 186 |
+
));
|
| 187 |
+
componentName = this.props.ref;
|
| 188 |
+
return void 0 !== componentName ? componentName : null;
|
| 189 |
+
}
|
| 190 |
+
function ReactElement(type, key, self, source, owner, props, debugStack, debugTask) {
|
| 191 |
+
self = props.ref;
|
| 192 |
+
type = {
|
| 193 |
+
$$typeof: REACT_ELEMENT_TYPE,
|
| 194 |
+
type,
|
| 195 |
+
key,
|
| 196 |
+
props,
|
| 197 |
+
_owner: owner
|
| 198 |
+
};
|
| 199 |
+
null !== (void 0 !== self ? self : null) ? Object.defineProperty(type, "ref", {
|
| 200 |
+
enumerable: false,
|
| 201 |
+
get: elementRefGetterWithDeprecationWarning
|
| 202 |
+
}) : Object.defineProperty(type, "ref", { enumerable: false, value: null });
|
| 203 |
+
type._store = {};
|
| 204 |
+
Object.defineProperty(type._store, "validated", {
|
| 205 |
+
configurable: false,
|
| 206 |
+
enumerable: false,
|
| 207 |
+
writable: true,
|
| 208 |
+
value: 0
|
| 209 |
+
});
|
| 210 |
+
Object.defineProperty(type, "_debugInfo", {
|
| 211 |
+
configurable: false,
|
| 212 |
+
enumerable: false,
|
| 213 |
+
writable: true,
|
| 214 |
+
value: null
|
| 215 |
+
});
|
| 216 |
+
Object.defineProperty(type, "_debugStack", {
|
| 217 |
+
configurable: false,
|
| 218 |
+
enumerable: false,
|
| 219 |
+
writable: true,
|
| 220 |
+
value: debugStack
|
| 221 |
+
});
|
| 222 |
+
Object.defineProperty(type, "_debugTask", {
|
| 223 |
+
configurable: false,
|
| 224 |
+
enumerable: false,
|
| 225 |
+
writable: true,
|
| 226 |
+
value: debugTask
|
| 227 |
+
});
|
| 228 |
+
Object.freeze && (Object.freeze(type.props), Object.freeze(type));
|
| 229 |
+
return type;
|
| 230 |
+
}
|
| 231 |
+
function cloneAndReplaceKey(oldElement, newKey) {
|
| 232 |
+
newKey = ReactElement(
|
| 233 |
+
oldElement.type,
|
| 234 |
+
newKey,
|
| 235 |
+
void 0,
|
| 236 |
+
void 0,
|
| 237 |
+
oldElement._owner,
|
| 238 |
+
oldElement.props,
|
| 239 |
+
oldElement._debugStack,
|
| 240 |
+
oldElement._debugTask
|
| 241 |
+
);
|
| 242 |
+
oldElement._store && (newKey._store.validated = oldElement._store.validated);
|
| 243 |
+
return newKey;
|
| 244 |
+
}
|
| 245 |
+
function isValidElement(object) {
|
| 246 |
+
return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;
|
| 247 |
+
}
|
| 248 |
+
function escape(key) {
|
| 249 |
+
var escaperLookup = { "=": "=0", ":": "=2" };
|
| 250 |
+
return "$" + key.replace(/[=:]/g, function(match) {
|
| 251 |
+
return escaperLookup[match];
|
| 252 |
+
});
|
| 253 |
+
}
|
| 254 |
+
function getElementKey(element, index) {
|
| 255 |
+
return "object" === typeof element && null !== element && null != element.key ? (checkKeyStringCoercion(element.key), escape("" + element.key)) : index.toString(36);
|
| 256 |
+
}
|
| 257 |
+
function noop$1() {
|
| 258 |
+
}
|
| 259 |
+
function resolveThenable(thenable) {
|
| 260 |
+
switch (thenable.status) {
|
| 261 |
+
case "fulfilled":
|
| 262 |
+
return thenable.value;
|
| 263 |
+
case "rejected":
|
| 264 |
+
throw thenable.reason;
|
| 265 |
+
default:
|
| 266 |
+
switch ("string" === typeof thenable.status ? thenable.then(noop$1, noop$1) : (thenable.status = "pending", thenable.then(
|
| 267 |
+
function(fulfilledValue) {
|
| 268 |
+
"pending" === thenable.status && (thenable.status = "fulfilled", thenable.value = fulfilledValue);
|
| 269 |
+
},
|
| 270 |
+
function(error) {
|
| 271 |
+
"pending" === thenable.status && (thenable.status = "rejected", thenable.reason = error);
|
| 272 |
+
}
|
| 273 |
+
)), thenable.status) {
|
| 274 |
+
case "fulfilled":
|
| 275 |
+
return thenable.value;
|
| 276 |
+
case "rejected":
|
| 277 |
+
throw thenable.reason;
|
| 278 |
+
}
|
| 279 |
+
}
|
| 280 |
+
throw thenable;
|
| 281 |
+
}
|
| 282 |
+
function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
|
| 283 |
+
var type = typeof children;
|
| 284 |
+
if ("undefined" === type || "boolean" === type) children = null;
|
| 285 |
+
var invokeCallback = false;
|
| 286 |
+
if (null === children) invokeCallback = true;
|
| 287 |
+
else
|
| 288 |
+
switch (type) {
|
| 289 |
+
case "bigint":
|
| 290 |
+
case "string":
|
| 291 |
+
case "number":
|
| 292 |
+
invokeCallback = true;
|
| 293 |
+
break;
|
| 294 |
+
case "object":
|
| 295 |
+
switch (children.$$typeof) {
|
| 296 |
+
case REACT_ELEMENT_TYPE:
|
| 297 |
+
case REACT_PORTAL_TYPE:
|
| 298 |
+
invokeCallback = true;
|
| 299 |
+
break;
|
| 300 |
+
case REACT_LAZY_TYPE:
|
| 301 |
+
return invokeCallback = children._init, mapIntoArray(
|
| 302 |
+
invokeCallback(children._payload),
|
| 303 |
+
array,
|
| 304 |
+
escapedPrefix,
|
| 305 |
+
nameSoFar,
|
| 306 |
+
callback
|
| 307 |
+
);
|
| 308 |
+
}
|
| 309 |
+
}
|
| 310 |
+
if (invokeCallback) {
|
| 311 |
+
invokeCallback = children;
|
| 312 |
+
callback = callback(invokeCallback);
|
| 313 |
+
var childKey = "" === nameSoFar ? "." + getElementKey(invokeCallback, 0) : nameSoFar;
|
| 314 |
+
isArrayImpl(callback) ? (escapedPrefix = "", null != childKey && (escapedPrefix = childKey.replace(userProvidedKeyEscapeRegex, "$&/") + "/"), mapIntoArray(callback, array, escapedPrefix, "", function(c) {
|
| 315 |
+
return c;
|
| 316 |
+
})) : null != callback && (isValidElement(callback) && (null != callback.key && (invokeCallback && invokeCallback.key === callback.key || checkKeyStringCoercion(callback.key)), escapedPrefix = cloneAndReplaceKey(
|
| 317 |
+
callback,
|
| 318 |
+
escapedPrefix + (null == callback.key || invokeCallback && invokeCallback.key === callback.key ? "" : ("" + callback.key).replace(
|
| 319 |
+
userProvidedKeyEscapeRegex,
|
| 320 |
+
"$&/"
|
| 321 |
+
) + "/") + childKey
|
| 322 |
+
), "" !== nameSoFar && null != invokeCallback && isValidElement(invokeCallback) && null == invokeCallback.key && invokeCallback._store && !invokeCallback._store.validated && (escapedPrefix._store.validated = 2), callback = escapedPrefix), array.push(callback));
|
| 323 |
+
return 1;
|
| 324 |
+
}
|
| 325 |
+
invokeCallback = 0;
|
| 326 |
+
childKey = "" === nameSoFar ? "." : nameSoFar + ":";
|
| 327 |
+
if (isArrayImpl(children))
|
| 328 |
+
for (var i = 0; i < children.length; i++)
|
| 329 |
+
nameSoFar = children[i], type = childKey + getElementKey(nameSoFar, i), invokeCallback += mapIntoArray(
|
| 330 |
+
nameSoFar,
|
| 331 |
+
array,
|
| 332 |
+
escapedPrefix,
|
| 333 |
+
type,
|
| 334 |
+
callback
|
| 335 |
+
);
|
| 336 |
+
else if (i = getIteratorFn(children), "function" === typeof i)
|
| 337 |
+
for (i === children.entries && (didWarnAboutMaps || console.warn(
|
| 338 |
+
"Using Maps as children is not supported. Use an array of keyed ReactElements instead."
|
| 339 |
+
), didWarnAboutMaps = true), children = i.call(children), i = 0; !(nameSoFar = children.next()).done; )
|
| 340 |
+
nameSoFar = nameSoFar.value, type = childKey + getElementKey(nameSoFar, i++), invokeCallback += mapIntoArray(
|
| 341 |
+
nameSoFar,
|
| 342 |
+
array,
|
| 343 |
+
escapedPrefix,
|
| 344 |
+
type,
|
| 345 |
+
callback
|
| 346 |
+
);
|
| 347 |
+
else if ("object" === type) {
|
| 348 |
+
if ("function" === typeof children.then)
|
| 349 |
+
return mapIntoArray(
|
| 350 |
+
resolveThenable(children),
|
| 351 |
+
array,
|
| 352 |
+
escapedPrefix,
|
| 353 |
+
nameSoFar,
|
| 354 |
+
callback
|
| 355 |
+
);
|
| 356 |
+
array = String(children);
|
| 357 |
+
throw Error(
|
| 358 |
+
"Objects are not valid as a React child (found: " + ("[object Object]" === array ? "object with keys {" + Object.keys(children).join(", ") + "}" : array) + "). If you meant to render a collection of children, use an array instead."
|
| 359 |
+
);
|
| 360 |
+
}
|
| 361 |
+
return invokeCallback;
|
| 362 |
+
}
|
| 363 |
+
function mapChildren(children, func, context) {
|
| 364 |
+
if (null == children) return children;
|
| 365 |
+
var result = [], count = 0;
|
| 366 |
+
mapIntoArray(children, result, "", "", function(child) {
|
| 367 |
+
return func.call(context, child, count++);
|
| 368 |
+
});
|
| 369 |
+
return result;
|
| 370 |
+
}
|
| 371 |
+
function lazyInitializer(payload) {
|
| 372 |
+
if (-1 === payload._status) {
|
| 373 |
+
var ctor = payload._result;
|
| 374 |
+
ctor = ctor();
|
| 375 |
+
ctor.then(
|
| 376 |
+
function(moduleObject) {
|
| 377 |
+
if (0 === payload._status || -1 === payload._status)
|
| 378 |
+
payload._status = 1, payload._result = moduleObject;
|
| 379 |
+
},
|
| 380 |
+
function(error) {
|
| 381 |
+
if (0 === payload._status || -1 === payload._status)
|
| 382 |
+
payload._status = 2, payload._result = error;
|
| 383 |
+
}
|
| 384 |
+
);
|
| 385 |
+
-1 === payload._status && (payload._status = 0, payload._result = ctor);
|
| 386 |
+
}
|
| 387 |
+
if (1 === payload._status)
|
| 388 |
+
return ctor = payload._result, void 0 === ctor && console.error(
|
| 389 |
+
"lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?",
|
| 390 |
+
ctor
|
| 391 |
+
), "default" in ctor || console.error(
|
| 392 |
+
"lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))",
|
| 393 |
+
ctor
|
| 394 |
+
), ctor.default;
|
| 395 |
+
throw payload._result;
|
| 396 |
+
}
|
| 397 |
+
function resolveDispatcher() {
|
| 398 |
+
var dispatcher = ReactSharedInternals.H;
|
| 399 |
+
null === dispatcher && console.error(
|
| 400 |
+
"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
|
| 401 |
+
);
|
| 402 |
+
return dispatcher;
|
| 403 |
+
}
|
| 404 |
+
function noop() {
|
| 405 |
+
}
|
| 406 |
+
function enqueueTask(task) {
|
| 407 |
+
if (null === enqueueTaskImpl)
|
| 408 |
+
try {
|
| 409 |
+
var requireString = ("require" + Math.random()).slice(0, 7);
|
| 410 |
+
enqueueTaskImpl = (module && module[requireString]).call(
|
| 411 |
+
module,
|
| 412 |
+
"timers"
|
| 413 |
+
).setImmediate;
|
| 414 |
+
} catch (_err) {
|
| 415 |
+
enqueueTaskImpl = function(callback) {
|
| 416 |
+
false === didWarnAboutMessageChannel && (didWarnAboutMessageChannel = true, "undefined" === typeof MessageChannel && console.error(
|
| 417 |
+
"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."
|
| 418 |
+
));
|
| 419 |
+
var channel = new MessageChannel();
|
| 420 |
+
channel.port1.onmessage = callback;
|
| 421 |
+
channel.port2.postMessage(void 0);
|
| 422 |
+
};
|
| 423 |
+
}
|
| 424 |
+
return enqueueTaskImpl(task);
|
| 425 |
+
}
|
| 426 |
+
function aggregateErrors(errors) {
|
| 427 |
+
return 1 < errors.length && "function" === typeof AggregateError ? new AggregateError(errors) : errors[0];
|
| 428 |
+
}
|
| 429 |
+
function popActScope(prevActQueue, prevActScopeDepth) {
|
| 430 |
+
prevActScopeDepth !== actScopeDepth - 1 && console.error(
|
| 431 |
+
"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "
|
| 432 |
+
);
|
| 433 |
+
actScopeDepth = prevActScopeDepth;
|
| 434 |
+
}
|
| 435 |
+
function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {
|
| 436 |
+
var queue = ReactSharedInternals.actQueue;
|
| 437 |
+
if (null !== queue)
|
| 438 |
+
if (0 !== queue.length)
|
| 439 |
+
try {
|
| 440 |
+
flushActQueue(queue);
|
| 441 |
+
enqueueTask(function() {
|
| 442 |
+
return recursivelyFlushAsyncActWork(returnValue, resolve, reject);
|
| 443 |
+
});
|
| 444 |
+
return;
|
| 445 |
+
} catch (error) {
|
| 446 |
+
ReactSharedInternals.thrownErrors.push(error);
|
| 447 |
+
}
|
| 448 |
+
else ReactSharedInternals.actQueue = null;
|
| 449 |
+
0 < ReactSharedInternals.thrownErrors.length ? (queue = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, reject(queue)) : resolve(returnValue);
|
| 450 |
+
}
|
| 451 |
+
function flushActQueue(queue) {
|
| 452 |
+
if (!isFlushing) {
|
| 453 |
+
isFlushing = true;
|
| 454 |
+
var i = 0;
|
| 455 |
+
try {
|
| 456 |
+
for (; i < queue.length; i++) {
|
| 457 |
+
var callback = queue[i];
|
| 458 |
+
do {
|
| 459 |
+
ReactSharedInternals.didUsePromise = false;
|
| 460 |
+
var continuation = callback(false);
|
| 461 |
+
if (null !== continuation) {
|
| 462 |
+
if (ReactSharedInternals.didUsePromise) {
|
| 463 |
+
queue[i] = callback;
|
| 464 |
+
queue.splice(0, i);
|
| 465 |
+
return;
|
| 466 |
+
}
|
| 467 |
+
callback = continuation;
|
| 468 |
+
} else break;
|
| 469 |
+
} while (1);
|
| 470 |
+
}
|
| 471 |
+
queue.length = 0;
|
| 472 |
+
} catch (error) {
|
| 473 |
+
queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);
|
| 474 |
+
} finally {
|
| 475 |
+
isFlushing = false;
|
| 476 |
+
}
|
| 477 |
+
}
|
| 478 |
+
}
|
| 479 |
+
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
|
| 480 |
+
var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler");
|
| 481 |
+
Symbol.for("react.provider");
|
| 482 |
+
var REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator, didWarnStateUpdateForUnmountedComponent = {}, ReactNoopUpdateQueue = {
|
| 483 |
+
isMounted: function() {
|
| 484 |
+
return false;
|
| 485 |
+
},
|
| 486 |
+
enqueueForceUpdate: function(publicInstance) {
|
| 487 |
+
warnNoop(publicInstance, "forceUpdate");
|
| 488 |
+
},
|
| 489 |
+
enqueueReplaceState: function(publicInstance) {
|
| 490 |
+
warnNoop(publicInstance, "replaceState");
|
| 491 |
+
},
|
| 492 |
+
enqueueSetState: function(publicInstance) {
|
| 493 |
+
warnNoop(publicInstance, "setState");
|
| 494 |
+
}
|
| 495 |
+
}, assign = Object.assign, emptyObject = {};
|
| 496 |
+
Object.freeze(emptyObject);
|
| 497 |
+
Component.prototype.isReactComponent = {};
|
| 498 |
+
Component.prototype.setState = function(partialState, callback) {
|
| 499 |
+
if ("object" !== typeof partialState && "function" !== typeof partialState && null != partialState)
|
| 500 |
+
throw Error(
|
| 501 |
+
"takes an object of state variables to update or a function which returns an object of state variables."
|
| 502 |
+
);
|
| 503 |
+
this.updater.enqueueSetState(this, partialState, callback, "setState");
|
| 504 |
+
};
|
| 505 |
+
Component.prototype.forceUpdate = function(callback) {
|
| 506 |
+
this.updater.enqueueForceUpdate(this, callback, "forceUpdate");
|
| 507 |
+
};
|
| 508 |
+
var deprecatedAPIs = {
|
| 509 |
+
isMounted: [
|
| 510 |
+
"isMounted",
|
| 511 |
+
"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."
|
| 512 |
+
],
|
| 513 |
+
replaceState: [
|
| 514 |
+
"replaceState",
|
| 515 |
+
"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."
|
| 516 |
+
]
|
| 517 |
+
}, fnName;
|
| 518 |
+
for (fnName in deprecatedAPIs)
|
| 519 |
+
deprecatedAPIs.hasOwnProperty(fnName) && defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
|
| 520 |
+
ComponentDummy.prototype = Component.prototype;
|
| 521 |
+
deprecatedAPIs = PureComponent.prototype = new ComponentDummy();
|
| 522 |
+
deprecatedAPIs.constructor = PureComponent;
|
| 523 |
+
assign(deprecatedAPIs, Component.prototype);
|
| 524 |
+
deprecatedAPIs.isPureReactComponent = true;
|
| 525 |
+
var isArrayImpl = Array.isArray, REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), ReactSharedInternals = {
|
| 526 |
+
H: null,
|
| 527 |
+
A: null,
|
| 528 |
+
T: null,
|
| 529 |
+
S: null,
|
| 530 |
+
V: null,
|
| 531 |
+
actQueue: null,
|
| 532 |
+
isBatchingLegacy: false,
|
| 533 |
+
didScheduleLegacyUpdate: false,
|
| 534 |
+
didUsePromise: false,
|
| 535 |
+
thrownErrors: [],
|
| 536 |
+
getCurrentStack: null,
|
| 537 |
+
recentlyCreatedOwnerStacks: 0
|
| 538 |
+
}, hasOwnProperty = Object.prototype.hasOwnProperty, createTask = console.createTask ? console.createTask : function() {
|
| 539 |
+
return null;
|
| 540 |
+
};
|
| 541 |
+
deprecatedAPIs = {
|
| 542 |
+
react_stack_bottom_frame: function(callStackForError) {
|
| 543 |
+
return callStackForError();
|
| 544 |
+
}
|
| 545 |
+
};
|
| 546 |
+
var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;
|
| 547 |
+
var didWarnAboutElementRef = {};
|
| 548 |
+
var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(
|
| 549 |
+
deprecatedAPIs,
|
| 550 |
+
UnknownOwner
|
| 551 |
+
)();
|
| 552 |
+
var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
|
| 553 |
+
var didWarnAboutMaps = false, userProvidedKeyEscapeRegex = /\/+/g, reportGlobalError = "function" === typeof reportError ? reportError : function(error) {
|
| 554 |
+
if ("object" === typeof window && "function" === typeof window.ErrorEvent) {
|
| 555 |
+
var event = new window.ErrorEvent("error", {
|
| 556 |
+
bubbles: true,
|
| 557 |
+
cancelable: true,
|
| 558 |
+
message: "object" === typeof error && null !== error && "string" === typeof error.message ? String(error.message) : String(error),
|
| 559 |
+
error
|
| 560 |
+
});
|
| 561 |
+
if (!window.dispatchEvent(event)) return;
|
| 562 |
+
} else if ("object" === typeof process && "function" === typeof process.emit) {
|
| 563 |
+
process.emit("uncaughtException", error);
|
| 564 |
+
return;
|
| 565 |
+
}
|
| 566 |
+
console.error(error);
|
| 567 |
+
}, didWarnAboutMessageChannel = false, enqueueTaskImpl = null, actScopeDepth = 0, didWarnNoAwaitAct = false, isFlushing = false, queueSeveralMicrotasks = "function" === typeof queueMicrotask ? function(callback) {
|
| 568 |
+
queueMicrotask(function() {
|
| 569 |
+
return queueMicrotask(callback);
|
| 570 |
+
});
|
| 571 |
+
} : enqueueTask;
|
| 572 |
+
deprecatedAPIs = Object.freeze({
|
| 573 |
+
__proto__: null,
|
| 574 |
+
c: function(size) {
|
| 575 |
+
return resolveDispatcher().useMemoCache(size);
|
| 576 |
+
}
|
| 577 |
+
});
|
| 578 |
+
exports.Children = {
|
| 579 |
+
map: mapChildren,
|
| 580 |
+
forEach: function(children, forEachFunc, forEachContext) {
|
| 581 |
+
mapChildren(
|
| 582 |
+
children,
|
| 583 |
+
function() {
|
| 584 |
+
forEachFunc.apply(this, arguments);
|
| 585 |
+
},
|
| 586 |
+
forEachContext
|
| 587 |
+
);
|
| 588 |
+
},
|
| 589 |
+
count: function(children) {
|
| 590 |
+
var n = 0;
|
| 591 |
+
mapChildren(children, function() {
|
| 592 |
+
n++;
|
| 593 |
+
});
|
| 594 |
+
return n;
|
| 595 |
+
},
|
| 596 |
+
toArray: function(children) {
|
| 597 |
+
return mapChildren(children, function(child) {
|
| 598 |
+
return child;
|
| 599 |
+
}) || [];
|
| 600 |
+
},
|
| 601 |
+
only: function(children) {
|
| 602 |
+
if (!isValidElement(children))
|
| 603 |
+
throw Error(
|
| 604 |
+
"React.Children.only expected to receive a single React element child."
|
| 605 |
+
);
|
| 606 |
+
return children;
|
| 607 |
+
}
|
| 608 |
+
};
|
| 609 |
+
exports.Component = Component;
|
| 610 |
+
exports.Fragment = REACT_FRAGMENT_TYPE;
|
| 611 |
+
exports.Profiler = REACT_PROFILER_TYPE;
|
| 612 |
+
exports.PureComponent = PureComponent;
|
| 613 |
+
exports.StrictMode = REACT_STRICT_MODE_TYPE;
|
| 614 |
+
exports.Suspense = REACT_SUSPENSE_TYPE;
|
| 615 |
+
exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals;
|
| 616 |
+
exports.__COMPILER_RUNTIME = deprecatedAPIs;
|
| 617 |
+
exports.act = function(callback) {
|
| 618 |
+
var prevActQueue = ReactSharedInternals.actQueue, prevActScopeDepth = actScopeDepth;
|
| 619 |
+
actScopeDepth++;
|
| 620 |
+
var queue = ReactSharedInternals.actQueue = null !== prevActQueue ? prevActQueue : [], didAwaitActCall = false;
|
| 621 |
+
try {
|
| 622 |
+
var result = callback();
|
| 623 |
+
} catch (error) {
|
| 624 |
+
ReactSharedInternals.thrownErrors.push(error);
|
| 625 |
+
}
|
| 626 |
+
if (0 < ReactSharedInternals.thrownErrors.length)
|
| 627 |
+
throw popActScope(prevActQueue, prevActScopeDepth), callback = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, callback;
|
| 628 |
+
if (null !== result && "object" === typeof result && "function" === typeof result.then) {
|
| 629 |
+
var thenable = result;
|
| 630 |
+
queueSeveralMicrotasks(function() {
|
| 631 |
+
didAwaitActCall || didWarnNoAwaitAct || (didWarnNoAwaitAct = true, console.error(
|
| 632 |
+
"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"
|
| 633 |
+
));
|
| 634 |
+
});
|
| 635 |
+
return {
|
| 636 |
+
then: function(resolve, reject) {
|
| 637 |
+
didAwaitActCall = true;
|
| 638 |
+
thenable.then(
|
| 639 |
+
function(returnValue) {
|
| 640 |
+
popActScope(prevActQueue, prevActScopeDepth);
|
| 641 |
+
if (0 === prevActScopeDepth) {
|
| 642 |
+
try {
|
| 643 |
+
flushActQueue(queue), enqueueTask(function() {
|
| 644 |
+
return recursivelyFlushAsyncActWork(
|
| 645 |
+
returnValue,
|
| 646 |
+
resolve,
|
| 647 |
+
reject
|
| 648 |
+
);
|
| 649 |
+
});
|
| 650 |
+
} catch (error$0) {
|
| 651 |
+
ReactSharedInternals.thrownErrors.push(error$0);
|
| 652 |
+
}
|
| 653 |
+
if (0 < ReactSharedInternals.thrownErrors.length) {
|
| 654 |
+
var _thrownError = aggregateErrors(
|
| 655 |
+
ReactSharedInternals.thrownErrors
|
| 656 |
+
);
|
| 657 |
+
ReactSharedInternals.thrownErrors.length = 0;
|
| 658 |
+
reject(_thrownError);
|
| 659 |
+
}
|
| 660 |
+
} else resolve(returnValue);
|
| 661 |
+
},
|
| 662 |
+
function(error) {
|
| 663 |
+
popActScope(prevActQueue, prevActScopeDepth);
|
| 664 |
+
0 < ReactSharedInternals.thrownErrors.length ? (error = aggregateErrors(
|
| 665 |
+
ReactSharedInternals.thrownErrors
|
| 666 |
+
), ReactSharedInternals.thrownErrors.length = 0, reject(error)) : reject(error);
|
| 667 |
+
}
|
| 668 |
+
);
|
| 669 |
+
}
|
| 670 |
+
};
|
| 671 |
+
}
|
| 672 |
+
var returnValue$jscomp$0 = result;
|
| 673 |
+
popActScope(prevActQueue, prevActScopeDepth);
|
| 674 |
+
0 === prevActScopeDepth && (flushActQueue(queue), 0 !== queue.length && queueSeveralMicrotasks(function() {
|
| 675 |
+
didAwaitActCall || didWarnNoAwaitAct || (didWarnNoAwaitAct = true, console.error(
|
| 676 |
+
"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)"
|
| 677 |
+
));
|
| 678 |
+
}), ReactSharedInternals.actQueue = null);
|
| 679 |
+
if (0 < ReactSharedInternals.thrownErrors.length)
|
| 680 |
+
throw callback = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, callback;
|
| 681 |
+
return {
|
| 682 |
+
then: function(resolve, reject) {
|
| 683 |
+
didAwaitActCall = true;
|
| 684 |
+
0 === prevActScopeDepth ? (ReactSharedInternals.actQueue = queue, enqueueTask(function() {
|
| 685 |
+
return recursivelyFlushAsyncActWork(
|
| 686 |
+
returnValue$jscomp$0,
|
| 687 |
+
resolve,
|
| 688 |
+
reject
|
| 689 |
+
);
|
| 690 |
+
})) : resolve(returnValue$jscomp$0);
|
| 691 |
+
}
|
| 692 |
+
};
|
| 693 |
+
};
|
| 694 |
+
exports.cache = function(fn) {
|
| 695 |
+
return function() {
|
| 696 |
+
return fn.apply(null, arguments);
|
| 697 |
+
};
|
| 698 |
+
};
|
| 699 |
+
exports.captureOwnerStack = function() {
|
| 700 |
+
var getCurrentStack = ReactSharedInternals.getCurrentStack;
|
| 701 |
+
return null === getCurrentStack ? null : getCurrentStack();
|
| 702 |
+
};
|
| 703 |
+
exports.cloneElement = function(element, config, children) {
|
| 704 |
+
if (null === element || void 0 === element)
|
| 705 |
+
throw Error(
|
| 706 |
+
"The argument must be a React element, but you passed " + element + "."
|
| 707 |
+
);
|
| 708 |
+
var props = assign({}, element.props), key = element.key, owner = element._owner;
|
| 709 |
+
if (null != config) {
|
| 710 |
+
var JSCompiler_inline_result;
|
| 711 |
+
a: {
|
| 712 |
+
if (hasOwnProperty.call(config, "ref") && (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(
|
| 713 |
+
config,
|
| 714 |
+
"ref"
|
| 715 |
+
).get) && JSCompiler_inline_result.isReactWarning) {
|
| 716 |
+
JSCompiler_inline_result = false;
|
| 717 |
+
break a;
|
| 718 |
+
}
|
| 719 |
+
JSCompiler_inline_result = void 0 !== config.ref;
|
| 720 |
+
}
|
| 721 |
+
JSCompiler_inline_result && (owner = getOwner());
|
| 722 |
+
hasValidKey(config) && (checkKeyStringCoercion(config.key), key = "" + config.key);
|
| 723 |
+
for (propName in config)
|
| 724 |
+
!hasOwnProperty.call(config, propName) || "key" === propName || "__self" === propName || "__source" === propName || "ref" === propName && void 0 === config.ref || (props[propName] = config[propName]);
|
| 725 |
+
}
|
| 726 |
+
var propName = arguments.length - 2;
|
| 727 |
+
if (1 === propName) props.children = children;
|
| 728 |
+
else if (1 < propName) {
|
| 729 |
+
JSCompiler_inline_result = Array(propName);
|
| 730 |
+
for (var i = 0; i < propName; i++)
|
| 731 |
+
JSCompiler_inline_result[i] = arguments[i + 2];
|
| 732 |
+
props.children = JSCompiler_inline_result;
|
| 733 |
+
}
|
| 734 |
+
props = ReactElement(
|
| 735 |
+
element.type,
|
| 736 |
+
key,
|
| 737 |
+
void 0,
|
| 738 |
+
void 0,
|
| 739 |
+
owner,
|
| 740 |
+
props,
|
| 741 |
+
element._debugStack,
|
| 742 |
+
element._debugTask
|
| 743 |
+
);
|
| 744 |
+
for (key = 2; key < arguments.length; key++)
|
| 745 |
+
owner = arguments[key], isValidElement(owner) && owner._store && (owner._store.validated = 1);
|
| 746 |
+
return props;
|
| 747 |
+
};
|
| 748 |
+
exports.createContext = function(defaultValue) {
|
| 749 |
+
defaultValue = {
|
| 750 |
+
$$typeof: REACT_CONTEXT_TYPE,
|
| 751 |
+
_currentValue: defaultValue,
|
| 752 |
+
_currentValue2: defaultValue,
|
| 753 |
+
_threadCount: 0,
|
| 754 |
+
Provider: null,
|
| 755 |
+
Consumer: null
|
| 756 |
+
};
|
| 757 |
+
defaultValue.Provider = defaultValue;
|
| 758 |
+
defaultValue.Consumer = {
|
| 759 |
+
$$typeof: REACT_CONSUMER_TYPE,
|
| 760 |
+
_context: defaultValue
|
| 761 |
+
};
|
| 762 |
+
defaultValue._currentRenderer = null;
|
| 763 |
+
defaultValue._currentRenderer2 = null;
|
| 764 |
+
return defaultValue;
|
| 765 |
+
};
|
| 766 |
+
exports.createElement = function(type, config, children) {
|
| 767 |
+
for (var i = 2; i < arguments.length; i++) {
|
| 768 |
+
var node = arguments[i];
|
| 769 |
+
isValidElement(node) && node._store && (node._store.validated = 1);
|
| 770 |
+
}
|
| 771 |
+
i = {};
|
| 772 |
+
node = null;
|
| 773 |
+
if (null != config)
|
| 774 |
+
for (propName in didWarnAboutOldJSXRuntime || !("__self" in config) || "key" in config || (didWarnAboutOldJSXRuntime = true, console.warn(
|
| 775 |
+
"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform"
|
| 776 |
+
)), hasValidKey(config) && (checkKeyStringCoercion(config.key), node = "" + config.key), config)
|
| 777 |
+
hasOwnProperty.call(config, propName) && "key" !== propName && "__self" !== propName && "__source" !== propName && (i[propName] = config[propName]);
|
| 778 |
+
var childrenLength = arguments.length - 2;
|
| 779 |
+
if (1 === childrenLength) i.children = children;
|
| 780 |
+
else if (1 < childrenLength) {
|
| 781 |
+
for (var childArray = Array(childrenLength), _i = 0; _i < childrenLength; _i++)
|
| 782 |
+
childArray[_i] = arguments[_i + 2];
|
| 783 |
+
Object.freeze && Object.freeze(childArray);
|
| 784 |
+
i.children = childArray;
|
| 785 |
+
}
|
| 786 |
+
if (type && type.defaultProps)
|
| 787 |
+
for (propName in childrenLength = type.defaultProps, childrenLength)
|
| 788 |
+
void 0 === i[propName] && (i[propName] = childrenLength[propName]);
|
| 789 |
+
node && defineKeyPropWarningGetter(
|
| 790 |
+
i,
|
| 791 |
+
"function" === typeof type ? type.displayName || type.name || "Unknown" : type
|
| 792 |
+
);
|
| 793 |
+
var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
|
| 794 |
+
return ReactElement(
|
| 795 |
+
type,
|
| 796 |
+
node,
|
| 797 |
+
void 0,
|
| 798 |
+
void 0,
|
| 799 |
+
getOwner(),
|
| 800 |
+
i,
|
| 801 |
+
propName ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
|
| 802 |
+
propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask
|
| 803 |
+
);
|
| 804 |
+
};
|
| 805 |
+
exports.createRef = function() {
|
| 806 |
+
var refObject = { current: null };
|
| 807 |
+
Object.seal(refObject);
|
| 808 |
+
return refObject;
|
| 809 |
+
};
|
| 810 |
+
exports.forwardRef = function(render) {
|
| 811 |
+
null != render && render.$$typeof === REACT_MEMO_TYPE ? console.error(
|
| 812 |
+
"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."
|
| 813 |
+
) : "function" !== typeof render ? console.error(
|
| 814 |
+
"forwardRef requires a render function but was given %s.",
|
| 815 |
+
null === render ? "null" : typeof render
|
| 816 |
+
) : 0 !== render.length && 2 !== render.length && console.error(
|
| 817 |
+
"forwardRef render functions accept exactly two parameters: props and ref. %s",
|
| 818 |
+
1 === render.length ? "Did you forget to use the ref parameter?" : "Any additional parameter will be undefined."
|
| 819 |
+
);
|
| 820 |
+
null != render && null != render.defaultProps && console.error(
|
| 821 |
+
"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?"
|
| 822 |
+
);
|
| 823 |
+
var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render }, ownName;
|
| 824 |
+
Object.defineProperty(elementType, "displayName", {
|
| 825 |
+
enumerable: false,
|
| 826 |
+
configurable: true,
|
| 827 |
+
get: function() {
|
| 828 |
+
return ownName;
|
| 829 |
+
},
|
| 830 |
+
set: function(name) {
|
| 831 |
+
ownName = name;
|
| 832 |
+
render.name || render.displayName || (Object.defineProperty(render, "name", { value: name }), render.displayName = name);
|
| 833 |
+
}
|
| 834 |
+
});
|
| 835 |
+
return elementType;
|
| 836 |
+
};
|
| 837 |
+
exports.isValidElement = isValidElement;
|
| 838 |
+
exports.lazy = function(ctor) {
|
| 839 |
+
return {
|
| 840 |
+
$$typeof: REACT_LAZY_TYPE,
|
| 841 |
+
_payload: { _status: -1, _result: ctor },
|
| 842 |
+
_init: lazyInitializer
|
| 843 |
+
};
|
| 844 |
+
};
|
| 845 |
+
exports.memo = function(type, compare) {
|
| 846 |
+
null == type && console.error(
|
| 847 |
+
"memo: The first argument must be a component. Instead received: %s",
|
| 848 |
+
null === type ? "null" : typeof type
|
| 849 |
+
);
|
| 850 |
+
compare = {
|
| 851 |
+
$$typeof: REACT_MEMO_TYPE,
|
| 852 |
+
type,
|
| 853 |
+
compare: void 0 === compare ? null : compare
|
| 854 |
+
};
|
| 855 |
+
var ownName;
|
| 856 |
+
Object.defineProperty(compare, "displayName", {
|
| 857 |
+
enumerable: false,
|
| 858 |
+
configurable: true,
|
| 859 |
+
get: function() {
|
| 860 |
+
return ownName;
|
| 861 |
+
},
|
| 862 |
+
set: function(name) {
|
| 863 |
+
ownName = name;
|
| 864 |
+
type.name || type.displayName || (Object.defineProperty(type, "name", { value: name }), type.displayName = name);
|
| 865 |
+
}
|
| 866 |
+
});
|
| 867 |
+
return compare;
|
| 868 |
+
};
|
| 869 |
+
exports.startTransition = function(scope) {
|
| 870 |
+
var prevTransition = ReactSharedInternals.T, currentTransition = {};
|
| 871 |
+
ReactSharedInternals.T = currentTransition;
|
| 872 |
+
currentTransition._updatedFibers = /* @__PURE__ */ new Set();
|
| 873 |
+
try {
|
| 874 |
+
var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S;
|
| 875 |
+
null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue);
|
| 876 |
+
"object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && returnValue.then(noop, reportGlobalError);
|
| 877 |
+
} catch (error) {
|
| 878 |
+
reportGlobalError(error);
|
| 879 |
+
} finally {
|
| 880 |
+
null === prevTransition && currentTransition._updatedFibers && (scope = currentTransition._updatedFibers.size, currentTransition._updatedFibers.clear(), 10 < scope && console.warn(
|
| 881 |
+
"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."
|
| 882 |
+
)), ReactSharedInternals.T = prevTransition;
|
| 883 |
+
}
|
| 884 |
+
};
|
| 885 |
+
exports.unstable_useCacheRefresh = function() {
|
| 886 |
+
return resolveDispatcher().useCacheRefresh();
|
| 887 |
+
};
|
| 888 |
+
exports.use = function(usable) {
|
| 889 |
+
return resolveDispatcher().use(usable);
|
| 890 |
+
};
|
| 891 |
+
exports.useActionState = function(action, initialState, permalink) {
|
| 892 |
+
return resolveDispatcher().useActionState(
|
| 893 |
+
action,
|
| 894 |
+
initialState,
|
| 895 |
+
permalink
|
| 896 |
+
);
|
| 897 |
+
};
|
| 898 |
+
exports.useCallback = function(callback, deps) {
|
| 899 |
+
return resolveDispatcher().useCallback(callback, deps);
|
| 900 |
+
};
|
| 901 |
+
exports.useContext = function(Context) {
|
| 902 |
+
var dispatcher = resolveDispatcher();
|
| 903 |
+
Context.$$typeof === REACT_CONSUMER_TYPE && console.error(
|
| 904 |
+
"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?"
|
| 905 |
+
);
|
| 906 |
+
return dispatcher.useContext(Context);
|
| 907 |
+
};
|
| 908 |
+
exports.useDebugValue = function(value, formatterFn) {
|
| 909 |
+
return resolveDispatcher().useDebugValue(value, formatterFn);
|
| 910 |
+
};
|
| 911 |
+
exports.useDeferredValue = function(value, initialValue) {
|
| 912 |
+
return resolveDispatcher().useDeferredValue(value, initialValue);
|
| 913 |
+
};
|
| 914 |
+
exports.useEffect = function(create, createDeps, update) {
|
| 915 |
+
null == create && console.warn(
|
| 916 |
+
"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?"
|
| 917 |
+
);
|
| 918 |
+
var dispatcher = resolveDispatcher();
|
| 919 |
+
if ("function" === typeof update)
|
| 920 |
+
throw Error(
|
| 921 |
+
"useEffect CRUD overload is not enabled in this build of React."
|
| 922 |
+
);
|
| 923 |
+
return dispatcher.useEffect(create, createDeps);
|
| 924 |
+
};
|
| 925 |
+
exports.useId = function() {
|
| 926 |
+
return resolveDispatcher().useId();
|
| 927 |
+
};
|
| 928 |
+
exports.useImperativeHandle = function(ref, create, deps) {
|
| 929 |
+
return resolveDispatcher().useImperativeHandle(ref, create, deps);
|
| 930 |
+
};
|
| 931 |
+
exports.useInsertionEffect = function(create, deps) {
|
| 932 |
+
null == create && console.warn(
|
| 933 |
+
"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?"
|
| 934 |
+
);
|
| 935 |
+
return resolveDispatcher().useInsertionEffect(create, deps);
|
| 936 |
+
};
|
| 937 |
+
exports.useLayoutEffect = function(create, deps) {
|
| 938 |
+
null == create && console.warn(
|
| 939 |
+
"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?"
|
| 940 |
+
);
|
| 941 |
+
return resolveDispatcher().useLayoutEffect(create, deps);
|
| 942 |
+
};
|
| 943 |
+
exports.useMemo = function(create, deps) {
|
| 944 |
+
return resolveDispatcher().useMemo(create, deps);
|
| 945 |
+
};
|
| 946 |
+
exports.useOptimistic = function(passthrough, reducer) {
|
| 947 |
+
return resolveDispatcher().useOptimistic(passthrough, reducer);
|
| 948 |
+
};
|
| 949 |
+
exports.useReducer = function(reducer, initialArg, init) {
|
| 950 |
+
return resolveDispatcher().useReducer(reducer, initialArg, init);
|
| 951 |
+
};
|
| 952 |
+
exports.useRef = function(initialValue) {
|
| 953 |
+
return resolveDispatcher().useRef(initialValue);
|
| 954 |
+
};
|
| 955 |
+
exports.useState = function(initialState) {
|
| 956 |
+
return resolveDispatcher().useState(initialState);
|
| 957 |
+
};
|
| 958 |
+
exports.useSyncExternalStore = function(subscribe, getSnapshot, getServerSnapshot) {
|
| 959 |
+
return resolveDispatcher().useSyncExternalStore(
|
| 960 |
+
subscribe,
|
| 961 |
+
getSnapshot,
|
| 962 |
+
getServerSnapshot
|
| 963 |
+
);
|
| 964 |
+
};
|
| 965 |
+
exports.useTransition = function() {
|
| 966 |
+
return resolveDispatcher().useTransition();
|
| 967 |
+
};
|
| 968 |
+
exports.version = "19.1.1";
|
| 969 |
+
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
|
| 970 |
+
})();
|
| 971 |
+
}
|
| 972 |
+
});
|
| 973 |
+
|
| 974 |
+
// node_modules/react/index.js
|
| 975 |
+
var require_react = __commonJS({
|
| 976 |
+
"node_modules/react/index.js"(exports, module) {
|
| 977 |
+
if (false) {
|
| 978 |
+
module.exports = null;
|
| 979 |
+
} else {
|
| 980 |
+
module.exports = require_react_development();
|
| 981 |
+
}
|
| 982 |
+
}
|
| 983 |
+
});
|
| 984 |
+
|
| 985 |
+
export {
|
| 986 |
+
__commonJS,
|
| 987 |
+
__export,
|
| 988 |
+
__toESM,
|
| 989 |
+
require_react
|
| 990 |
+
};
|
| 991 |
+
/*! Bundled license information:
|
| 992 |
+
|
| 993 |
+
react/cjs/react.development.js:
|
| 994 |
+
(**
|
| 995 |
+
* @license React
|
| 996 |
+
* react.development.js
|
| 997 |
+
*
|
| 998 |
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 999 |
+
*
|
| 1000 |
+
* This source code is licensed under the MIT license found in the
|
| 1001 |
+
* LICENSE file in the root directory of this source tree.
|
| 1002 |
+
*)
|
| 1003 |
+
*/
|
| 1004 |
+
//# sourceMappingURL=chunk-X4QARNC5.js.map
|
frontend/node_modules/.vite/deps/chunk-X4QARNC5.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": 3,
|
| 3 |
+
"sources": ["../../react/cjs/react.development.js", "../../react/index.js"],
|
| 4 |
+
"sourcesContent": ["/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n void 0,\n void 0,\n oldElement._owner,\n oldElement.props,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function noop$1() {}\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop$1, noop$1)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status)\n return (\n (ctor = payload._result),\n void 0 === ctor &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ctor\n ),\n \"default\" in ctor ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ctor\n ),\n ctor.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function noop() {}\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n },\n fnName;\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n V: null,\n actQueue: null,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(\n deprecatedAPIs,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n exports.Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n void 0,\n void 0,\n owner,\n props,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n (owner = arguments[key]),\n isValidElement(owner) && owner._store && (owner._store.validated = 1);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++) {\n var node = arguments[i];\n isValidElement(node) && node._store && (node._store.validated = 1);\n }\n i = {};\n node = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (node = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n node &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n node,\n void 0,\n void 0,\n getOwner(),\n i,\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n currentTransition._updatedFibers = new Set();\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, createDeps, update) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n var dispatcher = resolveDispatcher();\n if (\"function\" === typeof update)\n throw Error(\n \"useEffect CRUD overload is not enabled in this build of React.\"\n );\n return dispatcher.useEffect(create, createDeps);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.1.1\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n"],
|
| 5 |
+
"mappings": "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",
|
| 6 |
+
"names": []
|
| 7 |
+
}
|
frontend/node_modules/.vite/deps/package.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"type": "module"
|
| 3 |
+
}
|
frontend/node_modules/.vite/deps/react-dom.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import {
|
| 2 |
+
require_react_dom
|
| 3 |
+
} from "./chunk-I5HANLAN.js";
|
| 4 |
+
import "./chunk-X4QARNC5.js";
|
| 5 |
+
export default require_react_dom();
|
frontend/node_modules/.vite/deps/react-dom.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": 3,
|
| 3 |
+
"sources": [],
|
| 4 |
+
"sourcesContent": [],
|
| 5 |
+
"mappings": "",
|
| 6 |
+
"names": []
|
| 7 |
+
}
|
frontend/node_modules/.vite/deps/react-dom_client.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
frontend/node_modules/.vite/deps/react-dom_client.js.map
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
frontend/node_modules/.vite/deps/react.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import {
|
| 2 |
+
require_react
|
| 3 |
+
} from "./chunk-X4QARNC5.js";
|
| 4 |
+
export default require_react();
|
frontend/node_modules/.vite/deps/react.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": 3,
|
| 3 |
+
"sources": [],
|
| 4 |
+
"sourcesContent": [],
|
| 5 |
+
"mappings": "",
|
| 6 |
+
"names": []
|
| 7 |
+
}
|
frontend/node_modules/.vite/deps/react_jsx-dev-runtime.js
ADDED
|
@@ -0,0 +1,279 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import {
|
| 2 |
+
__commonJS,
|
| 3 |
+
require_react
|
| 4 |
+
} from "./chunk-X4QARNC5.js";
|
| 5 |
+
|
| 6 |
+
// node_modules/react/cjs/react-jsx-dev-runtime.development.js
|
| 7 |
+
var require_react_jsx_dev_runtime_development = __commonJS({
|
| 8 |
+
"node_modules/react/cjs/react-jsx-dev-runtime.development.js"(exports) {
|
| 9 |
+
"use strict";
|
| 10 |
+
(function() {
|
| 11 |
+
function getComponentNameFromType(type) {
|
| 12 |
+
if (null == type) return null;
|
| 13 |
+
if ("function" === typeof type)
|
| 14 |
+
return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;
|
| 15 |
+
if ("string" === typeof type) return type;
|
| 16 |
+
switch (type) {
|
| 17 |
+
case REACT_FRAGMENT_TYPE:
|
| 18 |
+
return "Fragment";
|
| 19 |
+
case REACT_PROFILER_TYPE:
|
| 20 |
+
return "Profiler";
|
| 21 |
+
case REACT_STRICT_MODE_TYPE:
|
| 22 |
+
return "StrictMode";
|
| 23 |
+
case REACT_SUSPENSE_TYPE:
|
| 24 |
+
return "Suspense";
|
| 25 |
+
case REACT_SUSPENSE_LIST_TYPE:
|
| 26 |
+
return "SuspenseList";
|
| 27 |
+
case REACT_ACTIVITY_TYPE:
|
| 28 |
+
return "Activity";
|
| 29 |
+
}
|
| 30 |
+
if ("object" === typeof type)
|
| 31 |
+
switch ("number" === typeof type.tag && console.error(
|
| 32 |
+
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
|
| 33 |
+
), type.$$typeof) {
|
| 34 |
+
case REACT_PORTAL_TYPE:
|
| 35 |
+
return "Portal";
|
| 36 |
+
case REACT_CONTEXT_TYPE:
|
| 37 |
+
return (type.displayName || "Context") + ".Provider";
|
| 38 |
+
case REACT_CONSUMER_TYPE:
|
| 39 |
+
return (type._context.displayName || "Context") + ".Consumer";
|
| 40 |
+
case REACT_FORWARD_REF_TYPE:
|
| 41 |
+
var innerType = type.render;
|
| 42 |
+
type = type.displayName;
|
| 43 |
+
type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef");
|
| 44 |
+
return type;
|
| 45 |
+
case REACT_MEMO_TYPE:
|
| 46 |
+
return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo";
|
| 47 |
+
case REACT_LAZY_TYPE:
|
| 48 |
+
innerType = type._payload;
|
| 49 |
+
type = type._init;
|
| 50 |
+
try {
|
| 51 |
+
return getComponentNameFromType(type(innerType));
|
| 52 |
+
} catch (x) {
|
| 53 |
+
}
|
| 54 |
+
}
|
| 55 |
+
return null;
|
| 56 |
+
}
|
| 57 |
+
function testStringCoercion(value) {
|
| 58 |
+
return "" + value;
|
| 59 |
+
}
|
| 60 |
+
function checkKeyStringCoercion(value) {
|
| 61 |
+
try {
|
| 62 |
+
testStringCoercion(value);
|
| 63 |
+
var JSCompiler_inline_result = false;
|
| 64 |
+
} catch (e) {
|
| 65 |
+
JSCompiler_inline_result = true;
|
| 66 |
+
}
|
| 67 |
+
if (JSCompiler_inline_result) {
|
| 68 |
+
JSCompiler_inline_result = console;
|
| 69 |
+
var JSCompiler_temp_const = JSCompiler_inline_result.error;
|
| 70 |
+
var JSCompiler_inline_result$jscomp$0 = "function" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object";
|
| 71 |
+
JSCompiler_temp_const.call(
|
| 72 |
+
JSCompiler_inline_result,
|
| 73 |
+
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
|
| 74 |
+
JSCompiler_inline_result$jscomp$0
|
| 75 |
+
);
|
| 76 |
+
return testStringCoercion(value);
|
| 77 |
+
}
|
| 78 |
+
}
|
| 79 |
+
function getTaskName(type) {
|
| 80 |
+
if (type === REACT_FRAGMENT_TYPE) return "<>";
|
| 81 |
+
if ("object" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE)
|
| 82 |
+
return "<...>";
|
| 83 |
+
try {
|
| 84 |
+
var name = getComponentNameFromType(type);
|
| 85 |
+
return name ? "<" + name + ">" : "<...>";
|
| 86 |
+
} catch (x) {
|
| 87 |
+
return "<...>";
|
| 88 |
+
}
|
| 89 |
+
}
|
| 90 |
+
function getOwner() {
|
| 91 |
+
var dispatcher = ReactSharedInternals.A;
|
| 92 |
+
return null === dispatcher ? null : dispatcher.getOwner();
|
| 93 |
+
}
|
| 94 |
+
function UnknownOwner() {
|
| 95 |
+
return Error("react-stack-top-frame");
|
| 96 |
+
}
|
| 97 |
+
function hasValidKey(config) {
|
| 98 |
+
if (hasOwnProperty.call(config, "key")) {
|
| 99 |
+
var getter = Object.getOwnPropertyDescriptor(config, "key").get;
|
| 100 |
+
if (getter && getter.isReactWarning) return false;
|
| 101 |
+
}
|
| 102 |
+
return void 0 !== config.key;
|
| 103 |
+
}
|
| 104 |
+
function defineKeyPropWarningGetter(props, displayName) {
|
| 105 |
+
function warnAboutAccessingKey() {
|
| 106 |
+
specialPropKeyWarningShown || (specialPropKeyWarningShown = true, console.error(
|
| 107 |
+
"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
|
| 108 |
+
displayName
|
| 109 |
+
));
|
| 110 |
+
}
|
| 111 |
+
warnAboutAccessingKey.isReactWarning = true;
|
| 112 |
+
Object.defineProperty(props, "key", {
|
| 113 |
+
get: warnAboutAccessingKey,
|
| 114 |
+
configurable: true
|
| 115 |
+
});
|
| 116 |
+
}
|
| 117 |
+
function elementRefGetterWithDeprecationWarning() {
|
| 118 |
+
var componentName = getComponentNameFromType(this.type);
|
| 119 |
+
didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = true, console.error(
|
| 120 |
+
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
|
| 121 |
+
));
|
| 122 |
+
componentName = this.props.ref;
|
| 123 |
+
return void 0 !== componentName ? componentName : null;
|
| 124 |
+
}
|
| 125 |
+
function ReactElement(type, key, self, source, owner, props, debugStack, debugTask) {
|
| 126 |
+
self = props.ref;
|
| 127 |
+
type = {
|
| 128 |
+
$$typeof: REACT_ELEMENT_TYPE,
|
| 129 |
+
type,
|
| 130 |
+
key,
|
| 131 |
+
props,
|
| 132 |
+
_owner: owner
|
| 133 |
+
};
|
| 134 |
+
null !== (void 0 !== self ? self : null) ? Object.defineProperty(type, "ref", {
|
| 135 |
+
enumerable: false,
|
| 136 |
+
get: elementRefGetterWithDeprecationWarning
|
| 137 |
+
}) : Object.defineProperty(type, "ref", { enumerable: false, value: null });
|
| 138 |
+
type._store = {};
|
| 139 |
+
Object.defineProperty(type._store, "validated", {
|
| 140 |
+
configurable: false,
|
| 141 |
+
enumerable: false,
|
| 142 |
+
writable: true,
|
| 143 |
+
value: 0
|
| 144 |
+
});
|
| 145 |
+
Object.defineProperty(type, "_debugInfo", {
|
| 146 |
+
configurable: false,
|
| 147 |
+
enumerable: false,
|
| 148 |
+
writable: true,
|
| 149 |
+
value: null
|
| 150 |
+
});
|
| 151 |
+
Object.defineProperty(type, "_debugStack", {
|
| 152 |
+
configurable: false,
|
| 153 |
+
enumerable: false,
|
| 154 |
+
writable: true,
|
| 155 |
+
value: debugStack
|
| 156 |
+
});
|
| 157 |
+
Object.defineProperty(type, "_debugTask", {
|
| 158 |
+
configurable: false,
|
| 159 |
+
enumerable: false,
|
| 160 |
+
writable: true,
|
| 161 |
+
value: debugTask
|
| 162 |
+
});
|
| 163 |
+
Object.freeze && (Object.freeze(type.props), Object.freeze(type));
|
| 164 |
+
return type;
|
| 165 |
+
}
|
| 166 |
+
function jsxDEVImpl(type, config, maybeKey, isStaticChildren, source, self, debugStack, debugTask) {
|
| 167 |
+
var children = config.children;
|
| 168 |
+
if (void 0 !== children)
|
| 169 |
+
if (isStaticChildren)
|
| 170 |
+
if (isArrayImpl(children)) {
|
| 171 |
+
for (isStaticChildren = 0; isStaticChildren < children.length; isStaticChildren++)
|
| 172 |
+
validateChildKeys(children[isStaticChildren]);
|
| 173 |
+
Object.freeze && Object.freeze(children);
|
| 174 |
+
} else
|
| 175 |
+
console.error(
|
| 176 |
+
"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
|
| 177 |
+
);
|
| 178 |
+
else validateChildKeys(children);
|
| 179 |
+
if (hasOwnProperty.call(config, "key")) {
|
| 180 |
+
children = getComponentNameFromType(type);
|
| 181 |
+
var keys = Object.keys(config).filter(function(k) {
|
| 182 |
+
return "key" !== k;
|
| 183 |
+
});
|
| 184 |
+
isStaticChildren = 0 < keys.length ? "{key: someKey, " + keys.join(": ..., ") + ": ...}" : "{key: someKey}";
|
| 185 |
+
didWarnAboutKeySpread[children + isStaticChildren] || (keys = 0 < keys.length ? "{" + keys.join(": ..., ") + ": ...}" : "{}", console.error(
|
| 186 |
+
'A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',
|
| 187 |
+
isStaticChildren,
|
| 188 |
+
children,
|
| 189 |
+
keys,
|
| 190 |
+
children
|
| 191 |
+
), didWarnAboutKeySpread[children + isStaticChildren] = true);
|
| 192 |
+
}
|
| 193 |
+
children = null;
|
| 194 |
+
void 0 !== maybeKey && (checkKeyStringCoercion(maybeKey), children = "" + maybeKey);
|
| 195 |
+
hasValidKey(config) && (checkKeyStringCoercion(config.key), children = "" + config.key);
|
| 196 |
+
if ("key" in config) {
|
| 197 |
+
maybeKey = {};
|
| 198 |
+
for (var propName in config)
|
| 199 |
+
"key" !== propName && (maybeKey[propName] = config[propName]);
|
| 200 |
+
} else maybeKey = config;
|
| 201 |
+
children && defineKeyPropWarningGetter(
|
| 202 |
+
maybeKey,
|
| 203 |
+
"function" === typeof type ? type.displayName || type.name || "Unknown" : type
|
| 204 |
+
);
|
| 205 |
+
return ReactElement(
|
| 206 |
+
type,
|
| 207 |
+
children,
|
| 208 |
+
self,
|
| 209 |
+
source,
|
| 210 |
+
getOwner(),
|
| 211 |
+
maybeKey,
|
| 212 |
+
debugStack,
|
| 213 |
+
debugTask
|
| 214 |
+
);
|
| 215 |
+
}
|
| 216 |
+
function validateChildKeys(node) {
|
| 217 |
+
"object" === typeof node && null !== node && node.$$typeof === REACT_ELEMENT_TYPE && node._store && (node._store.validated = 1);
|
| 218 |
+
}
|
| 219 |
+
var React = require_react(), REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler");
|
| 220 |
+
Symbol.for("react.provider");
|
| 221 |
+
var REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, hasOwnProperty = Object.prototype.hasOwnProperty, isArrayImpl = Array.isArray, createTask = console.createTask ? console.createTask : function() {
|
| 222 |
+
return null;
|
| 223 |
+
};
|
| 224 |
+
React = {
|
| 225 |
+
react_stack_bottom_frame: function(callStackForError) {
|
| 226 |
+
return callStackForError();
|
| 227 |
+
}
|
| 228 |
+
};
|
| 229 |
+
var specialPropKeyWarningShown;
|
| 230 |
+
var didWarnAboutElementRef = {};
|
| 231 |
+
var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(
|
| 232 |
+
React,
|
| 233 |
+
UnknownOwner
|
| 234 |
+
)();
|
| 235 |
+
var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
|
| 236 |
+
var didWarnAboutKeySpread = {};
|
| 237 |
+
exports.Fragment = REACT_FRAGMENT_TYPE;
|
| 238 |
+
exports.jsxDEV = function(type, config, maybeKey, isStaticChildren, source, self) {
|
| 239 |
+
var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
|
| 240 |
+
return jsxDEVImpl(
|
| 241 |
+
type,
|
| 242 |
+
config,
|
| 243 |
+
maybeKey,
|
| 244 |
+
isStaticChildren,
|
| 245 |
+
source,
|
| 246 |
+
self,
|
| 247 |
+
trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
|
| 248 |
+
trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
|
| 249 |
+
);
|
| 250 |
+
};
|
| 251 |
+
})();
|
| 252 |
+
}
|
| 253 |
+
});
|
| 254 |
+
|
| 255 |
+
// node_modules/react/jsx-dev-runtime.js
|
| 256 |
+
var require_jsx_dev_runtime = __commonJS({
|
| 257 |
+
"node_modules/react/jsx-dev-runtime.js"(exports, module) {
|
| 258 |
+
if (false) {
|
| 259 |
+
module.exports = null;
|
| 260 |
+
} else {
|
| 261 |
+
module.exports = require_react_jsx_dev_runtime_development();
|
| 262 |
+
}
|
| 263 |
+
}
|
| 264 |
+
});
|
| 265 |
+
export default require_jsx_dev_runtime();
|
| 266 |
+
/*! Bundled license information:
|
| 267 |
+
|
| 268 |
+
react/cjs/react-jsx-dev-runtime.development.js:
|
| 269 |
+
(**
|
| 270 |
+
* @license React
|
| 271 |
+
* react-jsx-dev-runtime.development.js
|
| 272 |
+
*
|
| 273 |
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 274 |
+
*
|
| 275 |
+
* This source code is licensed under the MIT license found in the
|
| 276 |
+
* LICENSE file in the root directory of this source tree.
|
| 277 |
+
*)
|
| 278 |
+
*/
|
| 279 |
+
//# sourceMappingURL=react_jsx-dev-runtime.js.map
|
frontend/node_modules/.vite/deps/react_jsx-dev-runtime.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": 3,
|
| 3 |
+
"sources": ["../../react/cjs/react-jsx-dev-runtime.development.js", "../../react/jsx-dev-runtime.js"],
|
| 4 |
+
"sourcesContent": ["/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsxDEV = function (\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self\n ) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-dev-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-dev-runtime.development.js');\n}\n"],
|
| 5 |
+
"mappings": "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",
|
| 6 |
+
"names": []
|
| 7 |
+
}
|