diff --git a/extracted_images/page_1_image_1.png b/extracted_images/page_1_image_1.png new file mode 100644 index 0000000..ec15f53 Binary files /dev/null and b/extracted_images/page_1_image_1.png differ diff --git a/extracted_images/page_1_image_2.png b/extracted_images/page_1_image_2.png new file mode 100644 index 0000000..47c12b7 Binary files /dev/null and b/extracted_images/page_1_image_2.png differ diff --git a/extracted_images/page_1_image_3.png b/extracted_images/page_1_image_3.png new file mode 100644 index 0000000..44091bf Binary files /dev/null and b/extracted_images/page_1_image_3.png differ diff --git a/graphs/page_1_body_composition.png b/graphs/page_1_body_composition.png new file mode 100644 index 0000000..73bbad6 Binary files /dev/null and b/graphs/page_1_body_composition.png differ diff --git a/graphs/page_1_body_fat.png b/graphs/page_1_body_fat.png new file mode 100644 index 0000000..4af2cf2 Binary files /dev/null and b/graphs/page_1_body_fat.png differ diff --git a/main.py b/main.py index 956e02c..949673c 100644 --- a/main.py +++ b/main.py @@ -7,6 +7,347 @@ env = Environment(loader=FileSystemLoader("report_gen")) pages = [ ("page_1.html", {"name": "John Doe", "surname": "Moran", "date": "July 29, 2025"}), ("page_2.html", {"content": "This is page 2 content"}), + ( + "page_3.html", + { + "patient_name": "Keirstyn Moran", + "age": "34", + "height": "5'4\"", + "weight": "123lbs", + "focus": "Endurance", + "fat_mass": "27.6lbs", + "fat_percentage": "22.4%", + "lean_mass": "95.4lbs", + "lean_percentage": "77.6%", + "body_fat_percent": "22.4%", + "age_range": "20-39", + "gender": "F", + "contact_email": "info@ishplabs.com", + "website": "www.ishplabs.com", + "social": "@ishplabs", + "page_number": "4", + "body_composition_chart": "../graphs/page_1_body_composition.png", + "body_fat_chart": "../graphs/page_1_body_fat.png", + }, + ), + ( + "page_4.html", + { + "patient_name": "Keirstyn Moran", + "age": "34", + "height": "5'4\"", + "weight": "123lbs", + "focus": "Endurance", + "contact_email": "info@ishplabs.com", + "website": "www.ishplabs.com", + "social": "@ishplabs", + "page_number": "3", + }, + ), + ( + "page_5.html", + { + "patient_name": "Keirstyn Moran", + "age": "34", + "height": "5'4\"", + "weight": "123lbs", + "focus": "Endurance", + "resting_calories": "1386kCals", + "fat_percentage": "33%", + "carb_percentage": "67%", + "neat_calories": "762kCals", + "weight_loss_calories": "423kCals", + "weight_loss_rate": "1.1lbs", + "total_calories": "~1725kCals", + "contact_email": "info@ishplabs.com", + "website": "www.ishplabs.com", + "social": "@ishplabs", + "page_number": "5", + }, + ), + ( + "page_6.html", + { + "patient_name": "Keirstyn Moran", + "age": "34", + "height": "5'4\"", + "weight": "123lbs", + "focus": "Endurance", + "deficit_calories": "1725KCals", + "deficit_protein": "120g Protein", + "deficit_carbs": "155g Carbs", + "deficit_fat": "69g Fat", + "deficit_fiber": "25g Fibre", + "refeed_weekday_calories": "1615KCals", + "refeed_weekday_protein": "120g Protein", + "refeed_weekday_carbs": "142g Carbs", + "refeed_weekday_fat": "63g Fat", + "refeed_weekday_fiber": "24g Fibre", + "refeed_weekend_calories": "2000KCals", + "refeed_weekend_protein": "120g Protein", + "refeed_weekend_carbs": "190g Carbs", + "refeed_weekend_fat": "84g Fat", + "refeed_weekend_fiber": "30g Fibre", + "protein_percentage": "28%", + "carbs_percentage": "36%", + "fats_percentage": "36%", + "contact_email": "info@ishplabs.com", + "website": "www.ishplabs.com", + "social": "@ishplabs", + "page_number": "6", + }, + ), + ( + "page_7.html", + { + "patient_name": "Keirstyn Moran", + "age": "34", + "height": "5'4\"", + "weight": "123lbs", + "focus": "Endurance", + "fvc_value": "4.24L → 112.0%", + "fev1_value": "3.26L → 103.3%", + "fev1_fvc_ratio": "76.89% → 91.8%", + "indication": "No Respiratory Capacity Limitation", + "respiratory_graph": "../graphs/respiratory_chart.png", + "peak_vt_value": "2.38L/Breath which occurs at 172bpm (Zone 3)", + "peak_vt_percentage": "73% of FEV1", + "contact_email": "info@ishplabs.com", + "website": "www.ishplabs.com", + "social": "@ishplabs", + "page_number": "7", + }, + ), + ( + "page_8.html", + { + "patient_name": "Keirstyn Moran", + "age": "34", + "height": "5'4\"", + "weight": "123lbs", + "focus": "Endurance", + "vo2_max_value": "49.5", + "vo2_max_percentile": "100th percentile", + "age_range": "30-39", + "very_poor_range": "19.0-24.1", + "poor_range": "24.1-28.2", + "fair_range": "28.2-32.2", + "good_range": "32.2-35.7", + "excellent_range": "35.7-45.8", + "superior_range": "45.8+", + "zone1_percentage": "55-65% of Max Heart Rate", + "zone2_percentage": "65-75% of Max Heart Rate", + "zone3_percentage": "80-85% of Max Heart Rate", + "zone4_percentage": "85-88% of Max Heart Rate", + "zone5_percentage": "90% of Max Heart Rate", + "zone1_bpm": "81-96bpm", + "zone2_bpm": "96-100bpm", + "zone3_bpm": "100-178bpm", + "zone4_bpm": "178-188bpm", + "zone5_bpm": "188-198bpm", + "zone1_speed": "3.5mph", + "zone2_speed": "3.5-4.0mph", + "zone3_speed": "4.0-6.5mph", + "zone4_speed": "6.5-7.0mph", + "zone5_speed": "7.0-8.0mph", + "zone1_incline": "2% Incline", + "zone2_incline": "2% Incline", + "zone3_incline": "2% Incline", + "zone4_incline": "2% Incline", + "zone5_incline": "2% Incline", + "zone1_pace": "10:39min/km Pace", + "zone2_pace": "10:39-9:19min/km Pace", + "zone3_pace": "9:19-5:44min/km Pace", + "zone4_pace": "5:44-5:20min/km Pace", + "zone5_pace": "5:20-4:40min/km Pace", + "zone1_calories": "4.4kcals/minute", + "zone2_calories": "5.9kcals/minute", + "zone3_calories": "9.4kcals/minute", + "zone4_calories": "12.5kcals/minute", + "zone5_calories": "12.8kcals/minute", + "zone1_carb": "Avg: 0.4g/min Carb Utilization", + "zone2_carb": "Avg: 0.6g/min Carb Utilization", + "zone3_carb": "Avg: 1.9g/min Carb Utilization", + "zone4_carb": "Avg: 2.9g/min Carb Utilization", + "zone5_carb": "Avg: 3.1g/min Carb Utilization", + "zone1_breaths": "Avg: 27 breaths", + "zone2_breaths": "Avg: 28 breaths", + "zone3_breaths": "Avg: 31 breaths", + "zone4_breaths": "Avg: 42 breaths", + "zone5_breaths": "Avg: 51 breaths", + "zone1_breath_range": "Ideal Range: 15-20 breaths", + "zone2_breath_range": "Ideal Range: 20-25 breaths", + "zone3_breath_range": "Ideal Range: 25-30 breaths", + "zone4_breath_range": "Ideal Range: 30-35 breaths", + "zone5_breath_range": "Ideal Range: 40+ breaths", + "contact_email": "info@ishplabs.com", + "website": "www.ishplabs.com", + "social": "@ishplabs", + "page_number": "8", + }, + ), + ( + "page_9.html", + { + "patient_name": "Keirstyn Moran", + "age": "34", + "height": "5'4\"", + "weight": "123lbs", + "focus": "Endurance", + "fuel_utilization_chart": "../graphs/fuel_utilization_chart.png", + "client_name": "Keirstyn Moran", + "assessment_date": "July 29 2025", + "contact_email": "info@ishplabs.com", + "website": "www.ishplabs.com", + "social": "@ishplabs", + "page_number": "9", + }, + ), + ( + "page_10.html", + { + "patient_name": "Keirstyn Moran", + "age": "34", + "height": "5'4\"", + "weight": "123lbs", + "focus": "Endurance", + "vo2_pulse_drop_bpm": "180 bpm", + "vo2_pulse_drop_zone": "Zone 4", + "vo2_pulse_chart": "../graphs/vo2_pulse_chart.png", + "vo2_breath_drop_bpm": "173 bpm", + "vo2_breath_drop_zone": "Zone 3", + "vo2_breath_chart": "../graphs/vo2_breath_chart.png", + "contact_email": "info@ishplabs.com", + "website": "www.ishplabs.com", + "social": "@ishplabs", + "page_number": "9", + }, + ), + ( + "page_11.html", + { + "patient_name": "Keirstyn Moran", + "age": "34", + "height": "5'4\"", + "weight": "123lbs", + "focus": "Endurance", + "fat_max_optimal": "*Optimal 10-12Kcals/minute", + "fat_max_value": "3.8Kcals/min", + "fat_max_heart_rate": "49% of Max Heart Rate", + "fat_max_bpm": "97 bpm", + "crossover_bpm": "100bpm", + "crossover_heart_rate": "51% of Max Heart Rate", + "fat_metabolism_note": "100bpm at a speed of 4.0mph and incline of 2%", + "fat_metabolism_chart": "../graphs/fat_metabolism_chart.png", + "cardiac_recovery_time": "(1 minute)", + "cardiac_recovery_percentage": "33%", + "metabolic_recovery_time": "(2 minute)", + "metabolic_recovery_percentage": "65%", + "breath_recovery_time": "(2.5 minute)", + "breath_recovery_percentage": "76%", + "recovery_chart": "../graphs/recovery_chart.png", + "resting_heart_rate": "53bpm", + "hr_age_range": "26-35", + "hr_poor": "82bpm +", + "hr_below_avg": "75-81bpm", + "hr_average": "71-74bpm", + "hr_above_avg": "66-70bpm", + "hr_good": "62-65bpm", + "hr_excellent": "55-61bpm", + "hr_athlete": "44-54bpm", + "contact_email": "info@ishplabs.com", + "website": "www.ishplabs.com", + "social": "@ishplabs", + "page_number": "10", + }, + ), + ( + "page_13.html", + { + "patient_name": "Keirstyn Moran", + "age": "34", + "height": "5'4\"", + "weight": "123lbs", + "focus": "Endurance", + "zone2_frequency": "3-4x/week", + "zone2_duration": "40+ minutes", + "zone2_hr_range": "____", + "zone2_speed": "____ mph", + "zone2_incline": "2% Incline", + "zone3_frequency": "1-2x/week", + "zone3_duration": "10-20 minutes", + "zone3_hr_range": "____ bpm", + "zone3_speed": "____mph", + "zone3_incline": "2% Incline", + "zone3_target_hr": "___ bpm", + "zone3_recovery_speed": "____mph", + "zone3_recovery_incline": "2% Incline", + "zone1_hr_range": "____bpm", + "zone1_duration": "4-8 minutes", + "zone3_repeats": "2-3 times", + "short_sets": "8-10", + "short_duration": "10-30 seconds", + "short_zone": "5", + "short_rpe": "10", + "short_recovery": "20-60 seconds", + "medium_sets": "6-8", + "medium_duration": "30-90 seconds", + "medium_zone": "4", + "medium_rpe": "8-9", + "medium_recovery": "30-90 seconds", + "long_sets": "4-6", + "long_duration": "5-10 minutes", + "long_zone": "3/4", + "long_rpe": "7-8", + "long_recovery": "2.5-5 minutes", + "tempo_sets": "2-3", + "tempo_duration": "10-20 minutes", + "tempo_zone": "3", + "tempo_rpe": "6-7", + "tempo_recovery": "4-8 minutes", + "cardio_sets": "1", + "cardio_duration": ">40 minutes", + "cardio_zone": "2", + "cardio_rpe": "4-5", + "cardio_recovery": "N/A", + "week1_mon_zone": "Zone 2", + "week1_mon_duration": "45 mins", + "week1_tue_zone": "Zone 2", + "week1_tue_duration": "45 mins", + "week1_wed_zone": "Zone 3", + "week1_wed_duration1": "10mins On", + "week1_wed_duration2": "8mins Rest", + "week1_wed_sets": "x2", + "week1_thu_content": "", + "week1_fri_zone": "Zone 2", + "week1_fri_duration": "45 mins", + "week1_sat_content": "", + "week1_sun_content": "", + "week2_mon_zone": "Zone 2", + "week2_mon_duration": "50 mins", + "week2_tue_zone": "Zone 2", + "week2_tue_duration": "50 mins", + "week2_wed_zone": "Zone 3", + "week2_wed_duration1": "10mins On", + "week2_wed_duration2": "6mins Rest", + "week2_wed_sets": "x2", + "week2_thu_content": "", + "week2_fri_zone": "Zone 2", + "week2_fri_duration": "50 mins", + "week2_sat_content": "", + "week2_sun_content": "", + "contact_email": "info@ishplabs.com", + "website": "www.ishplabs.com", + "social": "@ishplabs", + "page_number": "12", + }, + ), + ("page_14.html", {}), + ("page_15.html", {}), + ("page_16.html", {}), + ("page_17.html", {}), + ("page_18.html", {}), + ("page_19.html", {}), ] # Render each template with its own context diff --git a/notebook.ipynb b/notebook.ipynb index afa9f57..7bdfe87 100644 --- a/notebook.ipynb +++ b/notebook.ipynb @@ -512,7 +512,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 31, "id": "52642f49", "metadata": {}, "outputs": [ @@ -899,7 +899,7 @@ "[63 rows x 147 columns]" ] }, - "execution_count": 10, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -911,13 +911,13 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 36, "id": "2056096d", "metadata": {}, "outputs": [ { "data": { - "image/png": "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adiw4WXHU716dRMbG5ur70tr2K1bt1zn5jhy5Ijp0qXLZa9z6fgzMjLM0KFDL3uOy+UyEydOzDW2qKgo23GDBw827u7uefbRr1+/IquREwICAmxjW7p0qa39gQcesLWPHTvWHD9+3Bw/ftyMGzfO1jZ+/PhCG1fz5s1tfS9atMjWPnv2bKvtqaeeMsZc+H9MTp1uv/12Y8yF74OcvsaOHVto4wMAoDTgzzAAgDJp5MiRKl++vDIzMxUfH2977sttt92m+++/33b80aNHdeeddyo5OdnaV7VqVbVu3VqJiYnauXOnJCkzM1NPPfWUqlevblvVNGTIEP3666/Wtqenp9q3b6/MzEytX79ec+fOzXes48ePV//+/SVduCXovffe09///ner/bPPPrOeiyNJw4cPL+iXwxITE6O77747z7bRo0fbblVyc3NTw4YNFRgYqMqVKysjI0P79++3VotlZWVp1KhR6tmzp2rUqGE9f+e3337Thg0brH4aN26sm2++2dq++PPrtWnTJtu2p6enqlatKkk6ceKEunfvroMHD1rt9evX10033aTk5GRrjElJSerdu7e2bt2qmjVr5nmdw4cP6/Dhw6pQoYJat26tcuXKWauYsrKy1KtXL9trli7ckla/fn2lpKTkapOkJ554QtHR0dZ2pUqV1L59e7m5uSk2Nlapqakyxuill15SzZo1L1v3OXPmyNvbW7fccotOnDihbdu2WW0LFixQbGysOnXqVCw1uh5r167V0aNHre3y5curffv2tmNeffVV7dmzR2vXrpUkzZgxQzNmzLAd4+npqccee0z/+Mc/CmVcy5Yt09atW63tRo0a6U9/+pPtmPvuu0+vv/664uPjNX36dH3yySc6duyYsrKy5OXlZY1l+vTp2rp1q0JCQvTiiy8WyvgAACg1ijsVAwCgMOgqVn9IMmFhYWbfvn25zp8wYYLtuPbt25sTJ05Y7S+99JKtvVatWiYrK8sYY8yGDRtsbZ6eniYuLs46d+nSpcblcuW7UiorK8u2mqd27domIyPDar94JVVAQIA5d+7cVX9dLl0pdbmPi8e0Z88ec/LkyTz7/N///V/bebNmzbK1X7oa51pX3VxupVRKSor5/PPPja+vr+2YHj16WMf8/e9/t7VNmTLF1v/cuXNt7aNHj7a1X/r1admypTl48KDVnlOHDz/80Hacj4+PWbx4sa2vlJQU8+9//9va3r17t3Fzc7POadeunTl16pTVnpycbOrUqWO1V61a1Zw/f95qv3SllJ+fn4mPj8+3ffLkybbxFFaNitKxY8fMzTffbBvnc889l+ex586dM8OGDcv3e3vIkCG21ZPXq3v37rb+33333TyPO3nypHnyySdNSEiI8fDwMP7+/uauu+4y69atM8YYs2/fPuPj42NbAbZ582YzcuRIExkZaXr27GkmTpxoW/0HAEBZwkopAMANZd++fWrevLkWL16srl27WvsXLVpkO+6FF16Qv7+/tT1hwgTNmjXLeoZMYmKiNm3apDZt2mjZsmW2cwcMGGB7rk2PHj3UrVs3LV++PM8xubm5ady4cXrsscckSQcPHtSCBQt09913KyEhwfZuY0OGDJG3t/e1vfgCCA0N1ZdffqnPPvtM8fHxSkpKUlpamowxuY699Bk/ReW3337L9Ryni/n4+Oif//yntf3111/b2uPi4myrxLKysmztixcv1syZM/Ptf+bMmapVq5a1nVOH+fPn24575plncq2aqVixoh588EFre9GiRcrOzra209PTcz2g/eKv9bFjxxQbG5vvQ7eHDx9ue/h3nz599NFHH1nbF7+LXWHKb9VdtWrV9NZbb11zv4mJierZs6e1QlGS+vfvr8mTJ+c6dufOnerXr5/27Nkj6cIzpjp27GitODt//rxmz56tr776Sl9++aW6d+9+zeOSpG3btum7776ztoOCgqwHmV/Kz88vz5VbOYYPH660tDQNHjxYPXr00L///W8NGzbM9r25dOlSvfXWW1q+fLlatmx5XWMHAKCkIZQCAJRJCQkJCgkJkTFGiYmJeuWVV/Svf/1LknTmzBk99NBD2rt3rxUsXPyW8pLUrFkz27aHh4duvvlm24ONExIS1KZNG9utgXmdK0lNmzbNN5SSLrw718SJE62Hor/55pu6++679cknn1jHuFwuK7i6VlFRUVd89z1jjAYMGKAFCxZcVZ+nTp26rjEVhtDQUEVHR6tVq1bWvoSEBNsxCxcuvGwfv//+u7KysuTu7p6rzcvLS506dcrzvItv25QuPLj7Si4dW3x8vOLj4694Tn6h1JUe6H3xw84L01dffZXn/rp1615zn9u3b1fPnj1tt13ee++9+ve//52rNhkZGerfv78VSPn4+GjdunVq2rSppAuBVdu2bXX27FmlpKQoKipKe/bsUcWKFa95fJcGTKNHj76moPjjjz/WsmXLFBAQoNdff13JyckaPny4srKy1Lx5cy1ZskQHDx7UHXfcoWPHjmnYsGG5blcFAKC04933AABlmsvlUu3atfXGG28oJCTE2n/w4EH99NNP1valK4AutyKnKJQrV05//etfre2YmBjt2LFDc+bMsfZ169ZN9evXL/KxfPXVV7kCqWbNmqlPnz4aMGBArncyzGv1VFEoX768BgwYoAEDBujuu+/WkCFDNHHiRC1dulS//PJLrnEVVHZ2dr7vyhgUFCQ3t+L9Z9OZM2fybct5jlaOvIK10mD16tW67bbbbIHU+PHjNXfuXHl6euY6/qefftIvv/xibXfr1s0KpKQLz8a6eEVkUlKS1q1bd83jO3z4sO35cBUqVNDIkSML3M+xY8esd46cMWOGAgIC9J///Mf6/nviiSdUu3ZtdejQwXre3ObNm3OF5wAAlHaslAIA3DAuXT1y+PBh6/N69erZbhXatm2b7aHXmZmZtvaccyQpODjYtn/79u25rr1jx44rjm/kyJGaMmWKFT48+uij2r17t9V+PQ84L4gffvjBtj116lQ9/fTT1va8efP0/fff53t+UQV6gYGB+vLLL6/6+Hr16llfd5fLpcTERNWoUeOarn25QCo0NNT2vbF69ep8VzRdPLaLTZkyRc8888w1je1aFFaNCjOQ/OyzzxQVFWWt6nJ3d9fMmTM1YsSIfM+5OLyS8n5dl+7LWY14LWbOnKn09HRre+jQoapSpUqB+xk3bpyOHj2qO+64w7qt8+JVmHXq1LE+r127tvX5oUOHbOE6AAClHSulAAA3hJiYmFxh0cWh06XPAJo8ebLttrRXXnnF9ktjzZo11bp1a0lSZGSk7dyvvvrKeicw6cI7dV3u1r0cVapU0dChQ63ti58lVbNmTfXt2/eKfRSGi9/pT7qwQilHUlLSFd/BzMfHx7ZdVM8zupI+ffpYnxtjNGrUKJ0+fTrXcVu3btXEiRP19ttvX9N1+vXrZ9ueOnWqvvnmG9u+tLQ026q3P/3pT7aw5NVXX83z1qyjR49q9uzZud4t8nqVlBrlmDFjhu677z4rkKpQoYIWLlx42UBKsoc3krRixQpbQLhz506tXLnSdkxoaKht2+VyWR+XC3zOnDlj+x5xd3fXk08+ednx5WXlypX66KOPVL58eb3zzjvW/oufYffHH3/k+XnlypULfD0AAEoyVkoBAMqkkSNHqnz58tYzpdatW2db1REcHKyOHTta2+PGjVN0dLT1C2BcXJzq16+v1q1bKzExMddKp5dfftlaPdO2bVvdfvvt1i+/6enp6ty5s9q1a6esrKxc176csWPHatasWbkewv3www/Lw8OZH9sdOnTQrFmzrO0nnnhCn3/+uby9vfXTTz9d9jYySWrUqJFtOzo6Wnv37rVuMXvttddyhQlFIaemSUlJki48+HzZsmVq3bq1/P39dfLkSe3cuVNHjx6VJE2aNOmarhMVFaU333xTmzdvlnQhgOrdu7caNmyoBg0aKDU1VRs3blTVqlU1ePBgSRe+Rn/5y1/03nvvSboQPISHh6tFixYKDg7W+fPntX//fu3du1fZ2dnX9YymvJSUGknSggULNG7cONu+kJAQRUdHKzo6Otfxo0ePtlaidezYUWFhYdq3b58k6ezZs2rdurX1/K+cB53naNKkSa7nb12t6OhonThxwtr+85//nCvgupJz585Zz4V78cUXbSvmunXrJpfLJWOMPvjgAw0aNEhHjx613oShVq1auummm65p7AAAlFjF86Z/AAAULuXzVvB5fVSpUsXExsbm6mPjxo0mODj4sue6u7ubKVOm5Dr3wIEDJiQkJN/r9e3b17YvOjo639cyaNCgXNc8cODANX1dJk2aZOsrKirqiuekp6eb9u3b5/lafHx8zEsvvXTFPtu1a5fv13Dbtm1XNfZVq1bZzqtbt27BXrwxZtu2baZBgwZX9X3x0ksv2c4tyLWTkpLMrbfeetn+L+0jPT3dPPTQQ1c1trCwMNu5UVFRtvZVq1Zd9mtXVDUqDNHR0QWav5fOnU2bNpmgoKArnlerVi2zffv2XNe/mjpnZWWZsLAw27Fr164t8Gv929/+ZiSZ1q1bm8zMzFzto0aNsvqvXLmyKVeunJFkXC6X+fzzzwt8PQAASjpu3wMAlHmenp6qVq2abrvtNv3jH//Q7t27baukcrRu3Vrbt2/Xa6+9pq5duyogIEAeHh6qWLGimjRpolGjRmnLli15PvunTp06Wr9+vR5//HHVqVNHnp6eqlmzpoYNG6b4+PgCvZX7U089Zdvu1auXY6tWpAtfrxUrVujpp59WSEiIPD09FRgYqLvvvlvr16/XrbfeesU+Fi9erEceeUR16tRxbIVXXpo2baotW7bovffeU69evVSzZk15e3vL09NTQUFBuuWWWzRu3DitWLFCzz777DVfJygoSKtXr9b8+fM1cOBAhYSEyMfHR97e3qpdu7buvPNO23O5pAtf548++khr1qzRsGHD1LhxY1WsWFHu7u7y9fVV06ZN9cADD+jDDz/U+vXrr/dLkUtJqdH1atWqlXbv3q1p06YpIiJC1apVk6enpzXvu3btqunTp2vXrl1q0qTJNV1jwYIF1mosSbrtttvUrl27AvWxfft2TZ8+Xe7u7nr//ffzfBj9zJkzNXPmTDVr1kxnz56Vh4eHIiIi9N///lcDBw68prEDAFCSuYxx6C1zAADAVVmyZIntGVdLly5Vjx49inFEAAAAQOErvX8WAwCgDImNjVVsbKySkpJsz9Fp1aqV7rzzzmIcGQAAAFA0CKUAACgBvvvuO02ePNm2z8fHR++9916eb3MPAAAAlHY8UwoAgBImKChI/fr1U1xcnMLDw4t7OAAAAECR4JlSAAAAAAAAcBwrpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4jyLp9dw5KSOjSLoGAKDUcrkkH5fk4mdk6edSWraH0rMyi3sgAP4/L3cP+bhlSjLFPRRcD+MppRnJUEegRKhUqUi7L5pQKiND+vZb6eTJIukeAIBSqU4dKbKdlPaRlH20uEeD6+HeQOkeffXp7q90/Nyx4h4NcMOrUq6q7r1pgHzOL5Sy9hT3cHCt3AKkclHSmnXS778X92gA+PtLAwcW6SWKJpSSLgRSx48XWfcAAJQ6fn4X/pt9VMpOKt6x4Pq4BUiSjp87piNn/yjmwQCwmBP8/7UsOH2a3yWBGwTPlAIAAAAAAIDjCKUAAAAAAADgOEIpAAAAAAAAOI5QCgAAAAAAAI4jlAIAAAAAAIDjCKUAAAAAAADgOEIpAAAAAAAAOI5QCgAAAAAAAI4jlAIAAAAAAIDjCKUAAAAAAADgOEIpAAAAAAAAOI5QCgAAAAAAAI4jlAIAAAAAAIDjCKUAAAAAAADgOEIpAAAAAAAAOI5QCgAAAAAAAI4jlAIAAAAAAIDjCKUAAAAAAADgOEIpAAAAAAAAOI5QCgAAAAAAAI4jlAIAAAAAAIDjCKUAAAAAAADgOEIpAAAAAAAAOI5QCgAAAAAAAI4jlAIAAAAAAIDjCKUAAAAAAADgOEIpAAAAAAAAOI5QCgAAAAAAAI4jlAIAAAAAAIDjCKUAAAAAAADgOEIpAAAAAAAAOI5QCgAAAAAAAI4jlAIAAAAAAIDjCKUAAAAAAADgOEIpAAAAAAAAOI5QCgAAAAAAAI4jlAIAAAAAAIDjPIp7AAAAACh7ugV31a21bimy/tck/qgVB1YVWf8AAKDoEUoBAACg0K1L2qDudbvLy92z0PtOz0rXuqQNhd4vAABwFqEUAAAACl1KeopiD8Uqok4XSVJ6erqOHDlyzf1Vq1ZNXl5ekqQfD8UpJT2lUMYJAACKD6EUAAAAisTK32PUqWYnebl7KjMzU23atFFycnKB+wkKClJCQoKkC6ukVv0eU6jjBAAAxYMHnQMAAKBI5KyWkqTy5ctr/Pjx19TP008/LR8fH0mskgIAoCwhlAIAAECRWfl7jNKzMiRJI0aMUFBQUIHODwoK0ogRIySxSgoAgLKGUAoAAABF5npXS7FKCgCAsotQCgAAAEXqWldLsUoKAICyjVAKAAAARepaV0uxSgoAgLKNUAoAAABFrqCrpVglBQBA2UcoBQAAgCJX0NVSrJICAKDsI5QCAACAI652tRSrpAAAuDEQSgEAAMARV7tailVSAADcGAilAAAA4JgrrZZilRQAADcOQikAAAA45kqrpVglBQDAjYNQCgAAAI7Kb7UUq6QAALixEEoBAADAUfmtlmKVFAAANxZCKQAAADju0tVSzZs3Z5UUAAA3GEIpAAAAOO7S1VIrV65klRQAADcYQikAAAAUi4tXS1WtWlUSq6QAALiREEoBAACgWFy8WioHq6QAALhxEEoBAACg2Fy8WopVUgAA3FgIpQAAAFBsLl4txSopAABuLIRSAAAAKFYrf4/RmYwzrJICAOAGQygFAACAYpWSnqK34t9mlRQAADcYQikAAAAUu0NnDhf3EAAAgMMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4zqO4BwAAAFDUNm05qhembNaan5J17nyWQutW0qNDbtLjjzWxjoldm6ynJ63Xpq3H5FvJS4P61dM/J4arYkXPK/b/xZjPlLjlYJ5tbu5uenz5k9Z2elq6Yj/4UXtX/6K0U2nyreGnln9upRZ9W1736wQAAChNCKUAAECZ9t3KRPW+b5laNa+qieNbqmIFT+1LOK2DiWetY+K3HVO3ft+qcUN/zfhHex08dEbT/3e79uw7paVf3nnFa7R7oL3O3tXMti8jLUMrX1uu4DZ1rX3ZWdn6evxXOvJLspr3bSn/2v76bf1+rXp9hc6nnFe7B9oX3gsHAAAo4QilAABAmXX6dLoeGvG97upeR19+dLvc3Fx5HvfsixtV2d9LMYt7ytfXS5IUElxRjzzxo75bmajut9e67HXqtgnJtW/Xsp2SpEaRja19e3/Yo8M7DumO8d3VpNeFEKtF35b6ZtIirf34JzW9q5nKVy5/LS8VAACg1OGZUgAAoMya++WvSj6Spv/5e7jc3Fw6cyZD2dnGdszp0+laFpOoBwbWtwIpSXro3vqqWNFDny9IuKZr717xszzLeSrslvrWvkNbEyVJDW9vZDv2ptsbKSs9U/t+3HtN1wIAACiNCKUAAECZtXz1IflW8lTi4TO6qe2Xqlj7Y/kGf6wRY2N17lymJGnbzhPKzDRq06qq7VwvL3e1bFpVm7ceK/B1z548qwMbflPYrfXl6fN/z6TKzMiSy80ld0932/Ee3hcWrx/5JbnA1wIAACitiu72PX//IusaAIBSydf3wn/dAop3HDeQPb+eVWaW1HfwSj38YAu9PClYMWsOaOY7G3TytJvmfdhPh4+ckCTVqFFbcqtuO79G9cr6Ie73XPvlqixJqlLOHmTliFsSq+ysbLW/q4OqlQ+09geH1dH27K06ty9NIS1DrP2bd22UJGWcSLcdD+DqWHPRVTn3fEXpkfPz0ddXqlKleMcCwJFcx2WMMVc+rIDOnZMyMgq9WwAASjWXS/JxSS5+RjolrEEr/frrfg1/bKhmvTXD2j98xJN6593Z+uXnDfrpp/V6aMgIrY1brnbtwm3nPxQ1XIsWL9XJ479d0rNLadkeSs/KzPO63SO669d9v+rnhJ/l4fF/fwNMTkpW2xZtFRgYqOmvT1do/VCtWr5Kzz/7vE6fPq0uXbto4dKFhfb6gRuJl7uHfNwyJRX+rzdwkPGU0oxUBL+mArgGlSoVafdFs1KqXLkLHwAAAMXIx6eCJOm++4dIbv7W/vsHD9U7785W3NodKl/hwl/mz2d42Y6RpHPns+XjU15y81d6erqOHz9uaw8MDJS7u/1WvF9//VXrflqn0aNHq2oF+0oqv7p+WrxosR588EH1/1N/SZKvr69mzpypqKgo+fv6y8/brxBeOQCUYhWLewAAnMK77wEAgDKrZs2a2rFjh4KCgmz7q1WrJkk6ceKEwsLCJEmHDx/Odf7hw4dVs2ZNSVJsbKy6du1qa09ISFBISIht39y5cyVJgwcPznNMnTt31q+//qpt27bpzJkzatGihQ4dOiRJatiwYQFfIQAAQOlFKAUAAMqs8PBwLVu2TImJibrpppus/TkhUGBgoJo2bSoPDw9t2LBBgwYNso5JT09XfHy8ta9FixZatmyZrf/q1XM/u2bu3LkKCwtThw4d8h2Xu7u7WrZsaW0vX75ckhQZGVnwFwkAAFBK8e57AACgzMoJlD744APb/vfff18eHh6KiIiQn5+fIiMj9cknnyglJcU65uOPP1ZqaqoGDhwoSapcubIiIyNtH+UueVzB5s2btWvXLt1///1XPcY//vhDU6dOVfPmzQmlAADADYWVUgAAoMxq1aqVhg0bpg8//FCZmZnq0qWLYmJi9MUXX+hvf/ubdWve//zP/6hTp07q0qWLHn30UR08eFCvvvqqunfvrh49elz19ebMmSMp/1v3JKlLly7q2LGj6tevr6SkJL377rtKTU3VN998Izc3/l4IAABuHEXz7nsAAAAlREZGhv75z38qOjpahw4dUt26dTVq1CiNGTPGdtyaNWv0zDPPaNOmTapUqZIGDRqkl19+WZWu8l1nsrOzFRwcrKCgIG3cuDHf48aOHauFCxcqMTFRvr6+uuOOO/TSSy8pNDT0el4mAABAqUMoBQAAAAAAAMexRhwAAAAAAACOI5QCAAAAAACA4wilAAAAAAAA4DhCKQAAAAAAADiOUAoAAAAAAACOI5QCAAAAAACA4wilAAAALmPatGlq1KiRsrOzJUmpqan6y1/+ourVq8vlcmnMmDHauXOnPDw8tH379mIeLQAAQOnhMsaY4h4EAABASXT69GnVq1dP06dP19ChQyVJzz77rKZNm6aJEycqLCxMjRs3Vnh4uPr27St3d3fNnz+/mEcNAABQOhBKAQAA5OP111/XpEmTlJycrHLlykmSOnToIA8PD61Zs8Z27NKlS9WrVy/t3btXYWFhxTFcAACAUoXb9wAAAPIRHR2tPn36WIGUJB05ckT+/v65jo2MjFTlypX10UcfOThCAACA0otQCgAAIA8JCQnaunWrIiMjJUkxMTFyuVxKSEjQkiVL5HK55HK5tH//fkmSp6enIiIitHDhwmIcNQAAQOlBKAUAAJCH2NhYSVLr1q0lSY0bN9bHH3+sgIAAtWzZUh9//LE+/vhjBQYGWueEh4dr+/btOn36dLGMGQAAoDQhlAIAAMjDzz//LEmqV6+eJCkoKEgPPPCAKlSooFq1aumBBx6wtnOEhoYqOzvbOhcAAAD5I5QCAADIw7Fjx+Th4aGKFSte9TmVK1eWJB09erSohgUAAFBmEEoBAAAUkpw3NXa5XMU8EgAAgJKPUAoAACAPVatWVWZmplJSUq76nBMnTkiSAgICimpYAAAAZQahFAAAQB4aNWok6cK78F2thIQEubm5qWHDhkU1LAAAgDKDUAoAACAPHTt2lCRt2LDhqs/ZuHGjmjRpIj8/v6IaFgAAQJlBKAUAAJCH0NBQNW3aVMuXL7+q4zMyMrR69Wr17du3iEcGAABQNhBKAQAA5GPYsGFavHix0tLSrnjsihUrdPz4cUVFRTkwMgAAgNLPZXLeJgYAAAA2p06dUmhoqKZNm6aHH374ssf269dPLpdLX3/9tUOjAwAAKN0IpQAAAC5j6tSpio6O1s6dO+Xmlvci8127dqlZs2aKj49X06ZNHR4hAABA6UQoBQAAAAAAAMfxTCkAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA4jlAKAAAAAAAAjvMo7A6NMUpJSSnsbgEAAAAAAOCwSpUqyeVyFUnfhR5KHT16VNWqVSvsbgEAAAAAAOCwI0eOKDAwsEj6LvRQysvLS5L0+++/y9fXt7C7h0NOnz6tOnXqUMcygFqWDdSxbKCOZQe1LBuoY9lBLcsG6lg2UMeyI6eWOTlPUSj0UCpnSZevry/fgGUAdSw7qGXZQB3LBupYdlDLsoE6lh3UsmygjmUDdSw7iurWPYkHnQMAAAAAAKAYEEoBAAAAAADAcYUeSnl7e2vSpEny9vYu7K7hIOpYdlDLsoE6lg3UseyglmUDdSw7qGXZQB3LBupYdjhRS5cxxhRZ7wAAAAAAAEAeuH0PAAAAAAAAjiOUAgAAAAAAgOMIpQAAAAAAAOA4QikAAAAAAAA47ppCqTfffFMhISEqV66c2rdvr3Xr1lltY8eOVZUqVVSnTh3NmTPHdt4XX3yh3r17X9+Icd1eeOEFuVwu20ejRo2sdmpYcn3//ffq3bu3atasKZfLpQULFtjajTF6/vnnVaNGDfn4+CgyMlJ79uyx2s+fP68HH3xQvr6+atiwoZYvX247/5VXXtFf//pXJ17KDe1KdRwyZEiuOdqjRw+rnTqWDC+//LLatm2rSpUqqVq1aurXr592795tO+bcuXMaNWqUqlatqooVK2rAgAFKTk622o8fP67evXurYsWKatWqlTZv3mw7f9SoUXr11VcdeT03qqupY0RERK45OXz4cKudOpYMs2bNUvPmzeXr6ytfX1917NhRS5cutdqZj6XDlerIfCydpkyZIpfLpTFjxlj7mJOlU161ZF6WfFfKAIp1PpoC+vTTT42Xl5f58MMPzY4dO8wjjzxi/P39TXJyslm0aJEJCgoy69evN3PnzjXlypUzf/zxhzHGmJMnT5oGDRqY3377raCXRCGbNGmSadKkiTl8+LD1kVMnaliy/ec//zHPPfecmT9/vpFkvv76a1v7lClTjJ+fn1mwYIHZsmWL6dOnj6lXr55JS0szxhjzr3/9yzRu3Nhs377dvPLKKyYwMNBkZ2cbY4z59ddfTYMGDcypU6ecflk3nCvVMSoqyvTo0cM2R48fP261U8eS4c477zTR0dFm+/btJj4+3vTq1csEBweb1NRU65jhw4ebOnXqmBUrVpgNGzaYDh06mE6dOlntY8eONV26dDG7d+82Y8aMMeHh4VZbXFycCQ8PN5mZmY6+rhvN1dSxS5cu5pFHHrHNyYvnGHUsGRYtWmSWLFlifvnlF7N7927z7LPPGk9PT7N9+3ZjDPOxtLhSHZmPpc+6detMSEiIad68uXniiSes/czJ0ie/WjIvS77LZQDGFO98LHAo1a5dOzNq1ChrOysry9SsWdO8/PLLZurUqeaee+6x2qpVq2bWrVtnjDHm0UcfNTNmzLimQaJwTZo0ybRo0SLPNmpYelwaZmRnZ5vq1aubV155xdp38uRJ4+3tbebNm2eMMWbEiBHmmWeeMcYYc/bsWSPJHDlyxBhz4Rez+fPnO/cCYIzJXUdjLoRSffv2zfcc6lgyHTlyxEgyq1evNsZcmH+enp7miy++sI7ZtWuXkWTi4uKMMcb07NnTzJo1yxhjzM6dO0358uWNMcakp6ebFi1amPXr1zv8KnBpHY258I/ti//xfSnqWHJVrlzZvP/++8zHUi6njsYwH0ublJQU06BBA7Ns2TJb7ZiTpU9+tTSGeVkaXC4DKO75WKDb99LT07Vx40ZFRkZa+9zc3BQZGam4uDi1aNFCGzZs0IkTJ7Rx40alpaWpfv36WrNmjTZt2qTHH3/82pZzodDt2bNHNWvWVGhoqAYPHqwDBw5IEjUsxRISEpSUlGSbn35+fmrfvr3i4uIkXajvmjVrlJaWpv/+97+qUaOGAgICNGfOHJUrV079+/cvruHjEjExMapWrZpuuukmjRgxQseOHbPaqGPJdOrUKUlSlSpVJEkbN25URkaGbU42atRIwcHBtjm5cuVKZWZm6r///a+aN28uSZo2bZoiIiLUpk0bh18FLq1jjjlz5iggIEBNmzbV3/72N509e9Zqo44lT1ZWlj799FOdOXNGHTt2ZD6WUpfWMQfzsfQYNWqU7rrrLtvck/gZWRrlV8sczMuSL78MoNjnY0ESrMTERCPJxMbG2vaPHz/etGvXzhhzIYELCwszTZs2NfPnzzfnz583TZs2NRs2bDAzZ840DRs2NJ06dbKW4MJ5//nPf8znn39utmzZYr799lvTsWNHExwcbE6fPm2MoYalhS5ZYfPjjz8aSebQoUO24wYOHGgGDRpkjLmQZI8cOdKEhISYNm3amB9++MEcO3bMhIaGmgMHDpjnnnvOhIWFme7du5uDBw86+XJuWJfW0Rhj5s2bZxYuXGi2bt1qvv76a9O4cWPTtm1ba0ksdSx5srKyzF133WVuueUWa9+cOXOMl5dXrmPbtm1rnn76aWPMhb9M3XfffSY4ONh07tzZ7Nixw/zyyy+mQYMG5ujRo+axxx4z9erVMwMHDjQnT5507PXcqPKqozHGvPPOO+bbb781W7duNZ988ompVauW6d+/v9VOHUuOrVu3mgoVKhh3d3fj5+dnlixZYoxhPpY2+dXRGOZjaTJv3jzTtGlT6zESF6+mYU6WLperpTHMy9LgchlAcc/HQg+lLvXCCy+YMWPGmC1btpigoCBz5MgR8+GHH5rWrVsXaKAoOidOnDC+vr7WsuhLUcOS6VpCqbwMGTLEvP7662bhwoWmSZMmJjU11Tz//PPmz3/+c1ENHRfJK5S61L59+4wks3z58nyPoY7Fa/jw4aZu3brm999/t/ZdzQ/4vHTt2tUsWLDAvPHGG+aOO+4w6enpJioqyowdO7ZIxo7/k1cd87JixQojyezduzffY6hj8Th//rzZs2eP2bBhg5kwYYIJCAgwO3bsYD6WMvnVMS/Mx5LpwIEDplq1ambLli3WvoKGUnmhls67Ui3zwrws+S7OAIp7Phbo9r2AgAC5u7vbnsIuScnJyapevXqu43/++Wd98skneumllxQTE6POnTsrMDBQgwYN0qZNm5SSklLwpV0odP7+/mrYsKH27t2bq40alh45c/Bq56ckrVq1Sjt27NDo0aMVExOjXr16qUKFCho0aJBiYmKKesi4SqGhoQoICMhzjkrUsbiNHj1a33zzjVatWqXatWtb+6tXr6709HSdPHnSdvzl5mR0dLT8/f3Vt29fxcTEqF+/fvL09NTAgQOpZRHLr455ad++vSTlOyepY/Hx8vJS/fr1FR4erpdfflktWrTQG2+8wXwsZfKrY16YjyXTxo0bdeTIEbVu3VoeHh7y8PDQ6tWr9a9//UseHh4KCgpiTpYSV6plVlZWrnOYlyXfxRlAcf+MLFAo5eXlpfDwcK1YscLal52drRUrVtju85YuvDX9Y489phkzZqhixYrKyspSRkaGJFn/zesbGM5LTU3Vvn37VKNGDdt+ali61KtXT9WrV7fNz9OnT2vt2rW55qf0f2/7+c4778jd3T1XfaltyXHw4EEdO3Ys1xyVqGNxMsZo9OjR+vrrr7Vy5UrVq1fP1h4eHi5PT0/bnNy9e7cOHDiQ55z8448/9OKLL2rmzJmSRC0dcqU65iU+Pl6S8pyT1LFkyc7O1vnz55mPpVxOHfPCfCyZunXrpm3btik+Pt76aNOmjQYPHmx9zpwsHa5US3d391znMC9LvoszgGL/GVmgdVXGmE8//dR4e3ub2bNnm507d5pHH33U+Pv7m6SkJNtx7777rhkwYIC1vXbtWuPr62vi4uLM888/b26++eaCXhqFZNy4cSYmJsYkJCSYH3/80URGRpqAgADr3btyUMOSJyUlxWzevNls3rzZSDIzZswwmzdvNr/99psxxpgpU6YYf39/63lEffv2NfXq1bPu/77Ys88+a8aNG2dtf/bZZyY4ONhs2bLFPPzww6ZXr16Ova4bzeXqmJKSYp566ikTFxdnEhISzPLly03r1q1NgwYNzLlz53L1RR2Lz4gRI4yfn5+JiYmxvb3u2bNnrWOGDx9ugoODzcqVK82GDRtMx44dTceOHfPs7/777zczZ860tqdOnWrCw8PNzp07Tc+ePc3IkSOL/DXdiK5Ux71795oXX3zRbNiwwSQkJJiFCxea0NBQ07lz5zz7o47FZ8KECWb16tUmISHBbN261UyYMMG4XC7z3XffGWOYj6XF5erIfCzdLr3lizlZel1cS+Zl6XClDKA452OBQyljjJk5c6YJDg42Xl5epl27duann36ytSclJZm6deuaxMRE2/7JkyebKlWqmEaNGpm1a9dey6VRCO655x5To0YN4+XlZWrVqmXuueeeXPf7UsOSadWqVUZSro+oqChjjDHZ2dlm4sSJJigoyHh7e5tu3bqZ3bt35+pn27Ztpn79+iY1NdXal5WVZUaMGGF8fX1N27ZtzZ49e5x6WTecy9Xx7Nmzpnv37iYwMNB4enqaunXrmkceeSRX8G8MdSxuedVQkomOjraOSUtLMyNHjjSVK1c25cuXN/379zeHDx/O1de3335r2rVrZ7Kysqx9Z86cMQMHDjSVKlUy3bp1M8nJyU68rBvOlep44MAB07lzZ1OlShXj7e1t6tevb8aPH29OnTqVqy/qWLyGDRtm6tata7y8vExgYKDp1q2bFUgZw3wsLS5XR+Zj6XZpKMWcLL0uriXzsnS4UgZQnPPRZYwxBVtbBQAAAAAAAFyfAj1TCgAAAAAAACgMhFIAAAAAAABwHKEUAAAAAAAAHEcoBQAAAAAAAMcRSgEAAAAAAMBxhFIAAAAAAABwHKEUAAAAAAAAHEcoBQAAAAAAAMcRSgEAAAAAAMBxhFIAAAAAAABwHKEUAAAAAAAAHEcoBQAAAAAAAMf9P/NqwaRxef+GAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAEiCAYAAADptysgAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAANzVJREFUeJzt3Xl0VdX9/vHnZiQhEGbCFEIgEQiCBARBRSiogAIiY+sQtBVBsFoG4adFUNoKUlAKLVarURegODGpaAWBqkQmCfNsGCWADGFOQrJ/f7ByvjlkDhk24f1a6y65Z599zr73wya5j/uc6zHGGAEAAAAAAACW8irtAQAAAAAAAAC5IcACAAAAAACA1QiwAAAAAAAAYDUCLAAAAAAAAFiNAAsAAAAAAABWI8ACAAAAAACA1QiwAAAAAAAAYDUCLAAAAAAAAFiNAAsAAAAAAABWI8ACAKAM8Hg82T58fHwUHByspk2b6pFHHtGSJUtKZXwTJkxwjevdd98tlfPm9rjllltKZEz5tWLFilzHW6FCBTVp0kR/+MMftGbNmtIeLgrp3LlzWrx4scaMGaOOHTsqMjJSlSpVkp+fn0JCQtSlSxe98cYbSklJybb/2rVrNXXqVD344INq3ry5QkJC5Ofnp+DgYLVs2VIjR47Uzz//XGTjPX/+vBo1apTl7+O+ffuy7Ltz504NHDhQNWrUkK+vr+rWrasnnnhCiYmJOR47LCxMHo9HL7/8cpGNGQBQNhBgAQBQhqWlpenMmTPavn27Zs+ere7du+vxxx8v7WGVae+++67rg/2ECROK5Tznzp3Tjh079Pbbb+u2227T2LFji+U8ZVFJ1Sg/vvrqK/Xs2VOvvvqqVq5cqd27dyspKUmpqak6evSoli1bpqFDh6ply5Y6ePBglv6dOnXSqFGjNH/+fG3evFlHjx5Vamqqzpw5o/j4eE2bNk1RUVGaM2dOkYx39OjR2rt3b5777d69W23bttW8efN04sQJ1ahRQ4cPH9Z//vMf3XbbbTp58mSWPn/+85+1f/9+RUVF8fcZAJCFT2kPAAAAFL1u3bopMDBQqampio+P14EDB5y22NhY9evXT926dSvFEZaO+vXrq3Xr1tm2NWjQoIRHUzCBgYFOzc6ePau1a9fq1KlTkiRjjCZPnqzIyEgCyutYQECAWrVqpQoVKmjTpk06fPiw07Zt2zYNGDBAq1atyrF/06ZN1aBBAx05ckQ//fSTs/3SpUsaNGiQbrnlFkVFRRV6fN98841mzZqVr33/+te/KikpSZK0cOFC3X///Zo5c6aefvpp7d+/XzNnztSLL77o7L9u3TrNmDFDXl5eeuutt+Tn51focQIAyiYCLAAAyqB//etfCgsLkySlpqbqjjvucF1mtmzZshsywOrYsWOJXb5Y1KpXr65PPvnEeX7ixAl17NhRW7Zscbb9/e9/J8C6DkVGRmrs2LEaOHCgAgICJF2Zt8OHD9ebb77p7BcXF6eNGzeqRYsWzraAgAANHTpUw4YNc+a8JC1dulTdu3dXamqqJOny5cv6z3/+o9dee61QY0xKSnL+bgUHB8vj8ej06dM57r927VpJUuXKlXX//fdLkh599FE9/fTTkuT69ygtLU2DBw9WWlqahg0bpnbt2hVqjACAso1LCAEAKON8fX3VoUMH17aLFy9mu++5c+c0Y8YMdenSRTVr1nTupdO8eXP98Y9/1Pbt23M8z8mTJ/WnP/1J9evXl7+/v0JDQzVs2DAdO3Ysxz6rVq1yXcr10EMPZbtfz549XftlDm2Kw/fff68//elP6tSpkxo2bKjKlSs79xO7+eabNXToUG3cuNHVJ+OytMcee8y1/aWXXiqWy9WqVq2qESNGuLZt375d586dc227ePGi3njjDd17772u+yO1bt1aL730kk6cOJHt8TOPOSwsTCkpKXr11VfVvHlzlS9fXh6Px7W/MUaLFi3SwIED1bBhQwUFBSkgIEChoaHq1q1bjit3vvvuO8XExCgiIkJBQUEqV66cGjRooJiYGCcEudqgQYNc41uxYoU2bNig/v37q0aNGvL391ejRo00btw4JScnO/1Kukb5cdddd2nLli167LHHnPBKujJvX3/9dfn4uP9/844dO1zPN27cqClTprjCK0nq0qWL+vfvn2vfgnj66ad16NAhSdKMGTMUHBxc6GNd7bXXXtOGDRtUt25dvfLKK0V2XABAGWMAAMB1T5LrkZCQ4LSlpKSYtm3butpjY2OzHCM+Pt6EhYVlOVbmh4+Pj/n73/+epe+hQ4dMeHh4tn1q1aplfve73+V4/vbt2zvb/fz8TGJiouvYv/76q/H19XX2ueOOO/L9vowfP9513piYmHz1GzZsWK7vgyTj7e1t3n77badPbGxsnn0k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wMBAVatWTR06dNDixYuz3X/mzJlq0qSJ/P39VadOHY0YMULnz58vyEsDAAAoMlG/iVJYyzB5vK+stPJ4exTWMkxRv4kq5ZEBAABcnwoUYE2ePFmffvqpOnfurOnTp2vw4MH63//+p+joaG3ZssXZ79ChQ+rQoYP27Nmjv/3tbxo1apS++OIL3X333UpJScnzPPv379fZs2cVExOj6dOna9y4cZKknj176s0333TtO2bMGD399NNq1qyZpk+frj59+mjGjBl68MEHC/LSAAAAiozH41GvF3rJpF25htCkGfV6oReXDgIAABRSgS4hHDFihObOnSs/Pz9n24ABA3TzzTdr0qRJmj17tiTpb3/7m86fP6/169crNDRUktSmTRvdfffdevfddzV48OBcz9O9e3d1797dtW348OFq1aqVpk2b5vQ/cuSIpk2bpkceeUTvv/++s29kZKSefvppLV68WD169CjISwQAACgSGauw9m3Yx+orAACAa1SgFVjt27d3hVeSFBERoaioKG3fvt3Z9umnn+r+++93witJ6tKliyIjI/XRRx8VaqDe3t6qV6+eTp8+7WyLi4vT5cuXNXDgQNe+Gc8//PDDQp0LAADgWnk8HvV+sbdq3VRLvV/szeorAACAa3DNN3E3xujo0aOKirryfxUPHz6sY8eOqXU2N75r06aNvvzyy3wf+/z587p48aKSkpK0aNEiLVmyRAMGDHDak5OTJUkBAQGufoGBgZKk9evXF/j1AAAAFJWmHZvq5R9fLu1hAAAAXPcKtAIrO3PmzNHhw4edYOnIkSOSpFq1sn4tea1atXTy5EkneMrLyJEjVb16dTVq1EijRo1S7969NXPmTKf9pptukiT98MMPrn7fffedpCthGgAAAAAAAK5v17QCa8eOHRo2bJjatWunmJgYSdLFixclSf7+/ln2L1eunLNPdu1Xe/bZZ9W3b1/98ssv+uijj5SWlua6CXx0dLTatm2ryZMnq06dOurUqZO2b9+uoUOHytfX1xkLAAAAAAAArl+FDrASExN13333KTg4WJ988om8vb0l/d/lfNmtsrp06ZKzT1pamo4fP+5qr1KliuseW40bN1bjxo0lSY8++qjuuece9ejRQ6tXr3buI/Hpp59qwIABevzxxyVduVfWiBEjtHLlSu3cubOwLw8AAAAAAACWKFSAlZSUpG7duun06dP67rvvVLt2bact49LBjEsJMzty5IiqVKkif39/7du3Tw0aNHC1L1++XB07dszxvH379tWTTz6pXbt2OZcP1qlTR99//712796txMRERUREKCQkRLVr11ZkZGRhXh4AAAAAAAAsUuAA69KlS+rRo4d27dqlpUuXqmnTpq72OnXqqHr16lq3bl2WvmvWrNEtt9wiSQoJCdE333zjam/RokWu5864JDApKSlLW0REhCIiIiRJ27Zt05EjRzRo0KD8viwAAAAAAABYqkABVlpamgYMGKC4uDgtXLhQ7dq1y3a/Pn366L333tPBgwdVr149SdKyZcu0a9cu/elPf5J05X5YXbp0ybb/sWPHVKNGDde21NRUvf/++woICMgSmmWWnp6u5557ToGBgRoyZEhBXh4AAAAAAAAsVKAAa+TIkVq0aJF69OihkydPavbs2a72hx9+WJL0/PPP6+OPP1anTp30zDPP6Ny5c5oyZYpuvvlmPfbYY3me58knn9SZM2fUoUMH1alTR4mJiZozZ4527NihqVOnKigoyNn3mWee0aVLl3TLLbcoNTVVc+fO1Zo1a/Tee+8pNDS0IC8PAAAAAAAAFipQgBUfHy9JWrx4sRYvXpylPSPAqlevnlauXKkRI0Zo7Nix8vPz03333aepU6fm69sHBwwYoLfffluzZs3SiRMnVKFCBbVq1UqTJ09Wz549Xfu2bNlSr7/+uubMmSMvLy+1adNGy5YtU6dOnQry0gAAAAAAAGCpAgVYK1asyPe+UVFR+vrrrws6HknSwIEDNXDgwHztO2jQIO51BQAAAAAAUIZ5lfYAAAAAAAAAgNwQYAEAAAAAAMBqBFgAAAAAAACwGgEWAAAAAAAArEaABQAAAAAAAKuVWID16quvqnHjxkpPT893n7Fjx6pt27bFOCoAAAAAAADYrkQCrDNnzmjy5MkaM2aMvLyunNLj8WT7CAkJcfo9++yz2rhxoxYtWlQSwwQAAAAAAICFfEriJO+8844uX76s3/72t67td999tx599FHXtoCAAOfPISEh6tWrl/7+97+rZ8+eJTFUAAAAAAAAWKZEAqzY2Fj17NlT5cqVc22PjIzUww8/nGvf/v37q1+/fvr5558VHh5enMMEAAAAAACAhYr9EsKEhARt2rRJXbp0KVT/jH4LFy4symEBAAAAAADgOlHsAdaq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HTPGXPkQ+dlnn5XcCyjDcgqwevXqlWMfalOyjh07ZiSZlStXGmOuzBVfX1/z8ccfO/ts377dSDJxcXHGGGO6detmZs2aZYwxZtu2bSYwMNAYY0xKSopp0aKFWbt2bQm/irLp6toYc+VDROYPFVejNiWrcuXK5j//+Q/zxlIZ9TGGuWODs2fPmoiICPPNN9+46sH8sUNO9TGG+VOacvsMWtpzh0sIb3ApKSlav369unTp4mzz8vJSly5dFBcXpxYtWmjdunU6deqU1q9fr4sXL6pRo0b6/vvv9dNPP+mPf/xjKY7+xrB7927Vrl1b4eHheuihh3TgwAFJojaWSUhIUGJiomsuBQcHq23btoqLi5N0pWbff/+9Ll68qK+//lq1atVStWrVNGfOHJUrV069e/cureHfEFasWKEaNWropptu0tChQ3XixAmnjdqUrKSkJElSlSpVJEnr169Xamqqa/40btxYoaGhrvnz7bff6vLly/r666/VvHlzSdKrr76qjh07qnXr1iX8Ksqmq2uTYc6cOapWrZqaNWum//f//p8uXLjgtFGbkpGWlqYPP/xQ58+fV7t27Zg3lrm6PhmYO6Vr2LBhuu+++1zzROLnji1yqk8G5k/pyekzaKnPnUJHXygTDh8+bCSZVatWubaPHj3atGnTxhhzJYFt2LChadasmfnss89McnKyadasmVm3bp2ZMWOGiYyMNO3bt3eWS6PofPnll+ajjz4yGzduNF999ZVp166dCQ0NNWfOnDHGUJvSpKtW+fzwww9Gkvnll19c+/Xr18/079/fGHPl/zo89dRTJiwszLRu3dp899135sSJEyY8PNwcOHDAvPDCC6Zhw4bmnnvuMYcOHSrJl1OmXF0bY4z54IMPzMKFC82mTZvM/PnzTZMmTcytt97qLF+mNiUnLS3N3Hfffeb22293ts2ZM8f4+fll2ffWW281zz33nDHmyv/x++1vf2tCQ0NNhw4dzNatW82uXbtMRESE+fXXX82TTz5pGjRoYPr162dOnz5dYq+nLMmuNsYY8+9//9t89dVXZtOmTWb27NmmTp06pnfv3k47tSlemzZtMuXLlzfe3t4mODjYfPHFF8YY5o0tcqqPMcyd0vbBBx+YZs2aObdyyLyih/lT+nKrjzHMn9KU22fQ0p47BFg3uPwEWFebMGGCefbZZ83GjRtNzZo1zbFjx8w777xjoqOjS2LIN7RTp06ZihUrOkvTr0ZtSk5hAqzsDBo0yLz++utm4cKFJioqypw7d868+OKL5sEHHyyuoZd52QVYV9u7d6+RZJYuXZrjPtSmeAwZMsTUr1/fHDx40NmWn1+GstOpUyezYMECM336dHP33XeblJQUExMTY0aMGFEsYy/rsqtNdpYtW2YkmT179uS4D7UpOsnJyWb37t1m3bp1ZuzYsaZatWpm69atzBtL5FSf7DB3Ss6BAwdMjRo1zMaNG51tBQ2wskN9ikZe9ckO86f0ZP4MWtpzh0sIb3DVqlWTt7e361sDJOno0aMKCQnJsv+OHTs0e/ZsTZw4UStWrFCHDh1UvXp19e/fXz/99JPOnj1bUkO/IVWqVEmRkZHas2dPljZqU7oy5kt+55IkLV++XFu3btXw4cO1YsUKde/eXeXLl1f//v21YsWK4h7yDS08PFzVqlXLdi5J1Ka4DB8+XJ9//rmWL1+uunXrOttDQkKUkpKi06dPu/bPbf7ExsaqUqVK6tWrl1asWKEHHnhAvr6+6tevHzUqhJxqk522bdtKUo7zh9oULT8/PzVq1EitWrXSK6+8ohYtWmj69OnMG0vkVJ/sMHdKzvr163Xs2DFFR0fLx8dHPj4+Wrlypf7xj3/Ix8dHNWvWZP6Uorzqk5aWlqUP86f0ZP4MWto/ewiwbnB+fn5q1aqVli1b5mxLT0/XsmXLXNfvS5IxRk8++aSmTZumoKAgpaWlKTU1VZKc/2b3jw2Kzrlz57R3717VqlXLtZ3alL4GDRooJCTENZfOnDmj1atXZ5lL0v99/ey///1veXt7Z6kZ9Spehw4d0okTJ7LMJYnaFAdjjIYPH6758+fr22+/VYMGDVztrVq1kq+vr2v+7Ny5UwcOHMh2/hw/flwvv/yyZsyYIUnU6BrkVZvsxMfHS1K284faFL/09HQlJyczbyyVUZ/sMHdKTufOnbV582bFx8c7j9atW+uhhx5y/sz8KT151cfb2ztLH+ZP6cn8GbTUf/YUaL0WyqQPP/zQ+Pv7m3fffdds27bNDB482FSqVMkkJia69nvzzTdNnz59nOerV682FStWNHFxcebFF180TZs2Lemhl3kjR440K1asMAkJCeaHH34wXbp0MdWqVXO+HS0DtSkZZ8+eNRs2bDAbNmwwksy0adPMhg0bzP79+40xxkyaNMlUqlTJuddSr169TIMGDZxr+zN7/vnnzciRI53n8+bNM6GhoWbjxo3m97//venevXuJva6yILfanD171owaNcrExcWZhIQEs3TpUhMdHW0iIiLMpUuXshyL2hS9oUOHmuDgYLNixQrXVzJfuHDB2WfIkCEmNDTUfPvtt2bdunWmXbt2pl27dtke73e/+52ZMWOG83zy5MmmVatWZtu2baZbt27mqaeeKvbXVFbkVZs9e/aYl19+2axbt84kJCSYhQsXmvDwcNOhQ4dsj0dtitbYsWPNypUrTUJCgtm0aZMZO3as8Xg85r///a8xhnlT2nKrD3PHPldfosb8sUvm+jB/Slden0FLc+4QYMEYY8yMGTNMaGio8fPzM23atDE//vijqz0xMdHUr1/fHD582LX9pZdeMlWqVDGNGzc2q1evLskh3xAGDBhgatWqZfz8/EydOnXMgAEDslz3TW1KzvLly42kLI+YmBhjjDHp6elm3LhxpmbNmsbf39907tzZ7Ny5M8txNm/ebBo1amTOnTvnbEtLSzNDhw41FStWNLfeeqvZvXt3Sb2sMiG32ly4cMHcc889pnr16sbX19fUr1/fPPHEE1lCemOoTXHJrjaSTGxsrLPPxYsXzVNPPWUqV65sAgMDTe/evc2RI0eyHOurr74ybdq0MWlpac628+fPm379+pkKFSqYzp07m6NHj5bEyyoT8qrNgQMHTIcOHUyVKlWMv7+/adSokRk9erRJSkrKcixqU/Qef/xxU79+fePn52eqV69uOnfu7IRXxjBvSltu9WHu2OfqAIv5Y5fM9WH+lK68PoOW5tzxGGNMwdZsAQAAAAAAACWHe2ABAAAAAADAagRYAAAAAAAAsBoBFgAAAAAAAKxGgAUAAAAAAACrEWABAAAAAADAagRYAAAAAAAAsBoBFgAAAAAAAKxGgAUAAAAAAACrEWABAAAAAADAagRYAAAAAAAAsBoBFgAAAAAAAKxGgAUAAAAAAACr/X/F8CLhtEAr+QAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -930,19 +930,19 @@ "body_fat_chart = {\n", " \"male\": {\n", " \"20-39\": {\n", - " \"bad\": [(0, 5), (20, 50)],\n", - " \"okay\": [(5, 10), (15, 20)],\n", - " \"good\": [(10, 15)]\n", + " \"bad\": [(0, 5), (25, 50)],\n", + " \"okay\": [(5, 10), (20, 25)],\n", + " \"good\": [(10, 20)]\n", " },\n", " \"40-59\": {\n", - " \"bad\": [(0, 10), (25, 50)],\n", - " \"okay\": [(10, 15), (20, 25)],\n", - " \"good\": [(15, 20)]\n", + " \"bad\": [(0, 5), (30, 50)],\n", + " \"okay\": [(5, 10), (20, 30)],\n", + " \"good\": [(10, 20)]\n", " },\n", " \"60-79\": {\n", - " \"bad\": [(0, 15), (25, 50)],\n", - " \"okay\": [(15, 20), (20, 25)],\n", - " \"good\": []\n", + " \"bad\": [(0, 5), (30, 50)],\n", + " \"okay\": [(5, 10), (20, 25)],\n", + " \"good\": [(10, 25)]\n", " }\n", " },\n", " \"female\": {\n", @@ -963,6 +963,7 @@ " }\n", " }\n", "}\n", + "\n", "def create_body_fat_visualization(gender, age, body_fat_percentage):\n", " # Determine age group\n", " if 20 <= age <= 39:\n", @@ -981,7 +982,7 @@ " fig, ax = plt.subplots(figsize=(12, 3))\n", " \n", " # Define colors for different categories\n", - " colors = {'bad': '#ff6b6b', 'okay': '#ffeb3b', 'good': '#4caf50'}\n", + " colors = {'bad': '#ff6b6b', 'okay': '#ffeb3b', 'good': '#90ee90'}\n", " \n", " # Create the horizontal segments\n", " bar_height = 0.4\n", @@ -993,50 +994,55 @@ " start, end = range_tuple\n", " width = end - start\n", " ax.barh(y_position, width, left=start, height=bar_height, \n", - " color=colors[category], alpha=0.8, edgecolor='white', linewidth=1)\n", + " color=colors[category], alpha=0.9, edgecolor='black', linewidth=0.5)\n", " \n", " # Add the user's body fat percentage marker (triangle pointing down)\n", - " ax.plot(body_fat_percentage, y_position, 'v', markersize=15, color='black', \n", - " markeredgecolor='white', markeredgewidth=2)\n", + " ax.plot(body_fat_percentage, y_position + bar_height / 2 + 0.05, 'v', markersize=15, color='black')\n", " \n", " # Customize the chart\n", " ax.set_xlim(0, 50)\n", - " ax.set_ylim(-0.4, 0.4)\n", - " ax.set_xlabel('', fontsize=12)\n", + " ax.set_ylim(-1, 1)\n", + " ax.set_xlabel('')\n", " ax.set_title(f'Body Fat Percent - {body_fat_percentage:.1f}%', fontsize=16, fontweight='bold', pad=20)\n", " \n", - " # Add age group and gender label below the bar\n", - " ax.text(25, -0.25, f'{age_group}\\n({gender[0]})', ha='center', va='center', fontsize=12)\n", + " # Add age group and gender label on the left side\n", + " ax.text(-5, y_position, f'{age_group}\\n({gender[0].upper()})', ha='center', va='center', fontsize=12)\n", + " \n", + " # Adjust x-axis ticks to match the image\n", + " ax.set_xticks(range(0, 51, 5))\n", + " ax.set_xticklabels([f'{i}%' for i in range(0, 51, 5)])\n", + " \n", + " # Draw vertical lines for the tick marks\n", + " for tick in range(0, 51, 5):\n", + " ax.plot([tick, tick], [y_position - bar_height / 2, y_position - bar_height / 2 - 0.1], color='black', linewidth=1.5)\n", " \n", " # Remove y-axis and top/right spines\n", " ax.set_yticks([])\n", " ax.spines['left'].set_visible(False)\n", " ax.spines['right'].set_visible(False)\n", " ax.spines['top'].set_visible(False)\n", - " \n", - " # Set x-axis ticks every 5%\n", - " ax.set_xticks([0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50])\n", - " ax.set_xticklabels(['0%', '5%', '10%', '15%', '20%', '25%', '30%', '35%', '40%', '45%', '50%'])\n", + " ax.spines['bottom'].set_visible(False)\n", " \n", " plt.tight_layout()\n", + " plt.savefig('graphs/page_1_body_fat.png')\n", " plt.show()\n", "\n", "# Create the chart using Keirstyn's data\n", "gender = 'female'\n", - "age = 60\n", - "fat_percentage = 28.7\n", + "age = 25\n", + "fat_percentage = 22.4\n", "create_body_fat_visualization(gender, age, fat_percentage)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "id": "bf55717b", "metadata": {}, "outputs": [ { "data": { - "image/png": "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0dEHleCmz1Xv3r2tnJycZm/7/PPPt/h3oK0OfJP+2c9+Zo0ePdr3tcfjafafD8uyS/xpp5122Ofw9ttv97tNS8tgv379rOzsbL/rTp8+3VqxYoUVFxd32O/54YcfWpbVsjJoWf7/YN55551+eZuWxfDwcKugoMCyrIN/B48//vhmv8dVV13V4p9F08efnp7uu8/Y2Fhr9+7dlmX5v7ZccMEFft/rwDLY3teF44477qDCWVxcbJWXlx/xb+e0006zGhoafPd74O/ZoZ6vfv36+f3tSmhTGQxhB75ZHOoUFhZmvffee363nTJlit91Jk6caN13333WGWec4Xf+tdde67vN/Pnz/YpQdna2ddddd1k333yzFR0d7Xe7fWXQsvwL5MiRI/1ynHXWWb7LbrnlliM+5tmzZ/t9n5///Octfr7+85//+N12yJAh1t13321NmTLF74W8f//+foXqwDfKIUOGWPfcc4919NFHH/Rcjxw50rrnnnusfv36+c5LSkqyamtrfffX9I0MsJKTk61f/OIX1u23326lpKT4zo+MjLTWrVvnu90pp5zid7uLL77Yuvfeew8amXrggQd8txk7dqzv/KOPPtp64IEHrHvuuce65pprrEGDBllw5DI4e/Zs65FHHrF69+7tu2zMmDHWI4884juVlpYe8vaWZVnr1q3z+x1JT0+3br/9duuXv/yllZGR4Ts/KirKWrt27SGfq5iYGOsnP/mJdfvtt1uxsbG+85sb+Q60A9+km/4thIWFHTQy39SNN97o9xivvvpq68EHH7QuueQSv/t56aWXfLdpaRncd7rwwgutBx54wJoyZYr1+eefW3fddZfvsq5du1q//vWvrQcffNC68cYbrfHjx1vh4eG+Mvjss89av/3tb/3u76abbvL9fPeN2D/zzDO+y7t06eI3qvWTn/zEd9k555zjO7+5f0guuOAC63e/+53Vs2dPv+cwPz+/RT+LA8vg//73P9/Xf/rTnyzLsqyjjjrKAqzExETrnXfe8fv+TctgoF4X4uLirBtuuMF64IEHrPPPP98qKyuzKioqrN69e1uXX365deedd1oPPfSQ9cADD1iXXXaZFRER4btt01H9A3/P9v3t3n333db48eP9zj/UFgQJPSqDIaylZfChhx7yu93u3bv9XuQuueQSv8svueQS32Xh4eG+/7SbvqGFh4f7bSZ66aWXDlkGt2zZ4vf9Fi5caFmWZe3du9dvE/G+8w/ntdde8/s+//znP1v8fI0YMcJ3u549e1pVVVW+y55++mm/+923mc2y/F/009PTfcVnzZo1frfJysryjVLOmDHD77KlS5f67u/AN/LZs2f7Ljuw7P7ud7+zLMuyFi9e7Hf+XXfd5btNQ0ODXyFMS0vzbfodPny47/y5c+ce9Jxs2rTpiJuJW3LZka7z85//3O9Nf9myZb7Lli1b5repr2nBP/C5euutt3yXPf74436XlZWVNZspUJp7kz7U31hTe/bs8Xvjf+GFF/wuv/nmm32XNf1nqTVlsLlN07feeutBBampvXv3Wnv37j3k42tuU2pFRYXfPyxvvPGGZVn272DTLQP7zresg8vgbbfd5rtsyZIlfpe98847h3wemzqwDDY0NFjdu3e3AKtbt25+o5Q/+9nPDnoumz62QLwuhIeHH/b1q6ioyHr77betp59+2vrrX/9qPfLII36jrFOmTDnkz2Hs2LG+0l1XV2dlZWX5LjtwNFlCl/ZOFZ9LL72URx55hD//+c9cddVVRETY84t++9vf8vvf/953vfnz59PY2Oj7evLkyX730/TrxsZG5s+fD+A3YWPMmDH079/f73tHRkY2m6t79+6cd955vq+fe+45AN566y3q6+sBGD58OKNGjWrdA26Fqqoqli5d6vv6hz/8IbGxsb6vr776ar/rz507t9n7mTRpEklJSYC9rmJT55xzDvHx8YA9E7Sp4uLiZu+vd+/ejBs3zvf1uHHj6NWrl+/rhQsXNpun6c8oPDycK6+80vf13r17WbNmDQAnnHCC7/zTTz+diRMncsstt/CPf/yDZcuW0bNnz07Zyb1p/tGjR/vNNB46dCijR49u9rpN5ebm+v0eDRgwwO/yQz3HTc2YMYO//vWvB51WrFjR4sfSnL/97W9+v19NffPNN36TGKZMmeK3zMnTTz/tu2zJkiVUVVW16nunpqZyyy23HHR+05/93Xffzbhx45gyZQp/+ctfmDlzJklJSaSmprbqe8XHxzNlyhTf1/v+lmfNmkVRUREAGRkZTJo06ZD3cfPNN/s+b8vPsDnh4eG+52Dbtm1cddVVAHg8Hn72s58d8naBel0466yzmn39qq6u5tprryUnJ4fzzjuPm2++mTvuuIM777yT5cuX+663ffv2Q2a8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hAkTDnl/h6ORQQkao7//j9mJL5YiIocyOse9r23fffcdX3zxBQkJCb7TvvK2b1PwunXruOyyy+jduzdJSUn07NkTwDdats/w4cN9n+fk2E9W0xG65tx5550sWbKEpUuX8tlnnwFwzjnn0NjYCMCqVasYP368323Gjx/PunXraGxsZNWqVURERDB69Gjf5QMHDvSVyX2uv/56X/ErKiriww8/ZMqUKUd8fsDezPziiy+yceNG5s6dyxVXXHHQdRobG3nwwQcZNmwYaWlpJCQk8NFHH/meoxEjRnDqqacybNgwfvjDH/Lcc8/5JsqkpaVxzTXXcMYZZzBp0iT+/ve/+41itoTKoASVxGh7P8Ifj4IEF+xLIyKhKyHKfi27YbT92uZGFRUVTJo0iSVLlvid1q1bx4knngjApEmT2Lt3L8899xzffPMN33zzDQB1df6bgSIjI32f79vEeeCm5ANlZGTQt29f+vXrxymnnMLjjz/OnDlz+OKLLwL5MLn66qt9Ze6///0vvXr14oQTTmjRbc866yyqq6u57rrrmDRpEunp6Qdd55FHHuHvf/87v/rVr/jiiy9YsmQJZ5xxhu85Cg8P55NPPuHDDz9k8ODBPPnkkwwYMIBNmzYBMHXqVObOncu4ceN49dVX6d+/P/PmzWvx41MZlKA0JhfunwDH5plOIiLSesd1tV/D3L4/9KhRo1ixYgU9e/akb9++fqf4+Hj27NnDmjVruPvuuzn11FMZNGhQhy79Eh5uH7+vuroagEGDBjF79my/68yePZv+/fsTHh7OwIEDaWhoYOHChb7L16xZQ0lJid9t0tPTOf/885k6dSovvvgi1157bYszRUREcPXVVzNz5sxDjibOnj2b8847jyuvvJIRI0bQu3dv1q5d63cdj8fD+PHjeeCBB1i8eDFRUVF+M5VHjhzJb37zG+bMmcPQoUN5+eWXW56xxdcU6WSJ0XDtSBjXDV5eDjsqTCcSETm8nAR738D+Bw/+OFppaSlLlizxOy89PZ1bbrmF5557jssuu4y77rqLtLQ01q9fzyuvvMK//vUvUlNTSU9P59lnnyUnJ4etW7fy61//OmC5ysvL2bFjB5ZlsW3bNu666y4yMzMZN24cAL/85S85+uijefDBB7n00kuZO3cuTz31FE8//TQAAwYM4Mwzz+TGG2/kn//8JxEREdx2223E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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxkAAAKXCAYAAADuLofjAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAlwlJREFUeJzs3Xd4VGX6xvHvmUklPUDovUlHEURBpSlYwY5lLVh27d3V3VVsa/m5urZ1XQv2tSzYQAER6QpSpUnvnYSWhNQ55/fHIYEhATLJJGfOzP25rrkgM2dmniST5Nzzvs/7GpZlWYiIiIiIiASJx+kCREREREQkvChkiIiIiIhIUClkiIiIiIhIUClkiIiIiIhIUClkiIiIiIhIUClkiIiIiIhIUClkiIiIiIhIUClkiIiIiIhIUClkiIiIiIhIUClkiEhYeP/99zEMw+8iEqgjX0Pvv/9+lR5Pr0sRiVRRThcgIqGnb9++TJ06tdzbPB4PtWrVom7dupxwwgkMGDCA66+/ntq1a9dwle6wefNmPvnkE6ZPn87SpUvJysoiLy+P5ORkWrRoQY8ePTj//PMZPHgwXq/X6XKlAh5//HG/j4cOHUq3bt0cqUVEJFQpZIhIQEzTJCcnh5ycHNatW8e4ceN46qmnGD16NAMGDHC6vJCxf/9+7rvvPj744AOKi4vL3L579252797NvHnzePPNN+nevTtz5851oFIJ1BNPPOH3cfPmzRUyRESOoJAhIlW2b98+rrjiCtasWUNKSorT5Thu3bp1DBw4kLVr11b4PpmZmdVYkVTUunXr/D6uU6dOlR7v0ksvpW/fvlV6DBERN1LIEJEKKTn58vl8/P7779x9991+J9FZWVmMHz+eK664wqkSQ8K+ffs455xzygSM1NRU7rzzTs466yzq169Pbm4uy5cvZ8KECXzxxRcOVStHat68eVAfLzExkcTExKA+poiIG6jxW0QqpHnz5jRv3pxWrVpx/vnn8/TTT5c5Zv369Ue9/9atW3n88cfp06cPdevWJSYmhpSUFDp27Mgtt9zCL7/8ctwavvvuO84++2zS09NJSEiga9euvPDCCxQWFh7zfh999JFf421ycjK5ubnlHnvnnXf6HXvaaacdt67DPf3006xYscLvug4dOrB06VKefPJJTj/9dNq0aUO3bt0YNmwY7733Hhs3buSWW24p9/Esy2LMmDFcddVVtG7dmqSkJGJjY2nQoAFnn302L7/8Mvv37y/3vuvXry/TdDxlyhQ2bdrEzTffTJMmTYiPj6dt27Y89thjfl+TmTNnMmTIEDIyMoiPj6dTp04888wzFBQUlPtczZs393uexx9/HJ/PxxtvvMEpp5xCcnIySUlJnHrqqYwcORLLso75dVy1ahUPPvggPXr0oHbt2kRHR5Oens6JJ57I3XffzdKlS496X8uy+PLLL7n00ktp3bo1CQkJREdHU69ePTp16sTFF1/Mc889x8yZM8vc92iN34d/LY90ww03+N3n8KASSOP3nj17eOGFFxg4cCD169cnNjaWpKQk2rRpwx/+8AcmTJhw1Ps+/vjj5dYwZ84chg0bRoMGDYiNjaVJkybccsstbNmy5aiPJSISFJaIyBHOPPNMC/C7HOnTTz8tc8x//vOfch/vX//6lxUbG1vm+CMvV155pZWdnV3uYzz00ENHvd/JJ59s/fOf/zxqzQUFBVa9evX8bnv77bfLPIfP57Pq16/vd9w777xT4a9bdna2FRcX53f/6Ohoa8WKFRV+jMNt2rTJOu200477datTp441fvz4Mvdft25dmWOfffZZKzk5udzHOfHEE62cnBzrlVdesTweT7nHnHXWWZbP5yvzXM2aNfM77v777y/3dVRyueSSS6zCwsIyj+Pz+ay//e1vR33+kothGNa9995rFRUV+d3fNE3rsssuO+7XDLDatWtX5vmPPOa999476tfyaJdmzZqVPt5777133J8ly7Ks0aNHW6mpqcd97AEDBlg7duwoc/8RI0aUqeH5558/6texYcOG1ubNm8utRUQkGBQyRKSM8k4O161bZ61bt85avXq19d1331mtW7f2uz0qKsrasGFDmcd6/fXXK3xyBliDBw+2iouL/R6jvBO1Iy+1atU65sncY4895ndbz549y9Q6efJkv2MSEhKOGnrK8/XXX5epYdiwYRW+/+GysrKstm3bVvjrFh0dbU2ePNnvMco7MTYM45iP07dv3+MeM3LkyDL1HhkyoqOjj1vzn//85zKPc//99wf0ern55pv97j9q1KgK3zdUQsY333xz3FB1+KUkDB7uyJBxvO8hYF1zzTVHe/mJiFSZpkuJSIW0aNGCFi1a0Lp1a8477zxWr15deltUVBT/+te/aNq0qd99Nm/ezAMPPOB3XWpqKv/5z3/47bff+O677+jevbvf7ePHj+ejjz4q/bioqIhHHnnE75ioqCiefvpp5s+fz4QJEzjttNM4cODAMeu/9dZbiYmJKf34119/ZdGiRX7HfP75534fX3755QHNp1+wYEGZ6yq74tZjjz3GypUr/a676KKLmDRpEvPmzeOpp54iKupQW11RURE333xzuStZHc6yLG644QYWLlzIlClTaNWqld/tU6ZMwbIsHn74YZYsWcJXX31Famqq3zGffPLJcesvKiqiXbt2fPXVVyxatIj//Oc/JCUl+R3z4osv+k3bmTt3Li+++KLfMY0bN+a///0vixcvZtSoUbRs2dLv9rfffpspU6aUfnzk0stnn302U6ZMYeXKlSxevJjvvvuOp59+mn79+vl9/Y6ncePGrFu3rkxjOMALL7xQetu6deuYMWNGhR83NzeXW265BdM0S6+LjY3lhRdeYP78+UycOJFBgwb53WfBggW88MILx3xcy7Lwer08/fTTLFmyhG+//ZaGDRv6HTNq1CiKiooqXKuISEAcDjkiEoKONc2lvMutt95a5p1Vy7KsJ598ssyxP/74o98x2dnZVp06dY46yvD999+XeYwnn3zS7zEOHDhgZWRkHPcd46uvvtrv9ttuu630tuLi4jKPMWPGjIC+brfddluZGsaNGxfQY1iWZeXn55cZmTn99NPLHPfss8+Web7vv/++9Pby3n0/8cQTLdM0S4959dVXyxwzdOhQv+e55557/G6vU6dOmVqOHMmIjY21tm7d6nfM6NGjyzzXP/7xj9Lbhw8f7nebx+MpM9Vsw4YNZUZJLr/88tLbb731Vr/bPvvss6N+nffv31/muiPrKxnJCPSYEscbyfjwww/L3H7kFL3i4mKrQ4cOfsfUq1fP7/t45EgGYD388MN+j/O///2vzDFLliw5au0iIlWhkQwRqbJ///vf9OjRg+3bt/tdf+S7yq1atSrzzn5iYiJXXXWV33Vz584tHZmYPXt2mecbPny438fx8fFlHqM8d911l9/Hn3zySenzTJ48mZ07d5be1q5dO3r37n3cx6wOc+bMKTMyc/PNN5c57o9//GOZ66ZNm3bMx77mmmv8mo9btGhR5phrr73W7+O2bdv6fbxnz55jPgfAOeecQ4MGDfyuGzp0KOnp6X7XzZo1q/T/R75e+vbtW+a5mzZtyjnnnON33eGf85EjYzfddBNXXHEFTz75JJ999hmLFi3C5/MBlBlZccKRn3NcXFyZr7/X6+Wmm27yu27Hjh1lRrqOdMcdd/h9fMIJJ5Q5piLfSxGRylDIEJEKseweLkzTZOvWrTzzzDN+t5csa3u4rVu3+n185FSXo11vmiY7duwAKP23RGxsbJlpH1D+yfKRevbsSa9evUo/3rdvX+nysUcuI3tkkKmIunXrlrlu8+bNAT/OkV83oMy0JoC0tLQyU5nKu+/hjvxa16pVq8wxR34t4+Pj/T4uOUk/lvK+Hx6Ph2bNmvldd3gwPbL28j5nKPs57Nixo7Sma665hp49e5belpOTwxdffMGIESO48sor6dq1K2lpaVx77bWsWrXquJ9HdTvyc27SpAnR0dFljivvZ+dY3+vExEQaNWrkd92R30fguNPrREQqSyFDRAJiGAYNGjTgkUceYciQIX63jRo1ir179wb1+azjLHUaqCNHM95++22Ki4v58ssvS6+Liooq825yRZx44ollrps0aVLgRVajI0OJx1P2z8CRx7hJbGws06ZN4+WXX+aUU04pt+8iOzubjz76iJ49ewa0YaKb1K5du8x1Xq/XgUpEJFIpZIhIpbVp08bvY9M0WbNmTenHR444HH7b4Y480fN4PNSrVw+g9N8SBQUF5b6DW15DbnkuvfRSv7p+/vlnXn31VbKyskqvO/fcc6lfv36FHu9wAwYMIC4uzu+60aNHB/yOeXkjNeV97Xbv3l0m1B05Rckp5X0/TNNkw4YNftcd/nWu7OslIyPD7wQ6NjaWu+++m1mzZpGbm8vSpUv59ttveeqpp/y+Pnv37uW1116r+CdVDY78nDdt2lTuvi/lhaFQ+V6LiJRHIUNEKm3evHllrjv8ZO/MM8/0u23t2rX8+OOPftfl5OSUWa2oe/fupdN4TjnllDLPMXLkSL+P8/Ly+PTTTytUc3R0NLfeeqvfdQ8//LDfxzfeeGOFHutIiYmJZebBFxUVcckll7Bt27aj3i8rK4tnn3229OMePXqUmdry1ltvlblfededccYZgZZdLcaNG1fmc/7666/ZvXu333WHf3+PfL2UrAp1uI0bNzJu3Di/6w7/nHft2uU3BSgmJoYOHTpwwQUX8Le//Y2HHnrI776///57AJ+V7cjpTHl5eQE/RokjP+f8/Hw+/PBDv+t8Ph/vvPOO33UZGRm0a9eu0s8rIlLdFDJEpELWr1/P+vXrWbduHb/88gt//OMfmTx5st8xtWrV8jvxueGGG8q8s3/ZZZfx9ttvs3jxYsaNG0ffvn39RhEAbrvtttL/Dxw4sMxoxpNPPsnf//53Fi5cyA8//MDAgQPL9G4cyx//+EdiY2NLPz58Gc/69etz7rnnVvixjvTXv/61TLPy4sWL6dSpEyNGjGDGjBmsWrWKhQsX8tlnnzF8+HCaNm3Kf/7zn9LjY2Njy/SEzJgxg4svvpjJkyezYMEC/v73v/Poo4/6HdOqVSvOPvvsStceTAUFBfTr149vvvmGxYsX8/bbb3PDDTf4HRMVFcWwYcNKPz4y/JmmyYABA/j0009ZsmQJX375Jf369Suz7Orhr5fPP/+cRo0acdNNN/HBBx/wyy+/sHLlSpYvX86XX37JG2+84XffQJYoLnFk781HH33EnDlzSn9GApkyePHFF5d5fd9555384x//YOHChUyaNInzzjuPZcuW+R1z6623HnP3cBERxzm8upWIhKBAl7Atudx7771lHqu8JVKPdRk0aFCZzfjeeeed494vKirquEvYHu66664r93EeeuihKn/91q5da7Vs2TKgz/vwDdwsy96Mr02bNhW+f0U34zvymCM3IAR748XDVWRDuSOXsC1vc8QjLw8++GCZx7nvvvsC+rrddNNNfvd/7bXXArr/kcvPHu92y7KsSy655JiPOWLEiIC+dl9//XVAm/F169btuJvxHfl6sqyKvR5ERIJFIxkiEhRXXXUVzz33XJnr77zzTl5//XW/kYOjGTZsGKNGjSrToHrjjTdy3333HfV+bdu25Yknngio3iNXwipRmVWljtSiRQsWLFjA8OHDK7zhW506dfw+Tk9PZ9KkSZx66qkVuu+3335L3759K1Nutbj77ruPOSI0ZMgQnn766TLXv/DCC/z1r38ttyG9vOf497//Xekar776aq677rqA7/fQQw+VuwJUZQ0ZMoQvvviClJSU4x7bv39/JkyYQEJCQtCeX0SkOihkiEjAoqOjSUtL46STTuLWW29l+vTpfPLJJ347ah/u9ttvZ82aNTz22GOcdtpp1K5dm6ioKJKSkmjfvj033XQTM2fO5NNPPz3q9JUXX3yRMWPGMGDAAFJSUoiPj6d9+/Y8+uijzJ8/v9xm6WM58cQT6dOnj991ffr0Cdo89+TkZN59913Wrl3Ls88+yznnnEPTpk1JTEwkKiqq9Ov3pz/9iTFjxpS7H0iTJk2YMWMGX3/9NcOGDaNFixbUqlWL6Oho6tWrx8CBA3nppZdYs2YNgwcPDkrdwRITE8PYsWP5z3/+wymnnEJSUhIJCQn07NmTt99+m6+++qrc14vH4+Hpp59m+fLl3H///XTv3p20tDSioqJISUmha9eu3HnnnSxevJiXX365TIi77rrrGDt2LI888gj9+/enbdu2pKWl4fV6SUxMpH379lx77bVMmDCBjz/+uFJTjnr27Mm0adMYOnQo9erVC8qqTZdccglr167l+eefp1+/fmRkZBAdHU1CQgKtWrXi6quv5vvvv2fSpElkZGRU+flERKqbYVlBXh9SRMQlbrzxRr8m8pEjR5bpG5CKad68ud/KUSNGjODxxx93riAREXGURjJEJCL98ssvfPbZZ6Ufp6WlccUVVzhYkYiISPhQyBCRiPHll1/SunVr6tevz2mnncaBAwdKb3vwwQfL3f1aREREAlexjkQRkTCwf//+cjd4O+OMM3jggQccqEhERCQ8aSRDRCJSQkICXbp04YUXXmDChAlBXS1IREQk0qnxW0REREREgkojGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElQKGSIiIiIiElRRThcgIiKBsSwLsA67xsAwjArczweWad/XKrm//a9hRENxoX0xDMCw//V4wRsF3uiKFWf6Dj22x3vwsUREJNIoZIiIhAD/4FA2NFiWCWYB+ArAlwdmPvgKsMwisIqxrGIwi8HygVV88OI7eN3By7E0HIoxbyws/vEoBxh22IiKOfolJh7iEg+7JEB8MsQl2f+PibeDx+FKQokCiYhIWFHIEBGpIYeCxKEQ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8fbbb/PVV1/RuXNn/vjHP3LjjTdiWRaPPPIIw4YNKz2uZBpPSkoKKSkpjBgxovTSt2/fCj/fRRddRFpaGu+9957f9R999BFFRUUMHz683Pvt3r2be+65h4KCAs4991zuvfde+vbty/fff89pp53GnDlz/I5/5JFHuPnmm9m9ezdXXXUV99xzD/3792fp0qX8+OOPpcf9+9//5tJLL2XVqlVcdNFF3HfffQwePJjt27fz1VdfVehzmjRpEgC9evWq8NcBKB3JiYo6/iDV+++/j8/n49prry0zAnQ0o0aNori4mMsuu4zs7Gw++eQTnn32WUaOHMmWLVsCqhXgpZde4q677qJHjx7cc889NGjQgJdffpmzzz7bL5B+9913DBgwgNmzZzNo0CDuv/9+LrzwQgoKCvjoo4/KPG737t2Jjo4u/TqGG8sy7elR2cuxto+HvK1OlyQikS5vP0x5H75+zt5ro2QBChGJSJWaLrV69epyRxoGDx5Mr169+Mtf/sK//vUvv2Ziy7K46aabGDlyJDNnzqR3796l03jef/99gEpPwYqNjeXqq6/mzTffZPv27dSvXx+wp0p17tyZHj16lHu/tLQ0Nm7cSKNGjfyuX7p0aenncfic/nfeeYeGDRuyaNEiatWq5Xef3bt3+x0XExPDwoULycjI8DsuKyurQp/TzJkz8Xg8dOvWrULHA/z6668sXbqUHj16kJqaesxjLcti5MiRQGBTpebNmwfA3r17adeuHdu2bSu9LSYmhueee4577723wo83YcIE5syZQ5cuXUrruuaaa/jvf//Lq6++yv333w/Y30vLspg8eTJdu3b1e4zyvqZxcXF06tSJuXPnUlBQQGxsbIVrCnWWZUHRPqzdczVyISKhZ+c6+PLv0GUgnDzE7tXQFCqRiFOpkYw1a9bwxBNPlLmUrObTtGnTMqsVGYbB7bffDuD3rn+wDB8+nOLi4tLpMbNnz2bp0qVHHcUAO5wcGTAAOnbsSL9+/Zg2bZrfu+lgn0iXtxJTenq638fR0dHljg7Url27Qp/P5s2bSU1NrfDJ8b59+7juuuvweDz83//933GPnzp1KmvWrKFPnz60a9euQs8BsHPnTgCeeOIJunbtytKlS9m/fz9jx46lTp063HfffYwbN67Cj3fttdeWBgywXyfPPPMMXq+3NHwerrxpb0f7mtarV4+i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+xzLo48+WhowAFJSUvjb3/6GZVl88MEHfsfGxMSUea0BpKenl7kuOTmZuLi40q9lRWkkQyQUlfzRbdYFGraF6Z/A2nnO1iQiUhVxifbUqJbdwbLCbmrUkebMmYPP56OgoKDcBuFVq1YBsHz5cs4//3zAXsL09ddf57PPPmP58uXk5OT4zacvOek/XGpqarnTfRo3bswvv/xSqdqHDx/Oq6++ygcffMC9997LZ599xvnnn0/dunVLpxgdybIs3nvvPd5//32WLFnCvn37ME2z3NrPOOMMGjRowHPPPcdvv/3G+eefz5lnnkn79u39pgu1b9+eLl268Omnn7J582aGDh1K37596datW4UbkEuCQmpqapnbDMPgjTfe4IILLuDCCy9k6NChtGrVit9++40ffviBzp07s3jx4jLP9Y9//MPv41NPPZWxY8fSv39/pk6dyjfffMPFF1983NoeeOABtm7dyrhx4wJqqD6a008//ajXLViwoPS6YcOG8cYbb9CpUyeGDRtGv379OPXUU8sNcyXS09PJzMwMqB6FDJFQ5vFCTC17Sce182Hmp1qBSkTcp9XJ0Psqe5QWwj5gwKFpJzNnzjzmNJPDm4ovvfRSxowZQ9u2bbniiivIyMggOjqavXv38sorr1BQUFDm/oe/c324qKgov5P8QHTt2pWTTjqJ9957j6ZNm7J3796jNnyXuOuuu3j99ddp0qQJF154IQ0aNCgdkXjiiSf8ak9JSWHWrFk89thjjBkzhu+//x6AJk2a8PDDD5c2P0dFRfHTTz/x+OOPM3r0aO6//34A6tatyx133MFf//rXct+NP1zJiXN+fn65tw8aNIjp06fz1FNP8dNPP/Hdd9/RqVMnvvrqKyZNmsTixYsrNP3J4/Fw8803M3XqVGbOnHnckDFlyhTefPNNXnjhBdq2bXvcx6+I8kZrSq47vJn+lVdeoUWLFrz33ns8/fTTPP3008TFxXH55Zfz4osvlk4jO1xeXl6ZqVXHo5AhEupK/hg37wpNOsDsL+H3afY7gSIioSw5A06/yt61OwJGLw6XnJwM2FNrjnznuzxz5sxhzJgxDBo0iO+++87v5HnWrFm88sor1VZreW688UZuv/12/vznP9OwYcNyexpK7Ny5k3/961906dKFX375xe9kdPv27TzxxBNl7tO0aVPef/99TNNk0aJF/PDD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", "text/plain": [ "
" ] @@ -1050,24 +1056,48 @@ "keirstyn_data = df_2[df_2['LastName'].str.contains('Moran', case=False, na=False)]\n", "# Get the fat mass percentage for Keirstyn\n", "fat_percentage = keirstyn_data['Adult_FMP'].iloc[0]\n", - "weight_kg = keirstyn_data['Weight_kg'].iloc[0]\n", + "weight_kg = keirstyn_data['Weight'].iloc[0]\n", "age = keirstyn_data['Age'].iloc[0]\n", "gender = keirstyn_data['Gender'].iloc[0]\n", "lean_percentage = 100 - fat_percentage\n", "\n", "# Create donut chart\n", - "plt.figure(figsize=(8, 8))\n", + "fat_mass_lbs = 27.6\n", + "lean_mass_lbs = 95.4\n", + "\n", + "# Calculate percentages from the provided weights\n", + "total_weight = fat_mass_lbs + lean_mass_lbs\n", + "fat_percentage = (fat_mass_lbs / total_weight) * 100\n", + "lean_percentage = (lean_mass_lbs / total_weight) * 100\n", + "\n", + "# Data for the chart\n", "sizes = [fat_percentage, lean_percentage]\n", - "labels = ['Fat Mass', 'Lean Body Mass']\n", - "colors = ['#ff9999', '#66b3ff']\n", + "labels = ['Fat Mass (27.6lbs)', 'Lean Mass (95.4lbs)']\n", + "colors = ['#fde3ac', '#ff9966'] # Light yellow/tan and orange from the image\n", "\n", - "# Create the donut chart with a wedge\n", - "wedges, texts, autotexts = plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%',\n", - " startangle=90, wedgeprops=dict(width=0.5))\n", + "plt.figure(figsize=(8, 8))\n", + "# Create the donut chart\n", + "wedges, texts, autotexts = plt.pie(sizes,\n", + " autopct='%1.1f%%',\n", + " startangle=90,\n", + " wedgeprops=dict(width=0.5, edgecolor='w'),\n", + " colors=colors)\n", "\n", - "plt.title(f'Body Composition - {keirstyn_data[\"FirstName\"].iloc[0]} {keirstyn_data[\"LastName\"].iloc[0]}', \n", - " fontsize=14, fontweight='bold')\n", - "plt.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle\n", + "# Customize the text for labels and percentages\n", + "for i, (text, autotext) in enumerate(zip(texts, autotexts)):\n", + " # Set the label text to be the full label, not just the percentage\n", + " text.set_text(labels[i])\n", + " text.set_fontsize(14)\n", + " text.set_color('black')\n", + "\n", + " # Position the percentage text inside the donut\n", + " autotext.set_fontsize(14)\n", + " autotext.set_color('black')\n", + "\n", + "# Set the title\n", + "plt.title('Body Composition', fontsize=18, fontweight='bold')\n", + "plt.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle\n", + "plt.savefig('graphs/page_1_body_composition.png')\n", "plt.show()" ] }, diff --git a/pdf_generation.ipynb b/pdf_generation.ipynb index 2749ec1..f4ac490 100644 --- a/pdf_generation.ipynb +++ b/pdf_generation.ipynb @@ -2,12 +2,312 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "6eee3ddd", "metadata": {}, "outputs": [], "source": [ - "import pandas as pd" + "import pandas as pd\n", + "import fitz" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "7b50e3ea", + "metadata": {}, + "outputs": [], + "source": [ + "file = fitz.open(\"data/~Moran~K~19910201~Spirometry Exam~20250729~20250729032843.pdf\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b7e1c3ee", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 3 image(s) on page 1\n", + "Saved: page_1_image_1.png\n", + "Saved: page_1_image_2.png\n", + "Saved: page_1_image_3.png\n", + "\n", + "Total images extracted: 3\n", + "Images saved in: extracted_images/\n" + ] + } + ], + "source": [ + "import os\n", + "\n", + "# Create directory to save images if it doesn't exist\n", + "output_dir = \"extracted_images\"\n", + "os.makedirs(output_dir, exist_ok=True)\n", + "\n", + "# Extract all images from the PDF\n", + "image_count = 0\n", + "for page_num in range(len(file)):\n", + " page = file[page_num]\n", + " \n", + " # Get list of images on this page\n", + " image_list = page.get_images()\n", + " \n", + " if image_list:\n", + " print(f\"Found {len(image_list)} image(s) on page {page_num + 1}\")\n", + " \n", + " for img_index, img in enumerate(image_list):\n", + " # Get image reference number\n", + " xref = img[0]\n", + " \n", + " # Extract image data\n", + " base_image = file.extract_image(xref)\n", + " image_bytes = base_image[\"image\"]\n", + " image_ext = base_image[\"ext\"]\n", + " \n", + " # Create filename\n", + " image_filename = f\"page_{page_num + 1}_image_{img_index + 1}.{image_ext}\"\n", + " image_path = os.path.join(output_dir, image_filename)\n", + " \n", + " # Save image\n", + " with open(image_path, \"wb\") as image_file:\n", + " image_file.write(image_bytes)\n", + " \n", + " print(f\"Saved: {image_filename}\")\n", + " image_count += 1\n", + " else:\n", + " print(f\"No images found on page {page_num + 1}\")\n", + "\n", + "print(f\"\\nTotal images extracted: {image_count}\")\n", + "print(f\"Images saved in: {output_dir}/\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e2af9631", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error extracting tables from page 1: object of type 'TableFinder' has no len()\n", + "\n", + "Extracted text from 1 pages\n", + "Found 0 tables total\n", + "\n", + "First 1000 characters of extracted text:\n", + "\n", + "--- Page 1 ---\n", + "PRE#1\n", + "PRE#2\n", + "PRE#3\n", + "Spirometry Results\n", + "VISIT DATE 2025-07-29\n", + "ID\n", + "Last Name\n", + "Moran\n", + "First Name\n", + "K\n", + "Date of birth\n", + "1991-02-01\n", + "Origin\n", + "Caucasian\n", + "Age\n", + "34\n", + "Gender\n", + "F\n", + "Height\n", + "163 cm\n", + "Weight\n", + "54 kg\n", + "BMI\n", + "20.3\n", + "ACCEPTABILITY CRITERIA\n", + "Quality Grade PRE F Variability FEV1=0.05(1.56%), FVC=0.07(1.68%)\n", + "Acceptable trials 0\n", + "LLN\n", + "Predicted\n", + "FVC\n", + "FEV1\n", + "FEV1/FVC\n", + "-5\n", + "-4\n", + "-3\n", + "-2\n", + "-1\n", + "0\n", + "1\n", + "2\n", + "3\n", + "Spirometry\n", + "Parameters\n", + "FVC\n", + "FEV1\n", + "FEV1/FVC\n", + "PEF\n", + "FEF2575\n", + "FEF25\n", + "FEF50\n", + "FEF75\n", + "PEFTime\n", + "EVol\n", + "FEV6\n", + "L\n", + "L\n", + "%\n", + "L/m\n", + "L/s\n", + "L/s\n", + "L/s\n", + "ms\n", + "mL\n", + "L\n", + "L/s\n", + "Best\n", + "3.26\n", + "76.89\n", + "684\n", + "2.74\n", + "6.08\n", + "3.06\n", + "1.06\n", + "79\n", + "78.0\n", + "4.24\n", + "4.22\n", + "LLN\n", + "3.03\n", + "2.53\n", + "72.47\n", + "222\n", + "2.15\n", + "0.0\n", + "0.0\n", + "0.71\n", + "-\n", + "-\n", + "3.03\n", + "Pred.\n", + "3.79\n", + "3.16\n", + "384\n", + "3.42\n", + "0.0\n", + "0.0\n", + "1.41\n", + "-\n", + "-\n", + "3.79\n", + "83.78\n", + "%Pred.\n", + "112.0\n", + "103.3\n", + "91.8\n", + "178.7\n", + "80.2\n", + "-\n", + "-\n", + "75.1\n", + "-\n", + "-\n", + "111.4\n", + "ZScore\n", + "0.95\n", + "0.28\n", + "-1.05\n", + "-\n", + "-0.84\n", + "0.0\n", + "0.0\n", + "-0.72\n", + "-\n", + "-\n", + "-\n", + "PRE#1\n", + "4.24\n", + "3.26\n", + "76.9\n", + "444\n", + "2.74\n", + "6.08\n", + "3.06\n", + "1.06\n", + "79\n", + "78.0\n", + "4.22\n", + "PRE#2\n", + "4.17\n", + "3.21\n", + "77.0\n", + "438\n", + "2.68\n", + "6.0\n", + "1.12\n", + "49\n", + "77.0\n", + "4.17\n", + "3.1\n", + "PRE#3\n", + "0.94\n", + "684\n", + "4.15\n", + "2.77\n", + "197.0\n", + "4.13\n", + "75.7\n", + "39\n", + "2.48\n", + "3.14\n", + "5.53\n", + "NOTE\n", + "Spirobank Smart Z114689 Sent on 2025-07-29 15:28\n", + "BTPS 1.111 21.0 °C \n" + ] + } + ], + "source": [ + "# Extract text and tables from the PDF\n", + "text_content = \"\"\n", + "tables_data = []\n", + "\n", + "for page_num in range(len(file)):\n", + " page = file[page_num]\n", + " \n", + " # Extract text from the page\n", + " page_text = page.get_text()\n", + " text_content += f\"\\n--- Page {page_num + 1} ---\\n\"\n", + " text_content += page_text\n", + " \n", + " # Try to find tables using PyMuPDF's table detection\n", + " try:\n", + " tables = page.find_tables()\n", + " if tables:\n", + " print(f\"Found {len(tables)} table(s) on page {page_num + 1}\")\n", + " for i, table in enumerate(tables):\n", + " table_data = table.extract()\n", + " tables_data.append({\n", + " 'page': page_num + 1,\n", + " 'table_index': i,\n", + " 'data': table_data\n", + " })\n", + " print(f\"Table {i+1} on page {page_num + 1}:\")\n", + " for row in table_data:\n", + " print(row)\n", + " print(\"-\" * 50)\n", + " except Exception as e:\n", + " print(f\"Error extracting tables from page {page_num + 1}: {e}\")\n", + "\n", + "print(f\"\\nExtracted text from {len(file)} pages\")\n", + "print(f\"Found {len(tables_data)} tables total\")\n", + "\n", + "# Display first 1000 characters of text content to see what we have\n", + "print(\"\\nFirst 1000 characters of extracted text:\")\n", + "print(text_content[:1000])" ] }, { diff --git a/report_gen/page_10.html b/report_gen/page_10.html index e69de29..f31d4de 100644 --- a/report_gen/page_10.html +++ b/report_gen/page_10.html @@ -0,0 +1,65 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: {{ patient_name | default('Keirstyn Moran') }} + Age: {{ age | default('34') }} + Height: {{ height | default('5\'4"') }} + Weight: {{ weight | default('123lbs') }} + Focus: {{ focus | default('Endurance') }} +
+
+ + +
+ +
+ +
+

VO2 Pulse

+

Begins to drop at {{ vo2_pulse_drop_bpm | default('180 bpm') }} ({{ vo2_pulse_drop_zone | default('Zone 4') }})

+
+ + +
+ VO2 Pulse Chart +
+
+ + +
+ +
+

VO2 Breath

+

Begins to drop at {{ vo2_breath_drop_bpm | default('173 bpm') }} ({{ vo2_breath_drop_zone | default('Zone 3') }})

+
+ + +
+ VO2 Breath Chart +
+
+
+ + +
+
+
+ CONTACT: {{ contact_email | default('info@ishplabs.com') }} + WEBSITE: {{ website | default('www.ishplabs.com') }} + SOCIAL: {{ social | default('@ishplabs') }} +
+
+ {{ page_number | default('9') }} +
+
+
+ diff --git a/report_gen/page_11.html b/report_gen/page_11.html index e69de29..5dfe8a9 100644 --- a/report_gen/page_11.html +++ b/report_gen/page_11.html @@ -0,0 +1,265 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: {{ patient_name | default('Keirstyn Moran') }} + Age: {{ age | default('34') }} + Height: {{ height | default('5\'4"') }} + Weight: {{ weight | default('123lbs') }} + Focus: {{ focus | default('Endurance') }} +
+
+ + +
+ +
+

+ Fat Metabolism +

+ + +
+ +
+

Fat Max

+

+ {{ fat_max_optimal | default('*Optimal + 10-12Kcals/minute') }} +

+

+ {{ fat_max_value | default('3.8Kcals/min') }} +

+

+ {{ fat_max_heart_rate | default('49% of Max Heart Rate') + }} +

+

+ {{ fat_max_bpm | default('97 bpm') }} +

+
+ + +
+

+ Carbs and Fat Crossover +

+

+ {{ crossover_bpm | default('100bpm') }} +

+

+ {{ crossover_heart_rate | default('51% of Max Heart + Rate') }} +

+
+
+ + +
+
+

+ {{ fat_metabolism_note | default('100bpm at a speed of + 4.0mph and incline of 2%') }} +

+
+ +
+ Fat Metabolism Chart +
+
+
+ + +
+

+ Recovery +

+ + +
+ +
+

+ Cardiac Recovery +

+

+ {{ cardiac_recovery_time | default('(1 minute)') }} +

+

+ {{ cardiac_recovery_percentage | default('33%') }} +

+
+ + +
+

+ Metabolic (CO2) Recovery +

+

+ {{ metabolic_recovery_time | default('(2 minute)') }} +

+

+ {{ metabolic_recovery_percentage | default('65%') }} +

+
+ + +
+

+ Breath Frequency Recovery +

+

+ {{ breath_recovery_time | default('(2.5 minute)') }} +

+

+ {{ breath_recovery_percentage | default('76%') }} +

+
+
+ + +
+ Recovery Chart +
+
+ + +
+

+ Resting Heart Rate - {{ resting_heart_rate | default('53bpm') }} +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Age (F) + + Poor + + Below Average + + Average + + Above Average + + Good + + Excellent + + Athlete + +
+ +
+
+ {{ hr_age_range | default('26-35') }} + + {{ hr_poor | default('82bpm +') }} + + {{ hr_below_avg | default('75-81bpm') }} + + {{ hr_average | default('71-74bpm') }} + + {{ hr_above_avg | default('66-70bpm') }} + + {{ hr_good | default('62-65bpm') }} + + {{ hr_excellent | default('55-61bpm') }} + + {{ hr_athlete | default('44-54bpm') }} +
+
+
+ + +
+
+
+ CONTACT: {{ contact_email | default('info@ishplabs.com') + }} + WEBSITE: {{ website | default('www.ishplabs.com') }} + SOCIAL: {{ social | default('@ishplabs') }} +
+
+ {{ page_number | default('10') }} +
+
+
+
diff --git a/report_gen/page_13.html b/report_gen/page_13.html index e69de29..3b012e5 100644 --- a/report_gen/page_13.html +++ b/report_gen/page_13.html @@ -0,0 +1,242 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: {{ patient_name | default('Keirstyn Moran') }} + Age: {{ age | default('34') }} + Height: {{ height | default('5\'4"') }} + Weight: {{ weight | default('123lbs') }} + Focus: {{ focus | default('Endurance') }} +
+
+ + +
+ +

Training Recommendations

+ + +
+ +
+ +
+

Zone 2 {{ zone2_frequency | default('3-4x/week') }}:

+
    +
  • {{ zone2_duration | default('40+ minutes') }} of Steady State Cardio (HR {{ zone2_hr_range | default('____') }} bpm)
  • +
  • {{ zone2_speed | default('____ mph') }} at {{ zone2_incline | default('2% Incline') }}
  • +
+
+ + +
+

Zone 3 {{ zone3_frequency | default('1-2x/week') }}:

+
    +
  • {{ zone3_duration | default('10-20 minutes') }} in zone 3 (HR {{ zone3_hr_range | default('____ bpm') }})
  • +
  • {{ zone3_speed | default('____mph') }} + at {{ zone3_incline | default('2% Incline') }}
  • +
  • Slow down cadence until HR reaches {{ zone3_target_hr | default('___ bpm') }}
  • +
  • {{ zone3_recovery_speed | default('____mph') }} at {{ zone3_recovery_incline | default('2% Incline') }}
  • +
  • Maintain HR in zone 1 ({{ zone1_hr_range | default('____bpm') }}) for {{ zone1_duration | default('4-8 minutes') }}
  • +
  • Repeat {{ zone3_repeats | default('2-3 times') }}
  • +
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeSetsEffort DurationZoneRPERecovery Duration
Short{{ short_sets | default('8-10') }}{{ short_duration | default('10-30 seconds') }}{{ short_zone | default('5') }}{{ short_rpe | default('10') }}{{ short_recovery | default('20-60 seconds') }}
Medium{{ medium_sets | default('6-8') }}{{ medium_duration | default('30-90 seconds') }}{{ medium_zone | default('4') }}{{ medium_rpe | default('8-9') }}{{ medium_recovery | default('30-90 seconds') }}
Long{{ long_sets | default('4-6') }}{{ long_duration | default('5-10 minutes') }}{{ long_zone | default('3/4') }}{{ long_rpe | default('7-8') }}{{ long_recovery | default('2.5-5 minutes') }}
Tempo{{ tempo_sets | default('2-3') }}{{ tempo_duration | default('10-20 minutes') }}{{ tempo_zone | default('3') }}{{ tempo_rpe | default('6-7') }}{{ tempo_recovery | default('4-8 minutes') }}
Cardio{{ cardio_sets | default('1') }}{{ cardio_duration | default('>40 minutes') }}{{ cardio_zone | default('2') }}{{ cardio_rpe | default('4-5') }}{{ cardio_recovery | default('N/A') }}
+
+
+ + +
+

Training Week Example with Progression

+ + +
+
+ +
+
Monday
+
{{ week1_mon_zone | default('Zone 2') }}
+
{{ week1_mon_duration | default('45 mins') }}
+
+ + +
+
Tuesday
+
{{ week1_tue_zone | default('Zone 2') }}
+
{{ week1_tue_duration | default('45 mins') }}
+
+ + +
+
Wednesday
+
{{ week1_wed_zone | default('Zone 3') }}
+
{{ week1_wed_duration1 | default('10mins On') }}
+
{{ week1_wed_duration2 | default('8mins Rest') }}
+
{{ week1_wed_sets | default('x2') }}
+
+ + +
+
Thursday
+
{{ week1_thu_content | default('') }}
+
+ + +
+
Friday
+
{{ week1_fri_zone | default('Zone 2') }}
+
{{ week1_fri_duration | default('45 mins') }}
+
+ + +
+
Saturday
+
{{ week1_sat_content | default('') }}
+
+ + +
+
Sunday
+
{{ week1_sun_content | default('') }}
+
+
+
+ + +
+
+ +
+
Monday
+
{{ week2_mon_zone | default('Zone 2') }}
+
{{ week2_mon_duration | default('50 mins') }}
+
+ + +
+
Tuesday
+
{{ week2_tue_zone | default('Zone 2') }}
+
{{ week2_tue_duration | default('50 mins') }}
+
+ + +
+
Wednesday
+
{{ week2_wed_zone | default('Zone 3') }}
+
{{ week2_wed_duration1 | default('10mins On') }}
+
{{ week2_wed_duration2 | default('6mins Rest') }}
+
{{ week2_wed_sets | default('x2') }}
+
+ + +
+
Thursday
+
{{ week2_thu_content | default('') }}
+
+ + +
+
Friday
+
{{ week2_fri_zone | default('Zone 2') }}
+
{{ week2_fri_duration | default('50 mins') }}
+
+ + +
+
Saturday
+
{{ week2_sat_content | default('') }}
+
+ + +
+
Sunday
+
{{ week2_sun_content | default('') }}
+
+
+
+
+
+ + +
+
+
+ CONTACT: {{ contact_email | default('info@ishplabs.com') }} + WEBSITE: {{ website | default('www.ishplabs.com') }} + SOCIAL: {{ social | default('@ishplabs') }} +
+
+ {{ page_number | default('12') }} +
+
+
+ diff --git a/report_gen/page_14.html b/report_gen/page_14.html index e69de29..a3371fe 100644 --- a/report_gen/page_14.html +++ b/report_gen/page_14.html @@ -0,0 +1,176 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: Keirstyn Moran + Age: 34 + Height: 5'4" + Weight: 123lbs + Focus: Endurance +
+
+ + +
+ +
+

Training Week

+

(To be filled out by your trainer)

+
+ + +
+
+ +
+
Monday
+
+
+
Tuesday
+
+
+
Wednesday
+
+
+
Thursday
+
+
+
Friday
+
+
+
Saturday
+
+
+
Sunday
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
Monday
+
+
+
Tuesday
+
+
+
Wednesday
+
+
+
Thursday
+
+
+
Friday
+
+
+
Saturday
+
+
+
Sunday
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+

Training Week Guidelines

+ + +
+ +
+

Zone 1

+
    +
  • Zone 1 training is low intensity, for active recovery.
  • +
  • It can be done daily or even consecutively, depending on fitness, volume, and health.
  • +
+
+ + +
+

Zone 2

+
    +
  • Zone 2 training can be done on consecutive or daily basis with moderate sessions.
  • +
  • Can be steady state or interval sessions.
  • +
+
+ + +
+

Zone 3

+
    +
  • Zone 3 training can be done 1-5 times per week.
  • +
  • Wait 24 to 48 hours between sessions for adequate recovery.
  • +
+
+ + +
+

Zone 4

+
    +
  • Zone 4 training: 1-4 times per week.
  • +
  • Wait 24 to 48 hours between intense sessions for recovery.
  • +
+
+ + +
+

Zone 5

+
    +
  • Zone 5 training: 1-2 times per week.
  • +
  • Wait 48 hours between sessions for recovery.
  • +
  • Zone 5 increases VO2 max and endurance at VO2 max.
  • +
+
+
+ + +
+

Zone 3, 4, 5 can be combined with Zone 1 or 2 - the higher zone should be done first!

+
+
+
+ + +
+
+
+ CONTACT: info@sportandhighperformance.com + WEBSITE: www.sportandhighperformance.com + SOCIAL: @sportandhighperformance +
+
+ 13 +
+
+
+ diff --git a/report_gen/page_15.html b/report_gen/page_15.html index e69de29..c5ec13c 100644 --- a/report_gen/page_15.html +++ b/report_gen/page_15.html @@ -0,0 +1,97 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: Keirstyn Moran + Age: 34 + Height: 5'4" + Weight: 123lbs + Focus: Endurance +
+
+ + +
+ +

Next Steps:

+ + +
+

Calorie Tracking

+
    +
  • Download and create an account with My Fitness Pal (or preferred nutrition tracker)
  • +
  • Fill out the "My Profile" section with your goals (ie: height, weight, target weight) +
      +
    • Input your Macros
    • +
    • Click the three dots on the bottom right corner
    • +
    • Click "Goals"
    • +
    • Click "Calorie, Carbs, Protein and Fat Goals" under the Nutrition Goals
    • +
    • Set the Calories, Carbs, Protein, and Fat to the recommended macro outlined above.
    • +
    +
  • +
  • Once completed fill out your food intake from each meal on the main page
  • +
+ + +
+

It's highly recommended to purchase a weight and food scale for more accurate results.

+
+
+ + +
+

Daily Tasks

+
    +
  • Weigh yourself in the morning, after your first bowel movement, and naked
  • +
  • Log your weight into your my fitness pal app
  • +
  • Track calories in grams - FOLLOW YOUR PERSONAL RECOMMENDATIONS.
  • +
  • Log in a diary: +
      +
    • Log any additional prescribed recommendation (i.e breath work)
    • +
    • Complete the prescribed training recommendations (i.e Zone 2 Training)
    • +
    • Log additional physical activity (i.e Monday - Strength Training 1 hour)
    • +
    +
  • +
+
+ + +
+

Two weeks after Appointment

+
    +
  • Should you find the macronutrient breakdown difficult to follow, reach out to us to discuss a change within your caloric parameters
  • +
+
+ + +
+

Should you have any questions or concerns please contact us!

+
+ + +
+

+ Recommended Next Testing Date: + October 2025 +

+
+
+ + +
+
+
+ CONTACT: info@ishplabs.com + WEBSITE: www.ishplabs.com + SOCIAL: @ishplabs +
+
+ 14 +
+
+
+ diff --git a/report_gen/page_16.html b/report_gen/page_16.html index e69de29..3d2030a 100644 --- a/report_gen/page_16.html +++ b/report_gen/page_16.html @@ -0,0 +1,84 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: Keirstyn Moran + Age: 34 + Height: 5'4" + Weight: 123lbs + Focus: Endurance +
+
+ + +
+ +

Glossary

+ + +
+

Body Fat Percentage:

+

The percentage of your overall body weight that is composed of fat cells. Body fat percentage can be reduced by either losing weight from fat mass, while maintaining lean mass, or maintaining fat mass while increasing lean mass.

+
+ + +
+

Metabolic Rate:

+

Metabolic Rate measures the number of calories your body burns for basic functions and movement, based on factors like weight, age, gender, and height. A higher metabolic rate helps prevent weight gain and supports weight loss by ensuring you burn enough calories. Tracking metabolic rate is key for managing weight and preventing conditions linked to metabolic dysfunction. Positive influences include resistance exercise, proper sleep, and adequate protein, while negative factors include extreme dieting, yo-yo dieting, and excessive cardio. Improving it involves resistance training and optimal nutrition.

+
+ + +
+

Fuel Source:

+

Fat-burning efficiency measures your cells' ability to use fat as fuel, reflecting mitochondrial and cellular health. It indicates how well your body balances fat and carbohydrate usage to support energy needs, assessed by analyzing oxygen and carbon dioxide in your breath. High fat-burning efficiency suggests strong metabolic and mitochondrial function, linked to better weight management and longevity.

+

To improve fat-burning efficiency, focus on Zone 2 endurance training and potentially intermittent fasting to enhance oxygen absorption and cellular function. Zone 5 interval training will also help improve fat burning mitochondrial density and capillarization. Factors that reduce fat burning ability include diets high in processed foods, alcohol, and large meals before bed. Conditions related to metabolic stress also hinder fat burning abilities.

+
+ + +
+

NEAT (Non-Exercise Activity Thermogenesis)

+

refers to the energy expended for all activities that are not deliberate exercise or structured physical activity. This includes daily movements such as walking, fidgeting, standing, cleaning, typing, and even simple tasks like cooking or shopping. NEAT contributes significantly to the total caloric expenditure and plays a key role in maintaining body weight and overall energy balance. It varies widely among individuals, depending on lifestyle, occupation, and habits.

+
+ + +
+

Spirometry:

+

Spirometry is a diagnostic device used to provide objective measurements of lung volumes and capacities. Lung function is crucial for oxygen delivery during physical activity, and comparing spirometry results to expected values can highlight any potential limitations to performance.

+

"From a Performance standpoint, it is essential in making informed training recommendations related to respiratory health to optimize endurance performance and metabolic health."

+ + +
    +
  • FEV1: Forced Expiratory Volume - the total amount of air expelled in the first second.
  • +
  • FVC: Forced Vital Capacity - the maximum amount of air exhaled in one breath after a maximum inhalation
  • +
  • FEV1/FVC: Calculated ratio used in the diagnosis of obstructive & restrictive lung disease.
  • +
+ +

By comparing these measurements to expected values based on age, gender, height and ethnicity, healthcare professionals can diagnose a range of lung conditions such as asthma, COPD, restrictive lung diseases, and more.

+
+ + +
+

VO2 max:

+

VO2 Max, or maximal oxygen consumption serves as a valuable indicator of overall fitness, cardiovascular health, and endurance capacity. VO2 max reflects the efficiency of your heart lung system in pumping oxygen-rich blood to working muscles. A higher VO2 max indicates a stronger cardiovascular system, which is associated with a reduced risk of heart disease and other cardiovascular issues.

+

Understanding and training to increase your VO2 max can contribute to enhanced physical performance, longevity and well-being.

+
+
+ + +
+
+
+ CONTACT: info@ishplabs.com + WEBSITE: www.ishplabs.com + SOCIAL: @ishplabs +
+
+ 15 +
+
+
+ diff --git a/report_gen/page_17.html b/report_gen/page_17.html index e69de29..541cb45 100644 --- a/report_gen/page_17.html +++ b/report_gen/page_17.html @@ -0,0 +1,173 @@ + + +
+
+
ISHP
+
+
+
+ Name: Keirstyn Moran + Age: 34 + Height: 5'4" + Weight: 123lbs + Focus: Endurance +
+
+ + +
+

Glossary

+ +
+ +
+

Peak VT:

+

+ Peak Volume of air moved throughout the test. +

+

+ Respiratory Capability Limitations that can be found + include: +

+
    +
  • + Endurance: Normal capacity, but + cannot maintain their VT over time. +
  • +
  • + Strength/Power: Normal capacity, + but peak VT is not 75-85% of their FEV1 despite FEV1 + being normal +
  • +
  • + Coordination (Hyper/Hypo-Ventilation): + Normal capacity, but uses low volumes +/- high BFs + at lower intensities. A breathing coordination + limitation can also be identified by the loss of + volume at higher intensities, which are then + recovered upon recovery/stop of activity. +
  • +
+
+ + +
+

VO2 Pulse:

+

+ VO2 Pulse refers to the relationship between oxygen + consumption (VO2) and heart rate (HR) during exercise. + This measure gives insight into how efficiently the body + is using oxygen in relation to the heart's output. A + higher VO2 Pulse suggests that an individual is able to + deliver oxygen more efficiently to the muscles with each + heartbeat. +

+
+ + +
+

VO2 Breath:

+

+ VO2 Breath refers to the amount of oxygen consumed per + breath during exercise, which indicates how effectively + the body delivers oxygen to the bloodstream through the + lungs with each breath. A more efficient VO2 Breath + means the body requires less effort to obtain the same + amount of oxygen, indicating better respiratory + efficiency and oxygen utilization. +

+
+ + +
+

Carb & Fat Crossover:

+

+ The point during exercise at which the body shifts its + predominant fuel source from fats to carbohydrates. This + transition typically occurs as exercise intensity + increases, and marks the transition from Zone 2 into + Zone 3. As exercise intensity increases, the body starts + to rely more on carbohydrates because they provide + faster energy. +

+

+ Endurance training (e.g., long, steady-state cardio + within Zones 1 & 2) increases the body's ability to burn + fat efficiently at higher intensities, shifting the + crossover point to a faster speed, or higher heart + rate/intensity. Because fat stores are much larger and + can provide a steady stream of energy for prolonged + periods, a higher CHO/FAT crossover can help delay + fatigue, which is especially beneficial in + longer-duration events, where carbohydrate depletion can + lead to a significant drop in performance. +

+
+ + +
+

Cardiovascular Recovery:

+

+ The percentage your heart rate drops within the first + minute of the inactive recovery phase in relation to the + lowest heart rate recorded prior to the start of the + test. +

+
+ + +
+

Metabolic (CO2) Recovery:

+

+ The percentage that your VCO2 levels (amount of CO2 you + are exhaling) drop within the first 1.5 minutes of the + inactive recovery phase in relation to the lowest VCO2 + recorded prior to the start of the test. +

+

+ refers to the rate at which the body clears carbon + dioxide (CO2) after exercise, reflecting the efficiency + of the cardiovascular and respiratory systems in + returning CO2 levels to baseline. A faster VCO2 recovery + indicates effective management of metabolic byproducts, + signaling a healthier metabolic system and lower risk of + metabolic disorders. +

+
+ + +
+

Breath Frequency Recovery:

+

+ Refers to the speed at which the body returns to a + normal breathing rate after physical exertion. Faster + breath frequency recovery indicates a well-conditioned + cardiovascular and respiratory system, allowing the body + to efficiently regulate oxygen and CO2 levels. It + supports better endurance, faster recovery between + intervals, and the ability to sustain higher performance + during repeated efforts or prolonged activity. + Additionally, a quick return to baseline signals that + the autonomic nervous system is functioning well, + reducing stress on the body and promoting more efficient + recovery. This also reflects a healthier metabolic + system, better management of metabolic byproducts like + CO2, and a lower risk of chronic conditions. +

+
+
+
+ + +
+
CONTACT: info@ishplabs.com
+
WEBSITE: www.ishplabs.com
+
SOCIAL: @ishplabs
+
17
+
+ + diff --git a/report_gen/page_18.html b/report_gen/page_18.html index e69de29..9a47c0d 100644 --- a/report_gen/page_18.html +++ b/report_gen/page_18.html @@ -0,0 +1,371 @@ + + + + + + Glossary - Page 18 + + + + +
+
+
ISHP
+
+
+
+ Name: Keirstyn Moran + Age: 34 + Height: 5'4" + Weight: 123lbs + Focus: Endurance +
+
+ + +
+

Glossary

+ + +
+

Local Muscle Activity/SMO2:

+

+ SmO2 testing is a valuable tool for understanding how + muscles respond to various physiological stressors and how + to fine-tune training, nutrition and hydration accordingly. + Monitoring changes in tissue oxygen saturation and + utilization helps identify an individual's optimal intensity + to work at, as well as how well they recover between bouts + of intensity. This can help optimize training to improve + performance, prevent overtraining, and tailor strategies for + better results. +

+

+ During competitions, athletes can also use SmO2 data to pace + themselves effectively. Adjusting intensity based on muscle + oxygenation can help prevent premature fatigue and optimize + race outcomes +

+
+ + +
+

+ Body Fat Percent Master Chart +

+ + +
+
+
+ Age (M) +
+
+ +
+ 20-39 +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+ 40-59 +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+ 60-79 +
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
0%
+
5%
+
10%
+
15%
+
20%
+
25%
+
30%
+
35%
+
40%
+
45%
+
50%
+
+
+
+ + +
+
+
+ Age (F) +
+
+ +
+ 20-39 +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+ 40-59 +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+ 60-79 +
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
0%
+
5%
+
10%
+
15%
+
20%
+
25%
+
30%
+
35%
+
40%
+
45%
+
50%
+
+
+
+
+
+ + +
+
CONTACT: info@ishplabs.com
+
WEBSITE: www.ishplabs.com
+
SOCIAL: @ishplabs
+
18
+
+ + diff --git a/report_gen/page_19.html b/report_gen/page_19.html index e69de29..9090b05 100644 --- a/report_gen/page_19.html +++ b/report_gen/page_19.html @@ -0,0 +1,850 @@ + + + + + + Glossary - Page 19 + + + +
+ +
+
+
ISHP
+
+
+
+ Name: Keirstyn Moran + Age: 34 + Height: 5'4" + Weight: 123lbs + Focus: Endurance +
+
+ + +
+

Glossary

+ + +
+

+ Resting Heart Rate +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Age (M) + + Poor + + Below Average + + Average + + Above Average + + Good + + Excellent + + Athlete +
+ 18-25 + + 85bpm + + + 76-84bpm + + 74-78bpm + + 70-73bpm + + 66-69bpm + + 61-65bpm + + 60-60bpm +
+ 26-35 + + 83bpm + + + 77-82bpm + + 73-76bpm + + 69-72bpm + + 65-68bpm + + 60-64bpm + + 55-59bpm +
+ 36-45 + + 85bpm + + + 79-84bpm + + 74-78bpm + + 70-73bpm + + 65-69bpm + + 60-64bpm + + 55-59bpm +
+ 46-55 + + 84bpm + + + 76-83bpm + + 73-77bpm + + 70-72bpm + + 66-69bpm + + 61-65bpm + + 56-60bpm +
+ 56-65 + + 85bpm + + + 78-84bpm + + 74-77bpm + + 70-73bpm + + 65-69bpm + + 60-64bpm + + 50-59bpm +
+ 65+ + + 84bpm + + + 77-83bpm + + 73-76bpm + + 70-73bpm + + 65-69bpm + + 60-64bpm + + 55-59bpm +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Age (F) + + Poor + + Below Average + + Average + + Above Average + + Good + + Excellent + + Athlete +
+ 18-25 + + 81bpm + + + 74-81bpm + + 73-78bpm + + 66-69bpm + + 62-65bpm + + 56-61bpm + + 50-55bpm +
+ 26-35 + + 82bpm + + + 75-81bpm + + 71-74bpm + + 66-70bpm + + 62-65bpm + + 55-61bpm + + 54-54bpm +
+ 36-45 + + 83bpm + + + 76-82bpm + + 71-75bpm + + 67-70bpm + + 63-66bpm + + 57-62bpm + + 47-56bpm +
+ 46-55 + + 84bpm + + + 77-83bpm + + 72-76bpm + + 68-71bpm + + 64-67bpm + + 58-63bpm + + 49-57bpm +
+ 56-65 + + 82bpm + + + 76-81bpm + + 72-75bpm + + 68-71bpm + + 62-67bpm + + 57-61bpm + + 51-56bpm +
+ 65+ + + 80bpm + + + 74-79bpm + + 70-73bpm + + 66-69bpm + + 62-65bpm + + 56-61bpm + + 52-55bpm +
+
+
+ + +
+

+ VO2 Master Chart +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Age (M) + + Very Poor + + Poor + + Fair + + Good + + Excellent + + Superior +
+ 20-29 + + 29.0-38.1 + + 38.1-44.9 + + 44.9-50.2 + + 50.2-61.8 + + 57.1-66.3 + + 66.3+ +
+ 30-39 + + 27.2-34.1 + + 34.1-39.6 + + 39.6-45.2 + + 45.2-51.6 + + 51.6-59.8 + + 59.8+ +
+ 40-49 + + 24.2-30.5 + + 30.5-35.7 + + 35.7-40.3 + + 40.3-46.7 + + 46.7-55.6 + + 55.6+ +
+ 50-59 + + 20.9-26.1 + + 26.1-30.7 + + 30.7-35.1 + + 35.1-41.2 + + 41.2-50.7 + + 50.7+ +
+ 60-69 + + 17.4-22.4 + + 22.4-26.6 + + 26.6-30.5 + + 30.5-36.1 + + 36.1-43.0 + + 43.0+ +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Age (F) + + Very Poor + + Poor + + Fair + + Good + + Excellent + + Superior +
+ 20-29 + + 21.7-28.6 + + 28.6-34.6 + + 34.6-40.6 + + 40.6-46.5 + + 46.5-56.0 + + 56.0+ +
+ 30-39 + + 19.0-24.1 + + 24.1-28.2 + + 28.2-32.2 + + 32.2-35.7 + + 35.7-45.8 + + 45.8+ +
+ 40-49 + + 17.0-21.3 + + 21.3-24.9 + + 24.9-28.7 + + 28.7-34.0 + + 34.0-41.7 + + 41.7+ +
+ 50-59 + + 16.0-19.1 + + 19.1-24.4 + + 21.8-27.6 + + 25.2-28.6 + + 28.6-35.9 + + 35.9+ +
+ 60-69 + + 13.4-16.5 + + 16.5-18.9 + + 18.9-21.2 + + 21.2-24.6 + + 24.6-29.4 + + 29.4+ +
+
+
+
+ + +
+
CONTACT: info@ishplabs.com
+
WEBSITE: www.ishplabs.com
+
SOCIAL: @ishplabs
+
19
+
+
+ + diff --git a/report_gen/page_3.html b/report_gen/page_3.html index e69de29..b3b9f28 100644 --- a/report_gen/page_3.html +++ b/report_gen/page_3.html @@ -0,0 +1,83 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: {{ patient_name | default('Keirstyn Moran') }} + Age: {{ age | default('34') }} + Height: {{ height | default('5\'4"') }} + Weight: {{ weight | default('123lbs') }} + Focus: {{ focus | default('Endurance') }} +
+
+ + +
+ +

Nutrition Guidelines

+ + +

Ultrasound & Body Composition Assessment

+

Designed to track and optimize exercise and diet. Its proven technology can accurately measure tissue structure and body composition.

+ + +
+

Body Composition

+ + +
+
+ Body Composition Chart + + +
+
Fat Mass ({{ fat_mass | default('27.6lbs') }})
+
{{ fat_percentage | default('22.4%') }}
+
+ +
+
Lean Mass ({{ lean_mass | default('95.4lbs') }})
+
{{ lean_percentage | default('77.6%') }}
+
+
+
+ + +
+

Body Fat Percent - {{ body_fat_percent | default('22.4%') }}

+ + +
+ Body Fat Percentage Chart +
+ + +
+ {{ age_range | default('20-39') }} + ({{ gender | default('F') }}) +
+
+
+
+ + +
+
+
+ CONTACT: {{ contact_email | default('info@ishplabs.com') }} + WEBSITE: {{ website | default('www.ishplabs.com') }} + SOCIAL: {{ social | default('@ishplabs') }} +
+
+ {{ page_number | default('4') }} +
+
+
+ diff --git a/report_gen/page_4.html b/report_gen/page_4.html index e69de29..62a0d01 100644 --- a/report_gen/page_4.html +++ b/report_gen/page_4.html @@ -0,0 +1,147 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: {{ patient_name | default('Keirstyn Moran') }} + Age: {{ age | default('34') }} + Height: {{ height | default('5\'4"') }} + Weight: {{ weight | default('123lbs') }} + Focus: {{ focus | default('Endurance') }} +
+
+ + +
+ +

Overview

+ + +
+ +
+
+
+

Metabolic

+
+ +
+ +
Resting Metabolic Rate
+
Active Metabolic Rate
+ + +
Fat/Carbohydrate Ratio
+
Metabolic Efficiency Low Intensity
+ + +
Metabolism
+
Metabolic Efficiency High Intensity
+ + +
Breathing Frequency
+
+ + +
Breath Volume
+
+ + +
Heart Rate
+
+
+
+ + +
+
+
+

Respiratory

+
+ +
+
Lung Function
+
Lung Capacity
+
Lung Capability
+
Breathing Frequency Zones
+
+
+
+ + +
+ +
+
+
+

Cardiovascular

+
+ +
+
Active Metabolic Rate
+
Aerobic Health (VO2 Max)
+
Training Zones
+
Metabolic Efficiency (VO2 Pulse)
+
+
+ + +
+
+
+

Strength

+
+ +
+
Strength - High Intensity
+
CO2/O2 (RER)
+
Heart Rate
+
Breath Frequency
+
Muscle Efficiency
+
+
+
+ + +
+ +
+
+
+

Recovery

+
+ +
+
Active Metabolic Rate
+
+ Heart Rate + 44 +
+
Metabolic (CO2)
+
Muscle Oxygen
+
Breath Frequency
+
+
+ + +
+
+
+ + +
+
+
+ CONTACT: {{ contact_email | default('info@ishplabs.com') }} + WEBSITE: {{ website | default('www.ishplabs.com') }} + SOCIAL: {{ social | default('@ishplabs') }} +
+
+ {{ page_number | default('3') }} +
+
+
+ diff --git a/report_gen/page_5.html b/report_gen/page_5.html index e69de29..edfee10 100644 --- a/report_gen/page_5.html +++ b/report_gen/page_5.html @@ -0,0 +1,175 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: {{ patient_name | default('Keirstyn Moran') }} + Age: {{ age | default('34') }} + Height: {{ height | default('5\'4"') }} + Weight: {{ weight | default('123lbs') }} + Focus: {{ focus | default('Endurance') }} +
+
+ + +
+ +

Nutrition Guidelines

+ + +

Resting Metabolic Rate Assessment

+

The resting metabolic rate assessment determines the number of calories that you burn at rest, and metabolic health. It is also an indicator of overall health and well-being.

+ + +
+
+

Slow vs Fast Metabolism

+ + +
+ +
+ +
+ {{ resting_calories | default('1386kCals') }} +
+ +
+
+ + +
+ Very Slow + Slow + Average + Fast + Very Fast +
+ + +
+
+
+
+
+
+
+
+
+ + +
+

Fuel Source

+ + +
+
+ +
+
+
Fats
+
{{ fat_percentage | default('33%') }}
+
+
+ +
+
+
Carbs
+
{{ carb_percentage | default('67%') }}
+
+
+
+ + +
+
+
Optimal
+ +
+
+ + +
+ 0 + 25 + 50 + 75 + 100 +
+ + +
+
+
+
+
+
+
+
+
+ + +
+

Caloric Intake

+ + +
+ +
+
{{ resting_calories | default('1386kCals') }}
+
+
Resting
+
Metabolic
+
+
+ + +
+
+ + +
+
{{ neat_calories | default('762kCals') }}
+
NEAT
+
+ + +
-
+ + +
+
{{ weight_loss_calories | default('423kCals') }}
+
+
to lose {{ weight_loss_rate | default('1.1lbs') }}
+
per week
+
+
+ + +
=
+ + +
+
{{ total_calories | default('~1725kCals') }}
+
+
+
+
+
+ + +
+
+
+ CONTACT: {{ contact_email | default('info@ishplabs.com') }} + WEBSITE: {{ website | default('www.ishplabs.com') }} + SOCIAL: {{ social | default('@ishplabs') }} +
+
+ {{ page_number | default('5') }} +
+
+
+ diff --git a/report_gen/page_6.html b/report_gen/page_6.html index e69de29..8d485b7 100644 --- a/report_gen/page_6.html +++ b/report_gen/page_6.html @@ -0,0 +1,246 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: {{ patient_name | default('Keirstyn Moran') }} + Age: {{ age | default('34') }} + Height: {{ height | default('5\'4"') }} + Weight: {{ weight | default('123lbs') }} + Focus: {{ focus | default('Endurance') }} +
+
+ + +
+ +

Weekly Meal Plan Breakdown

+ + +
+

Caloric Deficit Example

+ + +
+ +
+
Monday
+
{{ deficit_calories | default('1725KCals') }}
+
+
{{ deficit_protein | default('120g Protein') }}
+
{{ deficit_carbs | default('155g Carbs') }}
+
{{ deficit_fat | default('69g Fat') }}
+
{{ deficit_fiber | default('25g Fibre') }}
+
+
+ + +
+
Tuesday
+
{{ deficit_calories | default('1725KCals') }}
+
+
{{ deficit_protein | default('120g Protein') }}
+
{{ deficit_carbs | default('155g Carbs') }}
+
{{ deficit_fat | default('69g Fat') }}
+
{{ deficit_fiber | default('25g Fibre') }}
+
+
+ + +
+
Wednesday
+
{{ deficit_calories | default('1725KCals') }}
+
+
{{ deficit_protein | default('120g Protein') }}
+
{{ deficit_carbs | default('155g Carbs') }}
+
{{ deficit_fat | default('69g Fat') }}
+
{{ deficit_fiber | default('25g Fibre') }}
+
+
+ + +
+
Thursday
+
{{ deficit_calories | default('1725KCals') }}
+
+
{{ deficit_protein | default('120g Protein') }}
+
{{ deficit_carbs | default('155g Carbs') }}
+
{{ deficit_fat | default('69g Fat') }}
+
{{ deficit_fiber | default('25g Fibre') }}
+
+
+ + +
+
Friday
+
{{ deficit_calories | default('1725KCals') }}
+
+
{{ deficit_protein | default('120g Protein') }}
+
{{ deficit_carbs | default('155g Carbs') }}
+
{{ deficit_fat | default('69g Fat') }}
+
{{ deficit_fiber | default('25g Fibre') }}
+
+
+ + +
+
Saturday
+
{{ deficit_calories | default('1725KCals') }}
+
+
{{ deficit_protein | default('120g Protein') }}
+
{{ deficit_carbs | default('155g Carbs') }}
+
{{ deficit_fat | default('69g Fat') }}
+
{{ deficit_fiber | default('25g Fibre') }}
+
+
+ + +
+
Sunday
+
{{ deficit_calories | default('1725KCals') }}
+
+
{{ deficit_protein | default('120g Protein') }}
+
{{ deficit_carbs | default('155g Carbs') }}
+
{{ deficit_fat | default('69g Fat') }}
+
{{ deficit_fiber | default('25g Fibre') }}
+
+
+
+
+ + +
+

Caloric Deficit with Maintenance/Refeed Example

+ + +
+ +
+
Monday
+
{{ refeed_weekday_calories | default('1615KCals') }}
+
+
{{ refeed_weekday_protein | default('120g Protein') }}
+
{{ refeed_weekday_carbs | default('142g Carbs') }}
+
{{ refeed_weekday_fat | default('63g Fat') }}
+
{{ refeed_weekday_fiber | default('24g Fibre') }}
+
+
+ + +
+
Tuesday
+
{{ refeed_weekday_calories | default('1615KCals') }}
+
+
{{ refeed_weekday_protein | default('120g Protein') }}
+
{{ refeed_weekday_carbs | default('142g Carbs') }}
+
{{ refeed_weekday_fat | default('63g Fat') }}
+
{{ refeed_weekday_fiber | default('24g Fibre') }}
+
+
+ + +
+
Wednesday
+
{{ refeed_weekday_calories | default('1615KCals') }}
+
+
{{ refeed_weekday_protein | default('120g Protein') }}
+
{{ refeed_weekday_carbs | default('142g Carbs') }}
+
{{ refeed_weekday_fat | default('63g Fat') }}
+
{{ refeed_weekday_fiber | default('24g Fibre') }}
+
+
+ + +
+
Thursday
+
{{ refeed_weekday_calories | default('1615KCals') }}
+
+
{{ refeed_weekday_protein | default('120g Protein') }}
+
{{ refeed_weekday_carbs | default('142g Carbs') }}
+
{{ refeed_weekday_fat | default('63g Fat') }}
+
{{ refeed_weekday_fiber | default('24g Fibre') }}
+
+
+ + +
+
Friday
+
{{ refeed_weekday_calories | default('1615KCals') }}
+
+
{{ refeed_weekday_protein | default('120g Protein') }}
+
{{ refeed_weekday_carbs | default('142g Carbs') }}
+
{{ refeed_weekday_fat | default('63g Fat') }}
+
{{ refeed_weekday_fiber | default('24g Fibre') }}
+
+
+ + +
+
Saturday
+
{{ refeed_weekend_calories | default('2000KCals') }}
+
+
{{ refeed_weekend_protein | default('120g Protein') }}
+
{{ refeed_weekend_carbs | default('190g Carbs') }}
+
{{ refeed_weekend_fat | default('84g Fat') }}
+
{{ refeed_weekend_fiber | default('30g Fibre') }}
+
+
+ + +
+
Sunday
+
{{ refeed_weekend_calories | default('2000KCals') }}
+
+
{{ refeed_weekend_protein | default('120g Protein') }}
+
{{ refeed_weekend_carbs | default('190g Carbs') }}
+
{{ refeed_weekend_fat | default('84g Fat') }}
+
{{ refeed_weekend_fiber | default('30g Fibre') }}
+
+
+
+
+ + +
+

Macronutrients Recommendations

+ + +
+ +
+
{{ protein_percentage | default('28%') }}
+
Protein
+
+ + +
+
{{ carbs_percentage | default('36%') }}
+
Carbs
+
+ + +
+
{{ fats_percentage | default('36%') }}
+
Fats
+
+
+
+
+ + +
+
+
+ CONTACT: {{ contact_email | default('info@ishplabs.com') }} + WEBSITE: {{ website | default('www.ishplabs.com') }} + SOCIAL: {{ social | default('@ishplabs') }} +
+
+ {{ page_number | default('6') }} +
+
+
+ diff --git a/report_gen/page_7.html b/report_gen/page_7.html index e69de29..1413a4e 100644 --- a/report_gen/page_7.html +++ b/report_gen/page_7.html @@ -0,0 +1,180 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: {{ patient_name | default('Keirstyn Moran') }} + Age: {{ age | default('34') }} + Height: {{ height | default('5\'4"') }} + Weight: {{ weight | default('123lbs') }} + Focus: {{ focus | default('Endurance') }} +
+
+ + +
+ +

Lung Analysis

+ + +

Spirometry Assessment

+

Spirometry is a diagnostic device that assesses how well a person breathes and how their lungs are functioning. Lung function is crucial for oxygen delivery during physical activity. Comparing results to expected/normal values can highlight potential limitations that would require additional lung training to improve overall physical activity.

+ + +
+ +
+
+
Lung Volume
+
LLN
+
+
+ +
+
+
+
+
+
+
+ +
+
Predicted
+ +
+ +
+ -5 + -4 + -3 + -2 + -1 + 0 + 1 + 2 + 3 +
+
+
+
FVC
+
{{ fvc_value | default('4.24L → 112.0%') }}
+
of predicted
+
+
+ + +
+
+
Lung Power
+
+
+ +
+
+
+
+
+
+
+ +
+ +
+ +
+ -5 + -4 + -3 + -2 + -1 + 0 + 1 + 2 + 3 +
+
+
+
FEV1
+
{{ fev1_value | default('3.26L → 103.3%') }}
+
of predicted
+
+
+ + +
+
+
Power/Volume
+
+
+ +
+
+
+
+
+
+
+ +
+ -5 + -4 + -3 + -2 + -1 + 0 + 1 + 2 + 3 +
+
+
+
FEV1/FVC
+
{{ fev1_fvc_ratio | default('76.89% → 91.8%') }}
+
of predicted
+
+
+
+ + +
+

Indications

+

{{ indication | default('No Respiratory Capacity Limitation') }}

+
+ + +
+

Respiratory

+ + +
+ Respiratory Analysis Chart +
+ + +
+

Peak VT

+

{{ peak_vt_value | default('2.38L/Breath which occurs at 172bpm (Zone 3)') }}

+

{{ peak_vt_percentage | default('73% of FEV1') }}

+
+
+
+ + +
+
+
+ CONTACT: {{ contact_email | default('info@ishplabs.com') }} + WEBSITE: {{ website | default('www.ishplabs.com') }} + SOCIAL: {{ social | default('@ishplabs') }} +
+
+ {{ page_number | default('7') }} +
+
+
+ diff --git a/report_gen/page_8.html b/report_gen/page_8.html index e69de29..24d874e 100644 --- a/report_gen/page_8.html +++ b/report_gen/page_8.html @@ -0,0 +1,225 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: {{ patient_name | default('Keirstyn Moran') }} + Age: {{ age | default('34') }} + Height: {{ height | default('5\'4"') }} + Weight: {{ weight | default('123lbs') }} + Focus: {{ focus | default('Endurance') }} +
+
+ + +
+ +

Cardio Metrics

+ + +

Active Metabolic Rate Assessment

+

The active metabolic rate assessment is a key measure of aerobic fitness. It helps determine your specific heart rate zones and how well your body uses carbohydrates and fats as fuel while you exercise. It is also an indicator of overall health and wellbeing.

+ + +
+

VO2 Max - {{ vo2_max_value | default('49.5') }} ({{ vo2_max_percentile | default('100th percentile') }})

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + +
Age (F)Very PoorPoorFairGoodExcellent + Superior + +
+ +
+
{{ age_range | default('30-39') }}{{ very_poor_range | default('19.0-24.1') }}{{ poor_range | default('24.1-28.2') }}{{ fair_range | default('28.2-32.2') }}{{ good_range | default('32.2-35.7') }}{{ excellent_range | default('35.7-45.8') }}{{ superior_range | default('45.8+') }}
+
+
+ + +
+

Personalized Heart Rate Zones

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Zone 1Zone 2Zone 3Zone 4Zone 5
+
Improves health and recovery capacity
+
+
Improves endurance and fat burning
+
+
Improves Aerobic fitness
+
+
Improves maximum performance capacity
+
+
Develops maximum performance and speed
+
{{ zone1_percentage | default('55-65% of Max Heart Rate') }}{{ zone2_percentage | default('65-75% of Max Heart Rate') }}{{ zone3_percentage | default('80-85% of Max Heart Rate') }}{{ zone4_percentage | default('85-88% of Max Heart Rate') }}{{ zone5_percentage | default('90% of Max Heart Rate') }}
{{ zone1_bpm | default('81-96bpm') }}{{ zone2_bpm | default('96-100bpm') }}{{ zone3_bpm | default('100-178bpm') }}{{ zone4_bpm | default('178-188bpm') }}{{ zone5_bpm | default('188-198bpm') }}
+
{{ zone1_speed | default('3.5mph') }}
+
{{ zone1_incline | default('2% Incline') }}
+
+
{{ zone2_speed | default('3.5-4.0mph') }}
+
{{ zone2_incline | default('2% Incline') }}
+
+
{{ zone3_speed | default('4.0-6.5mph') }}
+
{{ zone3_incline | default('2% Incline') }}
+
+
{{ zone4_speed | default('6.5-7.0mph') }}
+
{{ zone4_incline | default('2% Incline') }}
+
+
{{ zone5_speed | default('7.0-8.0mph') }}
+
{{ zone5_incline | default('2% Incline') }}
+
{{ zone1_pace | default('10:39min/km Pace') }}{{ zone2_pace | default('10:39-9:19min/km Pace') }}{{ zone3_pace | default('9:19-5:44min/km Pace') }}{{ zone4_pace | default('5:44-5:20min/km Pace') }}{{ zone5_pace | default('5:20-4:40min/km Pace') }}
+
Avg:
+
{{ zone1_calories | default('4.4kcals/minute') }}
+
+
Avg:
+
{{ zone2_calories | default('5.9kcals/minute') }}
+
+
Avg:
+
{{ zone3_calories | default('9.4kcals/minute') }}
+
+
Avg:
+
{{ zone4_calories | default('12.5kcals/minute') }}
+
+
Avg:
+
{{ zone5_calories | default('12.8kcals/minute') }}
+
{{ zone1_carb | default('Avg: 0.4g/min Carb Utilization') }}{{ zone2_carb | default('Avg: 0.6g/min Carb Utilization') }}{{ zone3_carb | default('Avg: 1.9g/min Carb Utilization') }}{{ zone4_carb | default('Avg: 2.9g/min Carb Utilization') }}{{ zone5_carb | default('Avg: 3.1g/min Carb Utilization') }}
+
{{ zone1_breaths | default('Avg: 27 breaths') }}
+
{{ zone1_breath_range | default('Ideal Range: 15-20 breaths') }}
+
+
{{ zone2_breaths | default('Avg: 28 breaths') }}
+
{{ zone2_breath_range | default('Ideal Range: 20-25 breaths') }}
+
+
{{ zone3_breaths | default('Avg: 31 breaths') }}
+
{{ zone3_breath_range | default('Ideal Range: 25-30 breaths') }}
+
+
{{ zone4_breaths | default('Avg: 42 breaths') }}
+
{{ zone4_breath_range | default('Ideal Range: 30-35 breaths') }}
+
+
{{ zone5_breaths | default('Avg: 51 breaths') }}
+
{{ zone5_breath_range | default('Ideal Range: 40+ breaths') }}
+
+
+
+ + +
+
+
+ CONTACT: {{ contact_email | default('info@ishplabs.com') }} + WEBSITE: {{ website | default('www.ishplabs.com') }} + SOCIAL: {{ social | default('@ishplabs') }} +
+
+ {{ page_number | default('8') }} +
+
+
+ diff --git a/report_gen/page_9.html b/report_gen/page_9.html index e69de29..94f4ac3 100644 --- a/report_gen/page_9.html +++ b/report_gen/page_9.html @@ -0,0 +1,48 @@ +
+ +
+
+
ISHP
+
+
+
+ Name: {{ patient_name | default('Keirstyn Moran') }} + Age: {{ age | default('34') }} + Height: {{ height | default('5\'4"') }} + Weight: {{ weight | default('123lbs') }} + Focus: {{ focus | default('Endurance') }} +
+
+ + +
+ +
+ Fuel Utilization Report - Institute of Science, Health and Performance +
+ + +
+

+ Client: {{ client_name | default('Keirstyn Moran') }} | + Assessment Date: {{ assessment_date | default('July 29 2025') }} +

+
+
+ + +
+
+
+ CONTACT: {{ contact_email | default('info@ishplabs.com') }} + WEBSITE: {{ website | default('www.ishplabs.com') }} + SOCIAL: {{ social | default('@ishplabs') }} +
+
+ {{ page_number | default('9') }} +
+
+
+