diff --git a/lab-dw-aggregating.ipynb b/lab-dw-aggregating.ipynb index fadd718..8b1254b 100644 --- a/lab-dw-aggregating.ipynb +++ b/lab-dw-aggregating.ipynb @@ -1,165 +1,1908 @@ { - "cells": [ + "cells": [ + { + "cell_type": "markdown", + "id": "31969215-2a90-4d8b-ac36-646a7ae13744", + "metadata": { + "id": "31969215-2a90-4d8b-ac36-646a7ae13744" + }, + "source": [ + "# Lab | Data Aggregation and Filtering" + ] + }, + { + "cell_type": "markdown", + "id": "a8f08a52-bec0-439b-99cc-11d3809d8b5d", + "metadata": { + "id": "a8f08a52-bec0-439b-99cc-11d3809d8b5d" + }, + "source": [ + "In this challenge, we will continue to work with customer data from an insurance company. We will use the dataset called marketing_customer_analysis.csv, which can be found at the following link:\n", + "\n", + "https://raw.githubusercontent.com/data-bootcamp-v4/data/main/marketing_customer_analysis.csv\n", + "\n", + "This dataset contains information such as customer demographics, policy details, vehicle information, and the customer's response to the last marketing campaign. Our goal is to explore and analyze this data by first performing data cleaning, formatting, and structuring." + ] + }, + { + "cell_type": "markdown", + "id": "9c98ddc5-b041-4c94-ada1-4dfee5c98e50", + "metadata": { + "id": "9c98ddc5-b041-4c94-ada1-4dfee5c98e50" + }, + "source": [ + "1. Create a new DataFrame that only includes customers who:\n", + " - have a **low total_claim_amount** (e.g., below $1,000),\n", + " - have a response \"Yes\" to the last marketing campaign." + ] + }, + { + "cell_type": "markdown", + "id": "b9be383e-5165-436e-80c8-57d4c757c8c3", + "metadata": { + "id": "b9be383e-5165-436e-80c8-57d4c757c8c3" + }, + "source": [ + "2. Using the original Dataframe, analyze:\n", + " - the average `monthly_premium` and/or customer lifetime value by `policy_type` and `gender` for customers who responded \"Yes\", and\n", + " - compare these insights to `total_claim_amount` patterns, and discuss which segments appear most profitable or low-risk for the company." + ] + }, + { + "cell_type": "markdown", + "id": "7050f4ac-53c5-4193-a3c0-8699b87196f0", + "metadata": { + "id": "7050f4ac-53c5-4193-a3c0-8699b87196f0" + }, + "source": [ + "3. Analyze the total number of customers who have policies in each state, and then filter the results to only include states where there are more than 500 customers." + ] + }, + { + "cell_type": "markdown", + "id": "b60a4443-a1a7-4bbf-b78e-9ccdf9895e0d", + "metadata": { + "id": "b60a4443-a1a7-4bbf-b78e-9ccdf9895e0d" + }, + "source": [ + "4. Find the maximum, minimum, and median customer lifetime value by education level and gender. Write your conclusions." + ] + }, + { + "cell_type": "markdown", + "id": "b42999f9-311f-481e-ae63-40a5577072c5", + "metadata": { + "id": "b42999f9-311f-481e-ae63-40a5577072c5" + }, + "source": [ + "## Bonus" + ] + }, + { + "cell_type": "markdown", + "id": "81ff02c5-6584-4f21-a358-b918697c6432", + "metadata": { + "id": "81ff02c5-6584-4f21-a358-b918697c6432" + }, + "source": [ + "5. The marketing team wants to analyze the number of policies sold by state and month. Present the data in a table where the months are arranged as columns and the states are arranged as rows." + ] + }, + { + "cell_type": "markdown", + "id": "b6aec097-c633-4017-a125-e77a97259cda", + "metadata": { + "id": "b6aec097-c633-4017-a125-e77a97259cda" + }, + "source": [ + "6. Display a new DataFrame that contains the number of policies sold by month, by state, for the top 3 states with the highest number of policies sold.\n", + "\n", + "*Hint:*\n", + "- *To accomplish this, you will first need to group the data by state and month, then count the number of policies sold for each group. Afterwards, you will need to sort the data by the count of policies sold in descending order.*\n", + "- *Next, you will select the top 3 states with the highest number of policies sold.*\n", + "- *Finally, you will create a new DataFrame that contains the number of policies sold by month for each of the top 3 states.*" + ] + }, + { + "cell_type": "markdown", + "id": "ba975b8a-a2cf-4fbf-9f59-ebc381767009", + "metadata": { + "id": "ba975b8a-a2cf-4fbf-9f59-ebc381767009" + }, + "source": [ + "7. The marketing team wants to analyze the effect of different marketing channels on the customer response rate.\n", + "\n", + "Hint: You can use melt to unpivot the data and create a table that shows the customer response rate (those who responded \"Yes\") by marketing channel." + ] + }, + { + "cell_type": "markdown", + "id": "e4378d94-48fb-4850-a802-b1bc8f427b2d", + "metadata": { + "id": "e4378d94-48fb-4850-a802-b1bc8f427b2d" + }, + "source": [ + "External Resources for Data Filtering: https://towardsdatascience.com/filtering-data-frames-in-pandas-b570b1f834b9" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "449513f4-0459-46a0-a18d-9398d974c9ad", + "metadata": { + "id": "449513f4-0459-46a0-a18d-9398d974c9ad" + }, + "outputs": [ { - "cell_type": "markdown", - "id": "31969215-2a90-4d8b-ac36-646a7ae13744", - "metadata": { - "id": "31969215-2a90-4d8b-ac36-646a7ae13744" - }, - "source": [ - "# Lab | Data Aggregation and Filtering" + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0CustomerStateCustomer Lifetime ValueResponseCoverageEducationEffective To DateEmploymentStatusGender...Number of Open ComplaintsNumber of PoliciesPolicy TypePolicyRenew Offer TypeSales ChannelTotal Claim AmountVehicle ClassVehicle SizeVehicle Type
00DK49336Arizona4809.216960NoBasicCollege2/18/11EmployedM...0.09Corporate AutoCorporate L3Offer3Agent292.800000Four-Door CarMedsizeNaN
11KX64629California2228.525238NoBasicCollege1/18/11UnemployedF...0.01Personal AutoPersonal L3Offer4Call Center744.924331Four-Door CarMedsizeNaN
22LZ68649Washington14947.917300NoBasicBachelor2/10/11EmployedM...0.02Personal AutoPersonal L3Offer3Call Center480.000000SUVMedsizeA
33XL78013Oregon22332.439460YesExtendedCollege1/11/11EmployedM...0.02Corporate AutoCorporate L3Offer2Branch484.013411Four-Door CarMedsizeA
44QA50777Oregon9025.067525NoPremiumBachelor1/17/11Medical LeaveF...NaN7Personal AutoPersonal L2Offer1Branch707.925645Four-Door CarMedsizeNaN
..................................................................
1090510905FE99816Nevada15563.369440NoPremiumBachelor1/19/11UnemployedF...NaN7Personal AutoPersonal L1Offer3Web1214.400000Luxury CarMedsizeA
1090610906KX53892Oregon5259.444853NoBasicCollege1/6/11EmployedF...0.06Personal AutoPersonal L3Offer2Branch273.018929Four-Door CarMedsizeA
1090710907TL39050Arizona23893.304100NoExtendedBachelor2/6/11EmployedF...0.02Corporate AutoCorporate L3Offer1Web381.306996Luxury SUVMedsizeNaN
1090810908WA60547California11971.977650NoPremiumCollege2/13/11EmployedF...4.06Personal AutoPersonal L1Offer1Branch618.288849SUVMedsizeA
1090910909IV32877NaN6857.519928NaNBasicBachelor1/8/11UnemployedM...0.03Personal AutoPersonal L1Offer4Web1021.719397SUVMedsizeNaN
\n", + "

10910 rows × 26 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 Customer State Customer Lifetime Value Response \\\n", + "0 0 DK49336 Arizona 4809.216960 No \n", + "1 1 KX64629 California 2228.525238 No \n", + "2 2 LZ68649 Washington 14947.917300 No \n", + "3 3 XL78013 Oregon 22332.439460 Yes \n", + "4 4 QA50777 Oregon 9025.067525 No \n", + "... ... ... ... ... ... \n", + "10905 10905 FE99816 Nevada 15563.369440 No \n", + "10906 10906 KX53892 Oregon 5259.444853 No \n", + "10907 10907 TL39050 Arizona 23893.304100 No \n", + "10908 10908 WA60547 California 11971.977650 No \n", + "10909 10909 IV32877 NaN 6857.519928 NaN \n", + "\n", + " Coverage Education Effective To Date EmploymentStatus Gender ... \\\n", + "0 Basic College 2/18/11 Employed M ... \n", + "1 Basic College 1/18/11 Unemployed F ... \n", + "2 Basic Bachelor 2/10/11 Employed M ... \n", + "3 Extended College 1/11/11 Employed M ... \n", + "4 Premium Bachelor 1/17/11 Medical Leave F ... \n", + "... ... ... ... ... ... ... \n", + "10905 Premium Bachelor 1/19/11 Unemployed F ... \n", + "10906 Basic College 1/6/11 Employed F ... \n", + "10907 Extended Bachelor 2/6/11 Employed F ... \n", + "10908 Premium College 2/13/11 Employed F ... \n", + "10909 Basic Bachelor 1/8/11 Unemployed M ... \n", + "\n", + " Number of Open Complaints Number of Policies Policy Type \\\n", + "0 0.0 9 Corporate Auto \n", + "1 0.0 1 Personal Auto \n", + "2 0.0 2 Personal Auto \n", + "3 0.0 2 Corporate Auto \n", + "4 NaN 7 Personal Auto \n", + "... ... ... ... \n", + "10905 NaN 7 Personal Auto \n", + "10906 0.0 6 Personal Auto \n", + "10907 0.0 2 Corporate Auto \n", + "10908 4.0 6 Personal Auto \n", + "10909 0.0 3 Personal Auto \n", + "\n", + " Policy Renew Offer Type Sales Channel Total Claim Amount \\\n", + "0 Corporate L3 Offer3 Agent 292.800000 \n", + "1 Personal L3 Offer4 Call Center 744.924331 \n", + "2 Personal L3 Offer3 Call Center 480.000000 \n", + "3 Corporate L3 Offer2 Branch 484.013411 \n", + "4 Personal L2 Offer1 Branch 707.925645 \n", + "... ... ... ... ... \n", + "10905 Personal L1 Offer3 Web 1214.400000 \n", + "10906 Personal L3 Offer2 Branch 273.018929 \n", + "10907 Corporate L3 Offer1 Web 381.306996 \n", + "10908 Personal L1 Offer1 Branch 618.288849 \n", + "10909 Personal L1 Offer4 Web 1021.719397 \n", + "\n", + " Vehicle Class Vehicle Size Vehicle Type \n", + "0 Four-Door Car Medsize NaN \n", + "1 Four-Door Car Medsize NaN \n", + "2 SUV Medsize A \n", + "3 Four-Door Car Medsize A \n", + "4 Four-Door Car Medsize NaN \n", + "... ... ... ... \n", + "10905 Luxury Car Medsize A \n", + "10906 Four-Door Car Medsize A \n", + "10907 Luxury SUV Medsize NaN \n", + "10908 SUV Medsize A \n", + "10909 SUV Medsize NaN \n", + "\n", + "[10910 rows x 26 columns]" ] - }, + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code goes here\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "file_path = \"https://raw.githubusercontent.com/data-bootcamp-v4/data/main/marketing_customer_analysis.csv\"\n", + "\n", + "df = pd.read_csv(file_path)\n", + "df\n", + "# df.info()\n", + "# df.dtypes\n", + "# df.nunique()\n", + "# df.describe()\n", + "# display(df.isna().sum())\n", + "# display((df.isna().sum()/df.shape[0])*100)\n", + "# df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "b340f67e-2d77-4f09-b134-66f3d05c5ed0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 10910 entries, 0 to 10909\n", + "Data columns (total 26 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Unnamed: 0 10910 non-null int64 \n", + " 1 Customer 10910 non-null object \n", + " 2 State 10279 non-null object \n", + " 3 Customer Lifetime Value 10910 non-null float64\n", + " 4 Response 10279 non-null object \n", + " 5 Coverage 10910 non-null object \n", + " 6 Education 10910 non-null object \n", + " 7 Effective To Date 10910 non-null object \n", + " 8 EmploymentStatus 10910 non-null object \n", + " 9 Gender 10910 non-null object \n", + " 10 Income 10910 non-null int64 \n", + " 11 Location Code 10910 non-null object \n", + " 12 Marital Status 10910 non-null object \n", + " 13 Monthly Premium Auto 10910 non-null int64 \n", + " 14 Months Since Last Claim 10277 non-null float64\n", + " 15 Months Since Policy Inception 10910 non-null int64 \n", + " 16 Number of Open Complaints 10277 non-null float64\n", + " 17 Number of Policies 10910 non-null int64 \n", + " 18 Policy Type 10910 non-null object \n", + " 19 Policy 10910 non-null object \n", + " 20 Renew Offer Type 10910 non-null object \n", + " 21 Sales Channel 10910 non-null object \n", + " 22 Total Claim Amount 10910 non-null float64\n", + " 23 Vehicle Class 10288 non-null object \n", + " 24 Vehicle Size 10288 non-null object \n", + " 25 Vehicle Type 5428 non-null object \n", + "dtypes: float64(4), int64(5), object(17)\n", + "memory usage: 2.2+ MB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "f3b778ba-e6ca-4004-b4de-bf783e193bb5", + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "id": "a8f08a52-bec0-439b-99cc-11d3809d8b5d", - "metadata": { - "id": "a8f08a52-bec0-439b-99cc-11d3809d8b5d" - }, - "source": [ - "In this challenge, we will continue to work with customer data from an insurance company. We will use the dataset called marketing_customer_analysis.csv, which can be found at the following link:\n", - "\n", - "https://raw.githubusercontent.com/data-bootcamp-v4/data/main/marketing_customer_analysis.csv\n", - "\n", - "This dataset contains information such as customer demographics, policy details, vehicle information, and the customer's response to the last marketing campaign. Our goal is to explore and analyze this data by first performing data cleaning, formatting, and structuring." + "data": { + "text/plain": [ + "Unnamed: 0 10910\n", + "Customer 9134\n", + "State 5\n", + "Customer Lifetime Value 8041\n", + "Response 2\n", + "Coverage 3\n", + "Education 5\n", + "Effective To Date 59\n", + "EmploymentStatus 5\n", + "Gender 2\n", + "Income 5694\n", + "Location Code 3\n", + "Marital Status 3\n", + "Monthly Premium Auto 202\n", + "Months Since Last Claim 36\n", + "Months Since Policy Inception 100\n", + "Number of Open Complaints 6\n", + "Number of Policies 9\n", + "Policy Type 3\n", + "Policy 9\n", + "Renew Offer Type 4\n", + "Sales Channel 4\n", + "Total Claim Amount 5106\n", + "Vehicle Class 6\n", + "Vehicle Size 3\n", + "Vehicle Type 1\n", + "Month 2\n", + "dtype: int64" ] - }, + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.nunique()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d4566702-f6a9-414a-a72a-48b880a215f3", + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "id": "9c98ddc5-b041-4c94-ada1-4dfee5c98e50", - "metadata": { - "id": "9c98ddc5-b041-4c94-ada1-4dfee5c98e50" - }, - "source": [ - "1. Create a new DataFrame that only includes customers who:\n", - " - have a **low total_claim_amount** (e.g., below $1,000),\n", - " - have a response \"Yes\" to the last marketing campaign." + "data": { + "text/plain": [ + "Unnamed: 0 int64\n", + "Customer object\n", + "State object\n", + "Customer Lifetime Value float64\n", + "Response object\n", + "Coverage object\n", + "Education object\n", + "Effective To Date object\n", + "EmploymentStatus object\n", + "Gender object\n", + "Income int64\n", + "Location Code object\n", + "Marital Status object\n", + "Monthly Premium Auto int64\n", + "Months Since Last Claim float64\n", + "Months Since Policy Inception int64\n", + "Number of Open Complaints float64\n", + "Number of Policies int64\n", + "Policy Type object\n", + "Policy object\n", + "Renew Offer Type object\n", + "Sales Channel object\n", + "Total Claim Amount float64\n", + "Vehicle Class object\n", + "Vehicle Size object\n", + "Vehicle Type object\n", + "dtype: object" ] - }, + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "e5712570-100d-482f-b987-5527707dd9e2", + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "id": "b9be383e-5165-436e-80c8-57d4c757c8c3", - "metadata": { - "id": "b9be383e-5165-436e-80c8-57d4c757c8c3" - }, - "source": [ - "2. Using the original Dataframe, analyze:\n", - " - the average `monthly_premium` and/or customer lifetime value by `policy_type` and `gender` for customers who responded \"Yes\", and\n", - " - compare these insights to `total_claim_amount` patterns, and discuss which segments appear most profitable or low-risk for the company." + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0Customer Lifetime ValueIncomeMonthly Premium AutoMonths Since Last ClaimMonths Since Policy InceptionNumber of Open ComplaintsNumber of PoliciesTotal Claim Amount
count10910.00000010910.00000010910.00000010910.00000010277.00000010910.00000010277.00000010910.00000010910.000000
mean5454.5000008018.24109437536.28478593.19605915.14907148.0919340.3842562.979193434.888330
std3149.5900536885.08143430359.19567034.44253210.08034927.9406750.9124572.399359292.180556
min0.0000001898.0076750.00000061.0000000.0000000.0000000.0000001.0000000.099007
25%2727.2500004014.4531130.00000068.0000006.00000024.0000000.0000001.000000271.082527
50%5454.5000005771.14723533813.50000083.00000014.00000048.0000000.0000002.000000382.564630
75%8181.7500008992.77913762250.750000109.00000023.00000071.0000000.0000004.000000547.200000
max10909.00000083325.38119099981.000000298.00000035.00000099.0000005.0000009.0000002893.239678
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 Customer Lifetime Value Income \\\n", + "count 10910.000000 10910.000000 10910.000000 \n", + "mean 5454.500000 8018.241094 37536.284785 \n", + "std 3149.590053 6885.081434 30359.195670 \n", + "min 0.000000 1898.007675 0.000000 \n", + "25% 2727.250000 4014.453113 0.000000 \n", + "50% 5454.500000 5771.147235 33813.500000 \n", + "75% 8181.750000 8992.779137 62250.750000 \n", + "max 10909.000000 83325.381190 99981.000000 \n", + "\n", + " Monthly Premium Auto Months Since Last Claim \\\n", + "count 10910.000000 10277.000000 \n", + "mean 93.196059 15.149071 \n", + "std 34.442532 10.080349 \n", + "min 61.000000 0.000000 \n", + "25% 68.000000 6.000000 \n", + "50% 83.000000 14.000000 \n", + "75% 109.000000 23.000000 \n", + "max 298.000000 35.000000 \n", + "\n", + " Months Since Policy Inception Number of Open Complaints \\\n", + "count 10910.000000 10277.000000 \n", + "mean 48.091934 0.384256 \n", + "std 27.940675 0.912457 \n", + "min 0.000000 0.000000 \n", + "25% 24.000000 0.000000 \n", + "50% 48.000000 0.000000 \n", + "75% 71.000000 0.000000 \n", + "max 99.000000 5.000000 \n", + "\n", + " Number of Policies Total Claim Amount \n", + "count 10910.000000 10910.000000 \n", + "mean 2.979193 434.888330 \n", + "std 2.399359 292.180556 \n", + "min 1.000000 0.099007 \n", + "25% 1.000000 271.082527 \n", + "50% 2.000000 382.564630 \n", + "75% 4.000000 547.200000 \n", + "max 9.000000 2893.239678 " ] - }, + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d5e8b4c8-0f90-4ee7-b19e-02c484101bc6", + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "id": "7050f4ac-53c5-4193-a3c0-8699b87196f0", - "metadata": { - "id": "7050f4ac-53c5-4193-a3c0-8699b87196f0" - }, - "source": [ - "3. Analyze the total number of customers who have policies in each state, and then filter the results to only include states where there are more than 500 customers." + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0Customer Lifetime ValueIncomeMonthly Premium AutoMonths Since Last ClaimMonths Since Policy InceptionNumber of Open ComplaintsNumber of PoliciesTotal Claim Amount
count1399.0000001399.0000001399.0000001399.0000001324.0000001399.0000001324.0000001399.0000001399.000000
mean5369.2930667709.16653038483.35025088.72051514.64048347.4231590.3640482.894210412.134087
std3138.6938256261.52548528191.66486122.6425189.78131526.7977040.9276672.424591180.460971
min3.0000002004.3506660.00000061.0000000.0000000.0000000.0000001.0000007.345946
25%2627.0000003936.41018218495.00000067.0000006.00000025.0000000.0000001.000000312.000000
50%5423.0000005548.03189233190.00000084.00000014.00000050.0000000.0000002.000000398.502948
75%7933.5000009031.21485960920.000000107.00000022.00000068.0000000.0000003.000000528.200860
max10897.00000041787.90343099845.000000154.00000035.00000099.0000005.0000009.000000960.115399
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 Customer Lifetime Value Income \\\n", + "count 1399.000000 1399.000000 1399.000000 \n", + "mean 5369.293066 7709.166530 38483.350250 \n", + "std 3138.693825 6261.525485 28191.664861 \n", + "min 3.000000 2004.350666 0.000000 \n", + "25% 2627.000000 3936.410182 18495.000000 \n", + "50% 5423.000000 5548.031892 33190.000000 \n", + "75% 7933.500000 9031.214859 60920.000000 \n", + "max 10897.000000 41787.903430 99845.000000 \n", + "\n", + " Monthly Premium Auto Months Since Last Claim \\\n", + "count 1399.000000 1324.000000 \n", + "mean 88.720515 14.640483 \n", + "std 22.642518 9.781315 \n", + "min 61.000000 0.000000 \n", + "25% 67.000000 6.000000 \n", + "50% 84.000000 14.000000 \n", + "75% 107.000000 22.000000 \n", + "max 154.000000 35.000000 \n", + "\n", + " Months Since Policy Inception Number of Open Complaints \\\n", + "count 1399.000000 1324.000000 \n", + "mean 47.423159 0.364048 \n", + "std 26.797704 0.927667 \n", + "min 0.000000 0.000000 \n", + "25% 25.000000 0.000000 \n", + "50% 50.000000 0.000000 \n", + "75% 68.000000 0.000000 \n", + "max 99.000000 5.000000 \n", + "\n", + " Number of Policies Total Claim Amount \n", + "count 1399.000000 1399.000000 \n", + "mean 2.894210 412.134087 \n", + "std 2.424591 180.460971 \n", + "min 1.000000 7.345946 \n", + "25% 1.000000 312.000000 \n", + "50% 2.000000 398.502948 \n", + "75% 3.000000 528.200860 \n", + "max 9.000000 960.115399 " ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# DataFrame for customers with low total claim and \"Yes\" response\n", + "# Filter for total claim amount < 1000 and Response == \"Yes\"\n", + "filtered_df = df[(df[\"Total Claim Amount\"] < 1000) & (df[\"Response\"] == \"Yes\")]\n", + "display(filtered_df.describe())" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "a1124b90-411d-4d64-a067-c2f1f3b9f49e", + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "id": "b60a4443-a1a7-4bbf-b78e-9ccdf9895e0d", - "metadata": { - "id": "b60a4443-a1a7-4bbf-b78e-9ccdf9895e0d" - }, - "source": [ - "4. Find the maximum, minimum, and median customer lifetime value by education level and gender. Write your conclusions." + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Policy TypeGenderMonthly Premium AutoCustomer Lifetime ValueTotal Claim Amount
0Corporate AutoF94.3017757712.628736433.738499
1Corporate AutoM92.1883127944.465414408.582459
2Personal AutoF98.9981488339.791842452.965929
3Personal AutoM91.0858217448.383281457.010178
4Special AutoF92.3142867691.584111453.280164
5Special AutoM86.3437508247.088702429.527942
\n", + "
" + ], + "text/plain": [ + " Policy Type Gender Monthly Premium Auto Customer Lifetime Value \\\n", + "0 Corporate Auto F 94.301775 7712.628736 \n", + "1 Corporate Auto M 92.188312 7944.465414 \n", + "2 Personal Auto F 98.998148 8339.791842 \n", + "3 Personal Auto M 91.085821 7448.383281 \n", + "4 Special Auto F 92.314286 7691.584111 \n", + "5 Special Auto M 86.343750 8247.088702 \n", + "\n", + " Total Claim Amount \n", + "0 433.738499 \n", + "1 408.582459 \n", + "2 452.965929 \n", + "3 457.010178 \n", + "4 453.280164 \n", + "5 429.527942 " ] + }, + "metadata": {}, + "output_type": "display_data" }, { - "cell_type": "markdown", - "id": "b42999f9-311f-481e-ae63-40a5577072c5", - "metadata": { - "id": "b42999f9-311f-481e-ae63-40a5577072c5" - }, - "source": [ - "## Bonus" + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
meanmedianminmax
Total Claim AmountTotal Claim AmountTotal Claim AmountTotal Claim Amount
Policy TypeGender
Corporate AutoF433.738499420.0419817.3459461358.400000
M408.582459364.80000057.7129851324.800000
Personal AutoF452.965929424.3301667.3459461358.400000
M457.010178412.80000057.7129851324.800000
Special AutoF453.280164420.04198156.6033301358.400000
M429.527942345.60000086.4615821027.000029
\n", + "
" + ], + "text/plain": [ + " mean median \\\n", + " Total Claim Amount Total Claim Amount \n", + "Policy Type Gender \n", + "Corporate Auto F 433.738499 420.041981 \n", + " M 408.582459 364.800000 \n", + "Personal Auto F 452.965929 424.330166 \n", + " M 457.010178 412.800000 \n", + "Special Auto F 453.280164 420.041981 \n", + " M 429.527942 345.600000 \n", + "\n", + " min max \n", + " Total Claim Amount Total Claim Amount \n", + "Policy Type Gender \n", + "Corporate Auto F 7.345946 1358.400000 \n", + " M 57.712985 1324.800000 \n", + "Personal Auto F 7.345946 1358.400000 \n", + " M 57.712985 1324.800000 \n", + "Special Auto F 56.603330 1358.400000 \n", + " M 86.461582 1027.000029 " ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Subset for customers who responded \"Yes\"\n", + "yes_df = df[df[\"Response\"] == \"Yes\"]\n", + "\n", + "# Group by Policy Type and Gender, calculate means\n", + "agg_results = yes_df.groupby([\"Policy Type\", \"Gender\"]).agg({\n", + " \"Monthly Premium Auto\": \"mean\",\n", + " \"Customer Lifetime Value\": \"mean\",\n", + " \"Total Claim Amount\": \"mean\"\n", + "}).reset_index()\n", + "\n", + "display(agg_results)\n", + "\n", + "# Optional: Compare claim amount patterns\n", + "pivot_claims = yes_df.pivot_table(index=[\"Policy Type\", \"Gender\"], values=\"Total Claim Amount\", aggfunc=[\"mean\", \"median\", \"min\", \"max\"])\n", + "display(pivot_claims)\n", + "\n", + "# Discussion:\n", + "# - Segments with higher average lifetime value and lower claim amounts are most profitable/low-risk." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9fa29403-98ba-4cb4-835a-325b2006ef24", + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "id": "81ff02c5-6584-4f21-a358-b918697c6432", - "metadata": { - "id": "81ff02c5-6584-4f21-a358-b918697c6432" - }, - "source": [ - "5. The marketing team wants to analyze the number of policies sold by state and month. Present the data in a table where the months are arranged as columns and the states are arranged as rows." + "data": { + "text/plain": [ + "State\n", + "California 3552\n", + "Oregon 2909\n", + "Arizona 1937\n", + "Nevada 993\n", + "Washington 888\n", + "Name: count, dtype: int64" ] + }, + "metadata": {}, + "output_type": "display_data" }, { - "cell_type": "markdown", - "id": "b6aec097-c633-4017-a125-e77a97259cda", - "metadata": { - "id": "b6aec097-c633-4017-a125-e77a97259cda" - }, - "source": [ - "6. Display a new DataFrame that contains the number of policies sold by month, by state, for the top 3 states with the highest number of policies sold.\n", - "\n", - "*Hint:*\n", - "- *To accomplish this, you will first need to group the data by state and month, then count the number of policies sold for each group. Afterwards, you will need to sort the data by the count of policies sold in descending order.*\n", - "- *Next, you will select the top 3 states with the highest number of policies sold.*\n", - "- *Finally, you will create a new DataFrame that contains the number of policies sold by month for each of the top 3 states.*" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------\n" + ] }, { - "cell_type": "markdown", - "id": "ba975b8a-a2cf-4fbf-9f59-ebc381767009", - "metadata": { - "id": "ba975b8a-a2cf-4fbf-9f59-ebc381767009" - }, - "source": [ - "7. The marketing team wants to analyze the effect of different marketing channels on the customer response rate.\n", - "\n", - "Hint: You can use melt to unpivot the data and create a table that shows the customer response rate (those who responded \"Yes\") by marketing channel." + "data": { + "text/plain": [ + "State\n", + "California 3552\n", + "Oregon 2909\n", + "Arizona 1937\n", + "Nevada 993\n", + "Washington 888\n", + "Name: count, dtype: int64" ] + }, + "metadata": {}, + "output_type": "display_data" }, { - "cell_type": "markdown", - "id": "e4378d94-48fb-4850-a802-b1bc8f427b2d", - "metadata": { - "id": "e4378d94-48fb-4850-a802-b1bc8f427b2d" - }, - "source": [ - "External Resources for Data Filtering: https://towardsdatascience.com/filtering-data-frames-in-pandas-b570b1f834b9" + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------\n" + ] + } + ], + "source": [ + "# Number of policies per state, only states with >500 customers\n", + "# Count policies by state\n", + "state_counts = df[\"State\"].value_counts()\n", + "display(state_counts)\n", + "print('---------------------------')\n", + "states_over_500 = state_counts[state_counts > 500]\n", + "display(states_over_500)\n", + "print('---------------------------')\n", + "# Optionally, show filtered DataFrame\n", + "# df_states_500 = df[df[\"State\"].isin(states_over_500.index)]\n", + "# display(df_states_500[\"State\"].value_counts())" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "caecdc93-d1e3-4592-b913-be416156f7a5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
EducationGendermaxminmedian
0BachelorF73225.956521904.0008525640.505303
1BachelorM67907.270501898.0076755548.031892
2CollegeF61850.188031898.6836865623.611187
3CollegeM61134.683071918.1197006005.847375
4DoctorF44856.113972395.5700005332.462694
5DoctorM32677.342842267.6040385577.669457
6High School or BelowF55277.445892144.9215356039.553187
7High School or BelowM83325.381191940.9812216286.731006
8MasterF51016.067042417.7770325729.855012
9MasterM50568.259122272.3073105579.099207
\n", + "
" + ], + "text/plain": [ + " Education Gender max min median\n", + "0 Bachelor F 73225.95652 1904.000852 5640.505303\n", + "1 Bachelor M 67907.27050 1898.007675 5548.031892\n", + "2 College F 61850.18803 1898.683686 5623.611187\n", + "3 College M 61134.68307 1918.119700 6005.847375\n", + "4 Doctor F 44856.11397 2395.570000 5332.462694\n", + "5 Doctor M 32677.34284 2267.604038 5577.669457\n", + "6 High School or Below F 55277.44589 2144.921535 6039.553187\n", + "7 High School or Below M 83325.38119 1940.981221 6286.731006\n", + "8 Master F 51016.06704 2417.777032 5729.855012\n", + "9 Master M 50568.25912 2272.307310 5579.099207" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "clv_stats = df.groupby([\"Education\", \"Gender\"])[\"Customer Lifetime Value\"].agg([\"max\", \"min\", \"median\"]).reset_index()\n", + "display(clv_stats)\n", + "\n", + "# Conclusion:\n", + "# - \"Bachelor\" educated females have the highest max CLV.\n", + "# - The median CLV is generally higher for females across most education levels, indicating better long-term value.\n", + "# - Segments with high median and low minimum CLV can be targeted for premium policies." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "2804c565-f758-4225-a5eb-3273afae83d1", + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": null, - "id": "449513f4-0459-46a0-a18d-9398d974c9ad", - "metadata": { - "id": "449513f4-0459-46a0-a18d-9398d974c9ad" - }, - "outputs": [], - "source": [ - "# your code goes here" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAaDJJREFUeJzt/Qe4VNX5P24vOooCCiJYUIyxYC+JvRfsja9Go4KKvUWNjaio2DXWWIgNrFETe4m9d8WGvQSDDTEqYgERmPd61u8/8845HODQ9kHOfV/XcJi99+w2u35mrbWblEqlUgIAAACAAjUtcmIAAAAAEIRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAExk0UUXTXvssUfl/eOPP56aNGmS/9J4nHTSSfl7rzZu3Lh09NFHp4UXXjg1bdo0bbfddjNkWo1hG4t9Kvaton388cd53f71r39Ns7LyfA4aNCjNqhrDdjot4juL9RLf4awi5ieOYb9mDXXMACiSUApgFr/Ij9fTTz89Uf9SqZSDgei/1VZbpdnd7bffnjbffPPUsWPH1LJly7TAAguknXbaKT366KMzZXo//fRTvqGZXW8+119//bTssstO9eeuvvrqdM4556T/+7//S9dcc006/PDDp+rzl1566SwdOoRXXnkl71fHH3/8JIf54IMP8jBHHHFEofP2azlm1fV6/vnn06/FrLidTus+y5SNGjUqnXbaaWnVVVdN7dq1S61atUqLLLJI+sMf/pDuvffehp49gNla84aeAQAmr3Xr1unGG29Ma6+9do3uTzzxRPr000/zxfPMtu6666bRo0fnMKhoEb7ttdde+QZxpZVWyiFA586d0xdffJGDqo022ig988wzac0115zhodTJJ59cuRlsjCKUOfbYY2t0ixBwwQUXTOeff/403+xHsFhdEq+ht7HaVl555bTUUkulf/zjH+nUU0+tc5jYJ8Nuu+1W8NzN+vr375+6des2UffFF188/Vr8GrZTZowPP/ww9ejRI/33v/9N22+/ferVq1eaa6650ieffJLuu+++/KPPtddem3bfffeGnlWA2ZJQCmAWt8UWW6R//vOf6aKLLkrNmzevcVO8yiqrpP/9738zfR6imlaEYw3h3HPPzYHUYYcdls47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8/sYX3ndTspXX32Vh4lx1rbiiiuWOnXqVPr6668r3V5//fVS06ZNS7169Zpofvbdd99Kt3HjxpUWWmihvJ7OPPPMSvdvv/22NMccc9RY79ddd10eZ3yn1QYMGJDH+8wzz1S6xfsY9q233irVx3rrrVdaZpllpnp91vW5+m5zIT4b46itrm0shotuN954Y6Xbu+++W1nW559/vtL9gQceyN3juy7r06dPqUuXLqX//e9/Naa18847l9q1a1fnNlztkksuyeOMcZeNHz++tOCCC5bWWGONSre6xrPffvuV5pxzztKYMWMq3eK7jf11csscYjutvSwbbbRRabnllqsxvthv11xzzdJvf/vbyS5HeXyxfX366aeV7i+88ELufvjhh1e67bLLLqUFFlggL2fZK6+8MtH81KW8n9X1atWqVWW4O+64I3c7++yza+wX66yzzkTTiW2gru2l9rp89NFH82cPPfTQiYatPr7V9V316NGjtNhii9XoVt/tdOzYsflYsOyyy5ZGjx5dGe6ee+7Jw/Xr12+GHAvrs89+//33pfbt25f22WefGt2HDx+et/fq7rH91p7miy++mOfv2muvray32LZi/dReh926dSttsskmkzzGTkpd6/8f//hH/uyTTz450bFnr732qjHs9ttvX+rQoUPl/WuvvZaHO/DAA2sM98c//nGSx+/a6z7WWW0//PBDPgeUX999912l3ymnnFJq06ZN6f3336/xmWOPPbbUrFmz0rBhw2rsdzG/33zzTWW4O++8M3e/++67a5xT4lg1cuTISrcHH3wwD1e9nU/NsTY+F92iH8CsTEkpgF+B+IU4qrLdc889+Vfj+DupqntRgimqOcQvo9UlFaL0Rvx6HtWvQpQeiWqAhxxySI0qb1HSoD6q26WIUioxjShZEvlIXdV/9t9//xrvo3pJ/GI+OfHrfIgqGTNSuU2kWI+1f1mekmhg/bXXXstVSqIaVdnyyy+f13k0jFtb/JJfFqUpoipFrKco2VE9T1EFrXqdxHcZJZGixEb1dxmlFEL5uyyLX++jOlLR6rvNTYv4fHWJwFhHsa5ivUTpqbLy/8vrL9bvrbfemkuYxf+r5ytKFERpnnjK3uREibModVFdhS+qdEX1q3LVvdr7QuyfMY3YvqNERVS5m15RWjBKrJRLjVSXPopliScB1qdaXZS+qC7pFNVe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O++8pebNm+d5/sMf/lB6/PHHaww3ePDg0mqrrVZq2bJlqWvXrqXzzjtvoseVxyPud9lll9w/HlUfj3TfaqutSi+//HKNcT377LN5Hca4aj9e/OGHHy6ttdZaeb21bdu2tPXWW+d1UtcyxiPFq01qndT1yPd45PxZZ52Vu8e8zjPPPHme4nurfkx5TOeggw6q9/qMacVn6npttNFGNeZ/SvM4NdtcPJ4+ttfoH+OO8U1qG5vUtCa1zde1Dr788svcbeGFFy61aNGi1Llz57x8Ma/1NW7cuLy9xfjvu+++ifo/88wzpdVXXz0v9wILLJCX+YEHHphoeeJ7r368e4hto2fPnqU555wzf7f77bdf3gdr70fho48+KvXq1SsvQyzLggsumLfb2Dcmp/xo+nPOOad07rnn5nUR29I666yT99m6fPHFF/nx9ksssUS911N5P5vUq3p5vv7669Luu++e95127drl/7/66qt1Lvf1119fWmyxxfJ+uOKKK+Z1W9e6jO8plnGppZbKw84333ylzTffPB8Tyu66667S8ssvX2rdunVp0UUXzfvW1VdfXeP4MLXbabj55ptLK620Ul6vcYzaddddS59++mmNYab3WFiffbY8jz169MjrNZbzN7/5TWmPPfaY6PgWrrjiivz5WM7Ro0fXOd34XnbYYYdShw4d8vLFet9pp51KjzzySGWY2sfYSYl1sv3225fat2+f52/HHXfMx4fax9dJHTvrmk7M96GHHprnL9ZvHIs/+eSTicY5OSNHjiz1798/f4dxTovtJ/aT//u//yvdfffdEw3//fffl/r27VtafPHF87BxDlxzzTVLf/3rX/Mxu/Z+V1td83brrbeWll566byOu3fvXrrtttvq3M7re6yd1HESYFbTJP5p6GAMAIBZRzxmPqoVRds/k3riHwDA9NKmFAAANQwaNChXFY2qYAAAM4s2pQAAyB599NHcuHI8kXK77bab6Ml8AAAzkup7AABk8ZS/eHBANIodT7aMxqgBAGYWoRQAAAAAhdOmFAAAAACFE0oBAAAAUDgNndfDhAkT0ueff57mnnvu1KRJk4aeHQAAAIBZVrQU9f3336cFFlggNW066fJQQql6iEBq4YUXbujZAAAAAPjV+OSTT9JCCy00yf5CqXqIElLlldm2bduGnh0AAACAWdaoUaNy4Z5ynjIpQql6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PfdM++67b7rxxhtz/1GjRqVNN900B1oDBgxIQ4YMSXvttVcOsGI4AACYXaxy1LUNPQuztdvnbug5AJh9NGgoddZZZ+VSSwMHDqx0i+CpupTUBRdckI4//vi07bbb5m7XXnttmn/++dMdd9yRdt555/TOO++k+++/P7300ktp1VVXzcP87W9/S1tssUX661//mhZYYIF0ww03pLFjx6arr746tWzZMi2zzDLptddeS+edd55QCgAAAKCxhVJ33XVXLvUULbs/8cQTacEFF0wHHnhg2meffXL/oUOHpuHDh+cSTmXt2rVLq622WnruuedyKBV/o8RTOZAKMXzTpk3TCy+8kLbffvs8zLrrrpsDqbKYboRiUVqrumRW+Pnnn/OrLEpaAQAAANTX4HN6pVndoEGDGm8o9Z///Ce38H7EEUekv/zlL7m006GHHprDo969e+dAKkTJqGrxvtwv/nbq1KlG/+bNm6d55523xjDVJbCqxxn9aodSZ5xxRjr55JNnwhIDzP6G9V+uoWdhtte135CGngUAAPh1N3Q+YcKEtPLKK6fTTz89rbTSSrkqXZSSinafGlLfvn3Td999V3l98sknDTo/AAAAALObBg2l4ol63bt3r9Ft6aWXTsOGDcv/79y5c/775Zdf1hgm3pf7xd8RI0bU6D9u3Lj8RL7qYeoaR/U0qrVq1So/ya/6BQAAAMBsEkrFk/fee++9Gt3ef//9tMgii+T/R5W7CI0eeeSRGu07RVtRa6yxRn4ff0eOHJkGDx5cGebRRx/NpbCi7anyME8++WR+Ml9ZPKlvySWXnKjqHgAAAACzeSh1+OGHp+effz5X3/vwww/TjTfemC6//PJ00EEH5f5NmjRJhx12WDr11FNzo+hDhgxJvXr1yk/U22677SolqzbbbLNc7e/FF19MzzzzTDr44INzI+gxXPjjH/+Y26nq06dPeuutt9LNN9+cLrzwwtyWFQAAAACNrKHz3/3ud+n222/PbTj1798/l4y64IIL0q677loZ5uijj04//vhjbm8qSkStvfba6f7770+tW7euDHPDDTfkIGqjjTbKT93r2bNnuuiii2o8se/BBx/MYdcqq6ySOnbsmPr165fHCQAAAEAjC6XCVlttlV+TEqWlIrCK16TEk/ailNXkLL/88umpp56arnkFAAAAYDaovgcAAABA4ySUAgAAAKBwQikAAAAAGl+bUgAAAACzm2H9lyt0el37DZnqz+yxxx7pmmuuSfvtt18aMGBAjX7xsLhLL7009e7dOw0aNCjNDEpKAQAAADRSCy+8cLrpppvS6NGjK93GjBmTHyjXtWvXmTptoRQAAABAI7XyyivnYOq2226rdIv/RyC10korzdRpC6UAAAAAGrG99torDRw4sPL+6quvTnvuuedMn65QCgAAAKAR22233dLTTz+d/vvf/+bXM888k7vNbBo6BwAAAGjE5ptvvrTlllvmBs1LpVL+f8eOHWf6dIVSAAAAAI3cXnvtlQ4++OD8/0suuaSQaQqlAAAAABq5zTbbLI0dOzY1adIk9ejRo5BpCqUAAAAAGrlmzZqld955p/L/IgilAAAAAEht27YtdHpCKQAAAIAZrGu/IWlWN2jQoMn2v+OOO2bq9IVSAAAAMI1WOerahp6F2drgc3o19CwwEzWdmSMHAAAAgLoIpQAAAAAonFAKAAAAgMIJpQAAAACmU6lUSo1JaQYsr1AKAAAAYBq1aNEi//3pp59SY/LT/7e85eWfFp6+BwAAADCNmjVrltq3b59GjBiR388555ypSZMmaXYuIfXTTz/l5Y3ljuWfVkKpWYBHiM5cHiEKAADAzNS5c+f8txxMNQbt27evLPe0EkoBjY4geOa6fe6GngMAAChWlIzq0qVL6tSpU/rll1/S7K5FixbTVUKqTCgFAAAAMANEUDMjwprGQkPnAAAAABROSSkAAABgljSs/3INPQuzva79hjTYtIVSAAC/Yi7WZ++LdQCYnam+BwAAAEDhlJRitucX5JnLr8cAAABMCyWlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAAChc8+InCQA0JqscdW1Dz8Js7fa5G3oOAACmjZJSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4wqlTjrppNSkSZMar6WWWqrSf8yYMemggw5KHTp0SHPNNVfq2bNn+vLLL2uMY9iwYWnLLbdMc845Z+rUqVM66qij0rhx42oM8/jjj6eVV145tWrVKi2++OJp0KBBhS0jAAAAALNgSallllkmffHFF5XX008/Xel3+OGHp7vvvjv985//TE888UT6/PPP0w477FDpP378+BxIjR07Nj377LPpmmuuyYFTv379KsMMHTo0D7PBBhuk1157LR122GFp7733Tg888EDhywoAAADA/9M8NbDmzZunzp07T9T9u+++S1dddVW68cYb04Ybbpi7DRw4MC299NLp+eefT6uvvnp68MEH09tvv50efvjhNP/886cVV1wxnXLKKemYY47JpbBatmyZBgwYkLp165bOPffcPI74fARf559/furRo0fhywsAAADALFBS6oMPPkgLLLBAWmyxxdKuu+6aq+OFwYMHp19++SVtvPHGlWGjal/Xrl3Tc889l9/H3+WWWy4HUmURNI0aNSq99dZblWGqx1EepjwOAAAAABpZSanVVlstV7dbcsklc9W9k08+Oa2zzjrpzTffTMOHD88lndq3b1/jMxFARb8Qf6sDqXL/cr/JDRPB1ejRo9Mcc8wx0Xz9/PPP+VUWwwIAAAAwm4RSm2++eeX/yy+/fA6pFllkkXTLLbfUGRYV5YwzzsgBGQAAAACzafW9alEqaokllkgffvhhbmcqGjAfOXJkjWHi6XvlNqjib+2n8ZXfT2mYtm3bTjL46tu3b27Tqvz65JNPZuhyAgAAADR2s1Qo9cMPP6SPPvoodenSJa2yyiqpRYsW6ZFHHqn0f++993KbU2ussUZ+H3+HDBmSRowYURnmoYceyoFT9+7dK8NUj6M8THkcdWnVqlUeR/ULAAAAgNkklDryyCPTE088kT7++OP07LPPpu233z41a9Ys7bLLLqldu3apT58+6YgjjkiPPfZYbvh8zz33zGFSPHkvbLrppjl82n333dPrr7+eHnjggXT88cengw46KAdLYf/990//+c9/0tFHH53efffddOmll+bqgYcffnhDLjoAAABAo9agbUp9+umnOYD6+uuv03zzzZfWXnvt9Pzzz+f/h/PPPz81bdo09ezZMzc8Hk/Ni1CpLAKse+65Jx1wwAE5rGrTpk3q3bt36t+/f2WYbt26pXvvvTeHUBdeeGFaaKGF0pVXXpnHBQAAAEAjDKVuuummyfZv3bp1uuSSS/JrUqJh9Pvuu2+y41l//fXTq6++Os3zCQAAAMBs3KYUAAAAAI2DUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAwgmlAAAAACicUAoAAACAxhtKnXnmmalJkybpsMMOq3QbM2ZMOuigg1KHDh3SXHPNlXr27Jm+/PLLGp8bNmxY2nLLLdOcc86ZOnXqlI466qg0bty4GsM8/vjjaeWVV06tWrVKiy++eBo0aFBhywUAAADALBpKvfTSS+nvf/97Wn755Wt0P/zww9Pdd9+d/vnPf6Ynnngiff7552mHHXao9B8/fnwOpMaOHZueffbZdM011+TAqV+/fpVhhg4dmofZYIMN0muvvZZDr7333js98MADhS4jAAAAALNQKPXDDz+kXXfdNV1xxRVpnnnmqXT/7rvv0lVXXZXOO++8tOGGG6ZVVlklDRw4MIdPzz//fB7mwQcfTG+//Xa6/vrr04orrpg233zzdMopp6RLLrkkB1VhwIABqVu3buncc89NSy+9dDr44IPT//3f/6Xzzz+/wZYZAAAAoLFr8FAqqudFSaaNN964RvfBgwenX375pUb3pZZaKnXt2jU999xz+X38XW655dL8889fGaZHjx5p1KhR6a233qoMU3vcMUx5HHX5+eef8ziqXwAAAADMOM1TA7rpppvSK6+8kqvv1TZ8+PDUsmXL1L59+xrdI4CKfuVhqgOpcv9yv8kNE0HT6NGj0xxzzDHRtM8444x08sknz4AlBAAAAGCWKin1ySefpD/96U/phhtuSK1bt06zkr59++bqg+VXzCsAAAAAs0EoFdXzRowYkZ+K17x58/yKxswvuuii/P8ozRTtQo0cObLG5+Lpe507d87/j7+1n8ZXfj+lYdq2bVtnKakQT+mL/tUvAAAAAGaDUGqjjTZKQ4YMyU/EK79WXXXV3Oh5+f8tWrRIjzzySOUz7733Xho2bFhaY4018vv4G+OIcKvsoYceyiFS9+7dK8NUj6M8THkcAAAAADSiNqXmnnvutOyyy9bo1qZNm9ShQ4dK9z59+qQjjjgizTvvvDloOuSQQ3KYtPrqq+f+m266aQ6fdt9993T22Wfn9qOOP/743Hh6lHYK+++/f7r44ovT0Ucfnfbaa6/06KOPpltuuSXde++9DbDUAAAAADR4Q+dTcv7556emTZumnj175ifixVPzLr300kr/Zs2apXvuuScdcMABOayKUKt3796pf//+lWG6deuWA6jDDz88XXjhhWmhhRZKV155ZR4XAAAAAA1jlgqlHn/88RrvowH0Sy65JL8mZZFFFkn33XffZMe7/vrrp1dffXWGzScAAAAAv9I2pQAAAABovIRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAADArBtKvfnmmzN3TgAAAABoNOodSi2//PJptdVWS1dccUX6/vvvZ+5cAQAAADBbq3co9cQTT6Rlllkm/fnPf05dunRJvXv3Tk899dTMnTsAAAAAGncotc4666Srr746ffHFF+lvf/tb+vjjj9N6662XllhiiXTWWWel4cOHz9w5BQAAAKDxNnTepk2btOeee+aSU++//37acccd0yWXXJK6du2attlmm5kzlwAAAADMVqbr6XuLL754+stf/pKOP/74NPfcc6d77713xs0ZAAAAALOt5tP6wSeffDJX57v11ltT06ZN00477ZT69OkzY+cOAAAAgNnSVIVSn3/+eRo0aFB+ffjhh2nNNddMF110UQ6kolofAAAAAMzQUGrzzTdPDz/8cOrYsWPq1atX2muvvdKSSy5Z6T9y5Mh03333pT/+8Y/1HSUAAAAAjVS9Q6kWLVqkf/3rX2mrrbZKzZo1m6j/f//737T77rsLpQAAAACYcaHUXXfdVd9BAQAAAGDmPX0PAAAAAKaFUAoAAACAWbf6Xjxlb3I+++yzGTE/AAAAADQC9Q6lzj///CkO07Vr1+mdHwAAAAAagXqHUkOHDp25cwIAAABAo6FNKQAAAABm3VDq0UcfTd27d0+jRo2aqN93332XlllmmfTkk0/O6PkDAAAAoDGHUhdccEHaZ599Utu2bSfq165du7TffvvVq90pAAAAAKh3KPX666+nzTbbbJL9N9100zR48OAZNV8AAAAAzMbqHUp9+eWXqUWLFpPs37x58/TVV1/NqPkCAAAAYDZW71BqwQUXTG+++eYk+7/xxhupS5cuM2q+AAAAAJiN1TuU2mKLLdIJJ5yQxowZM1G/0aNHpxNPPDFttdVWM3r+AAAAAJgNNa/vgMcff3y67bbb0hJLLJEOPvjgtOSSS+bu7777brrkkkvS+PHj03HHHTcz5xUAAACAxhZKzT///OnZZ59NBxxwQOrbt28qlUq5e5MmTVKPHj1yMBXDAAAAAMAMC6XCIossku6777707bffpg8//DAHU7/97W/TPPPMMzWjAQAAAKCRm6pQqixCqN/97nczfm4AAAAAaBTq3dA5AAAAAMwoQikAAAAACieUAgAAAKBwQikAAAAAfh0NnX/wwQfpscceSyNGjEgTJkyo0a9fv34zat4AAAAAmE1NdSh1xRVXpAMOOCB17Ngxde7cOTVp0qTSL/4vlAIAAABghodSp556ajrttNPSMcccM7UfBQAAAIBpa1Pq22+/TTvuuOPUfgwAAAAApj2UikDqwQcfnNqPAQAAAMC0V99bfPHF0wknnJCef/75tNxyy6UWLVrU6H/ooYdO7SgBAAAAaGSmOpS6/PLL01xzzZWeeOKJ/KoWDZ0LpQAAAACY4aHU0KFDp/YjAAAAADB9bUoBAAAAQOElpcKnn36a7rrrrjRs2LA0duzYGv3OO++86Z4pAAAAAGZvUx1KPfLII2mbbbZJiy22WHr33XfTsssumz7++ONUKpXSyiuvPHPmEgAAAIDGXX2vb9++6cgjj0xDhgxJrVu3Trfeemv65JNP0nrrrZd23HHHmTOXAAAAADTuUOqdd95JvXr1yv9v3rx5Gj16dH4aX//+/dNZZ501M+YRAAAAgMYeSrVp06bSjlSXLl3SRx99VOn3v//9b8bOHQAAAACzpaluU2r11VdPTz/9dFp66aXTFltskf785z/nqny33XZb7gcAAAAAMzyUiqfr/fDDD/n/J598cv7/zTffnH7729968h4AAAAAMyeUiqfuVVflGzBgwNSOAgAAAIBGbqrblAIAAACAQkpKzTvvvOn9999PHTt2TPPMM09q0qTJJIf95ptvpnumAAAAAJi91SuUOv/889Pcc8+d/3/BBRfM7HkCAAAAYDZXr1Cqd+/edf4fAAAAAGZaKDVq1Kh6j7Bt27bTNCMAAAAANB71CqXat28/2Xakqo0fP3565wkAAACA2Vy9QqnHHnus8v+PP/44HXvssWmPPfZIa6yxRu723HPPpWuuuSadccYZM29OAQAAAGhcodR6661X+X///v3Teeedl3bZZZdKt2222SYtt9xy6fLLL9fmFAAAAABT1DRNpSgVteqqq07UPbq9+OKLUzs6AAAAABqhqQ6lFl544XTFFVdM1P3KK6/M/QAAAABghodS559/fvrb3/6Wq+vtvffe+bX88svnbtFvalx22WX5s/HEvnhFG1X//ve/K/3HjBmTDjrooNShQ4c011xzpZ49e6Yvv/yyxjiGDRuWttxyyzTnnHOmTp06paOOOiqNGzeuxjCPP/54WnnllVOrVq3S4osvngYNGjS1iw0AAABAQ4ZSW2yxRXr//ffT1ltvnb755pv8iv9Ht+g3NRZaaKF05plnpsGDB6eXX345bbjhhmnbbbdNb731Vu5/+OGHp7vvvjv985//TE888UT6/PPP0w477FDjSX8RSI0dOzY9++yzubH1CJz69etXGWbo0KF5mA022CC99tpr6bDDDstB2gMPPDC1iw4AAABAkQ2d1xbV9E4//fTpnniEWdVOO+20XHrq+eefz4HVVVddlW688cYcVoWBAwempZdeOvdfffXV04MPPpjefvvt9PDDD6f5558/rbjiiumUU05JxxxzTDrppJNSy5Yt04ABA1K3bt3Sueeem8cRn3/66adzqa4ePXpM9zIAAAAAUEBJqfDUU0+l3XbbLa255prps88+y92uu+66HPZMqyj1dNNNN6Uff/wxV+OL0lO//PJL2njjjSvDLLXUUqlr1665sfUQf6MaYQRSZRE0jRo1qlLaKoapHkd5mPI46vLzzz/ncVS/AAAAAGjAUOrWW2/Noc4cc8yRXnnllRzghO+++26aSk8NGTIktxcV7T3tv//+6fbbb0/du3dPw4cPzyWd2rdvX2P4CKCiX4i/1YFUuX+53+SGiaBp9OjRdc7TGWeckdq1a1d5acAdAAAAoIFDqVNPPTVXiYsn8LVo0aLSfa211soh1dRacsklc1tPL7zwQjrggANS7969c5W8htS3b98cspVfn3zySYPODwAAAEBq7G1Kvffee2ndddedqHuUKBo5cuRUz0CUhoon4oVVVlklvfTSS+nCCy9Mf/jDH3ID5jHO6tJS8fS9zp075//H3xdffLHG+MpP56sepvYT++J9PO0vSnvVJUptxQsAAACAWaSkVIQ8H3744UTdoz2pxRZbbLpnaMKECblKYARUURLrkUceqRGIDRs2LLc5FeJvVP8bMWJEZZiHHnooB05RBbA8TPU4ysOUxwEAAADAr6Ck1D777JP+9Kc/pauvvjo1adIkff7557nR8COPPDKdcMIJU11NbvPNN8+Nl3///ff5SXuPP/54euCBB3LJqz59+qQjjjgizTvvvDloOuSQQ3KYFE/eC5tuumkOn3bfffd09tln5/ajjj/++HTQQQdVSjpFO1UXX3xxOvroo9Nee+2VHn300XTLLbeke++9d2oXHQAAAICGCqWOPfbYXJppo402Sj/99FOuyhcBUIRSERpNjSjh1KtXr/TFF1/kEGr55ZfPgdQmm2yS+59//vmpadOmqWfPnrn0VDSwfumll1Y+36xZs3TPPffktqgirGrTpk1uk6p///6VYbp165YDqMMPPzxXC1xooYXSlVdemccFAAAAwK8klIrSUccdd1w66qijcjW+H374IZdWiifoTa2rrrpqsv1bt26dLrnkkvyalEUWWSTdd999kx3P+uuvn1599dWpnj8AAAAAZpFQqrqB8nK7TQAAAAAwU0KpaI+pPqKtKQAAAACYIaHUoEGDclW5lVZaKZVKpfp+DAAAAACmPZSKxsT/8Y9/pKFDh6Y999wz7bbbbvmpeAAAAAAwtZrWd8BobDyeknf00Uenu+++Oy288MJpp512yk/LU3IKAAAAgJkSSoVWrVqlXXbZJT300EPp7bffTssss0w68MAD06KLLpqfwgcAAAAAMzyUqvHBpk1TkyZNcimp8ePHT+toAAAAAGiEpiqU+vnnn3O7UptssklaYokl0pAhQ9LFF1+chg0bluaaa66ZN5cAAAAANM6GzqOa3k033ZTbktprr71yONWxY8eZO3cAAAAANO5QasCAAalr165pscUWS0888UR+1eW2226bkfMHAAAAQGMOpXr16pXbkAIAAACAwkKpQYMGTffEAAAAAGC6nr4HAAAAANNKKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAADSuUOqMM85Iv/vd79Lcc8+dOnXqlLbbbrv03nvv1RhmzJgx6aCDDkodOnRIc801V+rZs2f68ssvawwzbNiwtOWWW6Y555wzj+eoo45K48aNqzHM448/nlZeeeXUqlWrtPjii6dBgwYVsowAAAAAzGKh1BNPPJEDp+effz499NBD6Zdffkmbbrpp+vHHHyvDHH744enuu+9O//znP/Pwn3/+edphhx0q/cePH58DqbFjx6Znn302XXPNNTlw6tevX2WYoUOH5mE22GCD9Nprr6XDDjss7b333umBBx4ofJkBAAAASKl5Q078/vvvr/E+wqQo6TR48OC07rrrpu+++y5dddVV6cYbb0wbbrhhHmbgwIFp6aWXzkHW6quvnh588MH09ttvp4cffjjNP//8acUV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xQ+dN910Uxo9enSl25gxY9KNN96YunbtmmY1v/zyS0PPQqMnlKJwUSqjc+fO+RXVf4499tj0ySefpK+++ir3P+aYY9ISSyyR5pxzzlyK44QTTpjoYHH33Xen3/3ud6l169apY8eOafvtt6/R/6effkp77bVXmnvuufPB7/LLL6/RP6YXJ+0orhy/tm277bb5BmFSfv7553TooYfmC6+Y5tprr51eeumliX45jBuMuNmPZXz66adn0BqDGevAAw/M2+uLL76Yevbsmfe3ZZZZJh1xxBHp+eefz8MMGzYs7xfxy2tc9Mb+8uWXX9Z7GlHq44wzzkjdunXLNy0rrLBC+te//lVjmLvuuiv99re/zftU3Jhfc801NX6BD7EfrbPOOnkccZET++GPP/44A9cGNMw5cMEFF0wrr7xy+stf/pLuvPPOfP6Ikg/13f8mdR5cf/3103//+990+OGHV0pQlN166615X495iNJU5557bo1xRre46e/Vq1eebtz0w9RW/Tr11FPz9VJcg+299975Oq+6unfZX//619SlS5dcaj5+EJncjWGcL+LcteOOO+bzSpxT+vTpk4488sga552zzz47Lb744nkbj+u/0047rcZ4/vOf/+TzTVxjxjiee+65Gv2ntI98++23ef+YZ5558jg233zz9MEHH0zVOosfgjbccMN8Xotlj/3shx9+mKiUWsz7AgsskJZccslJjiv27/I1dZxPY903bdq0Rg2EuIaN9RTHnDZt2uQSZnHdOjmXXXZZ+s1vfpNatmyZp3/ddddV+sW4qn9MjlKZMR/x41ZZfAeNuRRbYxfntrhmqy61F/+PfXKllVaqdIttJu6p4hgS+0JsVx999FGNQPbggw/Ox4k41y2yyCL52jLE/hni3BfbX/l9iHNqzEN8Ju4lI9Su/tEnho9tfJtttsn7RO3jBMUTStGg4iR8/fXX55NXHIxCXMTERU78EnbhhRemK664Iv86VnbvvffmA9AWW2yRfxWK0la///3va4w3LiJWXXXV3D8uYg444IDKr0Zx0RO/JMV0nnrqqfTMM8/kC//49XpSv0YdffTR+UIlbppfeeWVPL8xjm+++abGcHHhFcXL33nnnbT88svPhDUG0ye22bgIiBuAOBHXFhcGcWEfN8Qx7BNPPJEeeuihfCEf1TTqKy4arr322jRgwID01ltv5Rvk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gw8+SOuuu25q3bp16t69e3rooYdqfP7xxx/PJYlGjhxZ6RYlmqJblHAqe+aZZ9L666+f5pxzzjz+Hj16pG+//Tb3u//++9Paa6+dq6h16NAhbbXVVumjjz6qfLZbt27570orrZTHG+Opq/rezz//nA499NDUqVOnPL8xzpdeemmieX3kkUfSqquumudlzTXXTO+99950rcMrr7wyLb300nmaSy21VLr00ksr/WL8xxxzTI3hv/rqq9SiRYv05JNPVub7yCOPTAsuuGBq06ZNWm211fK8AgCNj1AKACClNGHChLTDDjukli1bphdeeCENGDBgooClPiKk2mijjXKo9dxzz6Wnn346bb311mn8+PG5/48//piOOOKI9PLLL+fAqGnTpmn77bfP0w8vvvhi/vvwww+nL774It122211Tufoo49Ot956a7rmmmvSK6+8khZffPEcfn3zzTc1hjvuuOPSueeem6fXvHnztNdee6VpdcMNN6R+/fql0047Lb3zzjvp9NNPTyeccEKeh7Drrrumm266KZVKpcpnbr755rTAAgukddZZJ78/+OCD83qJ4d54442044475hJsEQgCAI2L6nsAQKNxzz33pLnmmqtGt7/85S/5FSHQu+++mx544IEcooQIXTbffPOpmsbZZ5+dSyZVlyBaZpllKv/v2bNnjeGvvvrqNN9886W33347Lbvssvn/IUpRRUmuukSwddlll+U2psrzd8UVV+SSXVdddVU66qijKsNGgLTeeuvl/x977LFpyy23TGPGjMklnabWiSeemAOuCO/Kpbpivv/+97+n3r17p5122ikddthhOYgrh1A33nhj2mWXXXKprWHDhuXqk/G3vI6j1FSUHovusb4BgMZDKAUANBobbLBBDnOqzTvvvPlvlPxZeOGFK2FJWGONNaappFSU/pmUKBEUpY2iNNb//ve/SgmpCGoilKqPqO73yy+/pLXWWqvSLarI/f73v8/LUW355Zev/L9Lly7574gRI1LXrl2narkiCIvp9unTJ+2zzz6V7uPGjau0dxWB2qabbppLVEUoNXTo0FwqKkKrMGTIkFxibIkllqgx7qjSFyEcANC4CKUAgEYj2jCKam7TKqraherqaREOVZtjjjkmO46oyrfIIovkkk0RgEUoFWHU2LFj08wQYVVZlFYK5SBsavzwww/5b8x3tANVrVmzZpX/RxW+aOvqb3/7Wy4ltdxyy+VXeRwx7ODBg2t8JtQuwQYAzP60KQUAkFJuvPuTTz7J7TiVPf/88zWGKVetqx4mSkbVLpkUbUXV5euvv84NjR9//PG53amYZrkB9LJo0yqU26Cqy29+85s8XDSoXh2ORUPn0ZbVzDD//PPnEO0///lPDvaqX+XG2cO2226bqwdGlbwIpSKkKovG22O5oqRW7XFMqqoiADD7UlIKAGg0oprY8OHDa3SLxr87duyYNt5441ytLNpGOuecc9KoUaNyI+HVIjyJKn4nnXRSbqvp/fffz20sVevbt28uGXTggQem/fffP4dHjz32WK7SF1UFo5ra5ZdfnqvSRZW9aOepWjxNL0pbRaiz0EIL5bafytXjqkt8HXDAAbntqBhnVMWLtqx++umnXL1uekW1u9ph229/+9t08skn51JQMT/ROHmsz2hAPYK1aLy9PG/xlMBoAD2qEkZ7UmWxfiOk6tWrV15vEVLF0/kixIswL9q7AgAaDyWlAIBGI4KeCIOqX2uvvXalat7tt9+eRo8endtm2nvvvXPwVLsq3D/+8Y/cIHqEKGeddVY69dRTawwTwcuDDz6YXn/99TyeaJfqzjvvzOFXTCOeOhfV16LK3uGHH54DsGox3EUXXZTbYYqSSVHyqC5nnnlmbjR99913TyuvvHL68MMPcyPt88wzz3SvpwiYIjCqfr366qt5nVx55ZW5UfII3qIB9WhsvbqkVIjgKZY/2pWq3XZVfDZCqT//+c9pySWXzAFWlPCa2jauAIBfvyal6kYRAAAAAKAASkoBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACpaP8/4DXOGb2HkJwAAAAASUVORK5CYII=", + "text/plain": [ + "
" ] + }, + "metadata": {}, + "output_type": "display_data" } - ], - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "plt.figure(figsize=(12, 6))\n", + "sns.barplot(x=\"Education\", y=\"median\", hue=\"Gender\", data=clv_stats)\n", + "plt.title('Median Customer Lifetime Value by Education Level and Gender')\n", + "plt.ylabel('Median CLV')\n", + "plt.xlabel('Education Level')\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "06b4a600-4199-47c7-aa52-af4b5a5154a9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MonthFebruaryJanuary
State
Arizona9291008
California16341918
Nevada442551
Oregon13441565
Washington425463
\n", + "
" + ], + "text/plain": [ + "Month February January\n", + "State \n", + "Arizona 929 1008\n", + "California 1634 1918\n", + "Nevada 442 551\n", + "Oregon 1344 1565\n", + "Washington 425 463" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Policies Sold by State and Month (Pivot Table)\n", + "# Ensure Effective To Date is datetime type\n", + "df[\"Effective To Date\"] = pd.to_datetime(df[\"Effective To Date\"], format=\"%d %m %Y\", errors='coerce')\n", + "df[\"Month\"] = df[\"Effective To Date\"].dt.month_name()\n", + "\n", + "# Group by State and Month, count number of policies sold\n", + "policies_by_state_month = df.groupby([\"State\", \"Month\"])[\"Policy\"].count().reset_index()\n", + "# display(policies_by_state_month)\n", + "\n", + "# Pivot: States as rows, Months as columns, values = number of policies\n", + "pivot_table = policies_by_state_month.pivot(index=\"State\", columns=\"Month\", values=\"Policy\").fillna(0)\n", + "display(pivot_table)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "5694b98c-189d-486e-84b5-1f3aa91c5b13", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MonthFebruaryJanuary
State
Arizona9291008
California16341918
Oregon13441565
\n", + "
" + ], + "text/plain": [ + "Month February January\n", + "State \n", + "Arizona 929 1008\n", + "California 1634 1918\n", + "Oregon 1344 1565" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Policies Sold by Month for Top 3 States\n", + "# Total policies sold by state\n", + "state_totals = df.groupby(\"State\")[\"Policy\"].count().sort_values(ascending=False)\n", + "top_3_states = state_totals.head(3).index\n", + "# display(top_3_states)\n", + "\n", + "# Filter original group for only top 3 states\n", + "top3_policies = policies_by_state_month[policies_by_state_month[\"State\"].isin(top_3_states)]\n", + "# display(top3_policies )\n", + "\n", + "# Pivot for top 3 states only\n", + "top3_pivot = top3_policies.pivot(index=\"State\", columns=\"Month\", values=\"Policy\").fillna(0)\n", + "display(top3_pivot)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "cdaf043f-4b67-4726-9926-09ba10d32631", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Sales ChannelResponse Rate Yes
0Agent0.190746
1Branch0.113787
2Call Center0.109786
3Web0.117141
\n", + "
" + ], + "text/plain": [ + " Sales Channel Response Rate Yes\n", + "0 Agent 0.190746\n", + "1 Branch 0.113787\n", + "2 Call Center 0.109786\n", + "3 Web 0.117141" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Customer Response Rate by Marketing Channel\n", + "# Calculate response rate (Yes) by Sales Channel\n", + "response_rate = df.groupby(\"Sales Channel\")[\"Response\"].value_counts(normalize=True).unstack().fillna(0)\n", + "response_rate_yes = response_rate.get(\"Yes\", pd.Series())\n", + "response_rate_yes = response_rate_yes.reset_index().rename(columns={ \"Yes\": \"Response Rate Yes\" })\n", + "\n", + "display(response_rate_yes)\n", + "\n", + "# Or, melt for visualization\n", + "# melted = df[df[\"Response\"] == \"Yes\"].groupby(\"Sales Channel\").size().reset_index(name=\"Yes Responses\")\n", + "# total_by_channel = df.groupby(\"Sales Channel\").size().reset_index(name=\"Total\")\n", + "# merged = pd.merge(melted, total_by_channel, on=\"Sales Channel\")\n", + "# merged[\"Response Rate Yes\"] = merged[\"Yes Responses\"] / merged[\"Total\"]\n", + "\n", + "# display(merged[[\"Sales Channel\", \"Response Rate Yes\"]])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "34ed0be6-edb0-4845-9bd1-a54e4e821b96", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAIjCAYAAACefo0NAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXppJREFUeJzt3Qd4FFXXwPGTQAg1dAi9S2+CFGkiSBUBsaCIiAiKFKlKXkTEAn4UKYKoIE0R1FdAUEGQKoJUKdKk9w4BQiCF7Pecy7vrbAiQ3U2yyeb/8xmTnZmd3J1sljlz7j3Xz2az2QQAAAAAPODvyZMBAAAAQBFYAAAAAPAYgQUAAAAAjxFYAAAAAPAYgQUAAAAAjxFYAAAAAPAYgQUAAAAAjxFYAAAAAPAYgQUAAAAAjxFYAF70yCOPmMXuyJEj4ufnJzNmzHDpOLq/Pk+fn5IVLVpUXnrppQR7vXqszJkzJ2ALU653333XnLMLFy64fYyvvvpKypQpIwEBAZItW7YEbR8AIOUjsABcYL+gtS/p06eXBx54QHr27Clnz56V1Gbt2rXSvHlzKVCggDkXhQsXllatWsk333wjqYkGRPp+aNy4cZzbp0yZ4njPbN68OVHbMnz4cFmwYEGCH3fv3r0mUCtRooR5PV988YUkBntwHZ8lsQPpU6dOyQsvvCClS5eWLFmymGCqRo0aMnPmTLHZbPE6xs6dO+Wpp56SIkWKmL8R/Vt57LHH5JNPPknQ39vu3btN8JjSby4ASNnSersBQEr03nvvSbFixeTmzZvm4nry5Mnyyy+/yN9//y0ZM2Z0+7h68XHjxg1zR9gVHTt2lPbt20tgYKAkle+//16effZZqVKlirzxxhuSPXt2OXz4sKxZs8ZceD7//POSmuhF48qVK+XMmTMSHBzstG327Nlmu75fEpteoOqFbJs2bRL0uKtWrZKYmBgZP368lCxZUhJL7ty5TWbEasyYMXLixAkZO3bsHfsmJs3u6M/V86lBc1RUlCxbtswEWPv27TPn+l7WrVsnDRs2NM/t2rWreV8cP35c/vzzT3Mee/XqlWC/Nw0shg0bZjKgGugCgDcQWABu0Lv01atXN9+/8sorkjNnTvn444/lxx9/lOeee87t49qzIK5KkyaNWZKS3h0tV66cuUhKly6d07Zz585JalOnTh3ZtGmTfPvttybQstML099//13atm0rP/zwg6RU9t9pQnaBCg8PvyMQz5Qpk8kSWM2dO1cuX758x/rEVqlSJRNQWWl2UrNyEyZMkPfff/+ef3cffvihZM2a1bwvYp+31Pg3AsD30RUKSACPPvqo+ap37FV0dLS56NBuI5pF0DuI//nPfyQiIuKex7nbGAvthvLMM8+YO7QZMmQwXTMGDx583zEHixcvlnr16pmLNe3K0bJlS9m1a5fTPnqHvXPnzlKwYEHT1nz58knr1q3v26Xi4MGD8tBDD90RVKg8efI4Pb5+/br0799fChUqZH6Gtn/06NHx6k6i7dXzq69b2/jBBx+YO+euOHTokDRt2tSch/z585uMk/1n61f9/ehrjk0zDHph+Oqrr973Z2hA+OSTT97RDWzOnDkmm6M/Py4rVqxw/I704lPbsWfPnjjHRxw4cMDcLdf9tF36e9OLczvdR8+1dtWxdxeKPWYlNDT0nseIi56foUOHmu/1PajH1TbZffrpp1K+fHnzu9Xz26NHD/NzrPROeoUKFWTLli1Sv359E1Do34S79MK8S5cukjdvXnPuK1eubF53XH9P+l7TbIdmBPV91KBBA5NddJeeDz1nkZGR9/0b0fMSVzBm/Ru51+/t6NGj8vrrr5u/GW273sR4+umnnf4+9e9f1ynNkNiPYQ2KEvOzAADsyFgACUAvIJT+o2/PYuhFgnZt0AvqDRs2yIgRI8wF4/z581069o4dO8wFgXaP6tatm7mo0Z+3aNEic0f0brQ7SadOncwF7f/93/+ZCyHtslW3bl3566+/HN0l2rVrZy4wtFuGrtMLNu3ucezYsXt2qdCLtOXLl5s78nohcjd64f7EE0+YbkJ6Iahdp3799VcZOHCgnDx58o7uLbEvdPRCSQO1QYMGmYsi7duvF1jxdevWLWnWrJnUqlVLRo4cKUuWLDEXyXpMDTD0AkzvhOu2S5cuSY4cORzP1XN89erVeN8p1+5fTZo0Mb8fDSqVBhr6Poire9tvv/1msl/Fixc3F+raDU773mv2Y+vWrXecfw0utQuevpd0+9SpU80Fqv5+7b9zfe/pOAB9ryh7O+J7jLiMGzdOZs2aZd67+h7SAfF6N19pu7ULjo4v6d69u+kipPvoXfo//vjD6XVfvHjRvF7ttqfnVIMCd+h50kBFAy3NIOjr0a55ejGuAY01Y6S07deuXTMBjwaL2g1Jg1Ud/xCfNujP0wv/sLAwWb16tUyfPl1q16593/eh/o2sX7/eBDEaVN3NvX5veh61S5WeM/0704t8Pb/6+rX7kwZoGqj17t3bZFE0WCtbtqx5rv1rYn8WAICDDUC8TZ8+XW9z23777Tfb+fPnbcePH7fNnTvXljNnTluGDBlsJ06csG3bts3s88orrzg9d8CAAWb9ihUrHOsaNGhgFrvDhw+bffTn2NWvX9+WJUsW29GjR52OFxMTc0e79Pnq2rVrtmzZstm6du3q9JwzZ87YsmbN6lh/+fJl87xRo0a5fC6+/PJL89x06dLZGjZsaBsyZIjt999/t926dctpvwULFpj9PvjgA6f1Tz31lM3Pz8924MABx7oiRYrYOnXq5Hjcp08f89wNGzY41p07d868BuvrvRs9lu7Xq1cvp/PWsmVL0279Hap9+/aZ/SZPnuz0/CeeeMJWtGhRp3MdF223HjM6OtoWHBxse//998363bt3m+OuXr3a8TvatGmT43lVqlSx5cmTx3bx4kXHuu3bt9v8/f1tL774omPd0KFDzXNffvllp5/btm1b896zypQpk9M5dOcYcbE/337O7L8LPY9NmjRx+r1PnDjR7Dtt2jTHOn2f67rPPvvM5io9t3qO7caNG2eO9fXXXzvWRUZG2mrXrm3LnDmz7erVq05/T/a/TTt9P+n6vn37xuvnjxgxwuxvXxo1amQ7duzYfZ+3dOlSW5o0acyibXvzzTdtv/76q2lrbHf7vYWHh9+xbv369aYds2bNcqz7/vvvzbqVK1c67ZsUnwUAYEdXKMANendWu4Ro1x69k6h3cPVurlZ80UHcql+/fk7P0cyF+vnnn+P9c86fP28GQ7/88stmAKiV3mm/G73LqHdudbyHDkC1L9ofvGbNmiZ7oPSOq3Zl0i4T2ofdFdomvfuvd051ALt2/dLMSqlSpcwdVjs9H/pz9Y5q7POh2QztonE3+lzNNOidXDs97x06dHCprXpX23re9LF2Y9GMgdLKXnpedJC1nWYvtG36s+51rq30dWpGQLs/KT2evkf0vMR2+vRp2bZtm7nLbs2SaCZAqwbZ30dWr732mtNjPa5mATSrEl8JcQw7PX96Hvv06SP+/v/+c6IDlYOCgu54r2v3Gu1q4yk9NzoQ2jqeSTMj+h6zZxWsdEC0/m3a6ftJf99xneO46M/RvynNPtmLEmgW437096gZC83Ybd++3WTFNGugbVm4cGG8frY1K6KDx/V3pYPntXuVZpzuJyk+CwDAjsACcMOkSZPMP9j6j7J2R7D34bf3idaLrNiVc/RCSC8GdHt86XHVvbpRxGX//v3mq3b30Atx67J06VLHwFG90NOuEXoBrV1CtEuFXvxoF6T40Nes3Zr0wkUDIO1qoq/v8ccfd/wMfaz97rVft5W9m8a9zodu00AlNu1vHl/6u9CuRlYaSChr3/EXX3zRdN2xt0e71uiFnFbccoVeeOp7Qi8k9UJUA8+4AhP7z4nrtei50Ys/7X5jFTu41LEbypULwYQ4xv1eg16g6jmP/bvVC+q4xuS483P1fWENZu71norrPaTvgfiOHdAuTXozQS/ONVjU16aP4xNc6DikefPmmfO7ceNGCQkJMd2ytHucvk/uR3/GO++84xiflCtXLvN3rH9zV65cSTafBQCgGGMBuEHveNqrQt1NfO9yJwb74GbtWx279KlKm/bfP32926xVbrSGvgYJQ4YMMf3vdVBx1apV4/XztJ+33vnWRS98tM+9XqBov+6UQgOAvn37mgtH7af+9ddfm9+xK0GM0rvA2j9ez6sO5k/Isrt3q0AU3zkVEuoY7nJlbExypkGBllTWYPpug/Jj04BKgwxdNKjRzI0Gr/ZB8Xej4x10TIe+n3Rchw64188Wfb/Gp4hBUn8WAEjdCCyABKZ3N/Ufc71TaL+DqnQCPb3LqNvjy36n3dUKNvaBnzoo926TtsXeX7sm6aLt1gHWOneAXly7yh5waVcfpa9Xu8zoXVpr1kIrXdm3341us99xtdIBwvGlvwvN/NizFOqff/4xX60DUrU7klbK0cBCuz9p9kIHLbtD72xr9Sr9/eu5jIv9dcf1WvTcaICmg9VdlZQBrfU1WLNC2j1Kg6r4vPfc/bla1EB/t9asxd3eU3G9h/Q94O6AZHumIj4Zg/j8jdzr9/bf//7XBOj692inA9BjV9262/O9+VkAIPWhKxSQwFq0aGG+xr4o1XkulF68xpd2V9AuCdOmTTOVWeJ7h1nvomofd510S7vzxDV2Q2l1mNiTtumFhQYA9yuNqxWh4mLvt26/06/nQyszTZw40Wk/rQalF0NaJehu9Lk6T4Z2IbG23ToWIj6sP1vPmz7WPvmNGjVy2k+7PWn3FK1YpXf29a6wO7TCj96Jtl4MxqalPPWiTauHWS8SNYjULir295GrNBiJfdGZWPRCVe/EazUi6/vxyy+/NBfdrrzXXaHnRrvo6JwhdlrlSytq6XgnLSdrpXfgtQKZnb6ftFLbvd571r+T2PT16Xv3wQcfvOfztatkXH+nsf9G7vV70/dh7GPo69S/KSt7EBr7GEnxWQAAdmQsgASm9fT1DqOWRdV/5PUiRy9k9AJSB5Fq+VRX6EWbloXUixgtRamlNbVvuA6M1cG/cdELCS0nqRfK+jy9QNYgRYMTfZ6WM9WLa71rqxfXOuBYJ7vTbhE6CF2zK/e7qNb69toW7TqhFyA6HkAzE1qiVbt76HqlX/U167wb2m49P3rhrJMJateL2OVQrd58803ThUPLxWoJUXu5Wfsd6/jQOQ50kLn+TrSbknbR0nOg3Z1iz9ysF8JaMli7qOhFZ+z5OOJL22ed5+FuRo0aZX6OdnHRUrz2crPa3SU+z49LtWrVzO9BA1kd26K/I33diUHPn44Z0K5v+jvSQcqavdB5LfQ9kFgT2unfweeff24Gvuu8GJp50Dv79ixT7PE8Ot5J/4a0HK5eJOs++nvW99e9aDlnPaa+Nh2bogP6dZJDLQGrXZTuNwO57qMX7Do5YpkyZUwmRwsbaECkbbYOZL/b703HK+nfgL4n9G9UB4PrfvbS1nYapGoQouMkNKjTMRM6rkLfw4n9WQAADo76UADuK66SoXGJioqyDRs2zFasWDFbQECArVChQraQkBDbzZs3nfaLT7lZ9ffff5uyoFo2Mn369LbSpUub8q6x2xW7/KqWnmzatKkpK6nPK1GihO2ll16ybd682Wy/cOGCrUePHrYyZcqYcpe6X82aNW3ffffdfc/FnDlzbO3btzfH1HKeevxy5crZBg8e7Cj3aS15qaU98+fPb85HqVKlTFnL2GVcY5ebVTt27DDnSI9foEABU8rVXuo2PuVm9XUdPHjQlETNmDGjLW/evKZ0auyyuHavv/66OfY333xz33NgbbeWRHXnvaOli+vUqWPOYVBQkK1Vq1amTO39Sr1aj2k9D3v37jUlivV4us1+Pl05Rlzu9nx7eVl9D+nvVs9v9+7dTflSK/0dli9f3uaO2OVm1dmzZ22dO3e25cqVy5S8rVix4h1/N/a/J32vjRkzxvwdBgYG2urVq2fK+sanXOzjjz/ueN9q2Wf9XenPuV8JYrV48WJT3lfPjZbB1XaWLFnSlD/W9lvd7fem59H+OvUY+ves+8b1tzJlyhRb8eLFTXnb2KVnE/OzAADs/PR//4YZAJC66QBu7eqiXW10UDpSLs2Q6Z1/zQwNGDDA280BAJ/HGAsA+B/tY66DVHUGYoIKAABcwxgLAKme1vLXfuvaT18nINPxHAAAwDUEFgBSPa0EpSVmdaCrDpa/W4lYAABwd4yxAAAAAOAxxlgAAAAA8BiBBQAAAACPEVgAAAAA8JhPDt6+Ge3tFgBAwgoNj/J2EwAgQQUHBUhylaFqz0Q79o2/JoqvImMBAAAAwGM+mbEAAAAA3ObHvXd3EFgAAAAAVn5+3m5BikQ4BgAAAMBjZCwAAAAAK7pCuYWzBgAAAMBjZCwAAAAAK8ZYuIWMBQAAAACPkbEAAAAArBhj4RbOGgAAAACPkbEAAAAArBhj4RYCCwAAAMCKrlBu4awBAAAA8BgZCwAAAMCKrlBuIWMBAAAAwGNkLAAAAAArxli4hbMGAAAAwGNkLAAAAAArxli4hYwFAAAAAI+RsQAAAACsGGPhFgILAAAAwIquUG4hHAMAAADgMTIWAAAAgBVdodzCWQMAAADgMTIWAAAAgBUZC7dw1gAAAAB4jIwFAAAAYOVPVSh3kLEAAAAA4DEyFgAAAIAVYyzcQmABAAAAWDFBnlsIxwAAAAB4jIwFAAAAYEVXKLdw1gAAAAB4jIwFAAAAYMUYC7eQsQAAAADgMTIWAAAAgBVjLNzCWQMAAADgMTIWAAAAgBVjLNxCYAEAAABY0RXKLZw1AAAAAB4jYwEAAABY0RXKLWQsAAAAAHiMjAUAAABgxRgLt3DWAAAAAHiMjAUAAABgxRgLt5CxAAAAAOAxMhYAAACAFWMs3EJgAQAAAFgRWLiFswYAAADAY2QsAAAAACsGb7uFjAUAAACQDK1Zs0ZatWol+fPnFz8/P1mwYIHT9rCwMOnZs6cULFhQMmTIIOXKlZPPPvvMaZ+bN29Kjx49JGfOnJI5c2Zp166dnD171mmfY8eOScuWLSVjxoySJ08eGThwoERHR7vcXgILAAAAIPYYi8RaXHD9+nWpXLmyTJo0Kc7t/fr1kyVLlsjXX38te/bskT59+phAY+HChY59+vbtK4sWLZLvv/9eVq9eLadOnZInn3zSsf3WrVsmqIiMjJR169bJzJkzZcaMGfLOO++Iq/xsNptNfMxN1wMsAEjWQsOjvN0EAEhQwUEBklxlaP15oh37xo+vuvU8zVjMnz9f2rRp41hXoUIFefbZZ2XIkCGOddWqVZPmzZvLBx98IFeuXJHcuXPLN998I0899ZTZvnfvXilbtqysX79eatWqJYsXL5bHH3/cBBx58+Y1+2jW46233pLz589LunTpUmbGQlM1V69edVoAAACAJB9jkUhLRETEHde7us4dDz/8sMlOnDx5UjRXsHLlSvnnn3+kSZMmZvuWLVskKipKGjdu7HhOmTJlpHDhwiawUPq1YsWKjqBCNW3a1LRr165dLrXH64FFeHi4Sdlof65MmTJJ9uzZnRYAAADAV4wYMUKyZs3qtOg6d3zyySdmXIWOsdDMQrNmzUy3qfr165vtZ86cMeuzZcvm9DwNInSbfR9rUGHfbt+WoqpC6eAQja4mT54sHTt2NCdDo67PP/9cPvroI283DwAAAKlNIs5jERISYsZGWAUGBrodWPz5558ma1GkSBEz2FsHautgb2uWIql4PbDQwSSzZs2SRx55RDp37iz16tWTkiVLmpMze/Zs6dChg7ebCAAAgNQkEcvNBgYGuh1IWN24cUP+85//mHEXOvhaVapUSbZt2yajR482gUVwcLAZlB0aGuqUtdCqULpN6deNGzc6HdteNcq+T4rpCnXp0iUpXry4+T4oKMg8VnXr1jVRFwAAAABnOnZCF39/58v5NGnSSExMjGMgd0BAgCxfvtyxfd++faa8bO3atc1j/bpz5045d+6cY59ly5aZ63LtZpWiMhYaVBw+fNgMItHBJN99953UqFHDZDJi9wcDAAAAEptWYEoOwsLC5MCBA47Hes2sGYkcOXKYa+cGDRqYYQU6h4X29tFystoT6OOPPzb76/iNLl26mK5X+hwNFnr16mWCCa0IpXSgtwYQOiRh5MiRZlzF22+/bbpUuZpZ8Xq52bFjx5rIqnfv3vLbb7+ZSUC0SRqB6Ul54403XD4m5WYB+BrKzQLwNcm53GzGdtMS7djhP7wc731XrVolDRs2vGN9p06dzFwTGgTomI2lS5eaXj8aXHTr1s3MXWEPjrTqav/+/WXOnDmm+pRWfPr000+dujkdPXpUunfvbn6eFlPS4+tY57Rp06aswCI2fWFaGkvHWWg/MXcQWADwNQQWAHxNcg4sMj01PdGOff2/ncVXeb0rVGwaaekCAAAAIOVIFoGFDijRRQeN2Aeb2E2blnipKAAAAOAOyWOIRYrj9cBi2LBh8t5770n16tUlX758yWawDAAAAIAUFFh89tlnZvCJjkQHAAAAvI0b3Sk0sNBJOx5++GFvNwMAAAAwCCzc4/UJ8l555RX55ptvvN0MAAAAACk5Y6G1db/44gszh4WWl9XZAa3sE3wAAAAASYGMRQoNLHbs2CFVqlQx3//9999O2/ilAgAAACmD1wOLlStXersJAAAAgAM3t1NoYGF14sQJ87VgwYLebgpSsevXw2TShPGyYvlvcunSRSlTtpy8Oeg/UqFiJYmKipKJE8bJ2t/XyIkTxyVL5sxSs/bD8kbf/pInT17HMfbs3iXjPh4tu/7eKf7+aaTxY01kwJuDJGOmTF59bQB83/atm2XOV9Pln7275eKF8/LBqPFS75FGju02m02mfT5JflrwXwkLuyYVK1WVfoOGSMHC/05Oe/XKFRk/arisW7tK/P38pf6jjaVX/xDJmDGjY5+N6/+Q6V9MksOHDki6dIFSuWo1eb3PQMmXv0CSv2YAyYPXB2/rhHg6j0XWrFkds25ny5ZN3n///TsmywOSwrvvvC3r16+TDz8aKf+dv0hqP1xHXn2ls5w9e9aMCdq7Z7d0e627fPv9PPl4/EQ5cviwvNGzu+P5586dlW5dOkuhwoXl6znfyaefT5GDB/bLkMEhXn1dAFKHGzduSMkHSkufNwfHuX3OrGky79vZ0j/kHfls+jeSPkMGGdDrVYmIiHDs8/6Qt+TIoQMyZuIUGTF2kmz/a4uMHv6uY/vpkydk8IBeUrV6Dfly9n9l9Cefy5XQUBnyZp8keY1AovNLxMWHeT1jMXjwYPnyyy/lo48+kjp16ph1a9eulXfffddcxH344YfebiJSEX3PLV+2VMZ98qlUq/6QWde9Ry9ZvWqlfD/3G+n5Rl/5fOp0p+eEDB4iHdo/LadPnZJ8+fPLmlWrJG1AWvnP20PF3/927P720GHyVNsn5NjRo1K4yL93BQEgodWqU88scdFsxfdzvpKOL3eTug0eNev+M2y4tG3aQNauXi6NmrSQI4cPysb1a+XzmXOlTLkKZp83BvxH3urTXV5/Y4Dkyp1H9u3dLbduxcgr3Xs7PueefeElE2xER0dJ2rTOhVgApA5ez1jMnDlTpk6dKt27dzdVoXR5/fXXZcqUKWbiPCAp3boVLbdu3ZLAwECn9fr4r7+2xvmcsLAw0xczS1CQeRwZFWmqm9n/sb39/PTm619btyRq+wHgXjTTcOniBalWo7ZjXebMWaRs+Uqya8d283jXzu2SOUuQI6hQ1WrUMp9pu//eYR6XLlNO/P39ZPGi+eYzU7tULV28yOxHUAFfoP+uJ9biy7weWFy6dEnKlClzx3pdp9uApJQpU2apXKWqfPHZp6ZLk/6D+dOiH2XH9m1y/vy5O/bXrgM6lqJ5i5aSOXNms65GzVpy8cIFmTFtqkRFRt7uqzx2jNl24cL5JH9NAGCnQYXKkTOn0/rsOXM6tunX7NlzOG1PmzatZAnK6tgnX4GCMvqTL2TKp+PlsToPSsuGteX82TPy7ojbn3UAUievBxaVK1eWiRMn3rFe1+m2+9ELu6tXrzot1n6igKs+HDHSdBd4rGF9eahqRfnm66+kWYuWThkIpQO5B/Z7w+w7+J1hjvUlS5aS9z/8SGbNmC41q1eRRxvUkQIFC0jOnLl8/k4FgNRBb56MGv6uNG3ZWj6bOVcmfD7DZGqHvtXPfCYCKR0ZixQ6xmLkyJHSsmVLM0Fe7dq3U7Pr16+X48ePyy+//HLf548YMUKGDfv3ok4NHjJU3n7n30FmgCt00PW0mV9LeHi4qRCVO3ceGdi/jxQsWMg5qOjfx4yrmDJ9piNbYdfi8VZm0X98M2TIoJ9Q8tXMGVKw0L/HAICkliNnLvP10sWLkjNXbsf6yxcvmgHf9n0uX3buMRAdHS3Xrl5xPH/B93NMhrd77/6OfQa/95E8/Xhj012qfMX73xgEkjNfDwB8NmPRoEED2bdvn7Rt21ZCQ0PN8uSTT5p19erFPfjMKiQkRK5cueK0DHyL6jvwnJZV1KBCuzKt/2OtPNKwkVNQoQOxP/9yhmTLlv2ux8iZK5cpMfvrkl8kXWCg1Kp9u0ABAHiDdmHS4GDrpj8d666HhcmeXTukfKXbwYAGBWHXrsq+Pbsc+/y1eYOp1FiuQiVHoYvYWdw0adKYrzYqOgKpltczFqpAgQJuV3/SQbWxB9rejE6ghiFV+mPt71o6RYoUKybHjx2TsaNHStFixaV12ydNUDGgb2/Zs2e3fDLpc4m5dUsunL89bkJLJgekS2e+nzP7a6lStapkyJhR/ly3TsaOGSm9+/aXoP8N8AaAxKLZ1pPHjzkenz51Uvbv2ytBWbNK3uB88vRzHWXWtC+kYKEiElyggEz7bKLkzJVH6ja4ffOkaLESUqN2XRn14bumJK1WeRo3arg82qS5qQilatetL9/PmSUzpkyWxk1bSHj4dZkyabwE58svpUqX9dprBxIKGQv3+Nm83BmyePHiJmvx2WefOQUIFy5ckBo1asihQ4dcPiaBBTyh2YUJ4z6Ws2fOSNas2aTRY02k1xt9JUuWLHLy5Alp0eTfiaaspk6fJQ/VqGm+Hxzypvy+erX5x7ZYseLyYueXpdUTbZL4lcCXhIZHebsJSCH+2rJR+rz28h3rm7VsLSHvfvjvBHnzv789QV7lB6XvW29LoSJFHftqpnbcqA9l3e//TpDXe8B/nCbIW770F5kza7qcOHZEAtNnMJmOV3v1lSJFiyfZa0XKFhyUfCuI5XxxTqId++Ks58RXeT2w0FRqyZIlzaR4CxculODgYLNeJyPLnz+/qcrjKgILAL6GwAKAr0nWgUWnRAwsZvpuYOGfHFJNS5YskYIFC0q1atVk06ZN3m4SAAAAgJQWWGjCRCvqzJs3T1588UXTLerrr7/2drMAAACQSlFuNoUO3raeYC0dW758eenatas895zvpokAAAAAX+P1wCL2EI8XXnhBSpQoYcrPAgAAAEnN1zMLPhtYaF3s2HSivO3bt8vevXu90iYAAACkXgQWKTSwuJu8efOaBQAAAEDy55XA4sEHH5Tly5dL9uzZpWrVqveMCrdu3ZqkbQMAAEAqR8Ii5QQWrVu3dkyG16YNk4YBAAAAKZ1XAouhQ4earzr5XcOGDaVSpUpmgjwAAADA2xhjkQLnsUiTJo00adJELl++7M1mAAAAAEjpE+RVqFBBDh065O1mAAAAAAYT5KXQwOKDDz6QAQMGyE8//SSnT5+Wq1evOi0AAAAAkj+vl5tt0aKF+frEE084RXE6cZ4+1nEYAAAAQFLx9cyCzwYWK1euvOu2nTt3JmlbAAAAAAKLFBpYNGjQwOnxtWvXZM6cOTJ16lTZsmWL9OzZ02ttAwAAAJBCxljYrVmzRjp16iT58uWT0aNHy6OPPip//vmnt5sFAACA1MYvERcf5tWMxZkzZ2TGjBny5ZdfmoHazzzzjERERMiCBQukXLly3mwaAAAAgJSQsWjVqpWULl1aduzYIePGjZNTp07JJ5984q3mAAAAAAblZlNYxmLx4sXSu3dv6d69u5QqVcpbzQAAAACQkjMWa9euNQO1q1WrJjVr1pSJEyfKhQsXvNUcAAAAwCBjkcICi1q1asmUKVPMpHivvvqqzJ07V/Lnzy8xMTGybNkyE3QAAAAASBn8bDoTXTKxb98+M5D7q6++ktDQUHnsscdk4cKFLh/nZnSiNA8AvCY0PMrbTQCABBUcFCDJVaEePybasY9Pai2+KtmUm1U6mHvkyJFy4sQJM5cFAAAAkOQoN5vyAwu7NGnSSJs2bdzKVgAAAABIhTNvAwAAAMmJrw+yTlUZCwAAAAApCxkLAAAAwIKMhXvIWAAAAADwGBkLAAAAwIKMhXvIWAAAAADwGBkLAAAAwIKMhXsILAAAAAAr4gq30BUKAAAAgMfIWAAAAAAWdIVyDxkLAAAAAB4jYwEAAABYkLFwDxkLAAAAAB4jYwEAAABYkLBwDxkLAAAAAB4jYwEAAABYMMbCPQQWAAAAgAVxhXvoCgUAAADAY2QsAAAAAAu6QrmHjAUAAAAAj5GxAAAAACxIWLiHjAUAAAAAj5GxAAAAACz8/UlZuIOMBQAAAACPkbEAAAAALBhj4R4CCwAAAMCCcrPuoSsUAAAAAI+RsQAAAAAsSFi4h4wFAAAAAI+RsQAAAAAsGGPhHjIWAAAAADxGxgIAAACwIGPhHjIWAAAAADxGxgIAAACwIGHhHgILAAAAwIKuUO6hKxQAAAAAj5GxAAAAACxIWLiHjAUAAAAAjxFYAAAAALHGWCTW4oo1a9ZIq1atJH/+/Oa5CxYsuGOfPXv2yBNPPCFZs2aVTJkyyUMPPSTHjh1zbL9586b06NFDcubMKZkzZ5Z27drJ2bNnnY6h+7ds2VIyZswoefLkkYEDB0p0dLS4isACAAAASIauX78ulStXlkmTJsW5/eDBg1K3bl0pU6aMrFq1Snbs2CFDhgyR9OnTO/bp27evLFq0SL7//ntZvXq1nDp1Sp588knH9lu3bpmgIjIyUtatWyczZ86UGTNmyDvvvONye/1sNptNfMxN1wMsAEjWQsOjvN0EAEhQwUEBklxV/2Bloh1789sN3XqeZizmz58vbdq0caxr3769BAQEyFdffRXnc65cuSK5c+eWb775Rp566imzbu/evVK2bFlZv3691KpVSxYvXiyPP/64CTjy5s1r9vnss8/krbfekvPnz0u6dOni3UYyFgAAAEASiYiIkKtXrzotus5VMTEx8vPPP8sDDzwgTZs2NV2Yatas6dRdasuWLRIVFSWNGzd2rNPsRuHChU1gofRrxYoVHUGF0uNpu3bt2uVSmwgsAAAAgCQaYzFixAgzHsK66DpXnTt3TsLCwuSjjz6SZs2aydKlS6Vt27amm5N2eVJnzpwxGYds2bI5PVeDCN1m38caVNi327e5gnKzAAAAQBIJCQmRfv36Oa0LDAx0K2OhWrdubcZRqCpVqphxEtqVqUGDBpLUyFgAAAAAFlq8KbGWwMBACQoKclrcCSxy5coladOmlXLlyjmt1/ET9qpQwcHBZlB2aGio0z5aFUq32feJXSXK/ti+T3wRWAAAAADJsNzsvWgXJy0tu2/fPqf1//zzjxQpUsR8X61aNTO4e/ny5Y7tur8GHrVr1zaP9evOnTtN1yq7ZcuWmYAndtByP3SFAgAAAJKhsLAwOXDggOPx4cOHZdu2bZIjRw4zAFvnm3j22Welfv360rBhQ1myZIkpLaulZ5WO3+jSpYvpeqXP0WChV69eJpjQilCqSZMmJoDo2LGjjBw50oyrePvtt83cF65mUig3CwApAOVmAfia5FxuttZHtwc/J4Y/B8V/7IMGCBowxNapUycz14SaNm2aGfx94sQJKV26tAwbNsyMu7BOkNe/f3+ZM2eOqT6lFZ8+/fRTp25OR48ele7du5ufp5Ps6fF1ULh2tZLUHlhUeHuZt5sAAAnq4M8/ersJAJCgbvw1UZKr5BJYpDR0hQIAAAAsEnIsRGrC4G0AAAAAHiNjAQAAAFiQsHAPGQsAAAAAHiNjAQAAAFgwxsI9BBYAAACABXGFe+gKBQAAAMBjZCwAAAAAC7pCuYeMBQAAAACPkbEAAAAALMhYuIeMBQAAAACPkbEAAAAALEhYuIeMBQAAAACPkbEAAAAALBhj4R4CCwAAAMCCuMI9dIUCAAAA4DEyFgAAAIAFXaHcQ8YCAAAAgMfIWAAAAAAWJCzcQ8YCAAAAgMfIWAAAAAAW/qQs3ELGAgAAAIDHyFgAAAAAFiQs3ENgAQAAAFhQbtY9dIUCAAAA4DEyFgAAAICFPwkLt5CxAAAAAOAxMhYAAACABWMs3EPGAgAAAIDHyFgAAAAAFiQs3EPGAgAAAIDHyFgAAAAAFn5CysIdBBYAAACABeVm3UNXKAAAAAAeI2MBAAAAWFBu1j1kLAAAAAB4jIwFAAAAYEHCwj1kLAAAAAB4jIwFAAAAYOFPysItZCwAAAAAeIyMBQAAAGBBwsI9BBYAAACABeVm3UNXKAAAAAAeI2MBAAAAWJCwcA8ZCwAAAAAeI2MBAAAAWFBu1gcCi5s3b0pkZKTTuqCgIK+1BwAAAEAK6QoVHh4uPXv2lDx58kimTJkke/bsTgsAAACQlPwScfFlXg8sBg4cKCtWrJDJkydLYGCgTJ06VYYNGyb58+eXWbNmebt5AAAAAFJCV6hFixaZAOKRRx6Rzp07S7169aRkyZJSpEgRmT17tnTo0MHbTQQAAEAqwjwWKTRjcenSJSlevLhjPIU+VnXr1pU1a9Z4uXUAAABIbfz9Em/xZV4PLDSoOHz4sPm+TJky8t133zkyGdmyZfNy6wAAAACkiMBCuz9t377dfD9o0CCZNGmSpE+fXvr27WvGXwAAAABJ3RUqsRZf5vUxFhpA2DVu3Fj27t0rW7ZsMeMsKlWq5NW2AQAAAEghgUVsOmhbFwAAAMAbfDyx4FuBxYQJE6Rbt26my5N+fy+9e/dOsnYBAAAASEGBxdixY00ZWQ0s9Pu70X5oBBYAAABISr4+FsKnAgt7FajY3wMAAABImZLdGAsAAADAm3x9vgmfDSxu3bolM2bMkOXLl8u5c+ckJibGafuKFSu81jYAAACkPnSF8kJgERkZaboylShRQtKmde9Qb7zxhgksWrZsKRUqVOAXCQAAAKRAbkUD4eHh0qtXL5k5c6Z5/M8//5gZtHVdgQIFzER38TV37lwz23aLFi3caQoAAACQoLjNnYQzb4eEhJjZsletWmUqO1knuPv2229dOla6dOnMZHgAAAAAUllgsWDBApk4caLUrVvXqetS+fLl5eDBgy4dq3///jJ+/Hix2WzuNAUAAABIUP5+fom2+DK3ukKdP39e8uTJc8f669evuzxGYu3atbJy5UpZvHixCUwCAgKcts+bN8+dJgIAAABI7oFF9erV5eeffzZjKpQ9mJg6darUrl3bpWNly5ZN2rZt604zAAAAgATn44mF5BVYDB8+XJo3by67d++W6Oho05VJv1+3bp2sXr063sfR5zZs2FCaNGkiwcHB7jQFAAAAQEodY6FjK7Zt22YCg4oVK8rSpUtN16j169dLtWrV4n0cLVH72muvSUREhDvNAAAAABKc9sZJrMWXuT2Phc5dMWXKFI8bUKNGDfnrr7+kSJEiHh8LAAAAQAoKLNKkSSOnT5++YwD3xYsXzTqdTTu+Xn/9dVMZ6sSJEybbkSlTJqftlSpVcqeJAAAAgFt8PLGQvAKLu5WG1S5NOi+FK9q3b2++9u7d27FO00T6M/SrK0EK4KpqRbNJ57pFpVz+IMkTFCi9Z2+TFXvOO+1TPHcm6duklFQvlk3S+PvLoXNh0mfODjlz5abZ/k7rslK7RA7JnSVQwiNvybZjoTL21/1y+EL4HT8va4YA+aFnLQnOml5qf7BSrt2MTrLXCiB1qPNgCen7YmN5sFxhyZc7qzzT9wtZtGqHY3ueHFnkgzdaS+PaZSVr5gyydusB6Tfyezl47N/PvpefrCPPNq8uVcoUlKDMGSS43kC5EnbD6eeULJxHhvdtI7UrF5d0AWnk7/2nZNinP8mazfuT9PUCicHXy8Imi8BiwoQJ5qte8GsFqMyZMzu2aQCwZs0aKVOmjEsNOHz4sEv7AwkpQ0Aa2XfmmszfclLGd6hyx/ZCOTLIrK7VZd6WUzJpxUG5HhEtJfJklsjofwPe3Sevys/bT8vp0JsmcHj90RLyxUsPStMxayUmVgz+Xtty8s+ZMBNYAEBiyJQhUHb+c1Jm/bhevv242x3bvxvbTaKib8nTfT6Xq9dvSu8XHpVfPuslVZ/8QMJvRpp9MqYPkGXrdpvl/d6t4/w58ya8JgeOnZPmr06QGxFR0vP5hmZd+VbvytmL1xL9dQJI4YHF2LFjzVfNJnz22WemS5SdZiqKFi1q1ruCsRXwprX7L5rlbno3Lim//3NBPv713ztwxy8537X77+aTju9Phd6UT347IPN61ZYC2TM47ftsjYISlCGtTF55SOqXzpXgrwUA1NI/dpslLpplqFmpmDzY7gPZc+iMWdd7+Ldy5Lfh8kzzajJj/nqzbuI3q8zXetVKxXmcnNkySakieaT7sNkmU6GGTPhRXnu2vpQrmV/OXtyXSK8OSBokLJIgsLBnF7RErE5clz17dkkIOlv3uHHjZM+ePeZxuXLl5I033jADxAFvfqhoADDt9yPyeaeqUiZfkJy8fEOmrjl8R3cpuwwB/tLmwfxy/FK4nP5fVyl7d6rXGhaX5z7baLIgAOANgelu/7N/M/Lfbph6szAyMloerlLCEVjcz8XQ67Lv8Bl5/vEa8tee4xIRFS2vtKsrZy9elb92H0u09gPwwXKzOlN2QgUVv/76qwkkNm7caAZq67JhwwYzC/eyZcsS5GcA7siRKZ1kCkwrXeoXM1mNbjO2yPI952Tcc5WlelHn979mIzYOaSibhjaSug/kkm4ztkr0rdv9oALS+MmoZyrKmCX/OMZlAIA37DtyRo6dviTv93pCsmXJIAFp00j/lxpLweDsEpwrq0vHavnaRKlcppCc/2O0hP45Vnp3fFRa9/hUQq85Z3WBlIhys0lcblarOC1cuFCOHTsmkZG3+2Taffzxx/E+zqBBg6Rv377y0Ucf3bH+rbfekscee+yez9cB47HnwYiJjhT/tK4NIgfuNnBr5Z5z8tW623fg9p0JkyqFsskzNQrK5iOXHfv+vP2MrD94SXJnSScv1Skqo5+tJB2nbJLI6Bjp06SUHDp/XX7afrvbAQB4S3R0jLTvP0UmD+0gp9eMkujoW7Jiwz5ZsnaXy10/xoY8I+cvXZPGL4+TGxGR8lLbh+WH8a9K3RdGyZkLVxPrJQDwtcBi+fLl8sQTT0jx4sVl7969UqFCBTly5IhJpz744IMuHUu7P3333Xd3rH/55ZdN96j7GTFihAwbNsxpXe56L0ie+i+61A4gtsvhkRJ1K0YOnr/utP7Q+TB5sIhzxiIsItosxy6Gy/bj22Xd4IbSqFweWbzjjNQsnkNK5c0sj5W/XZ7Zfrfi95AGMmX1YZm04lASvioAqZ12XarV/iMJypxe0gWklQuXw2TNrAGyxYUuTI/UeEBa1Ksg+Rq8Kdeu387E9hnxnTSqVUZeaFVTRk+nxwFSYZceuBdYhISEyIABA8wFfZYsWeSHH34w81d06NBBmjVr5tKxcufObWbxLlXKeYCYros9T8bd2tKvXz+ndbWG/+5SG4C4aFemXSevSrFcGZ3WF82VSU6F3j3V7/e/JV2a2wFE3znbJTDtvx9RFQpmlQ+eLC+dpm42YzEAwBuuht0OCEoUzm1K02qp2PjKmP52r4CYmBin9TExt0vFA0id3AosNMswZ86c2wdIm1Zu3LhhSs++99570rp1a+nevXu8j9W1a1fp1q2bHDp0SB5++GGz7o8//pD/+7//uyNgiEtgYKBZrOgGhfjKkC6NFLYMptZKTqWDM8uVG9FmPMT034+Ybk2bj4TKxkOXpG6pXNKgdC7pPG2L2b9g9gzSrGJeWXfgoly6HiXBQYFmTEZE9C1TTSquKlLZM91+f2r3KOaxAJDQMmVIJyUK5XY8Llogp1R6oIBcvhoux89clicbV5Xzl8Pk+JlLUqFUfhk98Ckzz8XyP/c6npM3ZxbJmzNIShS+XcFO99PMhD5fj7Nhx2Hzder7L8rwLxbLjZtR8vKTD5ufpd2qgJSOADkJAwudHds+riJfvnymqpMOtlYXLty+mIqvIUOGmKzHmDFjTPZB5c+fX959912nSfOAxFChQJBM71Ld8fitFqXN1wVbT8nb83bJ8j3n5b2Fe+SV+sUkpGVpOXIhXPrO2SF/HQ01+0VEx5huUR0fLixB6QPk4vVIM/bihS82mUADAJLag+WKyNKpbzgejxzQznz9auGf0m3o1xKcO0j+r/+TkidnFjMWYvZPG2TEF0ucjvHKU/Xk7ddaOB7/Nq2v+dr1na/k60UbTFWo1j0/lXd7tJLFn/eWgLT+pnzt032/MHNoACmdP3GFW/xsd5tG+x7atGkjLVu2NNkG7RL1448/yksvveQoQfvbb7/d8/k66Lt58+YSEBDgtP7atdsT6mig4YkKb9O3E4BvOfjzj95uAgAkqBt/TZTkqs+P/2bwEtq41q5NJu3zGQut+hQWFma+13EW+v23335rxknEpyJU27Zt5cyZM2Z8hU6yd/r0aTOewtOAAgAAAPAUGYskDCy0GpS1W5Srs21rQPHnn39Kq1atTCUp+rEBAAAAqbCalgYWFy9evGN9aGioU9BxN6+99poZ5K3ZCg0qgoODzfdxLQAAAEBqnCBvzZo15ka8jj/W5y5YsOCe19e6T+zpGi5dumQqtwYFBUm2bNmkS5cujp5Hdjt27JB69epJ+vTppVChQjJy5EhJsoyFzllx69atO9brRHUnT95/0JYOzG7fvr0cOHDAzIcxffp080IBAAAA3Hb9+nWpXLmymd/tySeflLuZP3++6Q2kAUhsGlTosINly5ZJVFSUdO7c2VRk/eabb8z2q1evSpMmTaRx48amF9LOnTvNz9Nrc90v0QILHXRt9+uvv0rWrFkdjzXQ0InzihYtGq9jlSlTxixDhw6Vp59+WjJmdJ4rAAAAAEjNYyyaN29ulnvRm/q9evUy1+ZaXCn2FBFLliyRTZs2SfXqt6tgfvLJJ9KiRQsZPXq0CURmz55tqr1OmzZN0qVLZyq96nxyOm46UQMLrQalNM3SqVMnp21a4UmDCi0b6woNLAAAAIDUICIiwiz3m5ctPnSSyo4dO8rAgQMdUz9YrV+/3mQe7EGF0syEv7+/bNiwwRRU0n3q169vggq7pk2bmjnlLl++bCq+JkpgYZ9hs1ixYibyyZXr9sQ5rnrwwQdNdkMbWrVq1Xv2N9u6datbPwMAAABwR2LWFRoxYoSpqhr7RrsOFXCVXvzrZNV3m/tNq7Bq5VUr3T9Hjhxmm30fvba3yps3r2NbogUWGtHooO3Dhw871s2aNcucDO0DphkNTa/cL+LSgdv2fexZEAAAACA58E/EyCIkJET69evntM6dbMWWLVtk/Pjx5iZ8cqmw6lJgodFVw4YN5fHHHzePdXCHjizXyfHKli0ro0aNcsyaHd/uT3SFAgAAQGoR6Ga3p9h+//13OXfunBQuXNhpzHP//v1NZSgttqSVV3Ufq+joaFMpSrcp/Xr27FmnfeyP7fskSrnZ7du3S6NGjRyP586dKzVr1pQpU6aYyGvChAny3XffudQAAAAAIDnxT8QloejYCi0TqwOt7Yve4NfxFjqQW9WuXdtMB6HZDbsVK1aY4Q16DW/fR8vaasUoO60gVbp0aZe6QbmcsdABHPY+V2r16tVOI9UfeughOX78+H2Po42Mb8pGIyoAAAAgtQkLCzPTM9jpcAQNIHSMhGYqcubMeUcxJc0yaFCgtEdRs2bNpGvXrqaUrAYPPXv2NNM+2EvTPv/886ZXkvZCeuutt+Tvv/82XazGjh3rcntdCiw0qNAXpBNnaFkq7dNlHXxy7do184LuJ/bEHQAAAEBykUyGLMjmzZvNMAQ7+9gMrc46Y8aMeB1Dy8lqMKG9jrQaVLt27UwvIzudPmLp0qXSo0cPqVatminO9M4777hcatblwEJr3g4aNMiMQNeZ/3TuCZ2lz07TMSVKlLjvcWKXqgUAAADg7JFHHhGbzSbxpeMqYtPshn0yvLupVKmSGbPhKZcCi/fff9/M+tegQQPJnDmzzJw506nmrU6soTP3uevmzZsmE2Kl048DAAAAvlAVype5FFhoakQHd1y5csUEFmnSpHHa/v3335v1rtAytdqfSwd9aynb2HR0OwAAAIDkza3B6doXK3ZQYU+1WDMY8fHmm2+a0emTJ082pbemTp1qxm3ogBKdIwMAAABISpqwSKzFl7mUsUgMixYtMgGE9iHr3LmzGbNRsmRJKVKkiBls0qFDB283EQAAAKmIv48HAIklIcvpukXLyRYvXtwxnsJeXrZu3bqm2xUAAACA5M/rgYUGFVrCVpUpU8YxwZ5mMrJly+bl1gEAACA1Dt5OrMWXeT2w0O5POqO30lK2kyZNkvTp00ufPn3MzIEAAAAAkj+vj7Ho27ev4/vGjRvL3r17zbTjpUqVkooVK3q1bQAAAEh9fDyx4HsZC60EVa5cObl69arTeh20rTMD6lTjCTFRBwAAAAAfDizGjRsnXbt2jXMCPC1n++qrr8rHH3/slbYBAAAgdVeFSqzFl3ktsNBxFc2aNbvrdp3BW7tEAQAAAEj+vDbG4uzZsxIQEHDX7WnTppXz588naZsAAAAAP/Hx1IKvZSwKFCggf//9912379ixQ/Lly5ekbQIAAADoCpXCAosWLVrIkCFD5ObNm3dsu3HjhgwdOlQef/xxr7QNAAAAQArpCvX222/LvHnz5IEHHpCePXtK6dKlzXotN6tzWdy6dUsGDx7sreYBAAAglfL1zILPBRZ58+aVdevWSffu3SUkJERsNptZ7+fnJ02bNjXBhe4DAAAAIPnz6gR5OmfFL7/8IpcvX5YDBw6Y4EInxsuePbs3mwUAAIBUTG90IwXOvK00kHjooYe83QwAAAAAKTmwAAAAAJILxliksKpQAAAAAHwHGQsAAADAgiEW7iGwAAAAACz8iSzcQlcoAAAAAB4jYwEAAABYMHjbPWQsAAAAAHiMjAUAAABgwRAL95CxAAAAAOAxMhYAAACAhb+QsnAHGQsAAAAAHiNjAQAAAFgwxsI9BBYAAACABeVm3UNXKAAAAAAeI2MBAAAAWPjTF8otZCwAAAAAeIyMBQAAAGBBwsI9ZCwAAAAAeIyMBQAAAGDBGAv3kLEAAAAA4DEyFgAAAIAFCQv3EFgAAAAAFnTpcQ/nDQAAAIDHyFgAAAAAFn70hXILGQsAAAAAHiNjAQAAAFiQr3APGQsAAAAAHiNjAQAAAFgwQZ57yFgAAAAA8BgZCwAAAMCCfIV7CCwAAAAAC3pCuYeuUAAAAAA8RsYCAAAAsGCCPPeQsQAAAADgMTIWAAAAgAV33t3DeQMAAADgMTIWAAAAgAVjLNxDxgIAAACAx8hYAAAAABbkK9xDxgIAAACAx8hYAAAAABaMsXCPTwYWnR8r4e0mAECC+jHHc95uAgCkGnTpcQ/nDQAAAIDHfDJjAQAAALiLrlDuIWMBAAAAwGNkLAAAAAAL8hXuIWMBAAAAwGNkLAAAAAALhli4h4wFAAAAAI+RsQAAAAAs/Bll4RYCCwAAAMCCrlDuoSsUAAAAAI+RsQAAAAAs/OgK5RYyFgAAAAA8RsYCAAAAsGCMhXvIWAAAAADwGBkLAAAAwIJys+4hYwEAAADAY2QsAAAAAAvGWLiHwAIAAACwILBwD12hAAAAAHiMjAUAAABgwQR57iFjAQAAAMBjZCwAAAAAC38SFm4hYwEAAAAkQ2vWrJFWrVpJ/vz5xc/PTxYsWODYFhUVJW+99ZZUrFhRMmXKZPZ58cUX5dSpU07HuHTpknTo0EGCgoIkW7Zs0qVLFwkLC3PaZ8eOHVKvXj1Jnz69FCpUSEaOHOlWewksAAAAgFhjLBLrP1dcv35dKleuLJMmTbpjW3h4uGzdulWGDBlivs6bN0/27dsnTzzxhNN+GlTs2rVLli1bJj/99JMJVrp16+bYfvXqVWnSpIkUKVJEtmzZIqNGjZJ3331XvvjiC3GVn81ms4mPGbP6kLebAAAJ6sctp73dBABIUGv61ZHkasXei4l27EfL5HTreZqxmD9/vrRp0+au+2zatElq1KghR48elcKFC8uePXukXLlyZn316tXNPkuWLJEWLVrIiRMnTJZj8uTJMnjwYDlz5oykS5fO7DNo0CCTHdm7d69LbSRjAQAAAMSaxyKxloiICJMlsC66LiFcuXLFBCDa5UmtX7/efG8PKlTjxo3F399fNmzY4Ninfv36jqBCNW3a1GQ/Ll++7NLPJ7AAAAAAkqgr1IgRIyRr1qxOi67z1M2bN82Yi+eee86Mp1CahciTJ4/TfmnTppUcOXKYbfZ98ubN67SP/bF9n/iiKhQAAACQREJCQqRfv35O6wIDAz06pg7kfuaZZ0RHOGjXJm8hsAAAAACSqNxsYGCgx4FEXEGFjqtYsWKFI1uhgoOD5dy5c077R0dHm0pRus2+z9mzZ532sT+27xNfdIUCAAAAUqCo/wUV+/fvl99++01y5nQeGF67dm0JDQ011Z7sNPiIiYmRmjVrOvbRSlF6LDutIFW6dGnJnj27S+0hsAAAAACSYbnZsLAw2bZtm1nU4cOHzffHjh0zgcBTTz0lmzdvltmzZ8utW7fMmAhdIiMjzf5ly5aVZs2aSdeuXWXjxo3yxx9/SM+ePaV9+/amIpR6/vnnzcBtnd9Cy9J+++23Mn78+Du6a8XrvFFuFgCSP8rNAvA1ybnc7O//uFYNyRX1Hoh/FmDVqlXSsGHDO9Z36tTJzDVRrFixOJ+3cuVKeeSRR8z32u1Jg4lFixaZalDt2rWTCRMmSObMmZ0myOvRo4cpS5srVy7p1auXGQjuKgILAEgBCCwA+JrkHFis3Z94gUXdUq51L0pJ6AoFAAAAwGNUhQIAAAAsErEolE8jsAAAAAAs/HWKbLiMrlAAAAAAPEbGAgAAALAgX+EeMhYAAAAAPEbGAgAAALAiZeEWMhYAAAAAPEbGAgAAALDwI2XhFjIWAAAAADxGxgIAAACwYBoL9xBYAAAAABbEFe6hKxQAAAAAj5GxAAAAAKxIWbiFjAUAAAAAj5GxAAAAACwoN+seMhYAAAAAPEbGAgAAALCg3Kx7yFgAAAAA8BgZCwAAAMCChIV7CCwAAAAAKyKLlBlYXL9+XT766CNZvny5nDt3TmJiYpy2Hzp0yGttAwAAAJBCAotXXnlFVq9eLR07dpR8+fKJH6NlAAAA4EWUm02hgcXixYvl559/ljp16ni7KQAAAABSamCRPXt2yZEjh7ebAQAAABh0oEmh5Wbff/99eeeddyQ8PNzbTQEAAACQUjMWY8aMkYMHD0revHmlaNGiEhAQ4LR969atXmsbAAAAUh8SFik0sGjTpo23mwAAAAAgpQcWQ4cO9XYTAAAAgH+RskiZgYXdli1bZM+ePeb78uXLS9WqVb3dJAAAAKRClJtNoYGFTorXvn17WbVqlWTLls2sCw0NlYYNG8rcuXMld+7c3m4iAAAAgOReFapXr15y7do12bVrl1y6dMksf//9t1y9elV69+7t7eYBAAAgFZabTazFl3k9Y7FkyRL57bffpGzZso515cqVk0mTJkmTJk282jYAAAAAKSSwiImJuaPErNJ1ug0AAABISj6eWPDdrlCPPvqovPHGG3Lq1CnHupMnT0rfvn2lUaNGXm0bAAAAgBQSWEycONGMp9DJ8UqUKGGWYsWKmXWffPKJt5sHAACA1JiySKzFh3m9K1ShQoXM7No6zmLv3r1mnY63aNy4sbebBgAAACClBBbKz89PHnvsMbMASen0Pztl+9L/yoWjByT8yiVp0n2IFK36sGP75oVfy8FNq+X65fPinzZAchcuKQ+16SR5ipe541i3oiJlwYi+cvHEIXlyyETJVajEHftcOXdK5r3fU/z8/eWl8f9N9NcHIPWpXCBI2lcvIKXzZpZcmdPJf37cI2sPXnJsD2laUpqXz+v0nA1HLsvAebud1tUqll1eqlVISuTOKJHRNtl24ooMXnj7BqBa06/OHT/73Z/3yYp9FxLldQFJiXksUmhgMWHChLsGG+nTp5eSJUtK/fr1JU2aNEneNvi+qIibkrNgcSldp4ksm/zBHduz5S0gdZ57XYJyB0t0VKTs/G2+/DxusLT/8EvJkOX2vCt2G36YJhmz5TCBRVxioqNlxZSPJLhUeTl78PZkkACQ0NIH+MvB89fll11n5cMn/q24aPXn4cvy0a/7HY8jbzkXS2lQKqcMfKyEfLH2mGw9Fipp/P2keK6Mdxxn+JL9svHIZcfjsIjoBH0tAFIWrwcWY8eOlfPnz0t4eLhkz57drLt8+bJkzJhRMmfObCbQK168uKxcudJ0mwISUuGKD5nlbkrWbOj0uPbTXWXf2l/l0onDUqDsv7PDH9u5SU7s3iqPvTZYjv+9Oc5jbfpxpmQNLiQFylYhsACQaDYcCTXLvUTdipFL4VFxbkvjJ9LrkWIyec0R+fnvc471Ry/duGNfDSTudhwgJfP1+SZ8dvD28OHD5aGHHpL9+/fLxYsXzfLPP/9IzZo1Zfz48XLs2DEJDg42VaIAb7oVHSV7fl8s6TJkMlkOu/Crl+X3r8ZLw5cHSNp06eN87sm92+TQlrVS9/nXk7DFABC3KgWzyo+vPSRfv/Sg9GtUXILS/3uf8YG8mSVPlkCJsYlMfaGyzO/2kIxsW06K5bwzY9G3UXFZ2L2GfP58JWlRPk8Svwog8TB2O4VmLN5++2354YcfTDUoO+3+NHr0aGnXrp0cOnRIRo4cab4HvOHojg2yfMpHEh0ZIRmz5pAWfT+U9Fmymm02m01WT/9YyjZoKbmLPiDXLpy94/k3w67Kqukfy6NdBpqgBAC8SbMZa/ZfktNXb0r+rOmlW90iMurJctJ9zg4TTOTLevsGSefahWTS6iNy+spNebZ6ARn/TAXpMH2rXLt5u7vT1D+OytbjVyQiKkYeKppN+jYqIRnSpZEf/jrt5VcIINUGFqdPn5bo6Dv7ZOq6M2fOmO/z588v165di/P5ERERZnF6bmSEpE0XmEgtRmqTv3RlaTdkktwMuyJ7f18iyz8fIW1CxkmGoGyya8VCibwZLlWaP3PX56/5aryUrPmI5HugYpK2GwDiYh1cfehCuBy8cF2+7VLdZDE0UPD/3y3VrzackNX7L5rvdTzGD10fkoalcsrCnbdvoMzacMJxnP3nr0v6gDTyXPUCBBbwDb6eWvDVrlANGzaUV199Vf766y/HOv2+e/fuZvI8tXPnTjO3RVxGjBghWbNmdVqWz/4sydoP3xcQmF6y5skveYuXlQad+opfmjSy949fzbaTe7fLuUN75cvXn5Apr7WUuW+/bNbP/7C3rJw+2nx/au922bH0B7NdlzUzx0nkjevm+71rbx8HALzl9JUICQ2PkoLZbmcqLl6/PWbiyMVwxz5Rt2xy6spNyRN095t2u09fM12oAnSQBoBUyesZiy+//FI6duwo1apVk4CAAEe2Qmfd1m1KB3GPGTMmzueHhIRIv379nNZN3nAyCVqO1MoWEyO3om7/w1un/WvyUJsXHdvCQy/KL+PflkZdQyRP8dJmXetBH5vn2B3Ztl62//q9tH7rY8mULacXXgEA/Ct35nQSlCGtI6DYdzZMIqJjpHCODLLz1O3eAloVKjgoUM5ede4hYFUqdya5ejPKBCFASke52RQaWOjA7GXLlpnJ8XTQtipdurRZrFmNuwkMDDSLVdp01NBG/ETdvCFXzp9yPL564axcOH5Q0mfMIoGZg+SvX+ZKkco1zdgKHSuxa+UiEzwUr17P7J85p/NgxYDADOZrUJ58kjl7bvN99nyFnfY5f3S/+Pn5S44CRZPgFQJIbTIE+EuBbLc/i5SOmSj5v4t+HR/xUu3Csnr/Bbl0PcqMsehev6icDL0pG4/eLhsbHnlLFu44I51rF5Zz1yLlzNUI08VJrfzn9r+vDxfPLtkzpjNZCi1VW71wNnmhZkGZu5kbe0Bq5vXAwk5LyurcFTqIO23aZNMs+Di9yP9pzFuOx39+/4X5+kDtxlL3hV4Seua4/LP+NzO+In2mIDNAu9WboyRH/iJebDUA3J1OjDfhmX/HdGnpWLV411kZs/yQlMiVUZqVKyuZA9PKhbBI2XQ0VL5cd8wp0/DpmiNyK8Ymg5uVksC0/rL7TJj0+e/fEhZxy2yPjrFJ2yrBjmOfDL0hk1YdlkX/G38BpHSUm3WPn03L2niRzl/Rq1cvmTlzpnmsWQsNMnRdgQIFZNCgQS4fc8zquCcoA4CU6sctDIgF4Fvimr09udh35t8xRgmtdPCdpZt9hdcHb+sYie3bt8uqVavMTNt2jRs3lm+//darbQMAAEDqwzwW7vF6n6MFCxaYAKJWrVqmK5Rd+fLl5eDBg15tGwAAAFIhX48AfDVjcf78ecmT587ZOq9fv+4UaAAAAABIvrweWFSvXl1+/vlnx2N7MDF16lSpXbu2F1sGAACA1FpuNrH+82Ve7wo1fPhwad68uezevdvMXzF+/Hjz/bp162T16tXebh4AAACAlJCxqFu3rhm8rUFFxYoVZenSpaZr1Pr1682keQAAAEBS0g40ibX4Mq9mLKKiouTVV1+VIUOGyJQpU7zZFAAAAAApNWMREBAgP/zwgzebAAAAADih3GwK7QrVpk0bU3IWAAAAQMrl9cHbpUqVkvfee0/Wrl1rKkRlypTJaXvv3r291jYAAACkQr6eWkgkfjabzSZeVKxYsbtu09Kzhw4dcvmYY1a7/hwASM5+3HLa200AgAS1pl8dSa4Onb+ZaMcunju9+CqvZywOHz5svl64cMF8zZUrl5dbBAAAACBFjbEIDQ2VHj16mGAib968ZtHve/bsKVeuXPFm0wAAAJBKUW42hWUsLl26ZGbWPnnypHTo0EHKli1r1uvkeDNmzJDly5ebSfKyZ8/urSYCAAAASO6BhQ7YTpcunRw8eNBkKmJva9Kkifk6duxYbzURAAAAqZCPJxZ8ryuUlpgdPXr0HUGFCg4OlpEjR8r8+fO90jYAAAAAKSRjcfr0aSlfvvxdt1eoUEHOnDmTpG0CAAAASFmksIyFDtI+cuTIPatF5ciRI0nbBAAAACCFBRZNmzaVwYMHS2Rk5B3bIiIiZMiQIdKsWTOvtA0AAACpl18i/ufLvDp4W2fa1pm3teRsmTJlROfq27Nnj3z66acmuPjqq6+81TwAAACkUr5eFtbnAouCBQvK+vXr5fXXX5eQkBATVNhn237sscdk4sSJUqhQIW81DwAAAEBKmXm7WLFisnjxYrl8+bLs37/frCtZsiRjKwAAAOA1JCxSYGBhp5Pg1ahRw9vNAAAAAJCSAwsAAAAguWCMRQqrCgUAAADAd5CxAAAAAJyQsnAHGQsAAAAAHiNjAQAAAFgwxsI9BBYAAACABXGFe+gKBQAAAMBjZCwAAAAAC7pCuYeMBQAAAACPkbEAAAAALPwYZeEWMhYAAAAAPEbGAgAAALAiYeEWMhYAAABAMrRmzRpp1aqV5M+fX/z8/GTBggVO2202m7zzzjuSL18+yZAhgzRu3Fj279/vtM+lS5ekQ4cOEhQUJNmyZZMuXbpIWFiY0z47duyQevXqSfr06aVQoUIycuRIt9pLYAEAAADESlgk1uKK69evS+XKlWXSpElxbtcAYMKECfLZZ5/Jhg0bJFOmTNK0aVO5efOmYx8NKnbt2iXLli2Tn376yQQr3bp1c2y/evWqNGnSRIoUKSJbtmyRUaNGybvvvitffPGFuMrPpqGOjxmz+pC3mwAACerHLae93QQASFBr+tWR5OrctahEO3aeLAFuPU8zFvPnz5c2bdqYx3oJr5mM/v37y4ABA8y6K1euSN68eWXGjBnSvn172bNnj5QrV042bdok1atXN/ssWbJEWrRoISdOnDDPnzx5sgwePFjOnDkj6dKlM/sMGjTIZEf27t3rUhvJWAAAAABJJCIiwmQJrIuuc9Xhw4dNMKDdn+yyZs0qNWvWlPXr15vH+lW7P9mDCqX7+/v7mwyHfZ/69es7ggqlWY99+/bJ5cuXXWoTgQUAAAAQq9xsYv03YsQIEwBYF13nKg0qlGYorPSxfZt+zZMnj9P2tGnTSo4cOZz2iesY1p8RX1SFAgAAAJJISEiI9OvXz2ldYGCg+AICCwAAACCJys0GBgYmSCARHBxsvp49e9ZUhbLTx1WqVHHsc+7cOafnRUdHm0pR9ufrV32Olf2xfZ/4oisUAAAAkMIUK1bMXPgvX77csU7Ha+jYidq1a5vH+jU0NNRUe7JbsWKFxMTEmLEY9n20UlRU1L8D1rWCVOnSpSV79uwutYnAAgAAAEiG5WbDwsJk27ZtZrEP2Nbvjx07ZqpE9enTRz744ANZuHCh7Ny5U1588UVT6cleOaps2bLSrFkz6dq1q2zcuFH++OMP6dmzp6kYpfup559/3gzc1vkttCztt99+K+PHj7+ju1Z80BUKAAAASIY2b94sDRs2dDy2X+x36tTJlJR98803zVwXOi+FZibq1q1rysnqRHd2s2fPNsFEo0aNTDWodu3ambkv7HTw+NKlS6VHjx5SrVo1yZUrl5l0zzrXRXwxjwUApADMYwHA1yTneSwuXo9OtGPnzOS79/V995UBAAAAbtCysHAdYywAAAAAeIyMBQAAAGDhR8LCLWQsAAAAAHiMwAIAAACAxwgsAAAAAHiMMRYAAACABWMs3EPGAgAAAIDHyFgAAAAAFsxj4R4CCwAAAMCCrlDuoSsUAAAAAI+RsQAAAAAsSFi4h4wFAAAAAI+RsQAAAACsSFm4hYwFAAAAAI+RsQAAAAAsKDfrHjIWAAAAADxGxgIAAACwYB4L95CxAAAAAOAxMhYAAACABQkL9xBYAAAAAFZEFm6hKxQAAAAAj5GxAAAAACwoN+seMhYAAAAAPEbGAgAAALCg3Kx7yFgAAAAA8JifzWazeX4YIPWJiIiQESNGSEhIiAQGBnq7OQDgMT7XAHiCwAJw09WrVyVr1qxy5coVCQoK8nZzAMBjfK4B8ARdoQAAAAB4jMACAAAAgMcILAAAAAB4jMACcJMObBw6dCgDHAH4DD7XAHiCwdsAAAAAPEbGAgAAAIDHCCwAAAAAeIzAAgAAAIDHCCwAHWzk5ycLFizwdjMAAABSLAIL+IyXXnrJBAixlwMHDni7aQCQYJ9zbdq08XYzACBOBBbwKc2aNZPTp087LcWKFUuUnxUVFZUox03sYwNAYuMzDEidCCzgU7T2enBwsNOSJk0a+fHHH+XBBx+U9OnTS/HixWXYsGESHR3t9FwNQpo3by4ZMmQw+/z3v/91bDty5IjJfnz77bfSoEEDc5zZs2fLu+++K1WqVHE6zrhx46Ro0aKOx5s2bZLHHntMcuXKJVmzZjXP37p1q9Nz9NiTJ0+WJ554QjJlyiQffPCBlCxZUkaPHu2037Zt28jCADCWLFkidevWlWzZsknOnDnl8ccfl4MHD97xuTVv3jxp2LChZMyYUSpXrizr16937MNnGICERGABn/f777/Liy++KG+88Ybs3r1bPv/8c5kxY4Z8+OGHTvsNGTJE2rVrJ9u3b5cOHTpI+/btZc+ePU77DBo0yBxH1zdt2jReP//atWvSqVMnWbt2rfz5559SqlQpadGihVlvpf/At23bVnbu3CldunSRl19+WaZPn+60jz6uX7+++QcbQOp2/fp16devn2zevFmWL18u/v7+5jMkJibGab/BgwfLgAEDzEX9Aw88IM8999wdN1buhc8wAPGmE+QBvqBTp062NGnS2DJlyuRYnnrqKVujRo1sw4cPd9r3q6++suXLl8/xWP8UXnvtNad9atasaevevbv5/vDhw2afcePGOe0zdOhQW+XKlZ3WjR071lakSJG7tvPWrVu2LFmy2BYtWuT08/v06eO038mTJ83r2bBhg3kcGRlpy5Url23GjBkunBUAvvY517p16zi3nT9/3nyW7Ny50+lza+rUqY59du3aZdbt2bPHPOYzDEBCImMBn6Lpfr0rZ18mTJhgMhDvvfeeZM6c2bF07drVdH0KDw93PLd27dpOx9LHsTMW1atXd7lNZ8+eNT9P7/JpN4KgoCAJCwuTY8eO3fPY+fPnl5YtW8q0adPM40WLFklERIQ8/fTTLrcBgO/Zv3+/yT5o1039XLF3X4r92VKpUiXH9/ny5TNfz507F++fw2cYgPhKG+89gRRA+/bGTrHrP4A6puLJJ5+8Y38dK+Hq8a2068Htm3V3H7SoXQguXrwo48ePlyJFiphxIBq0REZG3vPY6pVXXpGOHTvK2LFjTReCZ5991vSTBoBWrVqZz5QpU6aYi3jtAlWhQoU7PlsCAgIc3+v4BmXvLsVnGICERGABn6eDtvft23ffPr3ad1jHYlgfV61a9Z7PyZ07t5w5c8b8w2z/B1szJVZ//PGHfPrpp6ZPsjp+/LhcuHAhXm3X5+g/1jooUgdqrlmzJl7PA+Db9EJfP9c0qKhXr55Zp2MgXMVnGICERGABn/fOO++YaimFCxeWp556ytyh0+5Rf//9t6lcYvf999+bVL5WWdGKTxs3bpQvv/zynsd+5JFH5Pz58zJy5EhzbP2Hc/HixaargJ12H/jqq6/Msa9evSoDBw40lafiQytaad36kJAQc5zY3bUApE7Zs2c3laC++OIL071JuyVpcQlX8RkGICExxgI+T6s3/fTTT7J06VJ56KGHpFatWiYtryl9K+0uNXfuXNMfedasWTJnzhwpV67cPY9dtmxZcydv0qRJpoyjBiNafcVKg5PLly+bzIl2Cejdu7fkyZMn3u3X6ira5aBz584uvnIAvka7MKVNm9bcINHPqy1btpjuT3379pVRo0a5fDw+wwAkJD8dwZ2gRwSQ4OVyGzVqZLof5M2b19vNAeDlSUC1W+fEiRMlpeAzDEg9yFgAyZRWTzlx4oSpDa9VVPgHGUi9NGOgmddVq1ZJ48aNJSXgMwxIfQgsgGRKu2Jpd63Q0FDT/xlA6qWTzb322mvSv39/ad26taQEfIYBqQ9doQAAAAB4jIwFAAAAAI8RWAAAAADwGIEFAAAAAI8RWAAAAADwGIEFAAAAAI8RWACAD/Pz85MFCxZ4uxkAgFSAwAIAEsFLL71kLup17oHYevToYbbpPglFJyGrUqVKgh0PAABXEVgAQCIpVKiQzJ07V27cuOFYd/PmTfnmm2+kcOHCXm0bAAAJjcACABLJgw8+aIKLefPmOdbp9xpUVK1a1bEuIiJCevfuLXny5JH06dNL3bp1ZdOmTY7tq1atMhmO5cuXS/Xq1SVjxozy8MMPy759+8z2GTNmyLBhw2T79u1mP110nd2FCxekbdu25nmlSpWShQsXJtk5AACkHgQWAJCIXn75ZZk+fbrj8bRp06Rz585O+7z55pvyww8/yMyZM2Xr1q1SsmRJadq0qVy6dMlpv8GDB8uYMWNk8+bNkjZtWnNs9eyzz0r//v2lfPnycvr0abPoOjsNOp555hnZsWOHtGjRQjp06HDHsQEA8BSBBQAkohdeeEHWrl0rR48eNcsff/xh1tldv35dJk+eLKNGjZLmzZtLuXLlZMqUKZIhQwb58ssvnY714YcfSoMGDcw+gwYNknXr1pmuVbpv5syZTbARHBxsFl1np2M5nnvuOROwDB8+XMLCwmTjxo1Jeh4AAL4vrbcbAAC+LHfu3NKyZUvTNclms5nvc+XK5dh+8OBBiYqKkjp16jjWBQQESI0aNWTPnj1Ox6pUqZLj+3z58pmv586du+94DevzMmXKJEFBQeZ5AAAkJAILAEhk2mWpZ8+e5vtJkya5fRwNOOx0HIWKiYlx6Xn258bneQAAuIKuUACQyJo1ayaRkZEmM6FjJ6xKlCgh6dKlM12k7HQ/HbytXZ7iS49x69atBG03AACuIGMBAIksTZo0jm5N+r2Vdk3q3r27DBw4UHLkyGG6NY0cOVLCw8OlS5cu8f4ZRYsWlcOHD8u2bdukYMGCkiVLFgkMDEzw1wIAwN0QWABAEtBxDXfz0Ucfma5JHTt2lGvXrpmSsr/++qtkz5493sdv166dKWXbsGFDCQ0NNZWoEnICPgAA7sfPpqMJAQAAAMADjLEAAAAA4DECCwAAAAAeI7AAAAAA4DECCwAAAAAeI7AAAAAA4DECCwAAAAAeI7AAAAAA4DECCwAAAAAeI7AAAAAA4DECCwAAAAAeI7AAAAAAIJ76f8L7dhfbFrDHAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" + { + "data": { + "image/png": "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/wo3OuogqtnWdqNtz29h0w8o0bag0KXloXryM844wwXM/v37259//hlVvff//vc/69ixo1s22s70XlXSo3WidabPnta9tuHevXtHPFfDtKz1Iyza8gsFlMcff9yFGh0eV5DWNp44+PiBUO9bYVD/a90MGDDAbVdPPvlkxLhal1pvCjxqFfeXUWI65K73qrDr1/BGs86vvvpqVzKi4K5tT0cwREEwJVp3Wu+arrYDrRNtf9OmTQuNo/Wlz8Hll1/uPr9qvdb/Kv05Ef8H5U033WTR0udP01d9rfYTc+bMsaefftr9WLjzzjtD4+l8BG2b+lGs/ZdKFrRtfPTRR+5HRqyfP5/2fdpnal+hfcOLL77oftBp/+YbNmyYPfroo25c7U/0A0D7R/1Y0X4vcZkHchAPCJjdu3erCc678soroxp//fr1bvyXX375uMc0fODAgaH7RYsW9e6+++4Up3fppZd6FSpUOG746NGj3fT++9//hoYdPnzYa9asmVe4cGFvz549EfNz2mmnebt27QqN279/fze8Xr163pEjR0LDO3Xq5OXNm9c7ePCgu//PP/94xYoV87p37x7x+lu2bHHzHz68a9eubpr9+vXzoqFlpPHnzJnjbd++3du0aZM3ffp0N6/58uVz930XXnihV6dOndB8ybFjx7zmzZt71apVCw3T+9EyS4k/n/fcc0/EtPQ8vXfNi8yYMcONN3To0IjnX3vttV5cXJy3Zs2a0DCNp+eGD1u2bJkb/txzz0W9zjUfej/t27d3f/v279/vVapUyWvbtm2K781f34MHD3bvQ+tp/vz5XuPGjd3wt99+O2J8TTcxvXblypUjhp111lle69atjxt3yJAhXqFChbxff/01Yri2gfj4eG/jxo0pzq+2bc3XO++8E/GZK1OmjNegQYPQsOeff96Nt3LlyojtvWTJkm59RrNMnnzySW/FihXuby0TGTdunPu87Nu3z01H7+VEy+eOO+7wChYsGLEtatlouhMnTkzyPfrb5JgxY9y2o+WWmnWu96DX0XtK6nXCl4X/+WrTpk3EdHv37u3Wjb8/0DaSO3dur0OHDhHTGzRokHv+iZbvVVdd5cbbuXOnFw3/8/fYY49FDNf6btiwYYrLX+u8du3a3gUXXBAxPNrPn/a/GnbLLbcc9x5OPfXU0P0NGza4ZTRs2LCI8ZYvX+6WVfhw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AAAAnGyZgcoL1CKbEj3u93KQVVFmAAAAYNkmr0XdMrthw4a0mDcAAAAgzaTZRRMAAACAjEaYBQAAQGARZgEAABBYhFkAAAAEFmEWAAAAOSvMrl271h555BHr1KmTbdu2zQ375JNP3BXCAAAAgCwbZr/88kurU6eOLV682N59913bu3evG75s2TIbOHBgeswjAAAAkDZhtl+/fjZ06FD77LPPLG/evKHhF1xwgS1atCjWyQEAAAAZF2aXL19uV1111XHDTz/9dNuxY0fq5wQAAABI7zBbrFgx+/PPP48bvnTpUitXrlyskwMAAAAyLsz++9//tgcffNC2bNlicXFxduzYMfvmm2+sT58+1qVLl9TPCQAAAJDeYXb48OFWo0YNK1++vDv5q1atWtaqVStr3ry56+EAAAAAyChxnud5qXnipk2bXP2sAm2DBg2sWrVqFgR79uyxokWL2u7du61IkSKZPTsAAAA4ibyW21JJLbO6JSQkuFC7c+dOK168eGonBwAAAKR/mcG9995rkydPdn8ryLZu3drOPvtsF2y/+OKL2OcAAAAAyKgwO336dKtXr577+8MPP7R169bZqlWrrHfv3vbwww+ndj4AAACA9A+z6ku2dOnS7u+ZM2fa9ddfb2eeeabdcsstrtwAAAAAyLJhtlSpUvbLL7+4EoNZs2ZZ27Zt3fD9+/dbfHx8eswjAAAAkDYngHXr1s21xpYpU8b1M9umTRs3fPHixa7LLgAAACDLhtlBgwZZ7dq1Xddc1113neXLl88NV6tsv3790mMeAQAAgLTtZzao6GcWAAAgh/czO3fuXHfbtm2bu5xtuJdeeik1kwQAAABiFnOYHTx4sD322GPWqFGjUN0sAAAAEIgwO3HiRHvllVfspptuSp85AgAAANKra67Dhw9b8+bNY30aAAAAkPlh9rbbbrM33ngj7ecEAAAASO8yg4MHD9oLL7xgc+bMsbp161qePHkiHh81alSskwQAAAAyJsz+9NNPVr9+fff3ihUrIh7jZDAAAABk6TA7b9689JkTAAAAIL1rZsP9/vvv7gYAAAAEIszqIgnqZ1ZXZahQoYK7FStWzIYMGXLcBRQAAACALFVm8PDDD9vkyZPt8ccftxYtWrhhX3/9tQ0aNMidHDZs2LD0mE8AAADgOHGe53kWg7Jly7oLJ1xxxRURw99//3276667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AgAAILAIswAAAAgswiwAAAACizALAACAwCLMAgAAILAIswAAAAgswiwAAAACizALAACAwCLMAgAAILAIswAAAAgswiwAAAACizALAACAwCLMAgAAILAIswAAAAgswiwAAAACizALAACAwCLMAgAAILAIswAAAAgswiwAAAACizALAACAwCLMAgAAILAIswAAAAgswiwAAAACizALAACAwCLMAgAAILAIswAAAAgswiwAAAACK0uE2XHjxlnFihUtf/781rRpU/v2229THP/tt9+2GjVquPHr1KljM2fOzLB5BQAAQNaR6WF22rRpdt9999nAgQPthx9+sHr16ln79u1t27ZtSY6/YMEC69Spk9166622dOlS69Chg7utWLEiw+cdAAAAOTzMjho1yrp3727dunWzWrVq2cSJE61gwYL20ksvJTn+mDFj7KKLLrIHHnjAatasaUOGDLGzzz7bxo4dm+HzDgAAgMyVOzNf/PDhw7ZkyRLr379/aFiuXLmsTZs2tnDhwiSfo+FqyQ2nltwZM2YkOf6hQ4fczbd79273/549e1I93wmHDqT6uQiek9lWThbbWs7CtoaMwraGrL6t+c/zPC9rh9kdO3ZYQkKClSpVKmK47q9atSrJ52zZsiXJ8TU8KSNGjLDBgwcfN7x8+fInNe/IOYo+1yOzZwE5BNsaMgrbGoKyrf3zzz9WtGjRrBtmM4JafcNbco8dO2Z///23nXrqqRYXF5ep8xYk+oWkHwCbNm2yIkWKZPbsIBtjW0NGYVtDRmFbi51aZBVky5Yte8JxMzXMlixZ0uLj423r1q0Rw3W/dOnSST5Hw2MZP1++fO4WrlixYic97zmVPoR8EJER2NaQUdjWkFHY1mJzohbZLHECWN68ea1hw4Y2d+7ciJZT3W/WrFmSz9Hw8PHls88+S3Z8AAAAZF+ZXmagEoCuXbtao0aNrEmTJjZ69Gjbt2+f691AunTpYuXKlXO1r9KrVy9r3bq1Pf3003bppZfa1KlT7fvvv7cXXnghk98JAAAAclyY7dixo23fvt0GDBjgTuKqX7++zZo1K3SS18aNG10PB77mzZvbG2+8YY888og99NBDVq1aNdeTQe3atTPxXWR/KtVQX8CJSzaAtMa2hozCtoaMwraWvuK8aPo8AAAAALKgTL9oAgAAAJBahFkAAAAEFmEWAAAAgUWYBZDtvPLKK/QnnUPW7aBBg9yJw0BQffHFF+4iTrt27crsWQkswmwOsHDhQndxCnVllhk2bNjgPqg//vhjprw+0sfNN9/s1qt/01X1LrroIvvpp58ye9aQRanHmnvuuccqV67szurWFZEuv/zy4/oOTw/vvPOOnXfeea4T9sKFC1vdunXtsccec1eETCuEkuxv4sSJdsopp9jRo0dDw/bu3Wt58uRx21dS28PatWszYU5zFsJsDjB58mT3BfLVV1/ZH3/8kdmzg2xE4fXPP/90NwWS3Llz22WXXZbs+EeOHMnQ+UPWoR+1ukjO559/bk8++aQtX77cdcN4/vnn2913352ur/3www+7biAbN25sn3zyia1YscL1Vb5s2TKbMmWKZTXqZCg8LCHr0Paq8Kr+7X3z5893VyFdvHixHTx4MDR83rx5dsYZZ1iVKlUyaW5zDsJsNqcP3bRp0+zOO+90LbM6RBfugw8+cH315s+f331IX3311eNaFr7++ms799xzrUCBAq4lpWfPnu7CFr6KFSva8OHD7ZZbbnG/WPXhDb+IRaVKldz/DRo0cNNO/OsVwaXWNe3EddOh3n79+rlrj6vvaL9FXtufLnSibez111+3v/76yzp16uQuhlKwYEGrU6eOvfnmmxHT1Tai7axv375WokQJN30dTg6nbfSOO+5wfVJr2upr+qOPPooYZ/bs2VazZk3XEucHb2SOu+66y20P3377rV1zzTV25pln2llnneUunLNo0aLQeKNGjXLbRKFChdz+Rs/Tfiy19HraPym8KkSrr3Lts9q2betaa3XRHt/7779vZ599ttue1Ho8ePDgiFCp+X/xxRftqquuctuu9p3ah4q2d+1DpXjx4m5cHb3wr2ypC/9oX6j9aL169Wz69OnHteApaCvw63Ol/S6ynurVq1uZMmXcOvPp7yuvvNKt3/BtWcO1TZxo/fu++eYbd8RA298555zjfnQhSupnFtnX5MmTvUaNGrm/P/zwQ69KlSresWPH3P1169Z5efLk8fr06eOtWrXKe/PNN71y5cqp32Fv586dbpw1a9Z4hQoV8p555hnv119/9b755huvQYMG3s033xx6jQoVKnglSpTwxo0b5/3vf//zRowY4eXKlctNU7799ls3zTlz5nh//vmn99dff2XKskDa6tq1q3fllVeG7v/zzz/eHXfc4VWt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tI306tUr4nl6XK8ZPp1u3bq5k4Py58/vTmb86KOPkjxJSN577z03P8g86s3i7rvvdvuMvHnzut5TrrjiitBJqTJq1Ch30pVOfmnfvr332muvRZxUFesJYD6dSKOTc7Sd+vuxxx57LOJkLZ1trpNm9drq2aBJkybeCy+8EHpc86HtKJzmRfPk0zRLly7tem/wt1edFKsTIdUzg3rZOO2009x7+/LLL5M9cQxZm79/Uy8F4XTCl4ZrXfuiXf/qkUU9tOizoW1P39GITpz+iSb0ImdQnZpaK9RXKAAAQFZHmUEOpzoy9WigQxs67KGTc3SIBAAAIAgIsznc//73P1cPpuuTq1ZMdWX9+/fP7NkCAACICmUGAAAACKz/1/cJAAAAEECEWQAAAAQWYRYAAACBRZgFAABAYBFmAQAAEFiEWQBII7ocdLFixTJ7Nuy8886ze++914IgqywzAMFFmAUAM9u+fbvdeeedrr/lfPnyWenSpa19+/buYiJZia75PnLkSKtXr54VLFjQXb+9RYsW9vLLL7vrxANATsNFEwDAzK655hoXFF999VWrXLmybd261ebOnWt//fWXZRWaPwXsZcuW2ZAhQ1yILVKkiC1atMieeuopa9CggdWvXz+zZxMAMhQtswByvF27dtn8+fPtiSeesPPPP98qVKhgTZo0cVfDu+KKK0LjjRo1yurUqWOFChWy8uXL21133WV79+5Ncdrvv/++nX322ZY/f34XkgcPHmxHjx51j+maNYMGDQq1BpctW9Z69uyZ7LRGjx5tX331lQvZd999twuummbnzp1t8eLFVq1atdC4x44ds759+1qJEiVcK7NeJ9yJ3ot/+H/27NlWs2ZNK1y4sF100UX2559/hsa5+eabrUOHDi5IlylTxl0WW/MV3kJ86NAh69Onj5UrV869VtOmTe2LL76Iet0AwIkQZgHkeApqus2YMcOFr+TkypXLnn32Wfv5559dC+7nn3/uAmNyFJC7dOlivXr1sl9++cWef/55FxKHDRvmHn/nnXfsmWeeccN1aWm9vgJmcl5//XVr06aNa4FNLE+ePC4s+jR/uq+Qq7KExx57zD777LOY3sv+/ftdUJ0yZYoL0Rs3bnTBNNy8efNs7dq17n9NR+9PN99//vMfW7hwoU2dOtV++uknu+6661wo1vsFgDShy9kCQE43ffp0r3jx4l7+/Pm95s2be/379/eWLVuW4nPefvtt79RTTw3df/nll72iRYuG7l944YXe8OHDI54zZcoUr0yZMu7vp59+2jvzzDO9w4cPRzWPBQoU8Hr27HnC8Vq3bu21bNkyYljjxo29Bx98MKb3oq+INWvWhIaNGzfOK1WqVOh+165dvQoVKnhHjx4NDbvuuuu8jh07ur9/++03Lz4+3tu8eXPEa2m5aPkmtcwAIFa0zALA/18z+8cff9gHH3zgWg51KFzlAeGtjHPmzLELL7zQHTI/5ZRT7KabbnI1tWrBTIpqW9Ui6rf86ta9e3d3qF7PUSvlgQMHXKmAhr/33nuhEoSkqCwhWnXr1o24rzKAbdu2xfRedIJZlSpVkp2GnHXWWRYfH5/kOMuXL7eEhAQ788wzI5bBl19+6VpzASAtEGYB4P+nuta2bdvao48+agsWLHA1oQMHDnSPbdiwwS677DIXElUesGTJEhs3blzoxKykqAZVNbI//vhj6KaAp0Psei3Vqq5evdrGjx9vBQoUcHWrrVq1SrZXAoXCVatWRfVeVHYQLi4uztXRxvJekppG4kCd0uvo/Svoavrhy2DlypU2ZsyYqN4HAJwIvRkAQDJq1arl6lhFgUwh7emnn3b1pvLWW2+l+Hy17CqsVq1aNdlxFGIvv/xyd9PJUzVq1HCBV89NTCd6PfTQQ7Z06dLj6mYVgBVEw+tmk5Oa95Iamke1zKql9txzz03z6QOAEGYB5Hg6vK5D/rfccotrrdRh9++//96dOHXllVe6cRRIFRife+45FzzV/+zEiRNTnO6AAQNcC6h6K7j22mtdcFTpwYoVK2zo0KGuhEFhT2f465D+f//7Xxdu1ZtCUnQhhI8//tiVB6hrrpYtW4bmVT0xTJ48OaquuVLzXlJDLck33HCDOwlOwVnhVv35qjcGLedLL700zV8TQM5DmQGAHE91nAqU6llAh/lr167tSg1Uxzp27Fg3ji5SoO6sFBr1uHoWGDFiRIrTVZ+wH330kX366afWuHFjO+ecc9xr+GFVXV9NmjTJ9RercKc61g8//NB1cZUUdd+lHgnU64B6QND0NF31SqAuvTRf0UjNe0ktXcxBYfb++++36tWru668vvvuOxfwASAtxOkssDSZEgAAAJDBaJkFAABAYBFmAQAAEFiEWQAAAAQWYRYAAACBRZgFAABAYBFmAQAAEFiEWQAAAAQWYRYAAACBRZgFAABAYBFmAQAAEFiEWQAAAFhQ/X/NJ2hSyCmYfQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } + ], + "source": [ + "plt.figure(figsize=(10,6))\n", + "sns.heatmap(top3_pivot, annot=True, fmt=\".0f\", cmap=\"Blues\")\n", + "plt.title(\"Policies Sold by Month for Top 3 States\")\n", + "plt.ylabel(\"State\")\n", + "plt.xlabel(\"Month\")\n", + "plt.show()\n", + "\n", + "plt.figure(figsize=(8,5))\n", + "sns.barplot(x=\"Sales Channel\", y=\"Response Rate Yes\", data=merged)\n", + "plt.title(\"Customer Response Rate by Marketing Channel\")\n", + "plt.ylabel(\"Response Rate (Yes)\")\n", + "plt.xlabel(\"Sales Channel\")\n", + "plt.ylim(0,1)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c68df5c1-7e3d-4c2d-b4b6-a113f43abfd2", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" }, - "nbformat": 4, - "nbformat_minor": 5 + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 }