Reading CSV files from GitLab with csv, pandas and python-gitlab
Why I moved from GitHub to GitLab ¶
I started learning Git with GitHub and used it for quite a while. Then Microsoft acquired GitHub in 2016 or so. I was not very comfortable with it considering how I feel about Microsoft's sneaky data collection policies (for example, Windows 10 appears to be one big data mining engine when you dig deeper into its processes that the first thing you need to do after installing Windows 10 is debloat it, i.e., remove bloatware, disable telemetry and tighten your privacy settings) and how the company that was once openly against Linux is now trying to influence open source software by buying its way into The Free Software Foundation (FSF). I was looking some alternatives and stumbled upon GitLab.
It did not take much time to realize that GitLab offers much more than GitHub. It offered a complete development to deployment service until GitHub. Back when GitHub used a third party Travis CI, GitLab already had its own CI/CD system available for all users. It offered better private repo features and free CI/CD even for free users. Since a chunk of open source loving developers migrated from GitHub to GitLab after the acquisition, Microsoft had increased GitHub features for free users and recently developed its own CI, but in my opinion GitLab is still far ahead.
With added security and features, also comes a bit of complexity. Firstly, GitLab blocks any requests without a user-agent possible considering them to be crawlers or bots. So, sometimes we need to explicitly specify a user-agent like Mozilla or Gecko, etc. Secondly, GitLab uses base64 encryption on all it's content. It's always not enough just to be able to access the file as it's encrypted. We need to decode it to use it. I didn't find much documentation online on reading a csv file from a GitLab repository and had to spend some time figuring it out, so this page might be useful for some.
[^top]
Reading a CSV file from GitLab with csv or pandas ¶
CSV stands for Comma Seperated Values. A CSV file typically contains data values seperated by comma, or rarely by other delimeters like a semi-colon. The file I am trying to read is called 'mpg.csv' located in my GitLab public repository https://gitlab.com/datasets_a/mpg-data.
Step 1¶
We can use either of the following Python packages to read the URL. Both are built-in packages in Python and need not be installed seperately.
- requests
- urllib, especially the urllib.request module.
Step 2¶
The data from the URL is returned in the form of a text string, which will be decoded using the StringIO function of Python io module.
Step 3¶
The data read from the URL will be in raw format and needs to be converted to a structured format. We can use either of the following to do that.
- Python's default csv module. The csv.Reader() function is used to convert data into delimited strings, whereas the csv.Dictreader() function can be used to convert data into a Python dictionary format.
- pandas (short for panel data) library. The pandas.read_csv module is specifically what we will use here.
import csv, requests
from io import StringIO
url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL data
s = requests.get(url).content
# Decoding & formatting
data=csv.reader(StringIO(s.decode('utf-8')))
#Printing the first 5 rows
for row in list(data)[:5]:
print(row)
['', 'manufacturer', 'model', 'displ', 'year', 'cyl', 'trans', 'drv', 'cty', 'hwy', 'fl', 'class'] ['1', 'audi', 'a4', '1.8', '1999', '4', 'auto(l5)', 'f', '18', '29', 'p', 'compact'] ['2', 'audi', 'a4', '1.8', '1999', '4', 'manual(m5)', 'f', '21', '29', 'p', 'compact'] ['3', 'audi', 'a4', '2', '2008', '4', 'manual(m6)', 'f', '20', '31', 'p', 'compact'] ['4', 'audi', 'a4', '2', '2008', '4', 'auto(av)', 'f', '21', '30', 'p', 'compact']
with csv.DictReader¶
# Decoding and formatting
data=list(csv.DictReader(StringIO(s.decode('utf-8'))))
# Printing the first 2 rows
data[:2]
[{'': '1', 'manufacturer': 'audi', 'model': 'a4', 'displ': '1.8', 'year': '1999', 'cyl': '4', 'trans': 'auto(l5)', 'drv': 'f', 'cty': '18', 'hwy': '29', 'fl': 'p', 'class': 'compact'}, {'': '2', 'manufacturer': 'audi', 'model': 'a4', 'displ': '1.8', 'year': '1999', 'cyl': '4', 'trans': 'manual(m5)', 'drv': 'f', 'cty': '21', 'hwy': '29', 'fl': 'p', 'class': 'compact'}]
import csv
from urllib.request import Request, urlopen
from io import StringIO
url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL data.
myHeaders = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)'} # Even some random text works as headers
url_request = Request(url, headers=myHeaders)
response = urlopen(url_request).read()
# Decoding and formatting
data=csv.reader(StringIO(response.decode('utf-8')))
#Printing first 5 rows
for row in list(data)[:5]:
print(row)
['', 'manufacturer', 'model', 'displ', 'year', 'cyl', 'trans', 'drv', 'cty', 'hwy', 'fl', 'class'] ['1', 'audi', 'a4', '1.8', '1999', '4', 'auto(l5)', 'f', '18', '29', 'p', 'compact'] ['2', 'audi', 'a4', '1.8', '1999', '4', 'manual(m5)', 'f', '21', '29', 'p', 'compact'] ['3', 'audi', 'a4', '2', '2008', '4', 'manual(m6)', 'f', '20', '31', 'p', 'compact'] ['4', 'audi', 'a4', '2', '2008', '4', 'auto(av)', 'f', '21', '30', 'p', 'compact']
import csv
from urllib.request import Request, urlopen
from io import StringIO
url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL data
myHeaders = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)'} # Even some random text works as headers
url_request = Request(url, headers=myHeaders)
response = urlopen(url_request).read()
data=list(csv.DictReader(StringIO(response.decode('utf-8'))))
# Printing the first 2 rows
data[:2]
[{'': '1', 'manufacturer': 'audi', 'model': 'a4', 'displ': '1.8', 'year': '1999', 'cyl': '4', 'trans': 'auto(l5)', 'drv': 'f', 'cty': '18', 'hwy': '29', 'fl': 'p', 'class': 'compact'}, {'': '2', 'manufacturer': 'audi', 'model': 'a4', 'displ': '1.8', 'year': '1999', 'cyl': '4', 'trans': 'manual(m5)', 'drv': 'f', 'cty': '21', 'hwy': '29', 'fl': 'p', 'class': 'compact'}]
Method 3: Using requests and pandas¶
import requests
from io import StringIO
import pandas as pd
url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL, decoding and converting it to pandas dataframe using read_csv
df = pd.read_csv(StringIO(requests.get(url).text))
# Printing the first 5 rows of the dataframe
df.head()
Unnamed: 0 | manufacturer | model | displ | year | cyl | trans | drv | cty | hwy | fl | class | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | audi | a4 | 1.8 | 1999 | 4 | auto(l5) | f | 18 | 29 | p | compact |
1 | 2 | audi | a4 | 1.8 | 1999 | 4 | manual(m5) | f | 21 | 29 | p | compact |
2 | 3 | audi | a4 | 2.0 | 2008 | 4 | manual(m6) | f | 20 | 31 | p | compact |
3 | 4 | audi | a4 | 2.0 | 2008 | 4 | auto(av) | f | 21 | 30 | p | compact |
4 | 5 | audi | a4 | 2.8 | 1999 | 6 | auto(l5) | f | 16 | 26 | p | compact |
Method 4: Using urllib and pandas¶
from urllib.request import Request, urlopen
from io import StringIO
import pandas as pd
url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL data
myHeaders = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)'} # Even some random text works as headers
url_request = Request(url, headers=myHeaders)
response = urlopen(url_request).read()
# Decoding and converting it to pandas dataframe using read_csv
df = pd.read_csv(StringIO(response.decode('utf-8')))
# Printing the first 5 rows of the dataframe
df.head()
Unnamed: 0 | manufacturer | model | displ | year | cyl | trans | drv | cty | hwy | fl | class | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | audi | a4 | 1.8 | 1999 | 4 | auto(l5) | f | 18 | 29 | p | compact |
1 | 2 | audi | a4 | 1.8 | 1999 | 4 | manual(m5) | f | 21 | 29 | p | compact |
2 | 3 | audi | a4 | 2.0 | 2008 | 4 | manual(m6) | f | 20 | 31 | p | compact |
3 | 4 | audi | a4 | 2.0 | 2008 | 4 | auto(av) | f | 21 | 30 | p | compact |
4 | 5 | audi | a4 | 2.8 | 1999 | 6 | auto(l5) | f | 16 | 26 | p | compact |
[^top]
Reading a CSV file from GitLab with python-gitlab ¶
python-gitlab is a Python package providing access to the GitLab server API.
Install with Anaconda¶
conda install -c conda-forge python-gitlab
Let's explore the package a little.
# Importing library
import gitlab
Next, we will use the gitlab.Gitlab class to create a Gitlab object gl. The URL in question belongs to my public repository, so we don't need to pass any authentication tokens to access it. However, if we were to access a private repository, we will need to pass a personal token, an oauth token or a job token for authentication.
# anonymous gitlab instance, read-only for public resources
gl=gitlab.Gitlab('https://gitlab.com/')
A Gitlab account typically consists of groups and projects. A group may contain sub-groups or projects, and each sub-group may have more projects or its own sub-groups.
Group
|___ Project
|___ Project
|___ Sub-group
|___ Project
|___ Sub-group
|___ Project
Each group or project in GitLab has a unique ID. Let's get a list of projects and their information under one of my public groups with group id 9799560
# get the group with id == 9799560
group = gl.groups.get(9799560)
for project in group.projects.list():
print('-----------------------')
print(project)
----------------------- <class 'gitlab.v4.objects.GroupProject'> => {'id': 23134556, 'description': '', 'name': 'Python for Data Science', 'name_with_namespace': 'datasets / Python for Data Science', 'path': 'python-for-data-science', 'path_with_namespace': 'datasets_a/python-for-data-science', 'created_at': '2020-12-16T05:31:29.818Z', 'default_branch': 'master', 'tag_list': [], 'ssh_url_to_repo': '[email protected]:datasets_a/python-for-data-science.git', 'http_url_to_repo': 'https://gitlab.com/datasets_a/python-for-data-science.git', 'web_url': 'https://gitlab.com/datasets_a/python-for-data-science', 'readme_url': 'https://gitlab.com/datasets_a/python-for-data-science/-/blob/master/README.md', 'avatar_url': None, 'forks_count': 0, 'star_count': 0, 'last_activity_at': '2020-12-17T13:08:27.730Z', 'namespace': {'id': 9799560, 'name': 'datasets', 'path': 'datasets_a', 'kind': 'group', 'full_path': 'datasets_a', 'parent_id': None, 'avatar_url': None, 'web_url': 'https://gitlab.com/groups/datasets_a'}, '_links': {'self': 'https://gitlab.com/api/v4/projects/23134556', 'issues': 'https://gitlab.com/api/v4/projects/23134556/issues', 'merge_requests': 'https://gitlab.com/api/v4/projects/23134556/merge_requests', 'repo_branches': 'https://gitlab.com/api/v4/projects/23134556/repository/branches', 'labels': 'https://gitlab.com/api/v4/projects/23134556/labels', 'events': 'https://gitlab.com/api/v4/projects/23134556/events', 'members': 'https://gitlab.com/api/v4/projects/23134556/members'}, 'packages_enabled': True, 'empty_repo': False, 'archived': False, 'visibility': 'public', 'resolve_outdated_diff_discussions': False, 'container_registry_enabled': True, 'container_expiration_policy': {'cadence': '1d', 'enabled': False, 'keep_n': 10, 'older_than': '90d', 'name_regex': '.*', 'name_regex_keep': None, 'next_run_at': '2020-12-17T05:31:29.841Z'}, 'issues_enabled': True, 'merge_requests_enabled': True, 'wiki_enabled': True, 'jobs_enabled': True, 'snippets_enabled': True, 'service_desk_enabled': True, 'service_desk_address': 'incoming+datasets-a-python-for-data-science-23134556-issue-@incoming.gitlab.com', 'can_create_merge_request_in': False, 'issues_access_level': 'enabled', 'repository_access_level': 'enabled', 'merge_requests_access_level': 'enabled', 'forking_access_level': 'enabled', 'wiki_access_level': 'enabled', 'builds_access_level': 'enabled', 'snippets_access_level': 'enabled', 'pages_access_level': 'enabled', 'operations_access_level': 'enabled', 'analytics_access_level': 'enabled', 'emails_disabled': None, 'shared_runners_enabled': True, 'lfs_enabled': True, 'creator_id': 4094213, 'import_status': 'none', 'open_issues_count': 0, 'ci_default_git_depth': 50, 'ci_forward_deployment_enabled': True, 'public_jobs': True, 'build_timeout': 3600, 'auto_cancel_pending_pipelines': 'enabled', 'build_coverage_regex': None, 'ci_config_path': '', 'shared_with_groups': [], 'only_allow_merge_if_pipeline_succeeds': False, 'allow_merge_on_skipped_pipeline': None, 'request_access_enabled': True, 'only_allow_merge_if_all_discussions_are_resolved': False, 'remove_source_branch_after_merge': True, 'printing_merge_request_link_enabled': True, 'merge_method': 'merge', 'suggestion_commit_message': None, 'auto_devops_enabled': False, 'auto_devops_deploy_strategy': 'continuous', 'autoclose_referenced_issues': True, 'approvals_before_merge': 0, 'mirror': False, 'external_authorization_classification_label': '', 'marked_for_deletion_at': None, 'marked_for_deletion_on': None, 'requirements_enabled': True, 'compliance_frameworks': []} ----------------------- <class 'gitlab.v4.objects.GroupProject'> => {'id': 23052125, 'description': '', 'name': 'Sentiment Analysis of Indian Print Media News', 'name_with_namespace': 'datasets / Sentiment Analysis of Indian Print Media News', 'path': 'sentiment-analysis-of-indian-print-media-news', 'path_with_namespace': 'datasets_a/sentiment-analysis-of-indian-print-media-news', 'created_at': '2020-12-11T17:16:27.339Z', 'default_branch': 'master', 'tag_list': [], 'ssh_url_to_repo': '[email protected]:datasets_a/sentiment-analysis-of-indian-print-media-news.git', 'http_url_to_repo': 'https://gitlab.com/datasets_a/sentiment-analysis-of-indian-print-media-news.git', 'web_url': 'https://gitlab.com/datasets_a/sentiment-analysis-of-indian-print-media-news', 'readme_url': None, 'avatar_url': None, 'forks_count': 0, 'star_count': 0, 'last_activity_at': '2020-12-11T17:16:27.339Z', 'namespace': {'id': 9799560, 'name': 'datasets', 'path': 'datasets_a', 'kind': 'group', 'full_path': 'datasets_a', 'parent_id': None, 'avatar_url': None, 'web_url': 'https://gitlab.com/groups/datasets_a'}, '_links': {'self': 'https://gitlab.com/api/v4/projects/23052125', 'issues': 'https://gitlab.com/api/v4/projects/23052125/issues', 'merge_requests': 'https://gitlab.com/api/v4/projects/23052125/merge_requests', 'repo_branches': 'https://gitlab.com/api/v4/projects/23052125/repository/branches', 'labels': 'https://gitlab.com/api/v4/projects/23052125/labels', 'events': 'https://gitlab.com/api/v4/projects/23052125/events', 'members': 'https://gitlab.com/api/v4/projects/23052125/members'}, 'packages_enabled': True, 'empty_repo': False, 'archived': False, 'visibility': 'public', 'resolve_outdated_diff_discussions': False, 'container_registry_enabled': True, 'container_expiration_policy': {'cadence': '1d', 'enabled': False, 'keep_n': 10, 'older_than': '90d', 'name_regex': '.*', 'name_regex_keep': None, 'next_run_at': '2020-12-12T17:16:27.355Z'}, 'issues_enabled': True, 'merge_requests_enabled': True, 'wiki_enabled': True, 'jobs_enabled': True, 'snippets_enabled': True, 'service_desk_enabled': True, 'service_desk_address': 'incoming+datasets-a-sentiment-analysis-of-indian-print-media-news-23052125-issue-@incoming.gitlab.com', 'can_create_merge_request_in': False, 'issues_access_level': 'enabled', 'repository_access_level': 'enabled', 'merge_requests_access_level': 'enabled', 'forking_access_level': 'enabled', 'wiki_access_level': 'enabled', 'builds_access_level': 'enabled', 'snippets_access_level': 'enabled', 'pages_access_level': 'enabled', 'operations_access_level': 'enabled', 'analytics_access_level': 'enabled', 'emails_disabled': False, 'shared_runners_enabled': True, 'lfs_enabled': True, 'creator_id': 4094213, 'import_status': 'none', 'open_issues_count': 0, 'ci_default_git_depth': 50, 'ci_forward_deployment_enabled': True, 'public_jobs': True, 'build_timeout': 3600, 'auto_cancel_pending_pipelines': 'enabled', 'build_coverage_regex': None, 'ci_config_path': '', 'shared_with_groups': [], 'only_allow_merge_if_pipeline_succeeds': False, 'allow_merge_on_skipped_pipeline': None, 'request_access_enabled': True, 'only_allow_merge_if_all_discussions_are_resolved': False, 'remove_source_branch_after_merge': True, 'printing_merge_request_link_enabled': True, 'merge_method': 'merge', 'suggestion_commit_message': None, 'auto_devops_enabled': False, 'auto_devops_deploy_strategy': 'continuous', 'autoclose_referenced_issues': True, 'approvals_before_merge': 0, 'mirror': False, 'external_authorization_classification_label': '', 'marked_for_deletion_at': None, 'marked_for_deletion_on': None, 'requirements_enabled': True, 'compliance_frameworks': []} ----------------------- <class 'gitlab.v4.objects.GroupProject'> => {'id': 22838171, 'description': '', 'name': 'MPG data', 'name_with_namespace': 'datasets / MPG data', 'path': 'mpg-data', 'path_with_namespace': 'datasets_a/mpg-data', 'created_at': '2020-12-02T11:42:59.430Z', 'default_branch': 'master', 'tag_list': [], 'ssh_url_to_repo': '[email protected]:datasets_a/mpg-data.git', 'http_url_to_repo': 'https://gitlab.com/datasets_a/mpg-data.git', 'web_url': 'https://gitlab.com/datasets_a/mpg-data', 'readme_url': None, 'avatar_url': None, 'forks_count': 0, 'star_count': 0, 'last_activity_at': '2020-12-02T13:14:44.828Z', 'namespace': {'id': 9799560, 'name': 'datasets', 'path': 'datasets_a', 'kind': 'group', 'full_path': 'datasets_a', 'parent_id': None, 'avatar_url': None, 'web_url': 'https://gitlab.com/groups/datasets_a'}, '_links': {'self': 'https://gitlab.com/api/v4/projects/22838171', 'issues': 'https://gitlab.com/api/v4/projects/22838171/issues', 'merge_requests': 'https://gitlab.com/api/v4/projects/22838171/merge_requests', 'repo_branches': 'https://gitlab.com/api/v4/projects/22838171/repository/branches', 'labels': 'https://gitlab.com/api/v4/projects/22838171/labels', 'events': 'https://gitlab.com/api/v4/projects/22838171/events', 'members': 'https://gitlab.com/api/v4/projects/22838171/members'}, 'packages_enabled': True, 'empty_repo': False, 'archived': False, 'visibility': 'public', 'resolve_outdated_diff_discussions': False, 'container_registry_enabled': True, 'container_expiration_policy': {'cadence': '1d', 'enabled': False, 'keep_n': 10, 'older_than': '90d', 'name_regex': '.*', 'name_regex_keep': None, 'next_run_at': '2020-12-03T11:42:59.473Z'}, 'issues_enabled': True, 'merge_requests_enabled': True, 'wiki_enabled': True, 'jobs_enabled': True, 'snippets_enabled': True, 'service_desk_enabled': True, 'service_desk_address': '[email protected]', 'can_create_merge_request_in': False, 'issues_access_level': 'enabled', 'repository_access_level': 'enabled', 'merge_requests_access_level': 'enabled', 'forking_access_level': 'enabled', 'wiki_access_level': 'enabled', 'builds_access_level': 'enabled', 'snippets_access_level': 'enabled', 'pages_access_level': 'enabled', 'operations_access_level': 'enabled', 'analytics_access_level': 'enabled', 'emails_disabled': False, 'shared_runners_enabled': True, 'lfs_enabled': True, 'creator_id': 4094213, 'import_status': 'none', 'open_issues_count': 0, 'ci_default_git_depth': 50, 'ci_forward_deployment_enabled': True, 'public_jobs': True, 'build_timeout': 3600, 'auto_cancel_pending_pipelines': 'enabled', 'build_coverage_regex': None, 'ci_config_path': '', 'shared_with_groups': [], 'only_allow_merge_if_pipeline_succeeds': False, 'allow_merge_on_skipped_pipeline': None, 'request_access_enabled': False, 'only_allow_merge_if_all_discussions_are_resolved': False, 'remove_source_branch_after_merge': True, 'printing_merge_request_link_enabled': True, 'merge_method': 'merge', 'suggestion_commit_message': None, 'auto_devops_enabled': False, 'auto_devops_deploy_strategy': 'continuous', 'autoclose_referenced_issues': True, 'approvals_before_merge': 0, 'mirror': False, 'external_authorization_classification_label': '', 'marked_for_deletion_at': None, 'marked_for_deletion_on': None, 'requirements_enabled': True, 'compliance_frameworks': []} ----------------------- <class 'gitlab.v4.objects.GroupProject'> => {'id': 22473676, 'description': 'This dataset contains about 1006 equally distributed images of 2 distinct types.', 'name': 'COVID Face Mask Detection Dataset', 'name_with_namespace': 'datasets / COVID Face Mask Detection Dataset', 'path': 'covid-face-mask-detection-dataset', 'path_with_namespace': 'datasets_a/covid-face-mask-detection-dataset', 'created_at': '2020-11-16T06:02:17.171Z', 'default_branch': 'master', 'tag_list': [], 'ssh_url_to_repo': '[email protected]:datasets_a/covid-face-mask-detection-dataset.git', 'http_url_to_repo': 'https://gitlab.com/datasets_a/covid-face-mask-detection-dataset.git', 'web_url': 'https://gitlab.com/datasets_a/covid-face-mask-detection-dataset', 'readme_url': 'https://gitlab.com/datasets_a/covid-face-mask-detection-dataset/-/blob/master/README.md', 'avatar_url': None, 'forks_count': 0, 'star_count': 0, 'last_activity_at': '2020-11-16T06:02:17.171Z', 'namespace': {'id': 9799560, 'name': 'datasets', 'path': 'datasets_a', 'kind': 'group', 'full_path': 'datasets_a', 'parent_id': None, 'avatar_url': None, 'web_url': 'https://gitlab.com/groups/datasets_a'}, '_links': {'self': 'https://gitlab.com/api/v4/projects/22473676', 'issues': 'https://gitlab.com/api/v4/projects/22473676/issues', 'merge_requests': 'https://gitlab.com/api/v4/projects/22473676/merge_requests', 'repo_branches': 'https://gitlab.com/api/v4/projects/22473676/repository/branches', 'labels': 'https://gitlab.com/api/v4/projects/22473676/labels', 'events': 'https://gitlab.com/api/v4/projects/22473676/events', 'members': 'https://gitlab.com/api/v4/projects/22473676/members'}, 'packages_enabled': True, 'empty_repo': False, 'archived': False, 'visibility': 'public', 'resolve_outdated_diff_discussions': False, 'container_registry_enabled': True, 'container_expiration_policy': {'cadence': '1d', 'enabled': False, 'keep_n': 10, 'older_than': '90d', 'name_regex': '.*', 'name_regex_keep': None, 'next_run_at': '2020-11-17T06:02:17.200Z'}, 'issues_enabled': True, 'merge_requests_enabled': True, 'wiki_enabled': True, 'jobs_enabled': True, 'snippets_enabled': True, 'service_desk_enabled': True, 'service_desk_address': 'incoming+datasets-a-covid-face-mask-detection-dataset-22473676-issue-@incoming.gitlab.com', 'can_create_merge_request_in': False, 'issues_access_level': 'enabled', 'repository_access_level': 'enabled', 'merge_requests_access_level': 'enabled', 'forking_access_level': 'enabled', 'wiki_access_level': 'enabled', 'builds_access_level': 'enabled', 'snippets_access_level': 'enabled', 'pages_access_level': 'enabled', 'operations_access_level': 'enabled', 'analytics_access_level': 'enabled', 'emails_disabled': None, 'shared_runners_enabled': True, 'lfs_enabled': True, 'creator_id': 4094213, 'import_status': 'none', 'open_issues_count': 0, 'ci_default_git_depth': 50, 'ci_forward_deployment_enabled': True, 'public_jobs': True, 'build_timeout': 3600, 'auto_cancel_pending_pipelines': 'enabled', 'build_coverage_regex': None, 'ci_config_path': '', 'shared_with_groups': [], 'only_allow_merge_if_pipeline_succeeds': False, 'allow_merge_on_skipped_pipeline': None, 'request_access_enabled': True, 'only_allow_merge_if_all_discussions_are_resolved': False, 'remove_source_branch_after_merge': True, 'printing_merge_request_link_enabled': True, 'merge_method': 'merge', 'suggestion_commit_message': None, 'auto_devops_enabled': False, 'auto_devops_deploy_strategy': 'continuous', 'autoclose_referenced_issues': True, 'approvals_before_merge': 0, 'mirror': False, 'external_authorization_classification_label': '', 'marked_for_deletion_at': None, 'marked_for_deletion_on': None, 'requirements_enabled': True, 'compliance_frameworks': []} ----------------------- <class 'gitlab.v4.objects.GroupProject'> => {'id': 21864811, 'description': '', 'name': 'Computer Vision in Python - Face Detection and Image Recognition', 'name_with_namespace': 'datasets / Computer Vision in Python - Face Detection and Image Recognition', 'path': 'computer-vision-in-python-face-detection-and-image-recognition', 'path_with_namespace': 'datasets_a/computer-vision-in-python-face-detection-and-image-recognition', 'created_at': '2020-10-19T04:57:30.429Z', 'default_branch': 'master', 'tag_list': [], 'ssh_url_to_repo': '[email protected]:datasets_a/computer-vision-in-python-face-detection-and-image-recognition.git', 'http_url_to_repo': 'https://gitlab.com/datasets_a/computer-vision-in-python-face-detection-and-image-recognition.git', 'web_url': 'https://gitlab.com/datasets_a/computer-vision-in-python-face-detection-and-image-recognition', 'readme_url': None, 'avatar_url': None, 'forks_count': 0, 'star_count': 0, 'last_activity_at': '2020-10-26T13:15:32.005Z', 'namespace': {'id': 9799560, 'name': 'datasets', 'path': 'datasets_a', 'kind': 'group', 'full_path': 'datasets_a', 'parent_id': None, 'avatar_url': None, 'web_url': 'https://gitlab.com/groups/datasets_a'}, '_links': {'self': 'https://gitlab.com/api/v4/projects/21864811', 'repo_branches': 'https://gitlab.com/api/v4/projects/21864811/repository/branches', 'labels': 'https://gitlab.com/api/v4/projects/21864811/labels', 'events': 'https://gitlab.com/api/v4/projects/21864811/events', 'members': 'https://gitlab.com/api/v4/projects/21864811/members'}, 'packages_enabled': False, 'empty_repo': False, 'archived': False, 'visibility': 'public', 'resolve_outdated_diff_discussions': False, 'container_registry_enabled': False, 'container_expiration_policy': {'cadence': '1d', 'enabled': True, 'keep_n': 10, 'older_than': '90d', 'name_regex': None, 'name_regex_keep': None, 'next_run_at': '2020-10-21T07:31:06.778Z'}, 'issues_enabled': False, 'merge_requests_enabled': None, 'wiki_enabled': False, 'jobs_enabled': None, 'snippets_enabled': False, 'service_desk_enabled': True, 'service_desk_address': 'incoming+datasets-a-computer-vision-in-python-face-detection-and-image-r-21864811-issue-@incoming.gitlab.com', 'can_create_merge_request_in': False, 'issues_access_level': 'disabled', 'repository_access_level': 'enabled', 'merge_requests_access_level': 'private', 'forking_access_level': 'private', 'wiki_access_level': 'disabled', 'builds_access_level': 'private', 'snippets_access_level': 'disabled', 'pages_access_level': 'disabled', 'operations_access_level': 'enabled', 'analytics_access_level': 'enabled', 'emails_disabled': False, 'shared_runners_enabled': True, 'lfs_enabled': True, 'creator_id': 4094213, 'import_status': 'none', 'ci_default_git_depth': 50, 'ci_forward_deployment_enabled': True, 'public_jobs': True, 'build_timeout': 3600, 'auto_cancel_pending_pipelines': 'enabled', 'build_coverage_regex': None, 'ci_config_path': '', 'shared_with_groups': [], 'only_allow_merge_if_pipeline_succeeds': False, 'allow_merge_on_skipped_pipeline': None, 'request_access_enabled': True, 'only_allow_merge_if_all_discussions_are_resolved': False, 'remove_source_branch_after_merge': True, 'printing_merge_request_link_enabled': True, 'merge_method': 'merge', 'suggestion_commit_message': None, 'auto_devops_enabled': False, 'auto_devops_deploy_strategy': 'continuous', 'autoclose_referenced_issues': True, 'approvals_before_merge': 0, 'mirror': False, 'external_authorization_classification_label': '', 'marked_for_deletion_at': None, 'marked_for_deletion_on': None, 'requirements_enabled': True, 'compliance_frameworks': []}
The above output displayed information about three projects in the group. The project we are interested is the first one with project id 22838171
project = gl.projects.get(22838171)
Let's view the items in the project.
items = project.repository_tree()
items
[{'id': '2485ed68ee2388aab629c070c9b624b08b5bbd2f', 'name': 'mpg.csv', 'type': 'blob', 'path': 'mpg.csv', 'mode': '100644'}]
The project has only one item and it the mpg.csv file we are looking for. Projects usually have more than one items. We can retrieve file information using its file id.
file_info = project.repository_blob(items[0]['id'])
file_info
{'size': 17345, 'encoding': 'base64', 'content': 'IiIsIm1hbnVmYWN0dXJlciIsIm1vZGVsIiwiZGlzcGwiLCJ5ZWFyIiwiY3lsIiwidHJhbnMiLCJkcnYiLCJjdHkiLCJod3kiLCJmbCIsImNsYXNzIgoiMSIsImF1ZGkiLCJhNCIsMS44LDE5OTksNCwiYXV0byhsNSkiLCJmIiwxOCwyOSwicCIsImNvbXBhY3QiCiIyIiwiYXVkaSIsImE0IiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjEsMjksInAiLCJjb21wYWN0IgoiMyIsImF1ZGkiLCJhNCIsMiwyMDA4LDQsIm1hbnVhbChtNikiLCJmIiwyMCwzMSwicCIsImNvbXBhY3QiCiI0IiwiYXVkaSIsImE0IiwyLDIwMDgsNCwiYXV0byhhdikiLCJmIiwyMSwzMCwicCIsImNvbXBhY3QiCiI1IiwiYXVkaSIsImE0IiwyLjgsMTk5OSw2LCJhdXRvKGw1KSIsImYiLDE2LDI2LCJwIiwiY29tcGFjdCIKIjYiLCJhdWRpIiwiYTQiLDIuOCwxOTk5LDYsIm1hbnVhbChtNSkiLCJmIiwxOCwyNiwicCIsImNvbXBhY3QiCiI3IiwiYXVkaSIsImE0IiwzLjEsMjAwOCw2LCJhdXRvKGF2KSIsImYiLDE4LDI3LCJwIiwiY29tcGFjdCIKIjgiLCJhdWRpIiwiYTQgcXVhdHRybyIsMS44LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE4LDI2LCJwIiwiY29tcGFjdCIKIjkiLCJhdWRpIiwiYTQgcXVhdHRybyIsMS44LDE5OTksNCwiYXV0byhsNSkiLCI0IiwxNiwyNSwicCIsImNvbXBhY3QiCiIxMCIsImF1ZGkiLCJhNCBxdWF0dHJvIiwyLDIwMDgsNCwibWFudWFsKG02KSIsIjQiLDIwLDI4LCJwIiwiY29tcGFjdCIKIjExIiwiYXVkaSIsImE0IHF1YXR0cm8iLDIsMjAwOCw0LCJhdXRvKHM2KSIsIjQiLDE5LDI3LCJwIiwiY29tcGFjdCIKIjEyIiwiYXVkaSIsImE0IHF1YXR0cm8iLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTUsMjUsInAiLCJjb21wYWN0IgoiMTMiLCJhdWRpIiwiYTQgcXVhdHRybyIsMi44LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE3LDI1LCJwIiwiY29tcGFjdCIKIjE0IiwiYXVkaSIsImE0IHF1YXR0cm8iLDMuMSwyMDA4LDYsImF1dG8oczYpIiwiNCIsMTcsMjUsInAiLCJjb21wYWN0IgoiMTUiLCJhdWRpIiwiYTQgcXVhdHRybyIsMy4xLDIwMDgsNiwibWFudWFsKG02KSIsIjQiLDE1LDI1LCJwIiwiY29tcGFjdCIKIjE2IiwiYXVkaSIsImE2IHF1YXR0cm8iLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTUsMjQsInAiLCJtaWRzaXplIgoiMTciLCJhdWRpIiwiYTYgcXVhdHRybyIsMy4xLDIwMDgsNiwiYXV0byhzNikiLCI0IiwxNywyNSwicCIsIm1pZHNpemUiCiIxOCIsImF1ZGkiLCJhNiBxdWF0dHJvIiw0LjIsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDE2LDIzLCJwIiwibWlkc2l6ZSIKIjE5IiwiY2hldnJvbGV0IiwiYzE1MDAgc3VidXJiYW4gMndkIiw1LjMsMjAwOCw4LCJhdXRvKGw0KSIsInIiLDE0LDIwLCJyIiwic3V2IgoiMjAiLCJjaGV2cm9sZXQiLCJjMTUwMCBzdWJ1cmJhbiAyd2QiLDUuMywyMDA4LDgsImF1dG8obDQpIiwiciIsMTEsMTUsImUiLCJzdXYiCiIyMSIsImNoZXZyb2xldCIsImMxNTAwIHN1YnVyYmFuIDJ3ZCIsNS4zLDIwMDgsOCwiYXV0byhsNCkiLCJyIiwxNCwyMCwiciIsInN1diIKIjIyIiwiY2hldnJvbGV0IiwiYzE1MDAgc3VidXJiYW4gMndkIiw1LjcsMTk5OSw4LCJhdXRvKGw0KSIsInIiLDEzLDE3LCJyIiwic3V2IgoiMjMiLCJjaGV2cm9sZXQiLCJjMTUwMCBzdWJ1cmJhbiAyd2QiLDYsMjAwOCw4LCJhdXRvKGw0KSIsInIiLDEyLDE3LCJyIiwic3V2IgoiMjQiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNS43LDE5OTksOCwibWFudWFsKG02KSIsInIiLDE2LDI2LCJwIiwiMnNlYXRlciIKIjI1IiwiY2hldnJvbGV0IiwiY29ydmV0dGUiLDUuNywxOTk5LDgsImF1dG8obDQpIiwiciIsMTUsMjMsInAiLCIyc2VhdGVyIgoiMjYiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNi4yLDIwMDgsOCwibWFudWFsKG02KSIsInIiLDE2LDI2LCJwIiwiMnNlYXRlciIKIjI3IiwiY2hldnJvbGV0IiwiY29ydmV0dGUiLDYuMiwyMDA4LDgsImF1dG8oczYpIiwiciIsMTUsMjUsInAiLCIyc2VhdGVyIgoiMjgiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNywyMDA4LDgsIm1hbnVhbChtNikiLCJyIiwxNSwyNCwicCIsIjJzZWF0ZXIiCiIyOSIsImNoZXZyb2xldCIsImsxNTAwIHRhaG9lIDR3ZCIsNS4zLDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxNCwxOSwiciIsInN1diIKIjMwIiwiY2hldnJvbGV0IiwiazE1MDAgdGFob2UgNHdkIiw1LjMsMjAwOCw4LCJhdXRvKGw0KSIsIjQiLDExLDE0LCJlIiwic3V2IgoiMzEiLCJjaGV2cm9sZXQiLCJrMTUwMCB0YWhvZSA0d2QiLDUuNywxOTk5LDgsImF1dG8obDQpIiwiNCIsMTEsMTUsInIiLCJzdXYiCiIzMiIsImNoZXZyb2xldCIsImsxNTAwIHRhaG9lIDR3ZCIsNi41LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxNCwxNywiZCIsInN1diIKIjMzIiwiY2hldnJvbGV0IiwibWFsaWJ1IiwyLjQsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI3LCJyIiwibWlkc2l6ZSIKIjM0IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwyLjQsMjAwOCw0LCJhdXRvKGw0KSIsImYiLDIyLDMwLCJyIiwibWlkc2l6ZSIKIjM1IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjEsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjM2IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjUsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE4LDI5LCJyIiwibWlkc2l6ZSIKIjM3IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjYsMjAwOCw2LCJhdXRvKHM2KSIsImYiLDE3LDI2LCJyIiwibWlkc2l6ZSIKIjM4IiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMi40LDE5OTksNCwiYXV0byhsMykiLCJmIiwxOCwyNCwiciIsIm1pbml2YW4iCiIzOSIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwibWluaXZhbiIKIjQwIiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy4zLDE5OTksNiwiYXV0byhsNCkiLCJmIiwxNiwyMiwiciIsIm1pbml2YW4iCiI0MSIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuMywxOTk5LDYsImF1dG8obDQpIiwiZiIsMTYsMjIsInIiLCJtaW5pdmFuIgoiNDIiLCJkb2RnZSIsImNhcmF2YW4gMndkIiwzLjMsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwibWluaXZhbiIKIjQzIiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy4zLDIwMDgsNiwiYXV0byhsNCkiLCJmIiwxNywyNCwiciIsIm1pbml2YW4iCiI0NCIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuMywyMDA4LDYsImF1dG8obDQpIiwiZiIsMTEsMTcsImUiLCJtaW5pdmFuIgoiNDUiLCJkb2RnZSIsImNhcmF2YW4gMndkIiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE1LDIyLCJyIiwibWluaXZhbiIKIjQ2IiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy44LDE5OTksNiwiYXV0byhsNCkiLCJmIiwxNSwyMSwiciIsIm1pbml2YW4iCiI0NyIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuOCwyMDA4LDYsImF1dG8obDYpIiwiZiIsMTYsMjMsInIiLCJtaW5pdmFuIgoiNDgiLCJkb2RnZSIsImNhcmF2YW4gMndkIiw0LDIwMDgsNiwiYXV0byhsNikiLCJmIiwxNiwyMywiciIsIm1pbml2YW4iCiI0OSIsImRvZGdlIiwiZGFrb3RhIHBpY2t1cCA0d2QiLDMuNywyMDA4LDYsIm1hbnVhbChtNikiLCI0IiwxNSwxOSwiciIsInBpY2t1cCIKIjUwIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy43LDIwMDgsNiwiYXV0byhsNCkiLCI0IiwxNCwxOCwiciIsInBpY2t1cCIKIjUxIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy45LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjUyIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy45LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE0LDE3LCJyIiwicGlja3VwIgoiNTMiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwicGlja3VwIgoiNTQiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwicGlja3VwIgoiNTUiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJwaWNrdXAiCiI1NiIsImRvZGdlIiwiZGFrb3RhIHBpY2t1cCA0d2QiLDUuMiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMSwxNywiciIsInBpY2t1cCIKIjU3IiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsNS4yLDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInBpY2t1cCIKIjU4IiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsMy45LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInN1diIKIjU5IiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxNywiciIsInN1diIKIjYwIiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0Iiw5LDEyLCJlIiwic3V2IgoiNjEiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwic3V2IgoiNjIiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjIsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE2LCJyIiwic3V2IgoiNjMiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE4LCJyIiwic3V2IgoiNjQiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjksMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJyIiwic3V2IgoiNjUiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDQuNywyMDA4LDgsIm1hbnVhbChtNikiLCI0IiwxMiwxNiwiciIsInBpY2t1cCIKIjY2IiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJwaWNrdXAiCiI2NyIsImRvZGdlIiwicmFtIDE1MDAgcGlja3VwIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjY4IiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwicGlja3VwIgoiNjkiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDQuNywyMDA4LDgsIm1hbnVhbChtNikiLCI0IiwxMiwxNiwiciIsInBpY2t1cCIKIjcwIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJtYW51YWwobTYpIiwiNCIsOSwxMiwiZSIsInBpY2t1cCIKIjcxIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw1LjIsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJyIiwicGlja3VwIgoiNzIiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDUuMiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMSwxNiwiciIsInBpY2t1cCIKIjczIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw1LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwicGlja3VwIgoiNzQiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDUuOSwxOTk5LDgsImF1dG8obDQpIiwiNCIsMTEsMTUsInIiLCJwaWNrdXAiCiI3NSIsImZvcmQiLCJleHBlZGl0aW9uIDJ3ZCIsNC42LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxMSwxNywiciIsInN1diIKIjc2IiwiZm9yZCIsImV4cGVkaXRpb24gMndkIiw1LjQsMTk5OSw4LCJhdXRvKGw0KSIsInIiLDExLDE3LCJyIiwic3V2IgoiNzciLCJmb3JkIiwiZXhwZWRpdGlvbiAyd2QiLDUuNCwyMDA4LDgsImF1dG8obDYpIiwiciIsMTIsMTgsInIiLCJzdXYiCiI3OCIsImZvcmQiLCJleHBsb3JlciA0d2QiLDQsMTk5OSw2LCJhdXRvKGw1KSIsIjQiLDE0LDE3LCJyIiwic3V2IgoiNzkiLCJmb3JkIiwiZXhwbG9yZXIgNHdkIiw0LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE1LDE5LCJyIiwic3V2IgoiODAiLCJmb3JkIiwiZXhwbG9yZXIgNHdkIiw0LDE5OTksNiwiYXV0byhsNSkiLCI0IiwxNCwxNywiciIsInN1diIKIjgxIiwiZm9yZCIsImV4cGxvcmVyIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTMsMTksInIiLCJzdXYiCiI4MiIsImZvcmQiLCJleHBsb3JlciA0d2QiLDQuNiwyMDA4LDgsImF1dG8obDYpIiwiNCIsMTMsMTksInIiLCJzdXYiCiI4MyIsImZvcmQiLCJleHBsb3JlciA0d2QiLDUsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDEzLDE3LCJyIiwic3V2IgoiODQiLCJmb3JkIiwiZjE1MCBwaWNrdXAgNHdkIiw0LjIsMTk5OSw2LCJhdXRvKGw0KSIsIjQiLDE0LDE3LCJyIiwicGlja3VwIgoiODUiLCJmb3JkIiwiZjE1MCBwaWNrdXAgNHdkIiw0LjIsMTk5OSw2LCJtYW51YWwobTUpIiwiNCIsMTQsMTcsInIiLCJwaWNrdXAiCiI4NiIsImZvcmQiLCJmMTUwIHBpY2t1cCA0d2QiLDQuNiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMywxNiwiciIsInBpY2t1cCIKIjg3IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNC42LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMywxNiwiciIsInBpY2t1cCIKIjg4IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNC42LDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjg5IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNS40LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInBpY2t1cCIKIjkwIiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNS40LDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjkxIiwiZm9yZCIsIm11c3RhbmciLDMuOCwxOTk5LDYsIm1hbnVhbChtNSkiLCJyIiwxOCwyNiwiciIsInN1YmNvbXBhY3QiCiI5MiIsImZvcmQiLCJtdXN0YW5nIiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsInIiLDE4LDI1LCJyIiwic3ViY29tcGFjdCIKIjkzIiwiZm9yZCIsIm11c3RhbmciLDQsMjAwOCw2LCJtYW51YWwobTUpIiwiciIsMTcsMjYsInIiLCJzdWJjb21wYWN0IgoiOTQiLCJmb3JkIiwibXVzdGFuZyIsNCwyMDA4LDYsImF1dG8obDUpIiwiciIsMTYsMjQsInIiLCJzdWJjb21wYWN0IgoiOTUiLCJmb3JkIiwibXVzdGFuZyIsNC42LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxNSwyMSwiciIsInN1YmNvbXBhY3QiCiI5NiIsImZvcmQiLCJtdXN0YW5nIiw0LjYsMTk5OSw4LCJtYW51YWwobTUpIiwiciIsMTUsMjIsInIiLCJzdWJjb21wYWN0IgoiOTciLCJmb3JkIiwibXVzdGFuZyIsNC42LDIwMDgsOCwibWFudWFsKG01KSIsInIiLDE1LDIzLCJyIiwic3ViY29tcGFjdCIKIjk4IiwiZm9yZCIsIm11c3RhbmciLDQuNiwyMDA4LDgsImF1dG8obDUpIiwiciIsMTUsMjIsInIiLCJzdWJjb21wYWN0IgoiOTkiLCJmb3JkIiwibXVzdGFuZyIsNS40LDIwMDgsOCwibWFudWFsKG02KSIsInIiLDE0LDIwLCJwIiwic3ViY29tcGFjdCIKIjEwMCIsImhvbmRhIiwiY2l2aWMiLDEuNiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyOCwzMywiciIsInN1YmNvbXBhY3QiCiIxMDEiLCJob25kYSIsImNpdmljIiwxLjYsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDI0LDMyLCJyIiwic3ViY29tcGFjdCIKIjEwMiIsImhvbmRhIiwiY2l2aWMiLDEuNiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyNSwzMiwiciIsInN1YmNvbXBhY3QiCiIxMDMiLCJob25kYSIsImNpdmljIiwxLjYsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjMsMjksInAiLCJzdWJjb21wYWN0IgoiMTA0IiwiaG9uZGEiLCJjaXZpYyIsMS42LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyNCwzMiwiciIsInN1YmNvbXBhY3QiCiIxMDUiLCJob25kYSIsImNpdmljIiwxLjgsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjYsMzQsInIiLCJzdWJjb21wYWN0IgoiMTA2IiwiaG9uZGEiLCJjaXZpYyIsMS44LDIwMDgsNCwiYXV0byhsNSkiLCJmIiwyNSwzNiwiciIsInN1YmNvbXBhY3QiCiIxMDciLCJob25kYSIsImNpdmljIiwxLjgsMjAwOCw0LCJhdXRvKGw1KSIsImYiLDI0LDM2LCJjIiwic3ViY29tcGFjdCIKIjEwOCIsImhvbmRhIiwiY2l2aWMiLDIsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjEsMjksInAiLCJzdWJjb21wYWN0IgoiMTA5IiwiaHl1bmRhaSIsInNvbmF0YSIsMi40LDE5OTksNCwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsIm1pZHNpemUiCiIxMTAiLCJoeXVuZGFpIiwic29uYXRhIiwyLjQsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMTgsMjcsInIiLCJtaWRzaXplIgoiMTExIiwiaHl1bmRhaSIsInNvbmF0YSIsMi40LDIwMDgsNCwiYXV0byhsNCkiLCJmIiwyMSwzMCwiciIsIm1pZHNpemUiCiIxMTIiLCJoeXVuZGFpIiwic29uYXRhIiwyLjQsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTEzIiwiaHl1bmRhaSIsInNvbmF0YSIsMi41LDE5OTksNiwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsIm1pZHNpemUiCiIxMTQiLCJoeXVuZGFpIiwic29uYXRhIiwyLjUsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTgsMjYsInIiLCJtaWRzaXplIgoiMTE1IiwiaHl1bmRhaSIsInNvbmF0YSIsMy4zLDIwMDgsNiwiYXV0byhsNSkiLCJmIiwxOSwyOCwiciIsIm1pZHNpemUiCiIxMTYiLCJoeXVuZGFpIiwidGlidXJvbiIsMiwxOTk5LDQsImF1dG8obDQpIiwiZiIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMTE3IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMTksMjksInIiLCJzdWJjb21wYWN0IgoiMTE4IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjAsMjgsInIiLCJzdWJjb21wYWN0IgoiMTE5IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMjAwOCw0LCJhdXRvKGw0KSIsImYiLDIwLDI3LCJyIiwic3ViY29tcGFjdCIKIjEyMCIsImh5dW5kYWkiLCJ0aWJ1cm9uIiwyLjcsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwic3ViY29tcGFjdCIKIjEyMSIsImh5dW5kYWkiLCJ0aWJ1cm9uIiwyLjcsMjAwOCw2LCJtYW51YWwobTYpIiwiZiIsMTYsMjQsInIiLCJzdWJjb21wYWN0IgoiMTIyIiwiaHl1bmRhaSIsInRpYnVyb24iLDIuNywyMDA4LDYsIm1hbnVhbChtNSkiLCJmIiwxNywyNCwiciIsInN1YmNvbXBhY3QiCiIxMjMiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiwzLDIwMDgsNiwiYXV0byhsNSkiLCI0IiwxNywyMiwiZCIsInN1diIKIjEyNCIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDMuNywyMDA4LDYsImF1dG8obDUpIiwiNCIsMTUsMTksInIiLCJzdXYiCiIxMjUiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxNSwyMCwiciIsInN1diIKIjEyNiIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDQuNywxOTk5LDgsImF1dG8obDQpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxMjciLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJzdXYiCiIxMjgiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwic3V2IgoiMTI5IiwiamVlcCIsImdyYW5kIGNoZXJva2VlIDR3ZCIsNS43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxOCwiciIsInN1diIKIjEzMCIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDYuMSwyMDA4LDgsImF1dG8obDUpIiwiNCIsMTEsMTQsInAiLCJzdXYiCiIxMzEiLCJsYW5kIHJvdmVyIiwicmFuZ2Ugcm92ZXIiLDQsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJwIiwic3V2IgoiMTMyIiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjIsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDEyLDE4LCJyIiwic3V2IgoiMTMzIiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjQsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDEyLDE4LCJyIiwic3V2IgoiMTM0IiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjYsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJwIiwic3V2IgoiMTM1IiwibGluY29sbiIsIm5hdmlnYXRvciAyd2QiLDUuNCwxOTk5LDgsImF1dG8obDQpIiwiciIsMTEsMTcsInIiLCJzdXYiCiIxMzYiLCJsaW5jb2xuIiwibmF2aWdhdG9yIDJ3ZCIsNS40LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxMSwxNiwicCIsInN1diIKIjEzNyIsImxpbmNvbG4iLCJuYXZpZ2F0b3IgMndkIiw1LjQsMjAwOCw4LCJhdXRvKGw2KSIsInIiLDEyLDE4LCJyIiwic3V2IgoiMTM4IiwibWVyY3VyeSIsIm1vdW50YWluZWVyIDR3ZCIsNCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxMzkiLCJtZXJjdXJ5IiwibW91bnRhaW5lZXIgNHdkIiw0LDIwMDgsNiwiYXV0byhsNSkiLCI0IiwxMywxOSwiciIsInN1diIKIjE0MCIsIm1lcmN1cnkiLCJtb3VudGFpbmVlciA0d2QiLDQuNiwyMDA4LDgsImF1dG8obDYpIiwiNCIsMTMsMTksInIiLCJzdXYiCiIxNDEiLCJtZXJjdXJ5IiwibW91bnRhaW5lZXIgNHdkIiw1LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInN1diIKIjE0MiIsIm5pc3NhbiIsImFsdGltYSIsMi40LDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwiY29tcGFjdCIKIjE0MyIsIm5pc3NhbiIsImFsdGltYSIsMi40LDE5OTksNCwiYXV0byhsNCkiLCJmIiwxOSwyNywiciIsImNvbXBhY3QiCiIxNDQiLCJuaXNzYW4iLCJhbHRpbWEiLDIuNSwyMDA4LDQsImF1dG8oYXYpIiwiZiIsMjMsMzEsInIiLCJtaWRzaXplIgoiMTQ1Iiwibmlzc2FuIiwiYWx0aW1hIiwyLjUsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjMsMzIsInIiLCJtaWRzaXplIgoiMTQ2Iiwibmlzc2FuIiwiYWx0aW1hIiwzLjUsMjAwOCw2LCJtYW51YWwobTYpIiwiZiIsMTksMjcsInAiLCJtaWRzaXplIgoiMTQ3Iiwibmlzc2FuIiwiYWx0aW1hIiwzLjUsMjAwOCw2LCJhdXRvKGF2KSIsImYiLDE5LDI2LCJwIiwibWlkc2l6ZSIKIjE0OCIsIm5pc3NhbiIsIm1heGltYSIsMywxOTk5LDYsImF1dG8obDQpIiwiZiIsMTgsMjYsInIiLCJtaWRzaXplIgoiMTQ5Iiwibmlzc2FuIiwibWF4aW1hIiwzLDE5OTksNiwibWFudWFsKG01KSIsImYiLDE5LDI1LCJyIiwibWlkc2l6ZSIKIjE1MCIsIm5pc3NhbiIsIm1heGltYSIsMy41LDIwMDgsNiwiYXV0byhhdikiLCJmIiwxOSwyNSwicCIsIm1pZHNpemUiCiIxNTEiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsMy4zLDE5OTksNiwiYXV0byhsNCkiLCI0IiwxNCwxNywiciIsInN1diIKIjE1MiIsIm5pc3NhbiIsInBhdGhmaW5kZXIgNHdkIiwzLjMsMTk5OSw2LCJtYW51YWwobTUpIiwiNCIsMTUsMTcsInIiLCJzdXYiCiIxNTMiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTQsMjAsInAiLCJzdXYiCiIxNTQiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsNS42LDIwMDgsOCwiYXV0byhzNSkiLCI0IiwxMiwxOCwicCIsInN1diIKIjE1NSIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjEsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE1NiIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE2LDI2LCJwIiwibWlkc2l6ZSIKIjE1NyIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE3LDI3LCJyIiwibWlkc2l6ZSIKIjE1OCIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE4LDI4LCJyIiwibWlkc2l6ZSIKIjE1OSIsInBvbnRpYWMiLCJncmFuZCBwcml4Iiw1LjMsMjAwOCw4LCJhdXRvKHM0KSIsImYiLDE2LDI1LCJwIiwibWlkc2l6ZSIKIjE2MCIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE4LDI1LCJyIiwic3V2IgoiMTYxIiwic3ViYXJ1IiwiZm9yZXN0ZXIgYXdkIiwyLjUsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDE4LDI0LCJyIiwic3V2IgoiMTYyIiwic3ViYXJ1IiwiZm9yZXN0ZXIgYXdkIiwyLjUsMjAwOCw0LCJtYW51YWwobTUpIiwiNCIsMjAsMjcsInIiLCJzdXYiCiIxNjMiLCJzdWJhcnUiLCJmb3Jlc3RlciBhd2QiLDIuNSwyMDA4LDQsIm1hbnVhbChtNSkiLCI0IiwxOSwyNSwicCIsInN1diIKIjE2NCIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhsNCkiLCI0IiwyMCwyNiwiciIsInN1diIKIjE2NSIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhsNCkiLCI0IiwxOCwyMywicCIsInN1diIKIjE2NiIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjIsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDIxLDI2LCJyIiwic3ViY29tcGFjdCIKIjE2NyIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjIsMTk5OSw0LCJtYW51YWwobTUpIiwiNCIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMTY4Iiwic3ViYXJ1IiwiaW1wcmV6YSBhd2QiLDIuNSwxOTk5LDQsIm1hbnVhbChtNSkiLCI0IiwxOSwyNiwiciIsInN1YmNvbXBhY3QiCiIxNjkiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDE5OTksNCwiYXV0byhsNCkiLCI0IiwxOSwyNiwiciIsInN1YmNvbXBhY3QiCiIxNzAiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhzNCkiLCI0IiwyMCwyNSwicCIsImNvbXBhY3QiCiIxNzEiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhzNCkiLCI0IiwyMCwyNywiciIsImNvbXBhY3QiCiIxNzIiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwibWFudWFsKG01KSIsIjQiLDE5LDI1LCJwIiwiY29tcGFjdCIKIjE3MyIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjUsMjAwOCw0LCJtYW51YWwobTUpIiwiNCIsMjAsMjcsInIiLCJjb21wYWN0IgoiMTc0IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDIuNywxOTk5LDQsIm1hbnVhbChtNSkiLCI0IiwxNSwyMCwiciIsInN1diIKIjE3NSIsInRveW90YSIsIjRydW5uZXIgNHdkIiwyLjcsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDE2LDIwLCJyIiwic3V2IgoiMTc2IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDMuNCwxOTk5LDYsImF1dG8obDQpIiwiNCIsMTUsMTksInIiLCJzdXYiCiIxNzciLCJ0b3lvdGEiLCI0cnVubmVyIDR3ZCIsMy40LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE1LDE3LCJyIiwic3V2IgoiMTc4IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDQsMjAwOCw2LCJhdXRvKGw1KSIsIjQiLDE2LDIwLCJyIiwic3V2IgoiMTc5IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDQuNywyMDA4LDgsImF1dG8obDUpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxODAiLCJ0b3lvdGEiLCJjYW1yeSIsMi4yLDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwibWlkc2l6ZSIKIjE4MSIsInRveW90YSIsImNhbXJ5IiwyLjIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDIxLDI3LCJyIiwibWlkc2l6ZSIKIjE4MiIsInRveW90YSIsImNhbXJ5IiwyLjQsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTgzIiwidG95b3RhIiwiY2FtcnkiLDIuNCwyMDA4LDQsImF1dG8obDUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTg0IiwidG95b3RhIiwiY2FtcnkiLDMsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE4NSIsInRveW90YSIsImNhbXJ5IiwzLDE5OTksNiwibWFudWFsKG01KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE4NiIsInRveW90YSIsImNhbXJ5IiwzLjUsMjAwOCw2LCJhdXRvKHM2KSIsImYiLDE5LDI4LCJyIiwibWlkc2l6ZSIKIjE4NyIsInRveW90YSIsImNhbXJ5IHNvbGFyYSIsMi4yLDE5OTksNCwiYXV0byhsNCkiLCJmIiwyMSwyNywiciIsImNvbXBhY3QiCiIxODgiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIxODkiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuNCwyMDA4LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwzMSwiciIsImNvbXBhY3QiCiIxOTAiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuNCwyMDA4LDQsImF1dG8oczUpIiwiZiIsMjIsMzEsInIiLCJjb21wYWN0IgoiMTkxIiwidG95b3RhIiwiY2Ftcnkgc29sYXJhIiwzLDE5OTksNiwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsImNvbXBhY3QiCiIxOTIiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDMsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTgsMjYsInIiLCJjb21wYWN0IgoiMTkzIiwidG95b3RhIiwiY2Ftcnkgc29sYXJhIiwzLjMsMjAwOCw2LCJhdXRvKHM1KSIsImYiLDE4LDI3LCJyIiwiY29tcGFjdCIKIjE5NCIsInRveW90YSIsImNvcm9sbGEiLDEuOCwxOTk5LDQsImF1dG8obDMpIiwiZiIsMjQsMzAsInIiLCJjb21wYWN0IgoiMTk1IiwidG95b3RhIiwiY29yb2xsYSIsMS44LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyNCwzMywiciIsImNvbXBhY3QiCiIxOTYiLCJ0b3lvdGEiLCJjb3JvbGxhIiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjYsMzUsInIiLCJjb21wYWN0IgoiMTk3IiwidG95b3RhIiwiY29yb2xsYSIsMS44LDIwMDgsNCwibWFudWFsKG01KSIsImYiLDI4LDM3LCJyIiwiY29tcGFjdCIKIjE5OCIsInRveW90YSIsImNvcm9sbGEiLDEuOCwyMDA4LDQsImF1dG8obDQpIiwiZiIsMjYsMzUsInIiLCJjb21wYWN0IgoiMTk5IiwidG95b3RhIiwibGFuZCBjcnVpc2VyIHdhZ29uIDR3ZCIsNC43LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInN1diIKIjIwMCIsInRveW90YSIsImxhbmQgY3J1aXNlciB3YWdvbiA0d2QiLDUuNywyMDA4LDgsImF1dG8oczYpIiwiNCIsMTMsMTgsInIiLCJzdXYiCiIyMDEiLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsMi43LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE1LDIwLCJyIiwicGlja3VwIgoiMjAyIiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDIuNywxOTk5LDQsImF1dG8obDQpIiwiNCIsMTYsMjAsInIiLCJwaWNrdXAiCiIyMDMiLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsMi43LDIwMDgsNCwibWFudWFsKG01KSIsIjQiLDE3LDIyLCJyIiwicGlja3VwIgoiMjA0IiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDMuNCwxOTk5LDYsIm1hbnVhbChtNSkiLCI0IiwxNSwxNywiciIsInBpY2t1cCIKIjIwNSIsInRveW90YSIsInRveW90YSB0YWNvbWEgNHdkIiwzLjQsMTk5OSw2LCJhdXRvKGw0KSIsIjQiLDE1LDE5LCJyIiwicGlja3VwIgoiMjA2IiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDQsMjAwOCw2LCJtYW51YWwobTYpIiwiNCIsMTUsMTgsInIiLCJwaWNrdXAiCiIyMDciLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTYsMjAsInIiLCJwaWNrdXAiCiIyMDgiLCJ2b2xrc3dhZ2VuIiwiZ3RpIiwyLDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwiY29tcGFjdCIKIjIwOSIsInZvbGtzd2FnZW4iLCJndGkiLDIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI2LCJyIiwiY29tcGFjdCIKIjIxMCIsInZvbGtzd2FnZW4iLCJndGkiLDIsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjEsMjksInAiLCJjb21wYWN0IgoiMjExIiwidm9sa3N3YWdlbiIsImd0aSIsMiwyMDA4LDQsImF1dG8oczYpIiwiZiIsMjIsMjksInAiLCJjb21wYWN0IgoiMjEyIiwidm9sa3N3YWdlbiIsImd0aSIsMi44LDE5OTksNiwibWFudWFsKG01KSIsImYiLDE3LDI0LCJyIiwiY29tcGFjdCIKIjIxMyIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMS45LDE5OTksNCwibWFudWFsKG01KSIsImYiLDMzLDQ0LCJkIiwiY29tcGFjdCIKIjIxNCIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMTUiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI2LCJyIiwiY29tcGFjdCIKIjIxNiIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMiwyMDA4LDQsImF1dG8oczYpIiwiZiIsMjIsMjksInAiLCJjb21wYWN0IgoiMjE3Iiwidm9sa3N3YWdlbiIsImpldHRhIiwyLDIwMDgsNCwibWFudWFsKG02KSIsImYiLDIxLDI5LCJwIiwiY29tcGFjdCIKIjIxOCIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMi41LDIwMDgsNSwiYXV0byhzNikiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMTkiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIuNSwyMDA4LDUsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMjAiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIuOCwxOTk5LDYsImF1dG8obDQpIiwiZiIsMTYsMjMsInIiLCJjb21wYWN0IgoiMjIxIiwidm9sa3N3YWdlbiIsImpldHRhIiwyLjgsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTcsMjQsInIiLCJjb21wYWN0IgoiMjIyIiwidm9sa3N3YWdlbiIsIm5ldyBiZWV0bGUiLDEuOSwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwzNSw0NCwiZCIsInN1YmNvbXBhY3QiCiIyMjMiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMS45LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyOSw0MSwiZCIsInN1YmNvbXBhY3QiCiIyMjQiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsInN1YmNvbXBhY3QiCiIyMjUiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMiwxOTk5LDQsImF1dG8obDQpIiwiZiIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMjI2Iiwidm9sa3N3YWdlbiIsIm5ldyBiZWV0bGUiLDIuNSwyMDA4LDUsIm1hbnVhbChtNSkiLCJmIiwyMCwyOCwiciIsInN1YmNvbXBhY3QiCiIyMjciLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMi41LDIwMDgsNSwiYXV0byhzNikiLCJmIiwyMCwyOSwiciIsInN1YmNvbXBhY3QiCiIyMjgiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjEsMjksInAiLCJtaWRzaXplIgoiMjI5Iiwidm9sa3N3YWdlbiIsInBhc3NhdCIsMS44LDE5OTksNCwiYXV0byhsNSkiLCJmIiwxOCwyOSwicCIsIm1pZHNpemUiCiIyMzAiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwyLDIwMDgsNCwiYXV0byhzNikiLCJmIiwxOSwyOCwicCIsIm1pZHNpemUiCiIyMzEiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwyLDIwMDgsNCwibWFudWFsKG02KSIsImYiLDIxLDI5LCJwIiwibWlkc2l6ZSIKIjIzMiIsInZvbGtzd2FnZW4iLCJwYXNzYXQiLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiZiIsMTYsMjYsInAiLCJtaWRzaXplIgoiMjMzIiwidm9sa3N3YWdlbiIsInBhc3NhdCIsMi44LDE5OTksNiwibWFudWFsKG01KSIsImYiLDE4LDI2LCJwIiwibWlkc2l6ZSIKIjIzNCIsInZvbGtzd2FnZW4iLCJwYXNzYXQiLDMuNiwyMDA4LDYsImF1dG8oczYpIiwiZiIsMTcsMjYsInAiLCJtaWRzaXplIgo=', 'sha': '2485ed68ee2388aab629c070c9b624b08b5bbd2f'}
We notice that the file is encoded and is of no use to us as it is unless we decode it. The encoding used in GitLab by default is base64 as also mentioned in the file information above. base64 is already a built-in package in Python.
import base64
# Decoding using base64
content = base64.b64decode(file_info['content'])
content
b'"","manufacturer","model","displ","year","cyl","trans","drv","cty","hwy","fl","class"\n"1","audi","a4",1.8,1999,4,"auto(l5)","f",18,29,"p","compact"\n"2","audi","a4",1.8,1999,4,"manual(m5)","f",21,29,"p","compact"\n"3","audi","a4",2,2008,4,"manual(m6)","f",20,31,"p","compact"\n"4","audi","a4",2,2008,4,"auto(av)","f",21,30,"p","compact"\n"5","audi","a4",2.8,1999,6,"auto(l5)","f",16,26,"p","compact"\n"6","audi","a4",2.8,1999,6,"manual(m5)","f",18,26,"p","compact"\n"7","audi","a4",3.1,2008,6,"auto(av)","f",18,27,"p","compact"\n"8","audi","a4 quattro",1.8,1999,4,"manual(m5)","4",18,26,"p","compact"\n"9","audi","a4 quattro",1.8,1999,4,"auto(l5)","4",16,25,"p","compact"\n"10","audi","a4 quattro",2,2008,4,"manual(m6)","4",20,28,"p","compact"\n"11","audi","a4 quattro",2,2008,4,"auto(s6)","4",19,27,"p","compact"\n"12","audi","a4 quattro",2.8,1999,6,"auto(l5)","4",15,25,"p","compact"\n"13","audi","a4 quattro",2.8,1999,6,"manual(m5)","4",17,25,"p","compact"\n"14","audi","a4 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","compact"\n"15","audi","a4 quattro",3.1,2008,6,"manual(m6)","4",15,25,"p","compact"\n"16","audi","a6 quattro",2.8,1999,6,"auto(l5)","4",15,24,"p","midsize"\n"17","audi","a6 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","midsize"\n"18","audi","a6 quattro",4.2,2008,8,"auto(s6)","4",16,23,"p","midsize"\n"19","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"20","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",11,15,"e","suv"\n"21","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"22","chevrolet","c1500 suburban 2wd",5.7,1999,8,"auto(l4)","r",13,17,"r","suv"\n"23","chevrolet","c1500 suburban 2wd",6,2008,8,"auto(l4)","r",12,17,"r","suv"\n"24","chevrolet","corvette",5.7,1999,8,"manual(m6)","r",16,26,"p","2seater"\n"25","chevrolet","corvette",5.7,1999,8,"auto(l4)","r",15,23,"p","2seater"\n"26","chevrolet","corvette",6.2,2008,8,"manual(m6)","r",16,26,"p","2seater"\n"27","chevrolet","corvette",6.2,2008,8,"auto(s6)","r",15,25,"p","2seater"\n"28","chevrolet","corvette",7,2008,8,"manual(m6)","r",15,24,"p","2seater"\n"29","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",14,19,"r","suv"\n"30","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",11,14,"e","suv"\n"31","chevrolet","k1500 tahoe 4wd",5.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"32","chevrolet","k1500 tahoe 4wd",6.5,1999,8,"auto(l4)","4",14,17,"d","suv"\n"33","chevrolet","malibu",2.4,1999,4,"auto(l4)","f",19,27,"r","midsize"\n"34","chevrolet","malibu",2.4,2008,4,"auto(l4)","f",22,30,"r","midsize"\n"35","chevrolet","malibu",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"36","chevrolet","malibu",3.5,2008,6,"auto(l4)","f",18,29,"r","midsize"\n"37","chevrolet","malibu",3.6,2008,6,"auto(s6)","f",17,26,"r","midsize"\n"38","dodge","caravan 2wd",2.4,1999,4,"auto(l3)","f",18,24,"r","minivan"\n"39","dodge","caravan 2wd",3,1999,6,"auto(l4)","f",17,24,"r","minivan"\n"40","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"41","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"42","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"43","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"44","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",11,17,"e","minivan"\n"45","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,22,"r","minivan"\n"46","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,21,"r","minivan"\n"47","dodge","caravan 2wd",3.8,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"48","dodge","caravan 2wd",4,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"49","dodge","dakota pickup 4wd",3.7,2008,6,"manual(m6)","4",15,19,"r","pickup"\n"50","dodge","dakota pickup 4wd",3.7,2008,6,"auto(l4)","4",14,18,"r","pickup"\n"51","dodge","dakota pickup 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","pickup"\n"52","dodge","dakota pickup 4wd",3.9,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"53","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"54","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"55","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"56","dodge","dakota pickup 4wd",5.2,1999,8,"manual(m5)","4",11,17,"r","pickup"\n"57","dodge","dakota pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"58","dodge","durango 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","suv"\n"59","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"60","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"61","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"62","dodge","durango 4wd",5.2,1999,8,"auto(l4)","4",11,16,"r","suv"\n"63","dodge","durango 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"64","dodge","durango 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","suv"\n"65","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"66","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"67","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"68","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"69","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"70","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",9,12,"e","pickup"\n"71","dodge","ram 1500 pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"72","dodge","ram 1500 pickup 4wd",5.2,1999,8,"manual(m5)","4",11,16,"r","pickup"\n"73","dodge","ram 1500 pickup 4wd",5.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"74","dodge","ram 1500 pickup 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"75","ford","expedition 2wd",4.6,1999,8,"auto(l4)","r",11,17,"r","suv"\n"76","ford","expedition 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"77","ford","expedition 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"78","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"79","ford","explorer 4wd",4,1999,6,"manual(m5)","4",15,19,"r","suv"\n"80","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"81","ford","explorer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"82","ford","explorer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"83","ford","explorer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"84","ford","f150 pickup 4wd",4.2,1999,6,"auto(l4)","4",14,17,"r","pickup"\n"85","ford","f150 pickup 4wd",4.2,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"86","ford","f150 pickup 4wd",4.6,1999,8,"manual(m5)","4",13,16,"r","pickup"\n"87","ford","f150 pickup 4wd",4.6,1999,8,"auto(l4)","4",13,16,"r","pickup"\n"88","ford","f150 pickup 4wd",4.6,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"89","ford","f150 pickup 4wd",5.4,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"90","ford","f150 pickup 4wd",5.4,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"91","ford","mustang",3.8,1999,6,"manual(m5)","r",18,26,"r","subcompact"\n"92","ford","mustang",3.8,1999,6,"auto(l4)","r",18,25,"r","subcompact"\n"93","ford","mustang",4,2008,6,"manual(m5)","r",17,26,"r","subcompact"\n"94","ford","mustang",4,2008,6,"auto(l5)","r",16,24,"r","subcompact"\n"95","ford","mustang",4.6,1999,8,"auto(l4)","r",15,21,"r","subcompact"\n"96","ford","mustang",4.6,1999,8,"manual(m5)","r",15,22,"r","subcompact"\n"97","ford","mustang",4.6,2008,8,"manual(m5)","r",15,23,"r","subcompact"\n"98","ford","mustang",4.6,2008,8,"auto(l5)","r",15,22,"r","subcompact"\n"99","ford","mustang",5.4,2008,8,"manual(m6)","r",14,20,"p","subcompact"\n"100","honda","civic",1.6,1999,4,"manual(m5)","f",28,33,"r","subcompact"\n"101","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"102","honda","civic",1.6,1999,4,"manual(m5)","f",25,32,"r","subcompact"\n"103","honda","civic",1.6,1999,4,"manual(m5)","f",23,29,"p","subcompact"\n"104","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"105","honda","civic",1.8,2008,4,"manual(m5)","f",26,34,"r","subcompact"\n"106","honda","civic",1.8,2008,4,"auto(l5)","f",25,36,"r","subcompact"\n"107","honda","civic",1.8,2008,4,"auto(l5)","f",24,36,"c","subcompact"\n"108","honda","civic",2,2008,4,"manual(m6)","f",21,29,"p","subcompact"\n"109","hyundai","sonata",2.4,1999,4,"auto(l4)","f",18,26,"r","midsize"\n"110","hyundai","sonata",2.4,1999,4,"manual(m5)","f",18,27,"r","midsize"\n"111","hyundai","sonata",2.4,2008,4,"auto(l4)","f",21,30,"r","midsize"\n"112","hyundai","sonata",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"113","hyundai","sonata",2.5,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"114","hyundai","sonata",2.5,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"115","hyundai","sonata",3.3,2008,6,"auto(l5)","f",19,28,"r","midsize"\n"116","hyundai","tiburon",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"117","hyundai","tiburon",2,1999,4,"manual(m5)","f",19,29,"r","subcompact"\n"118","hyundai","tiburon",2,2008,4,"manual(m5)","f",20,28,"r","subcompact"\n"119","hyundai","tiburon",2,2008,4,"auto(l4)","f",20,27,"r","subcompact"\n"120","hyundai","tiburon",2.7,2008,6,"auto(l4)","f",17,24,"r","subcompact"\n"121","hyundai","tiburon",2.7,2008,6,"manual(m6)","f",16,24,"r","subcompact"\n"122","hyundai","tiburon",2.7,2008,6,"manual(m5)","f",17,24,"r","subcompact"\n"123","jeep","grand cherokee 4wd",3,2008,6,"auto(l5)","4",17,22,"d","suv"\n"124","jeep","grand cherokee 4wd",3.7,2008,6,"auto(l5)","4",15,19,"r","suv"\n"125","jeep","grand cherokee 4wd",4,1999,6,"auto(l4)","4",15,20,"r","suv"\n"126","jeep","grand cherokee 4wd",4.7,1999,8,"auto(l4)","4",14,17,"r","suv"\n"127","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"128","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","suv"\n"129","jeep","grand cherokee 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"130","jeep","grand cherokee 4wd",6.1,2008,8,"auto(l5)","4",11,14,"p","suv"\n"131","land rover","range rover",4,1999,8,"auto(l4)","4",11,15,"p","suv"\n"132","land rover","range rover",4.2,2008,8,"auto(s6)","4",12,18,"r","suv"\n"133","land rover","range rover",4.4,2008,8,"auto(s6)","4",12,18,"r","suv"\n"134","land rover","range rover",4.6,1999,8,"auto(l4)","4",11,15,"p","suv"\n"135","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"136","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,16,"p","suv"\n"137","lincoln","navigator 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"138","mercury","mountaineer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"139","mercury","mountaineer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"140","mercury","mountaineer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"141","mercury","mountaineer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"142","nissan","altima",2.4,1999,4,"manual(m5)","f",21,29,"r","compact"\n"143","nissan","altima",2.4,1999,4,"auto(l4)","f",19,27,"r","compact"\n"144","nissan","altima",2.5,2008,4,"auto(av)","f",23,31,"r","midsize"\n"145","nissan","altima",2.5,2008,4,"manual(m6)","f",23,32,"r","midsize"\n"146","nissan","altima",3.5,2008,6,"manual(m6)","f",19,27,"p","midsize"\n"147","nissan","altima",3.5,2008,6,"auto(av)","f",19,26,"p","midsize"\n"148","nissan","maxima",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"149","nissan","maxima",3,1999,6,"manual(m5)","f",19,25,"r","midsize"\n"150","nissan","maxima",3.5,2008,6,"auto(av)","f",19,25,"p","midsize"\n"151","nissan","pathfinder 4wd",3.3,1999,6,"auto(l4)","4",14,17,"r","suv"\n"152","nissan","pathfinder 4wd",3.3,1999,6,"manual(m5)","4",15,17,"r","suv"\n"153","nissan","pathfinder 4wd",4,2008,6,"auto(l5)","4",14,20,"p","suv"\n"154","nissan","pathfinder 4wd",5.6,2008,8,"auto(s5)","4",12,18,"p","suv"\n"155","pontiac","grand prix",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"156","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",16,26,"p","midsize"\n"157","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",17,27,"r","midsize"\n"158","pontiac","grand prix",3.8,2008,6,"auto(l4)","f",18,28,"r","midsize"\n"159","pontiac","grand prix",5.3,2008,8,"auto(s4)","f",16,25,"p","midsize"\n"160","subaru","forester awd",2.5,1999,4,"manual(m5)","4",18,25,"r","suv"\n"161","subaru","forester awd",2.5,1999,4,"auto(l4)","4",18,24,"r","suv"\n"162","subaru","forester awd",2.5,2008,4,"manual(m5)","4",20,27,"r","suv"\n"163","subaru","forester awd",2.5,2008,4,"manual(m5)","4",19,25,"p","suv"\n"164","subaru","forester awd",2.5,2008,4,"auto(l4)","4",20,26,"r","suv"\n"165","subaru","forester awd",2.5,2008,4,"auto(l4)","4",18,23,"p","suv"\n"166","subaru","impreza awd",2.2,1999,4,"auto(l4)","4",21,26,"r","subcompact"\n"167","subaru","impreza awd",2.2,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"168","subaru","impreza awd",2.5,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"169","subaru","impreza awd",2.5,1999,4,"auto(l4)","4",19,26,"r","subcompact"\n"170","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,25,"p","compact"\n"171","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,27,"r","compact"\n"172","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",19,25,"p","compact"\n"173","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",20,27,"r","compact"\n"174","toyota","4runner 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","suv"\n"175","toyota","4runner 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","suv"\n"176","toyota","4runner 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","suv"\n"177","toyota","4runner 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","suv"\n"178","toyota","4runner 4wd",4,2008,6,"auto(l5)","4",16,20,"r","suv"\n"179","toyota","4runner 4wd",4.7,2008,8,"auto(l5)","4",14,17,"r","suv"\n"180","toyota","camry",2.2,1999,4,"manual(m5)","f",21,29,"r","midsize"\n"181","toyota","camry",2.2,1999,4,"auto(l4)","f",21,27,"r","midsize"\n"182","toyota","camry",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"183","toyota","camry",2.4,2008,4,"auto(l5)","f",21,31,"r","midsize"\n"184","toyota","camry",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"185","toyota","camry",3,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"186","toyota","camry",3.5,2008,6,"auto(s6)","f",19,28,"r","midsize"\n"187","toyota","camry solara",2.2,1999,4,"auto(l4)","f",21,27,"r","compact"\n"188","toyota","camry solara",2.2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"189","toyota","camry solara",2.4,2008,4,"manual(m5)","f",21,31,"r","compact"\n"190","toyota","camry solara",2.4,2008,4,"auto(s5)","f",22,31,"r","compact"\n"191","toyota","camry solara",3,1999,6,"auto(l4)","f",18,26,"r","compact"\n"192","toyota","camry solara",3,1999,6,"manual(m5)","f",18,26,"r","compact"\n"193","toyota","camry solara",3.3,2008,6,"auto(s5)","f",18,27,"r","compact"\n"194","toyota","corolla",1.8,1999,4,"auto(l3)","f",24,30,"r","compact"\n"195","toyota","corolla",1.8,1999,4,"auto(l4)","f",24,33,"r","compact"\n"196","toyota","corolla",1.8,1999,4,"manual(m5)","f",26,35,"r","compact"\n"197","toyota","corolla",1.8,2008,4,"manual(m5)","f",28,37,"r","compact"\n"198","toyota","corolla",1.8,2008,4,"auto(l4)","f",26,35,"r","compact"\n"199","toyota","land cruiser wagon 4wd",4.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"200","toyota","land cruiser wagon 4wd",5.7,2008,8,"auto(s6)","4",13,18,"r","suv"\n"201","toyota","toyota tacoma 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","pickup"\n"202","toyota","toyota tacoma 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","pickup"\n"203","toyota","toyota tacoma 4wd",2.7,2008,4,"manual(m5)","4",17,22,"r","pickup"\n"204","toyota","toyota tacoma 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","pickup"\n"205","toyota","toyota tacoma 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","pickup"\n"206","toyota","toyota tacoma 4wd",4,2008,6,"manual(m6)","4",15,18,"r","pickup"\n"207","toyota","toyota tacoma 4wd",4,2008,6,"auto(l5)","4",16,20,"r","pickup"\n"208","volkswagen","gti",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"209","volkswagen","gti",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"210","volkswagen","gti",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"211","volkswagen","gti",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"212","volkswagen","gti",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"213","volkswagen","jetta",1.9,1999,4,"manual(m5)","f",33,44,"d","compact"\n"214","volkswagen","jetta",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"215","volkswagen","jetta",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"216","volkswagen","jetta",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"217","volkswagen","jetta",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"218","volkswagen","jetta",2.5,2008,5,"auto(s6)","f",21,29,"r","compact"\n"219","volkswagen","jetta",2.5,2008,5,"manual(m5)","f",21,29,"r","compact"\n"220","volkswagen","jetta",2.8,1999,6,"auto(l4)","f",16,23,"r","compact"\n"221","volkswagen","jetta",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"222","volkswagen","new beetle",1.9,1999,4,"manual(m5)","f",35,44,"d","subcompact"\n"223","volkswagen","new beetle",1.9,1999,4,"auto(l4)","f",29,41,"d","subcompact"\n"224","volkswagen","new beetle",2,1999,4,"manual(m5)","f",21,29,"r","subcompact"\n"225","volkswagen","new beetle",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"226","volkswagen","new beetle",2.5,2008,5,"manual(m5)","f",20,28,"r","subcompact"\n"227","volkswagen","new beetle",2.5,2008,5,"auto(s6)","f",20,29,"r","subcompact"\n"228","volkswagen","passat",1.8,1999,4,"manual(m5)","f",21,29,"p","midsize"\n"229","volkswagen","passat",1.8,1999,4,"auto(l5)","f",18,29,"p","midsize"\n"230","volkswagen","passat",2,2008,4,"auto(s6)","f",19,28,"p","midsize"\n"231","volkswagen","passat",2,2008,4,"manual(m6)","f",21,29,"p","midsize"\n"232","volkswagen","passat",2.8,1999,6,"auto(l5)","f",16,26,"p","midsize"\n"233","volkswagen","passat",2.8,1999,6,"manual(m5)","f",18,26,"p","midsize"\n"234","volkswagen","passat",3.6,2008,6,"auto(s6)","f",17,26,"p","midsize"\n'
This looks much better. At least, it's reabable. However, it's still in the form of a string. Let's convert it into our required format.
from io import StringIO
# Decoding & formatting
data=csv.reader(StringIO(content.decode('utf-8')))
#Printing the first 5 rows
for row in list(data)[:5]:
print(row)
['', 'manufacturer', 'model', 'displ', 'year', 'cyl', 'trans', 'drv', 'cty', 'hwy', 'fl', 'class'] ['1', 'audi', 'a4', '1.8', '1999', '4', 'auto(l5)', 'f', '18', '29', 'p', 'compact'] ['2', 'audi', 'a4', '1.8', '1999', '4', 'manual(m5)', 'f', '21', '29', 'p', 'compact'] ['3', 'audi', 'a4', '2', '2008', '4', 'manual(m6)', 'f', '20', '31', 'p', 'compact'] ['4', 'audi', 'a4', '2', '2008', '4', 'auto(av)', 'f', '21', '30', 'p', 'compact']
Looks great! Now we already know how to convert the data into a Python dictionary.
# Converting aata to a dictionary format
data=list(csv.DictReader(StringIO(content.decode('utf-8'))))
# Printing the first 2 rows
data[:2]
[{'': '1', 'manufacturer': 'audi', 'model': 'a4', 'displ': '1.8', 'year': '1999', 'cyl': '4', 'trans': 'auto(l5)', 'drv': 'f', 'cty': '18', 'hwy': '29', 'fl': 'p', 'class': 'compact'}, {'': '2', 'manufacturer': 'audi', 'model': 'a4', 'displ': '1.8', 'year': '1999', 'cyl': '4', 'trans': 'manual(m5)', 'drv': 'f', 'cty': '21', 'hwy': '29', 'fl': 'p', 'class': 'compact'}]
f=project.files.get(file_path='mpg.csv', ref='master')
# get the base64 encoded content
print(f.content)
IiIsIm1hbnVmYWN0dXJlciIsIm1vZGVsIiwiZGlzcGwiLCJ5ZWFyIiwiY3lsIiwidHJhbnMiLCJkcnYiLCJjdHkiLCJod3kiLCJmbCIsImNsYXNzIgoiMSIsImF1ZGkiLCJhNCIsMS44LDE5OTksNCwiYXV0byhsNSkiLCJmIiwxOCwyOSwicCIsImNvbXBhY3QiCiIyIiwiYXVkaSIsImE0IiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjEsMjksInAiLCJjb21wYWN0IgoiMyIsImF1ZGkiLCJhNCIsMiwyMDA4LDQsIm1hbnVhbChtNikiLCJmIiwyMCwzMSwicCIsImNvbXBhY3QiCiI0IiwiYXVkaSIsImE0IiwyLDIwMDgsNCwiYXV0byhhdikiLCJmIiwyMSwzMCwicCIsImNvbXBhY3QiCiI1IiwiYXVkaSIsImE0IiwyLjgsMTk5OSw2LCJhdXRvKGw1KSIsImYiLDE2LDI2LCJwIiwiY29tcGFjdCIKIjYiLCJhdWRpIiwiYTQiLDIuOCwxOTk5LDYsIm1hbnVhbChtNSkiLCJmIiwxOCwyNiwicCIsImNvbXBhY3QiCiI3IiwiYXVkaSIsImE0IiwzLjEsMjAwOCw2LCJhdXRvKGF2KSIsImYiLDE4LDI3LCJwIiwiY29tcGFjdCIKIjgiLCJhdWRpIiwiYTQgcXVhdHRybyIsMS44LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE4LDI2LCJwIiwiY29tcGFjdCIKIjkiLCJhdWRpIiwiYTQgcXVhdHRybyIsMS44LDE5OTksNCwiYXV0byhsNSkiLCI0IiwxNiwyNSwicCIsImNvbXBhY3QiCiIxMCIsImF1ZGkiLCJhNCBxdWF0dHJvIiwyLDIwMDgsNCwibWFudWFsKG02KSIsIjQiLDIwLDI4LCJwIiwiY29tcGFjdCIKIjExIiwiYXVkaSIsImE0IHF1YXR0cm8iLDIsMjAwOCw0LCJhdXRvKHM2KSIsIjQiLDE5LDI3LCJwIiwiY29tcGFjdCIKIjEyIiwiYXVkaSIsImE0IHF1YXR0cm8iLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTUsMjUsInAiLCJjb21wYWN0IgoiMTMiLCJhdWRpIiwiYTQgcXVhdHRybyIsMi44LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE3LDI1LCJwIiwiY29tcGFjdCIKIjE0IiwiYXVkaSIsImE0IHF1YXR0cm8iLDMuMSwyMDA4LDYsImF1dG8oczYpIiwiNCIsMTcsMjUsInAiLCJjb21wYWN0IgoiMTUiLCJhdWRpIiwiYTQgcXVhdHRybyIsMy4xLDIwMDgsNiwibWFudWFsKG02KSIsIjQiLDE1LDI1LCJwIiwiY29tcGFjdCIKIjE2IiwiYXVkaSIsImE2IHF1YXR0cm8iLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTUsMjQsInAiLCJtaWRzaXplIgoiMTciLCJhdWRpIiwiYTYgcXVhdHRybyIsMy4xLDIwMDgsNiwiYXV0byhzNikiLCI0IiwxNywyNSwicCIsIm1pZHNpemUiCiIxOCIsImF1ZGkiLCJhNiBxdWF0dHJvIiw0LjIsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDE2LDIzLCJwIiwibWlkc2l6ZSIKIjE5IiwiY2hldnJvbGV0IiwiYzE1MDAgc3VidXJiYW4gMndkIiw1LjMsMjAwOCw4LCJhdXRvKGw0KSIsInIiLDE0LDIwLCJyIiwic3V2IgoiMjAiLCJjaGV2cm9sZXQiLCJjMTUwMCBzdWJ1cmJhbiAyd2QiLDUuMywyMDA4LDgsImF1dG8obDQpIiwiciIsMTEsMTUsImUiLCJzdXYiCiIyMSIsImNoZXZyb2xldCIsImMxNTAwIHN1YnVyYmFuIDJ3ZCIsNS4zLDIwMDgsOCwiYXV0byhsNCkiLCJyIiwxNCwyMCwiciIsInN1diIKIjIyIiwiY2hldnJvbGV0IiwiYzE1MDAgc3VidXJiYW4gMndkIiw1LjcsMTk5OSw4LCJhdXRvKGw0KSIsInIiLDEzLDE3LCJyIiwic3V2IgoiMjMiLCJjaGV2cm9sZXQiLCJjMTUwMCBzdWJ1cmJhbiAyd2QiLDYsMjAwOCw4LCJhdXRvKGw0KSIsInIiLDEyLDE3LCJyIiwic3V2IgoiMjQiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNS43LDE5OTksOCwibWFudWFsKG02KSIsInIiLDE2LDI2LCJwIiwiMnNlYXRlciIKIjI1IiwiY2hldnJvbGV0IiwiY29ydmV0dGUiLDUuNywxOTk5LDgsImF1dG8obDQpIiwiciIsMTUsMjMsInAiLCIyc2VhdGVyIgoiMjYiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNi4yLDIwMDgsOCwibWFudWFsKG02KSIsInIiLDE2LDI2LCJwIiwiMnNlYXRlciIKIjI3IiwiY2hldnJvbGV0IiwiY29ydmV0dGUiLDYuMiwyMDA4LDgsImF1dG8oczYpIiwiciIsMTUsMjUsInAiLCIyc2VhdGVyIgoiMjgiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNywyMDA4LDgsIm1hbnVhbChtNikiLCJyIiwxNSwyNCwicCIsIjJzZWF0ZXIiCiIyOSIsImNoZXZyb2xldCIsImsxNTAwIHRhaG9lIDR3ZCIsNS4zLDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxNCwxOSwiciIsInN1diIKIjMwIiwiY2hldnJvbGV0IiwiazE1MDAgdGFob2UgNHdkIiw1LjMsMjAwOCw4LCJhdXRvKGw0KSIsIjQiLDExLDE0LCJlIiwic3V2IgoiMzEiLCJjaGV2cm9sZXQiLCJrMTUwMCB0YWhvZSA0d2QiLDUuNywxOTk5LDgsImF1dG8obDQpIiwiNCIsMTEsMTUsInIiLCJzdXYiCiIzMiIsImNoZXZyb2xldCIsImsxNTAwIHRhaG9lIDR3ZCIsNi41LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxNCwxNywiZCIsInN1diIKIjMzIiwiY2hldnJvbGV0IiwibWFsaWJ1IiwyLjQsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI3LCJyIiwibWlkc2l6ZSIKIjM0IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwyLjQsMjAwOCw0LCJhdXRvKGw0KSIsImYiLDIyLDMwLCJyIiwibWlkc2l6ZSIKIjM1IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjEsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjM2IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjUsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE4LDI5LCJyIiwibWlkc2l6ZSIKIjM3IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjYsMjAwOCw2LCJhdXRvKHM2KSIsImYiLDE3LDI2LCJyIiwibWlkc2l6ZSIKIjM4IiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMi40LDE5OTksNCwiYXV0byhsMykiLCJmIiwxOCwyNCwiciIsIm1pbml2YW4iCiIzOSIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwibWluaXZhbiIKIjQwIiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy4zLDE5OTksNiwiYXV0byhsNCkiLCJmIiwxNiwyMiwiciIsIm1pbml2YW4iCiI0MSIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuMywxOTk5LDYsImF1dG8obDQpIiwiZiIsMTYsMjIsInIiLCJtaW5pdmFuIgoiNDIiLCJkb2RnZSIsImNhcmF2YW4gMndkIiwzLjMsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwibWluaXZhbiIKIjQzIiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy4zLDIwMDgsNiwiYXV0byhsNCkiLCJmIiwxNywyNCwiciIsIm1pbml2YW4iCiI0NCIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuMywyMDA4LDYsImF1dG8obDQpIiwiZiIsMTEsMTcsImUiLCJtaW5pdmFuIgoiNDUiLCJkb2RnZSIsImNhcmF2YW4gMndkIiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE1LDIyLCJyIiwibWluaXZhbiIKIjQ2IiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy44LDE5OTksNiwiYXV0byhsNCkiLCJmIiwxNSwyMSwiciIsIm1pbml2YW4iCiI0NyIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuOCwyMDA4LDYsImF1dG8obDYpIiwiZiIsMTYsMjMsInIiLCJtaW5pdmFuIgoiNDgiLCJkb2RnZSIsImNhcmF2YW4gMndkIiw0LDIwMDgsNiwiYXV0byhsNikiLCJmIiwxNiwyMywiciIsIm1pbml2YW4iCiI0OSIsImRvZGdlIiwiZGFrb3RhIHBpY2t1cCA0d2QiLDMuNywyMDA4LDYsIm1hbnVhbChtNikiLCI0IiwxNSwxOSwiciIsInBpY2t1cCIKIjUwIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy43LDIwMDgsNiwiYXV0byhsNCkiLCI0IiwxNCwxOCwiciIsInBpY2t1cCIKIjUxIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy45LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjUyIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy45LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE0LDE3LCJyIiwicGlja3VwIgoiNTMiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwicGlja3VwIgoiNTQiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwicGlja3VwIgoiNTUiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJwaWNrdXAiCiI1NiIsImRvZGdlIiwiZGFrb3RhIHBpY2t1cCA0d2QiLDUuMiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMSwxNywiciIsInBpY2t1cCIKIjU3IiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsNS4yLDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInBpY2t1cCIKIjU4IiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsMy45LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInN1diIKIjU5IiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxNywiciIsInN1diIKIjYwIiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0Iiw5LDEyLCJlIiwic3V2IgoiNjEiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwic3V2IgoiNjIiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjIsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE2LCJyIiwic3V2IgoiNjMiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE4LCJyIiwic3V2IgoiNjQiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjksMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJyIiwic3V2IgoiNjUiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDQuNywyMDA4LDgsIm1hbnVhbChtNikiLCI0IiwxMiwxNiwiciIsInBpY2t1cCIKIjY2IiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJwaWNrdXAiCiI2NyIsImRvZGdlIiwicmFtIDE1MDAgcGlja3VwIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjY4IiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwicGlja3VwIgoiNjkiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDQuNywyMDA4LDgsIm1hbnVhbChtNikiLCI0IiwxMiwxNiwiciIsInBpY2t1cCIKIjcwIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJtYW51YWwobTYpIiwiNCIsOSwxMiwiZSIsInBpY2t1cCIKIjcxIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw1LjIsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJyIiwicGlja3VwIgoiNzIiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDUuMiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMSwxNiwiciIsInBpY2t1cCIKIjczIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw1LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwicGlja3VwIgoiNzQiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDUuOSwxOTk5LDgsImF1dG8obDQpIiwiNCIsMTEsMTUsInIiLCJwaWNrdXAiCiI3NSIsImZvcmQiLCJleHBlZGl0aW9uIDJ3ZCIsNC42LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxMSwxNywiciIsInN1diIKIjc2IiwiZm9yZCIsImV4cGVkaXRpb24gMndkIiw1LjQsMTk5OSw4LCJhdXRvKGw0KSIsInIiLDExLDE3LCJyIiwic3V2IgoiNzciLCJmb3JkIiwiZXhwZWRpdGlvbiAyd2QiLDUuNCwyMDA4LDgsImF1dG8obDYpIiwiciIsMTIsMTgsInIiLCJzdXYiCiI3OCIsImZvcmQiLCJleHBsb3JlciA0d2QiLDQsMTk5OSw2LCJhdXRvKGw1KSIsIjQiLDE0LDE3LCJyIiwic3V2IgoiNzkiLCJmb3JkIiwiZXhwbG9yZXIgNHdkIiw0LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE1LDE5LCJyIiwic3V2IgoiODAiLCJmb3JkIiwiZXhwbG9yZXIgNHdkIiw0LDE5OTksNiwiYXV0byhsNSkiLCI0IiwxNCwxNywiciIsInN1diIKIjgxIiwiZm9yZCIsImV4cGxvcmVyIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTMsMTksInIiLCJzdXYiCiI4MiIsImZvcmQiLCJleHBsb3JlciA0d2QiLDQuNiwyMDA4LDgsImF1dG8obDYpIiwiNCIsMTMsMTksInIiLCJzdXYiCiI4MyIsImZvcmQiLCJleHBsb3JlciA0d2QiLDUsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDEzLDE3LCJyIiwic3V2IgoiODQiLCJmb3JkIiwiZjE1MCBwaWNrdXAgNHdkIiw0LjIsMTk5OSw2LCJhdXRvKGw0KSIsIjQiLDE0LDE3LCJyIiwicGlja3VwIgoiODUiLCJmb3JkIiwiZjE1MCBwaWNrdXAgNHdkIiw0LjIsMTk5OSw2LCJtYW51YWwobTUpIiwiNCIsMTQsMTcsInIiLCJwaWNrdXAiCiI4NiIsImZvcmQiLCJmMTUwIHBpY2t1cCA0d2QiLDQuNiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMywxNiwiciIsInBpY2t1cCIKIjg3IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNC42LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMywxNiwiciIsInBpY2t1cCIKIjg4IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNC42LDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjg5IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNS40LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInBpY2t1cCIKIjkwIiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNS40LDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjkxIiwiZm9yZCIsIm11c3RhbmciLDMuOCwxOTk5LDYsIm1hbnVhbChtNSkiLCJyIiwxOCwyNiwiciIsInN1YmNvbXBhY3QiCiI5MiIsImZvcmQiLCJtdXN0YW5nIiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsInIiLDE4LDI1LCJyIiwic3ViY29tcGFjdCIKIjkzIiwiZm9yZCIsIm11c3RhbmciLDQsMjAwOCw2LCJtYW51YWwobTUpIiwiciIsMTcsMjYsInIiLCJzdWJjb21wYWN0IgoiOTQiLCJmb3JkIiwibXVzdGFuZyIsNCwyMDA4LDYsImF1dG8obDUpIiwiciIsMTYsMjQsInIiLCJzdWJjb21wYWN0IgoiOTUiLCJmb3JkIiwibXVzdGFuZyIsNC42LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxNSwyMSwiciIsInN1YmNvbXBhY3QiCiI5NiIsImZvcmQiLCJtdXN0YW5nIiw0LjYsMTk5OSw4LCJtYW51YWwobTUpIiwiciIsMTUsMjIsInIiLCJzdWJjb21wYWN0IgoiOTciLCJmb3JkIiwibXVzdGFuZyIsNC42LDIwMDgsOCwibWFudWFsKG01KSIsInIiLDE1LDIzLCJyIiwic3ViY29tcGFjdCIKIjk4IiwiZm9yZCIsIm11c3RhbmciLDQuNiwyMDA4LDgsImF1dG8obDUpIiwiciIsMTUsMjIsInIiLCJzdWJjb21wYWN0IgoiOTkiLCJmb3JkIiwibXVzdGFuZyIsNS40LDIwMDgsOCwibWFudWFsKG02KSIsInIiLDE0LDIwLCJwIiwic3ViY29tcGFjdCIKIjEwMCIsImhvbmRhIiwiY2l2aWMiLDEuNiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyOCwzMywiciIsInN1YmNvbXBhY3QiCiIxMDEiLCJob25kYSIsImNpdmljIiwxLjYsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDI0LDMyLCJyIiwic3ViY29tcGFjdCIKIjEwMiIsImhvbmRhIiwiY2l2aWMiLDEuNiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyNSwzMiwiciIsInN1YmNvbXBhY3QiCiIxMDMiLCJob25kYSIsImNpdmljIiwxLjYsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjMsMjksInAiLCJzdWJjb21wYWN0IgoiMTA0IiwiaG9uZGEiLCJjaXZpYyIsMS42LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyNCwzMiwiciIsInN1YmNvbXBhY3QiCiIxMDUiLCJob25kYSIsImNpdmljIiwxLjgsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjYsMzQsInIiLCJzdWJjb21wYWN0IgoiMTA2IiwiaG9uZGEiLCJjaXZpYyIsMS44LDIwMDgsNCwiYXV0byhsNSkiLCJmIiwyNSwzNiwiciIsInN1YmNvbXBhY3QiCiIxMDciLCJob25kYSIsImNpdmljIiwxLjgsMjAwOCw0LCJhdXRvKGw1KSIsImYiLDI0LDM2LCJjIiwic3ViY29tcGFjdCIKIjEwOCIsImhvbmRhIiwiY2l2aWMiLDIsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjEsMjksInAiLCJzdWJjb21wYWN0IgoiMTA5IiwiaHl1bmRhaSIsInNvbmF0YSIsMi40LDE5OTksNCwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsIm1pZHNpemUiCiIxMTAiLCJoeXVuZGFpIiwic29uYXRhIiwyLjQsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMTgsMjcsInIiLCJtaWRzaXplIgoiMTExIiwiaHl1bmRhaSIsInNvbmF0YSIsMi40LDIwMDgsNCwiYXV0byhsNCkiLCJmIiwyMSwzMCwiciIsIm1pZHNpemUiCiIxMTIiLCJoeXVuZGFpIiwic29uYXRhIiwyLjQsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTEzIiwiaHl1bmRhaSIsInNvbmF0YSIsMi41LDE5OTksNiwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsIm1pZHNpemUiCiIxMTQiLCJoeXVuZGFpIiwic29uYXRhIiwyLjUsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTgsMjYsInIiLCJtaWRzaXplIgoiMTE1IiwiaHl1bmRhaSIsInNvbmF0YSIsMy4zLDIwMDgsNiwiYXV0byhsNSkiLCJmIiwxOSwyOCwiciIsIm1pZHNpemUiCiIxMTYiLCJoeXVuZGFpIiwidGlidXJvbiIsMiwxOTk5LDQsImF1dG8obDQpIiwiZiIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMTE3IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMTksMjksInIiLCJzdWJjb21wYWN0IgoiMTE4IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjAsMjgsInIiLCJzdWJjb21wYWN0IgoiMTE5IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMjAwOCw0LCJhdXRvKGw0KSIsImYiLDIwLDI3LCJyIiwic3ViY29tcGFjdCIKIjEyMCIsImh5dW5kYWkiLCJ0aWJ1cm9uIiwyLjcsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwic3ViY29tcGFjdCIKIjEyMSIsImh5dW5kYWkiLCJ0aWJ1cm9uIiwyLjcsMjAwOCw2LCJtYW51YWwobTYpIiwiZiIsMTYsMjQsInIiLCJzdWJjb21wYWN0IgoiMTIyIiwiaHl1bmRhaSIsInRpYnVyb24iLDIuNywyMDA4LDYsIm1hbnVhbChtNSkiLCJmIiwxNywyNCwiciIsInN1YmNvbXBhY3QiCiIxMjMiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiwzLDIwMDgsNiwiYXV0byhsNSkiLCI0IiwxNywyMiwiZCIsInN1diIKIjEyNCIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDMuNywyMDA4LDYsImF1dG8obDUpIiwiNCIsMTUsMTksInIiLCJzdXYiCiIxMjUiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxNSwyMCwiciIsInN1diIKIjEyNiIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDQuNywxOTk5LDgsImF1dG8obDQpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxMjciLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJzdXYiCiIxMjgiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwic3V2IgoiMTI5IiwiamVlcCIsImdyYW5kIGNoZXJva2VlIDR3ZCIsNS43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxOCwiciIsInN1diIKIjEzMCIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDYuMSwyMDA4LDgsImF1dG8obDUpIiwiNCIsMTEsMTQsInAiLCJzdXYiCiIxMzEiLCJsYW5kIHJvdmVyIiwicmFuZ2Ugcm92ZXIiLDQsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJwIiwic3V2IgoiMTMyIiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjIsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDEyLDE4LCJyIiwic3V2IgoiMTMzIiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjQsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDEyLDE4LCJyIiwic3V2IgoiMTM0IiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjYsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJwIiwic3V2IgoiMTM1IiwibGluY29sbiIsIm5hdmlnYXRvciAyd2QiLDUuNCwxOTk5LDgsImF1dG8obDQpIiwiciIsMTEsMTcsInIiLCJzdXYiCiIxMzYiLCJsaW5jb2xuIiwibmF2aWdhdG9yIDJ3ZCIsNS40LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxMSwxNiwicCIsInN1diIKIjEzNyIsImxpbmNvbG4iLCJuYXZpZ2F0b3IgMndkIiw1LjQsMjAwOCw4LCJhdXRvKGw2KSIsInIiLDEyLDE4LCJyIiwic3V2IgoiMTM4IiwibWVyY3VyeSIsIm1vdW50YWluZWVyIDR3ZCIsNCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxMzkiLCJtZXJjdXJ5IiwibW91bnRhaW5lZXIgNHdkIiw0LDIwMDgsNiwiYXV0byhsNSkiLCI0IiwxMywxOSwiciIsInN1diIKIjE0MCIsIm1lcmN1cnkiLCJtb3VudGFpbmVlciA0d2QiLDQuNiwyMDA4LDgsImF1dG8obDYpIiwiNCIsMTMsMTksInIiLCJzdXYiCiIxNDEiLCJtZXJjdXJ5IiwibW91bnRhaW5lZXIgNHdkIiw1LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInN1diIKIjE0MiIsIm5pc3NhbiIsImFsdGltYSIsMi40LDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwiY29tcGFjdCIKIjE0MyIsIm5pc3NhbiIsImFsdGltYSIsMi40LDE5OTksNCwiYXV0byhsNCkiLCJmIiwxOSwyNywiciIsImNvbXBhY3QiCiIxNDQiLCJuaXNzYW4iLCJhbHRpbWEiLDIuNSwyMDA4LDQsImF1dG8oYXYpIiwiZiIsMjMsMzEsInIiLCJtaWRzaXplIgoiMTQ1Iiwibmlzc2FuIiwiYWx0aW1hIiwyLjUsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjMsMzIsInIiLCJtaWRzaXplIgoiMTQ2Iiwibmlzc2FuIiwiYWx0aW1hIiwzLjUsMjAwOCw2LCJtYW51YWwobTYpIiwiZiIsMTksMjcsInAiLCJtaWRzaXplIgoiMTQ3Iiwibmlzc2FuIiwiYWx0aW1hIiwzLjUsMjAwOCw2LCJhdXRvKGF2KSIsImYiLDE5LDI2LCJwIiwibWlkc2l6ZSIKIjE0OCIsIm5pc3NhbiIsIm1heGltYSIsMywxOTk5LDYsImF1dG8obDQpIiwiZiIsMTgsMjYsInIiLCJtaWRzaXplIgoiMTQ5Iiwibmlzc2FuIiwibWF4aW1hIiwzLDE5OTksNiwibWFudWFsKG01KSIsImYiLDE5LDI1LCJyIiwibWlkc2l6ZSIKIjE1MCIsIm5pc3NhbiIsIm1heGltYSIsMy41LDIwMDgsNiwiYXV0byhhdikiLCJmIiwxOSwyNSwicCIsIm1pZHNpemUiCiIxNTEiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsMy4zLDE5OTksNiwiYXV0byhsNCkiLCI0IiwxNCwxNywiciIsInN1diIKIjE1MiIsIm5pc3NhbiIsInBhdGhmaW5kZXIgNHdkIiwzLjMsMTk5OSw2LCJtYW51YWwobTUpIiwiNCIsMTUsMTcsInIiLCJzdXYiCiIxNTMiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTQsMjAsInAiLCJzdXYiCiIxNTQiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsNS42LDIwMDgsOCwiYXV0byhzNSkiLCI0IiwxMiwxOCwicCIsInN1diIKIjE1NSIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjEsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE1NiIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE2LDI2LCJwIiwibWlkc2l6ZSIKIjE1NyIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE3LDI3LCJyIiwibWlkc2l6ZSIKIjE1OCIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE4LDI4LCJyIiwibWlkc2l6ZSIKIjE1OSIsInBvbnRpYWMiLCJncmFuZCBwcml4Iiw1LjMsMjAwOCw4LCJhdXRvKHM0KSIsImYiLDE2LDI1LCJwIiwibWlkc2l6ZSIKIjE2MCIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE4LDI1LCJyIiwic3V2IgoiMTYxIiwic3ViYXJ1IiwiZm9yZXN0ZXIgYXdkIiwyLjUsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDE4LDI0LCJyIiwic3V2IgoiMTYyIiwic3ViYXJ1IiwiZm9yZXN0ZXIgYXdkIiwyLjUsMjAwOCw0LCJtYW51YWwobTUpIiwiNCIsMjAsMjcsInIiLCJzdXYiCiIxNjMiLCJzdWJhcnUiLCJmb3Jlc3RlciBhd2QiLDIuNSwyMDA4LDQsIm1hbnVhbChtNSkiLCI0IiwxOSwyNSwicCIsInN1diIKIjE2NCIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhsNCkiLCI0IiwyMCwyNiwiciIsInN1diIKIjE2NSIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhsNCkiLCI0IiwxOCwyMywicCIsInN1diIKIjE2NiIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjIsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDIxLDI2LCJyIiwic3ViY29tcGFjdCIKIjE2NyIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjIsMTk5OSw0LCJtYW51YWwobTUpIiwiNCIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMTY4Iiwic3ViYXJ1IiwiaW1wcmV6YSBhd2QiLDIuNSwxOTk5LDQsIm1hbnVhbChtNSkiLCI0IiwxOSwyNiwiciIsInN1YmNvbXBhY3QiCiIxNjkiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDE5OTksNCwiYXV0byhsNCkiLCI0IiwxOSwyNiwiciIsInN1YmNvbXBhY3QiCiIxNzAiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhzNCkiLCI0IiwyMCwyNSwicCIsImNvbXBhY3QiCiIxNzEiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhzNCkiLCI0IiwyMCwyNywiciIsImNvbXBhY3QiCiIxNzIiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwibWFudWFsKG01KSIsIjQiLDE5LDI1LCJwIiwiY29tcGFjdCIKIjE3MyIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjUsMjAwOCw0LCJtYW51YWwobTUpIiwiNCIsMjAsMjcsInIiLCJjb21wYWN0IgoiMTc0IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDIuNywxOTk5LDQsIm1hbnVhbChtNSkiLCI0IiwxNSwyMCwiciIsInN1diIKIjE3NSIsInRveW90YSIsIjRydW5uZXIgNHdkIiwyLjcsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDE2LDIwLCJyIiwic3V2IgoiMTc2IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDMuNCwxOTk5LDYsImF1dG8obDQpIiwiNCIsMTUsMTksInIiLCJzdXYiCiIxNzciLCJ0b3lvdGEiLCI0cnVubmVyIDR3ZCIsMy40LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE1LDE3LCJyIiwic3V2IgoiMTc4IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDQsMjAwOCw2LCJhdXRvKGw1KSIsIjQiLDE2LDIwLCJyIiwic3V2IgoiMTc5IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDQuNywyMDA4LDgsImF1dG8obDUpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxODAiLCJ0b3lvdGEiLCJjYW1yeSIsMi4yLDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwibWlkc2l6ZSIKIjE4MSIsInRveW90YSIsImNhbXJ5IiwyLjIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDIxLDI3LCJyIiwibWlkc2l6ZSIKIjE4MiIsInRveW90YSIsImNhbXJ5IiwyLjQsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTgzIiwidG95b3RhIiwiY2FtcnkiLDIuNCwyMDA4LDQsImF1dG8obDUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTg0IiwidG95b3RhIiwiY2FtcnkiLDMsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE4NSIsInRveW90YSIsImNhbXJ5IiwzLDE5OTksNiwibWFudWFsKG01KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE4NiIsInRveW90YSIsImNhbXJ5IiwzLjUsMjAwOCw2LCJhdXRvKHM2KSIsImYiLDE5LDI4LCJyIiwibWlkc2l6ZSIKIjE4NyIsInRveW90YSIsImNhbXJ5IHNvbGFyYSIsMi4yLDE5OTksNCwiYXV0byhsNCkiLCJmIiwyMSwyNywiciIsImNvbXBhY3QiCiIxODgiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIxODkiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuNCwyMDA4LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwzMSwiciIsImNvbXBhY3QiCiIxOTAiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuNCwyMDA4LDQsImF1dG8oczUpIiwiZiIsMjIsMzEsInIiLCJjb21wYWN0IgoiMTkxIiwidG95b3RhIiwiY2Ftcnkgc29sYXJhIiwzLDE5OTksNiwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsImNvbXBhY3QiCiIxOTIiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDMsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTgsMjYsInIiLCJjb21wYWN0IgoiMTkzIiwidG95b3RhIiwiY2Ftcnkgc29sYXJhIiwzLjMsMjAwOCw2LCJhdXRvKHM1KSIsImYiLDE4LDI3LCJyIiwiY29tcGFjdCIKIjE5NCIsInRveW90YSIsImNvcm9sbGEiLDEuOCwxOTk5LDQsImF1dG8obDMpIiwiZiIsMjQsMzAsInIiLCJjb21wYWN0IgoiMTk1IiwidG95b3RhIiwiY29yb2xsYSIsMS44LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyNCwzMywiciIsImNvbXBhY3QiCiIxOTYiLCJ0b3lvdGEiLCJjb3JvbGxhIiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjYsMzUsInIiLCJjb21wYWN0IgoiMTk3IiwidG95b3RhIiwiY29yb2xsYSIsMS44LDIwMDgsNCwibWFudWFsKG01KSIsImYiLDI4LDM3LCJyIiwiY29tcGFjdCIKIjE5OCIsInRveW90YSIsImNvcm9sbGEiLDEuOCwyMDA4LDQsImF1dG8obDQpIiwiZiIsMjYsMzUsInIiLCJjb21wYWN0IgoiMTk5IiwidG95b3RhIiwibGFuZCBjcnVpc2VyIHdhZ29uIDR3ZCIsNC43LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInN1diIKIjIwMCIsInRveW90YSIsImxhbmQgY3J1aXNlciB3YWdvbiA0d2QiLDUuNywyMDA4LDgsImF1dG8oczYpIiwiNCIsMTMsMTgsInIiLCJzdXYiCiIyMDEiLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsMi43LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE1LDIwLCJyIiwicGlja3VwIgoiMjAyIiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDIuNywxOTk5LDQsImF1dG8obDQpIiwiNCIsMTYsMjAsInIiLCJwaWNrdXAiCiIyMDMiLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsMi43LDIwMDgsNCwibWFudWFsKG01KSIsIjQiLDE3LDIyLCJyIiwicGlja3VwIgoiMjA0IiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDMuNCwxOTk5LDYsIm1hbnVhbChtNSkiLCI0IiwxNSwxNywiciIsInBpY2t1cCIKIjIwNSIsInRveW90YSIsInRveW90YSB0YWNvbWEgNHdkIiwzLjQsMTk5OSw2LCJhdXRvKGw0KSIsIjQiLDE1LDE5LCJyIiwicGlja3VwIgoiMjA2IiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDQsMjAwOCw2LCJtYW51YWwobTYpIiwiNCIsMTUsMTgsInIiLCJwaWNrdXAiCiIyMDciLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTYsMjAsInIiLCJwaWNrdXAiCiIyMDgiLCJ2b2xrc3dhZ2VuIiwiZ3RpIiwyLDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwiY29tcGFjdCIKIjIwOSIsInZvbGtzd2FnZW4iLCJndGkiLDIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI2LCJyIiwiY29tcGFjdCIKIjIxMCIsInZvbGtzd2FnZW4iLCJndGkiLDIsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjEsMjksInAiLCJjb21wYWN0IgoiMjExIiwidm9sa3N3YWdlbiIsImd0aSIsMiwyMDA4LDQsImF1dG8oczYpIiwiZiIsMjIsMjksInAiLCJjb21wYWN0IgoiMjEyIiwidm9sa3N3YWdlbiIsImd0aSIsMi44LDE5OTksNiwibWFudWFsKG01KSIsImYiLDE3LDI0LCJyIiwiY29tcGFjdCIKIjIxMyIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMS45LDE5OTksNCwibWFudWFsKG01KSIsImYiLDMzLDQ0LCJkIiwiY29tcGFjdCIKIjIxNCIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMTUiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI2LCJyIiwiY29tcGFjdCIKIjIxNiIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMiwyMDA4LDQsImF1dG8oczYpIiwiZiIsMjIsMjksInAiLCJjb21wYWN0IgoiMjE3Iiwidm9sa3N3YWdlbiIsImpldHRhIiwyLDIwMDgsNCwibWFudWFsKG02KSIsImYiLDIxLDI5LCJwIiwiY29tcGFjdCIKIjIxOCIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMi41LDIwMDgsNSwiYXV0byhzNikiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMTkiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIuNSwyMDA4LDUsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMjAiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIuOCwxOTk5LDYsImF1dG8obDQpIiwiZiIsMTYsMjMsInIiLCJjb21wYWN0IgoiMjIxIiwidm9sa3N3YWdlbiIsImpldHRhIiwyLjgsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTcsMjQsInIiLCJjb21wYWN0IgoiMjIyIiwidm9sa3N3YWdlbiIsIm5ldyBiZWV0bGUiLDEuOSwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwzNSw0NCwiZCIsInN1YmNvbXBhY3QiCiIyMjMiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMS45LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyOSw0MSwiZCIsInN1YmNvbXBhY3QiCiIyMjQiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsInN1YmNvbXBhY3QiCiIyMjUiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMiwxOTk5LDQsImF1dG8obDQpIiwiZiIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMjI2Iiwidm9sa3N3YWdlbiIsIm5ldyBiZWV0bGUiLDIuNSwyMDA4LDUsIm1hbnVhbChtNSkiLCJmIiwyMCwyOCwiciIsInN1YmNvbXBhY3QiCiIyMjciLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMi41LDIwMDgsNSwiYXV0byhzNikiLCJmIiwyMCwyOSwiciIsInN1YmNvbXBhY3QiCiIyMjgiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjEsMjksInAiLCJtaWRzaXplIgoiMjI5Iiwidm9sa3N3YWdlbiIsInBhc3NhdCIsMS44LDE5OTksNCwiYXV0byhsNSkiLCJmIiwxOCwyOSwicCIsIm1pZHNpemUiCiIyMzAiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwyLDIwMDgsNCwiYXV0byhzNikiLCJmIiwxOSwyOCwicCIsIm1pZHNpemUiCiIyMzEiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwyLDIwMDgsNCwibWFudWFsKG02KSIsImYiLDIxLDI5LCJwIiwibWlkc2l6ZSIKIjIzMiIsInZvbGtzd2FnZW4iLCJwYXNzYXQiLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiZiIsMTYsMjYsInAiLCJtaWRzaXplIgoiMjMzIiwidm9sa3N3YWdlbiIsInBhc3NhdCIsMi44LDE5OTksNiwibWFudWFsKG01KSIsImYiLDE4LDI2LCJwIiwibWlkc2l6ZSIKIjIzNCIsInZvbGtzd2FnZW4iLCJwYXNzYXQiLDMuNiwyMDA4LDYsImF1dG8oczYpIiwiZiIsMTcsMjYsInAiLCJtaWRzaXplIgo=
# get the decoded content
print(f.decode())
b'"","manufacturer","model","displ","year","cyl","trans","drv","cty","hwy","fl","class"\n"1","audi","a4",1.8,1999,4,"auto(l5)","f",18,29,"p","compact"\n"2","audi","a4",1.8,1999,4,"manual(m5)","f",21,29,"p","compact"\n"3","audi","a4",2,2008,4,"manual(m6)","f",20,31,"p","compact"\n"4","audi","a4",2,2008,4,"auto(av)","f",21,30,"p","compact"\n"5","audi","a4",2.8,1999,6,"auto(l5)","f",16,26,"p","compact"\n"6","audi","a4",2.8,1999,6,"manual(m5)","f",18,26,"p","compact"\n"7","audi","a4",3.1,2008,6,"auto(av)","f",18,27,"p","compact"\n"8","audi","a4 quattro",1.8,1999,4,"manual(m5)","4",18,26,"p","compact"\n"9","audi","a4 quattro",1.8,1999,4,"auto(l5)","4",16,25,"p","compact"\n"10","audi","a4 quattro",2,2008,4,"manual(m6)","4",20,28,"p","compact"\n"11","audi","a4 quattro",2,2008,4,"auto(s6)","4",19,27,"p","compact"\n"12","audi","a4 quattro",2.8,1999,6,"auto(l5)","4",15,25,"p","compact"\n"13","audi","a4 quattro",2.8,1999,6,"manual(m5)","4",17,25,"p","compact"\n"14","audi","a4 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","compact"\n"15","audi","a4 quattro",3.1,2008,6,"manual(m6)","4",15,25,"p","compact"\n"16","audi","a6 quattro",2.8,1999,6,"auto(l5)","4",15,24,"p","midsize"\n"17","audi","a6 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","midsize"\n"18","audi","a6 quattro",4.2,2008,8,"auto(s6)","4",16,23,"p","midsize"\n"19","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"20","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",11,15,"e","suv"\n"21","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"22","chevrolet","c1500 suburban 2wd",5.7,1999,8,"auto(l4)","r",13,17,"r","suv"\n"23","chevrolet","c1500 suburban 2wd",6,2008,8,"auto(l4)","r",12,17,"r","suv"\n"24","chevrolet","corvette",5.7,1999,8,"manual(m6)","r",16,26,"p","2seater"\n"25","chevrolet","corvette",5.7,1999,8,"auto(l4)","r",15,23,"p","2seater"\n"26","chevrolet","corvette",6.2,2008,8,"manual(m6)","r",16,26,"p","2seater"\n"27","chevrolet","corvette",6.2,2008,8,"auto(s6)","r",15,25,"p","2seater"\n"28","chevrolet","corvette",7,2008,8,"manual(m6)","r",15,24,"p","2seater"\n"29","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",14,19,"r","suv"\n"30","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",11,14,"e","suv"\n"31","chevrolet","k1500 tahoe 4wd",5.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"32","chevrolet","k1500 tahoe 4wd",6.5,1999,8,"auto(l4)","4",14,17,"d","suv"\n"33","chevrolet","malibu",2.4,1999,4,"auto(l4)","f",19,27,"r","midsize"\n"34","chevrolet","malibu",2.4,2008,4,"auto(l4)","f",22,30,"r","midsize"\n"35","chevrolet","malibu",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"36","chevrolet","malibu",3.5,2008,6,"auto(l4)","f",18,29,"r","midsize"\n"37","chevrolet","malibu",3.6,2008,6,"auto(s6)","f",17,26,"r","midsize"\n"38","dodge","caravan 2wd",2.4,1999,4,"auto(l3)","f",18,24,"r","minivan"\n"39","dodge","caravan 2wd",3,1999,6,"auto(l4)","f",17,24,"r","minivan"\n"40","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"41","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"42","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"43","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"44","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",11,17,"e","minivan"\n"45","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,22,"r","minivan"\n"46","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,21,"r","minivan"\n"47","dodge","caravan 2wd",3.8,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"48","dodge","caravan 2wd",4,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"49","dodge","dakota pickup 4wd",3.7,2008,6,"manual(m6)","4",15,19,"r","pickup"\n"50","dodge","dakota pickup 4wd",3.7,2008,6,"auto(l4)","4",14,18,"r","pickup"\n"51","dodge","dakota pickup 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","pickup"\n"52","dodge","dakota pickup 4wd",3.9,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"53","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"54","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"55","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"56","dodge","dakota pickup 4wd",5.2,1999,8,"manual(m5)","4",11,17,"r","pickup"\n"57","dodge","dakota pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"58","dodge","durango 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","suv"\n"59","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"60","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"61","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"62","dodge","durango 4wd",5.2,1999,8,"auto(l4)","4",11,16,"r","suv"\n"63","dodge","durango 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"64","dodge","durango 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","suv"\n"65","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"66","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"67","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"68","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"69","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"70","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",9,12,"e","pickup"\n"71","dodge","ram 1500 pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"72","dodge","ram 1500 pickup 4wd",5.2,1999,8,"manual(m5)","4",11,16,"r","pickup"\n"73","dodge","ram 1500 pickup 4wd",5.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"74","dodge","ram 1500 pickup 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"75","ford","expedition 2wd",4.6,1999,8,"auto(l4)","r",11,17,"r","suv"\n"76","ford","expedition 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"77","ford","expedition 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"78","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"79","ford","explorer 4wd",4,1999,6,"manual(m5)","4",15,19,"r","suv"\n"80","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"81","ford","explorer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"82","ford","explorer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"83","ford","explorer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"84","ford","f150 pickup 4wd",4.2,1999,6,"auto(l4)","4",14,17,"r","pickup"\n"85","ford","f150 pickup 4wd",4.2,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"86","ford","f150 pickup 4wd",4.6,1999,8,"manual(m5)","4",13,16,"r","pickup"\n"87","ford","f150 pickup 4wd",4.6,1999,8,"auto(l4)","4",13,16,"r","pickup"\n"88","ford","f150 pickup 4wd",4.6,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"89","ford","f150 pickup 4wd",5.4,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"90","ford","f150 pickup 4wd",5.4,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"91","ford","mustang",3.8,1999,6,"manual(m5)","r",18,26,"r","subcompact"\n"92","ford","mustang",3.8,1999,6,"auto(l4)","r",18,25,"r","subcompact"\n"93","ford","mustang",4,2008,6,"manual(m5)","r",17,26,"r","subcompact"\n"94","ford","mustang",4,2008,6,"auto(l5)","r",16,24,"r","subcompact"\n"95","ford","mustang",4.6,1999,8,"auto(l4)","r",15,21,"r","subcompact"\n"96","ford","mustang",4.6,1999,8,"manual(m5)","r",15,22,"r","subcompact"\n"97","ford","mustang",4.6,2008,8,"manual(m5)","r",15,23,"r","subcompact"\n"98","ford","mustang",4.6,2008,8,"auto(l5)","r",15,22,"r","subcompact"\n"99","ford","mustang",5.4,2008,8,"manual(m6)","r",14,20,"p","subcompact"\n"100","honda","civic",1.6,1999,4,"manual(m5)","f",28,33,"r","subcompact"\n"101","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"102","honda","civic",1.6,1999,4,"manual(m5)","f",25,32,"r","subcompact"\n"103","honda","civic",1.6,1999,4,"manual(m5)","f",23,29,"p","subcompact"\n"104","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"105","honda","civic",1.8,2008,4,"manual(m5)","f",26,34,"r","subcompact"\n"106","honda","civic",1.8,2008,4,"auto(l5)","f",25,36,"r","subcompact"\n"107","honda","civic",1.8,2008,4,"auto(l5)","f",24,36,"c","subcompact"\n"108","honda","civic",2,2008,4,"manual(m6)","f",21,29,"p","subcompact"\n"109","hyundai","sonata",2.4,1999,4,"auto(l4)","f",18,26,"r","midsize"\n"110","hyundai","sonata",2.4,1999,4,"manual(m5)","f",18,27,"r","midsize"\n"111","hyundai","sonata",2.4,2008,4,"auto(l4)","f",21,30,"r","midsize"\n"112","hyundai","sonata",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"113","hyundai","sonata",2.5,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"114","hyundai","sonata",2.5,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"115","hyundai","sonata",3.3,2008,6,"auto(l5)","f",19,28,"r","midsize"\n"116","hyundai","tiburon",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"117","hyundai","tiburon",2,1999,4,"manual(m5)","f",19,29,"r","subcompact"\n"118","hyundai","tiburon",2,2008,4,"manual(m5)","f",20,28,"r","subcompact"\n"119","hyundai","tiburon",2,2008,4,"auto(l4)","f",20,27,"r","subcompact"\n"120","hyundai","tiburon",2.7,2008,6,"auto(l4)","f",17,24,"r","subcompact"\n"121","hyundai","tiburon",2.7,2008,6,"manual(m6)","f",16,24,"r","subcompact"\n"122","hyundai","tiburon",2.7,2008,6,"manual(m5)","f",17,24,"r","subcompact"\n"123","jeep","grand cherokee 4wd",3,2008,6,"auto(l5)","4",17,22,"d","suv"\n"124","jeep","grand cherokee 4wd",3.7,2008,6,"auto(l5)","4",15,19,"r","suv"\n"125","jeep","grand cherokee 4wd",4,1999,6,"auto(l4)","4",15,20,"r","suv"\n"126","jeep","grand cherokee 4wd",4.7,1999,8,"auto(l4)","4",14,17,"r","suv"\n"127","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"128","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","suv"\n"129","jeep","grand cherokee 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"130","jeep","grand cherokee 4wd",6.1,2008,8,"auto(l5)","4",11,14,"p","suv"\n"131","land rover","range rover",4,1999,8,"auto(l4)","4",11,15,"p","suv"\n"132","land rover","range rover",4.2,2008,8,"auto(s6)","4",12,18,"r","suv"\n"133","land rover","range rover",4.4,2008,8,"auto(s6)","4",12,18,"r","suv"\n"134","land rover","range rover",4.6,1999,8,"auto(l4)","4",11,15,"p","suv"\n"135","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"136","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,16,"p","suv"\n"137","lincoln","navigator 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"138","mercury","mountaineer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"139","mercury","mountaineer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"140","mercury","mountaineer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"141","mercury","mountaineer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"142","nissan","altima",2.4,1999,4,"manual(m5)","f",21,29,"r","compact"\n"143","nissan","altima",2.4,1999,4,"auto(l4)","f",19,27,"r","compact"\n"144","nissan","altima",2.5,2008,4,"auto(av)","f",23,31,"r","midsize"\n"145","nissan","altima",2.5,2008,4,"manual(m6)","f",23,32,"r","midsize"\n"146","nissan","altima",3.5,2008,6,"manual(m6)","f",19,27,"p","midsize"\n"147","nissan","altima",3.5,2008,6,"auto(av)","f",19,26,"p","midsize"\n"148","nissan","maxima",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"149","nissan","maxima",3,1999,6,"manual(m5)","f",19,25,"r","midsize"\n"150","nissan","maxima",3.5,2008,6,"auto(av)","f",19,25,"p","midsize"\n"151","nissan","pathfinder 4wd",3.3,1999,6,"auto(l4)","4",14,17,"r","suv"\n"152","nissan","pathfinder 4wd",3.3,1999,6,"manual(m5)","4",15,17,"r","suv"\n"153","nissan","pathfinder 4wd",4,2008,6,"auto(l5)","4",14,20,"p","suv"\n"154","nissan","pathfinder 4wd",5.6,2008,8,"auto(s5)","4",12,18,"p","suv"\n"155","pontiac","grand prix",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"156","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",16,26,"p","midsize"\n"157","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",17,27,"r","midsize"\n"158","pontiac","grand prix",3.8,2008,6,"auto(l4)","f",18,28,"r","midsize"\n"159","pontiac","grand prix",5.3,2008,8,"auto(s4)","f",16,25,"p","midsize"\n"160","subaru","forester awd",2.5,1999,4,"manual(m5)","4",18,25,"r","suv"\n"161","subaru","forester awd",2.5,1999,4,"auto(l4)","4",18,24,"r","suv"\n"162","subaru","forester awd",2.5,2008,4,"manual(m5)","4",20,27,"r","suv"\n"163","subaru","forester awd",2.5,2008,4,"manual(m5)","4",19,25,"p","suv"\n"164","subaru","forester awd",2.5,2008,4,"auto(l4)","4",20,26,"r","suv"\n"165","subaru","forester awd",2.5,2008,4,"auto(l4)","4",18,23,"p","suv"\n"166","subaru","impreza awd",2.2,1999,4,"auto(l4)","4",21,26,"r","subcompact"\n"167","subaru","impreza awd",2.2,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"168","subaru","impreza awd",2.5,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"169","subaru","impreza awd",2.5,1999,4,"auto(l4)","4",19,26,"r","subcompact"\n"170","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,25,"p","compact"\n"171","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,27,"r","compact"\n"172","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",19,25,"p","compact"\n"173","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",20,27,"r","compact"\n"174","toyota","4runner 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","suv"\n"175","toyota","4runner 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","suv"\n"176","toyota","4runner 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","suv"\n"177","toyota","4runner 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","suv"\n"178","toyota","4runner 4wd",4,2008,6,"auto(l5)","4",16,20,"r","suv"\n"179","toyota","4runner 4wd",4.7,2008,8,"auto(l5)","4",14,17,"r","suv"\n"180","toyota","camry",2.2,1999,4,"manual(m5)","f",21,29,"r","midsize"\n"181","toyota","camry",2.2,1999,4,"auto(l4)","f",21,27,"r","midsize"\n"182","toyota","camry",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"183","toyota","camry",2.4,2008,4,"auto(l5)","f",21,31,"r","midsize"\n"184","toyota","camry",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"185","toyota","camry",3,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"186","toyota","camry",3.5,2008,6,"auto(s6)","f",19,28,"r","midsize"\n"187","toyota","camry solara",2.2,1999,4,"auto(l4)","f",21,27,"r","compact"\n"188","toyota","camry solara",2.2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"189","toyota","camry solara",2.4,2008,4,"manual(m5)","f",21,31,"r","compact"\n"190","toyota","camry solara",2.4,2008,4,"auto(s5)","f",22,31,"r","compact"\n"191","toyota","camry solara",3,1999,6,"auto(l4)","f",18,26,"r","compact"\n"192","toyota","camry solara",3,1999,6,"manual(m5)","f",18,26,"r","compact"\n"193","toyota","camry solara",3.3,2008,6,"auto(s5)","f",18,27,"r","compact"\n"194","toyota","corolla",1.8,1999,4,"auto(l3)","f",24,30,"r","compact"\n"195","toyota","corolla",1.8,1999,4,"auto(l4)","f",24,33,"r","compact"\n"196","toyota","corolla",1.8,1999,4,"manual(m5)","f",26,35,"r","compact"\n"197","toyota","corolla",1.8,2008,4,"manual(m5)","f",28,37,"r","compact"\n"198","toyota","corolla",1.8,2008,4,"auto(l4)","f",26,35,"r","compact"\n"199","toyota","land cruiser wagon 4wd",4.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"200","toyota","land cruiser wagon 4wd",5.7,2008,8,"auto(s6)","4",13,18,"r","suv"\n"201","toyota","toyota tacoma 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","pickup"\n"202","toyota","toyota tacoma 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","pickup"\n"203","toyota","toyota tacoma 4wd",2.7,2008,4,"manual(m5)","4",17,22,"r","pickup"\n"204","toyota","toyota tacoma 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","pickup"\n"205","toyota","toyota tacoma 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","pickup"\n"206","toyota","toyota tacoma 4wd",4,2008,6,"manual(m6)","4",15,18,"r","pickup"\n"207","toyota","toyota tacoma 4wd",4,2008,6,"auto(l5)","4",16,20,"r","pickup"\n"208","volkswagen","gti",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"209","volkswagen","gti",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"210","volkswagen","gti",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"211","volkswagen","gti",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"212","volkswagen","gti",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"213","volkswagen","jetta",1.9,1999,4,"manual(m5)","f",33,44,"d","compact"\n"214","volkswagen","jetta",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"215","volkswagen","jetta",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"216","volkswagen","jetta",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"217","volkswagen","jetta",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"218","volkswagen","jetta",2.5,2008,5,"auto(s6)","f",21,29,"r","compact"\n"219","volkswagen","jetta",2.5,2008,5,"manual(m5)","f",21,29,"r","compact"\n"220","volkswagen","jetta",2.8,1999,6,"auto(l4)","f",16,23,"r","compact"\n"221","volkswagen","jetta",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"222","volkswagen","new beetle",1.9,1999,4,"manual(m5)","f",35,44,"d","subcompact"\n"223","volkswagen","new beetle",1.9,1999,4,"auto(l4)","f",29,41,"d","subcompact"\n"224","volkswagen","new beetle",2,1999,4,"manual(m5)","f",21,29,"r","subcompact"\n"225","volkswagen","new beetle",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"226","volkswagen","new beetle",2.5,2008,5,"manual(m5)","f",20,28,"r","subcompact"\n"227","volkswagen","new beetle",2.5,2008,5,"auto(s6)","f",20,29,"r","subcompact"\n"228","volkswagen","passat",1.8,1999,4,"manual(m5)","f",21,29,"p","midsize"\n"229","volkswagen","passat",1.8,1999,4,"auto(l5)","f",18,29,"p","midsize"\n"230","volkswagen","passat",2,2008,4,"auto(s6)","f",19,28,"p","midsize"\n"231","volkswagen","passat",2,2008,4,"manual(m6)","f",21,29,"p","midsize"\n"232","volkswagen","passat",2.8,1999,6,"auto(l5)","f",16,26,"p","midsize"\n"233","volkswagen","passat",2.8,1999,6,"manual(m5)","f",18,26,"p","midsize"\n"234","volkswagen","passat",3.6,2008,6,"auto(s6)","f",17,26,"p","midsize"\n'
Get a raw file:
raw_content = project.files.raw(file_path='mpg.csv', ref='master')
print(raw_content)
b'"","manufacturer","model","displ","year","cyl","trans","drv","cty","hwy","fl","class"\n"1","audi","a4",1.8,1999,4,"auto(l5)","f",18,29,"p","compact"\n"2","audi","a4",1.8,1999,4,"manual(m5)","f",21,29,"p","compact"\n"3","audi","a4",2,2008,4,"manual(m6)","f",20,31,"p","compact"\n"4","audi","a4",2,2008,4,"auto(av)","f",21,30,"p","compact"\n"5","audi","a4",2.8,1999,6,"auto(l5)","f",16,26,"p","compact"\n"6","audi","a4",2.8,1999,6,"manual(m5)","f",18,26,"p","compact"\n"7","audi","a4",3.1,2008,6,"auto(av)","f",18,27,"p","compact"\n"8","audi","a4 quattro",1.8,1999,4,"manual(m5)","4",18,26,"p","compact"\n"9","audi","a4 quattro",1.8,1999,4,"auto(l5)","4",16,25,"p","compact"\n"10","audi","a4 quattro",2,2008,4,"manual(m6)","4",20,28,"p","compact"\n"11","audi","a4 quattro",2,2008,4,"auto(s6)","4",19,27,"p","compact"\n"12","audi","a4 quattro",2.8,1999,6,"auto(l5)","4",15,25,"p","compact"\n"13","audi","a4 quattro",2.8,1999,6,"manual(m5)","4",17,25,"p","compact"\n"14","audi","a4 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","compact"\n"15","audi","a4 quattro",3.1,2008,6,"manual(m6)","4",15,25,"p","compact"\n"16","audi","a6 quattro",2.8,1999,6,"auto(l5)","4",15,24,"p","midsize"\n"17","audi","a6 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","midsize"\n"18","audi","a6 quattro",4.2,2008,8,"auto(s6)","4",16,23,"p","midsize"\n"19","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"20","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",11,15,"e","suv"\n"21","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"22","chevrolet","c1500 suburban 2wd",5.7,1999,8,"auto(l4)","r",13,17,"r","suv"\n"23","chevrolet","c1500 suburban 2wd",6,2008,8,"auto(l4)","r",12,17,"r","suv"\n"24","chevrolet","corvette",5.7,1999,8,"manual(m6)","r",16,26,"p","2seater"\n"25","chevrolet","corvette",5.7,1999,8,"auto(l4)","r",15,23,"p","2seater"\n"26","chevrolet","corvette",6.2,2008,8,"manual(m6)","r",16,26,"p","2seater"\n"27","chevrolet","corvette",6.2,2008,8,"auto(s6)","r",15,25,"p","2seater"\n"28","chevrolet","corvette",7,2008,8,"manual(m6)","r",15,24,"p","2seater"\n"29","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",14,19,"r","suv"\n"30","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",11,14,"e","suv"\n"31","chevrolet","k1500 tahoe 4wd",5.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"32","chevrolet","k1500 tahoe 4wd",6.5,1999,8,"auto(l4)","4",14,17,"d","suv"\n"33","chevrolet","malibu",2.4,1999,4,"auto(l4)","f",19,27,"r","midsize"\n"34","chevrolet","malibu",2.4,2008,4,"auto(l4)","f",22,30,"r","midsize"\n"35","chevrolet","malibu",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"36","chevrolet","malibu",3.5,2008,6,"auto(l4)","f",18,29,"r","midsize"\n"37","chevrolet","malibu",3.6,2008,6,"auto(s6)","f",17,26,"r","midsize"\n"38","dodge","caravan 2wd",2.4,1999,4,"auto(l3)","f",18,24,"r","minivan"\n"39","dodge","caravan 2wd",3,1999,6,"auto(l4)","f",17,24,"r","minivan"\n"40","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"41","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"42","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"43","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"44","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",11,17,"e","minivan"\n"45","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,22,"r","minivan"\n"46","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,21,"r","minivan"\n"47","dodge","caravan 2wd",3.8,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"48","dodge","caravan 2wd",4,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"49","dodge","dakota pickup 4wd",3.7,2008,6,"manual(m6)","4",15,19,"r","pickup"\n"50","dodge","dakota pickup 4wd",3.7,2008,6,"auto(l4)","4",14,18,"r","pickup"\n"51","dodge","dakota pickup 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","pickup"\n"52","dodge","dakota pickup 4wd",3.9,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"53","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"54","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"55","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"56","dodge","dakota pickup 4wd",5.2,1999,8,"manual(m5)","4",11,17,"r","pickup"\n"57","dodge","dakota pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"58","dodge","durango 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","suv"\n"59","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"60","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"61","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"62","dodge","durango 4wd",5.2,1999,8,"auto(l4)","4",11,16,"r","suv"\n"63","dodge","durango 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"64","dodge","durango 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","suv"\n"65","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"66","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"67","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"68","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"69","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"70","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",9,12,"e","pickup"\n"71","dodge","ram 1500 pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"72","dodge","ram 1500 pickup 4wd",5.2,1999,8,"manual(m5)","4",11,16,"r","pickup"\n"73","dodge","ram 1500 pickup 4wd",5.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"74","dodge","ram 1500 pickup 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"75","ford","expedition 2wd",4.6,1999,8,"auto(l4)","r",11,17,"r","suv"\n"76","ford","expedition 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"77","ford","expedition 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"78","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"79","ford","explorer 4wd",4,1999,6,"manual(m5)","4",15,19,"r","suv"\n"80","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"81","ford","explorer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"82","ford","explorer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"83","ford","explorer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"84","ford","f150 pickup 4wd",4.2,1999,6,"auto(l4)","4",14,17,"r","pickup"\n"85","ford","f150 pickup 4wd",4.2,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"86","ford","f150 pickup 4wd",4.6,1999,8,"manual(m5)","4",13,16,"r","pickup"\n"87","ford","f150 pickup 4wd",4.6,1999,8,"auto(l4)","4",13,16,"r","pickup"\n"88","ford","f150 pickup 4wd",4.6,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"89","ford","f150 pickup 4wd",5.4,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"90","ford","f150 pickup 4wd",5.4,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"91","ford","mustang",3.8,1999,6,"manual(m5)","r",18,26,"r","subcompact"\n"92","ford","mustang",3.8,1999,6,"auto(l4)","r",18,25,"r","subcompact"\n"93","ford","mustang",4,2008,6,"manual(m5)","r",17,26,"r","subcompact"\n"94","ford","mustang",4,2008,6,"auto(l5)","r",16,24,"r","subcompact"\n"95","ford","mustang",4.6,1999,8,"auto(l4)","r",15,21,"r","subcompact"\n"96","ford","mustang",4.6,1999,8,"manual(m5)","r",15,22,"r","subcompact"\n"97","ford","mustang",4.6,2008,8,"manual(m5)","r",15,23,"r","subcompact"\n"98","ford","mustang",4.6,2008,8,"auto(l5)","r",15,22,"r","subcompact"\n"99","ford","mustang",5.4,2008,8,"manual(m6)","r",14,20,"p","subcompact"\n"100","honda","civic",1.6,1999,4,"manual(m5)","f",28,33,"r","subcompact"\n"101","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"102","honda","civic",1.6,1999,4,"manual(m5)","f",25,32,"r","subcompact"\n"103","honda","civic",1.6,1999,4,"manual(m5)","f",23,29,"p","subcompact"\n"104","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"105","honda","civic",1.8,2008,4,"manual(m5)","f",26,34,"r","subcompact"\n"106","honda","civic",1.8,2008,4,"auto(l5)","f",25,36,"r","subcompact"\n"107","honda","civic",1.8,2008,4,"auto(l5)","f",24,36,"c","subcompact"\n"108","honda","civic",2,2008,4,"manual(m6)","f",21,29,"p","subcompact"\n"109","hyundai","sonata",2.4,1999,4,"auto(l4)","f",18,26,"r","midsize"\n"110","hyundai","sonata",2.4,1999,4,"manual(m5)","f",18,27,"r","midsize"\n"111","hyundai","sonata",2.4,2008,4,"auto(l4)","f",21,30,"r","midsize"\n"112","hyundai","sonata",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"113","hyundai","sonata",2.5,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"114","hyundai","sonata",2.5,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"115","hyundai","sonata",3.3,2008,6,"auto(l5)","f",19,28,"r","midsize"\n"116","hyundai","tiburon",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"117","hyundai","tiburon",2,1999,4,"manual(m5)","f",19,29,"r","subcompact"\n"118","hyundai","tiburon",2,2008,4,"manual(m5)","f",20,28,"r","subcompact"\n"119","hyundai","tiburon",2,2008,4,"auto(l4)","f",20,27,"r","subcompact"\n"120","hyundai","tiburon",2.7,2008,6,"auto(l4)","f",17,24,"r","subcompact"\n"121","hyundai","tiburon",2.7,2008,6,"manual(m6)","f",16,24,"r","subcompact"\n"122","hyundai","tiburon",2.7,2008,6,"manual(m5)","f",17,24,"r","subcompact"\n"123","jeep","grand cherokee 4wd",3,2008,6,"auto(l5)","4",17,22,"d","suv"\n"124","jeep","grand cherokee 4wd",3.7,2008,6,"auto(l5)","4",15,19,"r","suv"\n"125","jeep","grand cherokee 4wd",4,1999,6,"auto(l4)","4",15,20,"r","suv"\n"126","jeep","grand cherokee 4wd",4.7,1999,8,"auto(l4)","4",14,17,"r","suv"\n"127","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"128","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","suv"\n"129","jeep","grand cherokee 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"130","jeep","grand cherokee 4wd",6.1,2008,8,"auto(l5)","4",11,14,"p","suv"\n"131","land rover","range rover",4,1999,8,"auto(l4)","4",11,15,"p","suv"\n"132","land rover","range rover",4.2,2008,8,"auto(s6)","4",12,18,"r","suv"\n"133","land rover","range rover",4.4,2008,8,"auto(s6)","4",12,18,"r","suv"\n"134","land rover","range rover",4.6,1999,8,"auto(l4)","4",11,15,"p","suv"\n"135","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"136","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,16,"p","suv"\n"137","lincoln","navigator 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"138","mercury","mountaineer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"139","mercury","mountaineer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"140","mercury","mountaineer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"141","mercury","mountaineer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"142","nissan","altima",2.4,1999,4,"manual(m5)","f",21,29,"r","compact"\n"143","nissan","altima",2.4,1999,4,"auto(l4)","f",19,27,"r","compact"\n"144","nissan","altima",2.5,2008,4,"auto(av)","f",23,31,"r","midsize"\n"145","nissan","altima",2.5,2008,4,"manual(m6)","f",23,32,"r","midsize"\n"146","nissan","altima",3.5,2008,6,"manual(m6)","f",19,27,"p","midsize"\n"147","nissan","altima",3.5,2008,6,"auto(av)","f",19,26,"p","midsize"\n"148","nissan","maxima",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"149","nissan","maxima",3,1999,6,"manual(m5)","f",19,25,"r","midsize"\n"150","nissan","maxima",3.5,2008,6,"auto(av)","f",19,25,"p","midsize"\n"151","nissan","pathfinder 4wd",3.3,1999,6,"auto(l4)","4",14,17,"r","suv"\n"152","nissan","pathfinder 4wd",3.3,1999,6,"manual(m5)","4",15,17,"r","suv"\n"153","nissan","pathfinder 4wd",4,2008,6,"auto(l5)","4",14,20,"p","suv"\n"154","nissan","pathfinder 4wd",5.6,2008,8,"auto(s5)","4",12,18,"p","suv"\n"155","pontiac","grand prix",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"156","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",16,26,"p","midsize"\n"157","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",17,27,"r","midsize"\n"158","pontiac","grand prix",3.8,2008,6,"auto(l4)","f",18,28,"r","midsize"\n"159","pontiac","grand prix",5.3,2008,8,"auto(s4)","f",16,25,"p","midsize"\n"160","subaru","forester awd",2.5,1999,4,"manual(m5)","4",18,25,"r","suv"\n"161","subaru","forester awd",2.5,1999,4,"auto(l4)","4",18,24,"r","suv"\n"162","subaru","forester awd",2.5,2008,4,"manual(m5)","4",20,27,"r","suv"\n"163","subaru","forester awd",2.5,2008,4,"manual(m5)","4",19,25,"p","suv"\n"164","subaru","forester awd",2.5,2008,4,"auto(l4)","4",20,26,"r","suv"\n"165","subaru","forester awd",2.5,2008,4,"auto(l4)","4",18,23,"p","suv"\n"166","subaru","impreza awd",2.2,1999,4,"auto(l4)","4",21,26,"r","subcompact"\n"167","subaru","impreza awd",2.2,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"168","subaru","impreza awd",2.5,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"169","subaru","impreza awd",2.5,1999,4,"auto(l4)","4",19,26,"r","subcompact"\n"170","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,25,"p","compact"\n"171","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,27,"r","compact"\n"172","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",19,25,"p","compact"\n"173","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",20,27,"r","compact"\n"174","toyota","4runner 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","suv"\n"175","toyota","4runner 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","suv"\n"176","toyota","4runner 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","suv"\n"177","toyota","4runner 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","suv"\n"178","toyota","4runner 4wd",4,2008,6,"auto(l5)","4",16,20,"r","suv"\n"179","toyota","4runner 4wd",4.7,2008,8,"auto(l5)","4",14,17,"r","suv"\n"180","toyota","camry",2.2,1999,4,"manual(m5)","f",21,29,"r","midsize"\n"181","toyota","camry",2.2,1999,4,"auto(l4)","f",21,27,"r","midsize"\n"182","toyota","camry",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"183","toyota","camry",2.4,2008,4,"auto(l5)","f",21,31,"r","midsize"\n"184","toyota","camry",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"185","toyota","camry",3,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"186","toyota","camry",3.5,2008,6,"auto(s6)","f",19,28,"r","midsize"\n"187","toyota","camry solara",2.2,1999,4,"auto(l4)","f",21,27,"r","compact"\n"188","toyota","camry solara",2.2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"189","toyota","camry solara",2.4,2008,4,"manual(m5)","f",21,31,"r","compact"\n"190","toyota","camry solara",2.4,2008,4,"auto(s5)","f",22,31,"r","compact"\n"191","toyota","camry solara",3,1999,6,"auto(l4)","f",18,26,"r","compact"\n"192","toyota","camry solara",3,1999,6,"manual(m5)","f",18,26,"r","compact"\n"193","toyota","camry solara",3.3,2008,6,"auto(s5)","f",18,27,"r","compact"\n"194","toyota","corolla",1.8,1999,4,"auto(l3)","f",24,30,"r","compact"\n"195","toyota","corolla",1.8,1999,4,"auto(l4)","f",24,33,"r","compact"\n"196","toyota","corolla",1.8,1999,4,"manual(m5)","f",26,35,"r","compact"\n"197","toyota","corolla",1.8,2008,4,"manual(m5)","f",28,37,"r","compact"\n"198","toyota","corolla",1.8,2008,4,"auto(l4)","f",26,35,"r","compact"\n"199","toyota","land cruiser wagon 4wd",4.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"200","toyota","land cruiser wagon 4wd",5.7,2008,8,"auto(s6)","4",13,18,"r","suv"\n"201","toyota","toyota tacoma 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","pickup"\n"202","toyota","toyota tacoma 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","pickup"\n"203","toyota","toyota tacoma 4wd",2.7,2008,4,"manual(m5)","4",17,22,"r","pickup"\n"204","toyota","toyota tacoma 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","pickup"\n"205","toyota","toyota tacoma 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","pickup"\n"206","toyota","toyota tacoma 4wd",4,2008,6,"manual(m6)","4",15,18,"r","pickup"\n"207","toyota","toyota tacoma 4wd",4,2008,6,"auto(l5)","4",16,20,"r","pickup"\n"208","volkswagen","gti",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"209","volkswagen","gti",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"210","volkswagen","gti",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"211","volkswagen","gti",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"212","volkswagen","gti",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"213","volkswagen","jetta",1.9,1999,4,"manual(m5)","f",33,44,"d","compact"\n"214","volkswagen","jetta",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"215","volkswagen","jetta",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"216","volkswagen","jetta",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"217","volkswagen","jetta",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"218","volkswagen","jetta",2.5,2008,5,"auto(s6)","f",21,29,"r","compact"\n"219","volkswagen","jetta",2.5,2008,5,"manual(m5)","f",21,29,"r","compact"\n"220","volkswagen","jetta",2.8,1999,6,"auto(l4)","f",16,23,"r","compact"\n"221","volkswagen","jetta",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"222","volkswagen","new beetle",1.9,1999,4,"manual(m5)","f",35,44,"d","subcompact"\n"223","volkswagen","new beetle",1.9,1999,4,"auto(l4)","f",29,41,"d","subcompact"\n"224","volkswagen","new beetle",2,1999,4,"manual(m5)","f",21,29,"r","subcompact"\n"225","volkswagen","new beetle",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"226","volkswagen","new beetle",2.5,2008,5,"manual(m5)","f",20,28,"r","subcompact"\n"227","volkswagen","new beetle",2.5,2008,5,"auto(s6)","f",20,29,"r","subcompact"\n"228","volkswagen","passat",1.8,1999,4,"manual(m5)","f",21,29,"p","midsize"\n"229","volkswagen","passat",1.8,1999,4,"auto(l5)","f",18,29,"p","midsize"\n"230","volkswagen","passat",2,2008,4,"auto(s6)","f",19,28,"p","midsize"\n"231","volkswagen","passat",2,2008,4,"manual(m6)","f",21,29,"p","midsize"\n"232","volkswagen","passat",2.8,1999,6,"auto(l5)","f",16,26,"p","midsize"\n"233","volkswagen","passat",2.8,1999,6,"manual(m5)","f",18,26,"p","midsize"\n"234","volkswagen","passat",3.6,2008,6,"auto(s6)","f",17,26,"p","midsize"\n'
Extract decoded file.
print(raw_content.decode())
"","manufacturer","model","displ","year","cyl","trans","drv","cty","hwy","fl","class" "1","audi","a4",1.8,1999,4,"auto(l5)","f",18,29,"p","compact" "2","audi","a4",1.8,1999,4,"manual(m5)","f",21,29,"p","compact" "3","audi","a4",2,2008,4,"manual(m6)","f",20,31,"p","compact" "4","audi","a4",2,2008,4,"auto(av)","f",21,30,"p","compact" "5","audi","a4",2.8,1999,6,"auto(l5)","f",16,26,"p","compact" "6","audi","a4",2.8,1999,6,"manual(m5)","f",18,26,"p","compact" "7","audi","a4",3.1,2008,6,"auto(av)","f",18,27,"p","compact" "8","audi","a4 quattro",1.8,1999,4,"manual(m5)","4",18,26,"p","compact" "9","audi","a4 quattro",1.8,1999,4,"auto(l5)","4",16,25,"p","compact" "10","audi","a4 quattro",2,2008,4,"manual(m6)","4",20,28,"p","compact" "11","audi","a4 quattro",2,2008,4,"auto(s6)","4",19,27,"p","compact" "12","audi","a4 quattro",2.8,1999,6,"auto(l5)","4",15,25,"p","compact" "13","audi","a4 quattro",2.8,1999,6,"manual(m5)","4",17,25,"p","compact" "14","audi","a4 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","compact" "15","audi","a4 quattro",3.1,2008,6,"manual(m6)","4",15,25,"p","compact" "16","audi","a6 quattro",2.8,1999,6,"auto(l5)","4",15,24,"p","midsize" "17","audi","a6 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","midsize" "18","audi","a6 quattro",4.2,2008,8,"auto(s6)","4",16,23,"p","midsize" "19","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv" "20","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",11,15,"e","suv" "21","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv" "22","chevrolet","c1500 suburban 2wd",5.7,1999,8,"auto(l4)","r",13,17,"r","suv" "23","chevrolet","c1500 suburban 2wd",6,2008,8,"auto(l4)","r",12,17,"r","suv" "24","chevrolet","corvette",5.7,1999,8,"manual(m6)","r",16,26,"p","2seater" "25","chevrolet","corvette",5.7,1999,8,"auto(l4)","r",15,23,"p","2seater" "26","chevrolet","corvette",6.2,2008,8,"manual(m6)","r",16,26,"p","2seater" "27","chevrolet","corvette",6.2,2008,8,"auto(s6)","r",15,25,"p","2seater" "28","chevrolet","corvette",7,2008,8,"manual(m6)","r",15,24,"p","2seater" "29","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",14,19,"r","suv" "30","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",11,14,"e","suv" "31","chevrolet","k1500 tahoe 4wd",5.7,1999,8,"auto(l4)","4",11,15,"r","suv" "32","chevrolet","k1500 tahoe 4wd",6.5,1999,8,"auto(l4)","4",14,17,"d","suv" "33","chevrolet","malibu",2.4,1999,4,"auto(l4)","f",19,27,"r","midsize" "34","chevrolet","malibu",2.4,2008,4,"auto(l4)","f",22,30,"r","midsize" "35","chevrolet","malibu",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize" "36","chevrolet","malibu",3.5,2008,6,"auto(l4)","f",18,29,"r","midsize" "37","chevrolet","malibu",3.6,2008,6,"auto(s6)","f",17,26,"r","midsize" "38","dodge","caravan 2wd",2.4,1999,4,"auto(l3)","f",18,24,"r","minivan" "39","dodge","caravan 2wd",3,1999,6,"auto(l4)","f",17,24,"r","minivan" "40","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan" "41","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan" "42","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan" "43","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan" "44","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",11,17,"e","minivan" "45","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,22,"r","minivan" "46","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,21,"r","minivan" "47","dodge","caravan 2wd",3.8,2008,6,"auto(l6)","f",16,23,"r","minivan" "48","dodge","caravan 2wd",4,2008,6,"auto(l6)","f",16,23,"r","minivan" "49","dodge","dakota pickup 4wd",3.7,2008,6,"manual(m6)","4",15,19,"r","pickup" "50","dodge","dakota pickup 4wd",3.7,2008,6,"auto(l4)","4",14,18,"r","pickup" "51","dodge","dakota pickup 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","pickup" "52","dodge","dakota pickup 4wd",3.9,1999,6,"manual(m5)","4",14,17,"r","pickup" "53","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup" "54","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup" "55","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup" "56","dodge","dakota pickup 4wd",5.2,1999,8,"manual(m5)","4",11,17,"r","pickup" "57","dodge","dakota pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup" "58","dodge","durango 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","suv" "59","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv" "60","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv" "61","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv" "62","dodge","durango 4wd",5.2,1999,8,"auto(l4)","4",11,16,"r","suv" "63","dodge","durango 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv" "64","dodge","durango 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","suv" "65","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup" "66","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup" "67","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup" "68","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup" "69","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup" "70","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",9,12,"e","pickup" "71","dodge","ram 1500 pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup" "72","dodge","ram 1500 pickup 4wd",5.2,1999,8,"manual(m5)","4",11,16,"r","pickup" "73","dodge","ram 1500 pickup 4wd",5.7,2008,8,"auto(l5)","4",13,17,"r","pickup" "74","dodge","ram 1500 pickup 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","pickup" "75","ford","expedition 2wd",4.6,1999,8,"auto(l4)","r",11,17,"r","suv" "76","ford","expedition 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv" "77","ford","expedition 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv" "78","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv" "79","ford","explorer 4wd",4,1999,6,"manual(m5)","4",15,19,"r","suv" "80","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv" "81","ford","explorer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv" "82","ford","explorer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv" "83","ford","explorer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv" "84","ford","f150 pickup 4wd",4.2,1999,6,"auto(l4)","4",14,17,"r","pickup" "85","ford","f150 pickup 4wd",4.2,1999,6,"manual(m5)","4",14,17,"r","pickup" "86","ford","f150 pickup 4wd",4.6,1999,8,"manual(m5)","4",13,16,"r","pickup" "87","ford","f150 pickup 4wd",4.6,1999,8,"auto(l4)","4",13,16,"r","pickup" "88","ford","f150 pickup 4wd",4.6,2008,8,"auto(l4)","4",13,17,"r","pickup" "89","ford","f150 pickup 4wd",5.4,1999,8,"auto(l4)","4",11,15,"r","pickup" "90","ford","f150 pickup 4wd",5.4,2008,8,"auto(l4)","4",13,17,"r","pickup" "91","ford","mustang",3.8,1999,6,"manual(m5)","r",18,26,"r","subcompact" "92","ford","mustang",3.8,1999,6,"auto(l4)","r",18,25,"r","subcompact" "93","ford","mustang",4,2008,6,"manual(m5)","r",17,26,"r","subcompact" "94","ford","mustang",4,2008,6,"auto(l5)","r",16,24,"r","subcompact" "95","ford","mustang",4.6,1999,8,"auto(l4)","r",15,21,"r","subcompact" "96","ford","mustang",4.6,1999,8,"manual(m5)","r",15,22,"r","subcompact" "97","ford","mustang",4.6,2008,8,"manual(m5)","r",15,23,"r","subcompact" "98","ford","mustang",4.6,2008,8,"auto(l5)","r",15,22,"r","subcompact" "99","ford","mustang",5.4,2008,8,"manual(m6)","r",14,20,"p","subcompact" "100","honda","civic",1.6,1999,4,"manual(m5)","f",28,33,"r","subcompact" "101","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact" "102","honda","civic",1.6,1999,4,"manual(m5)","f",25,32,"r","subcompact" "103","honda","civic",1.6,1999,4,"manual(m5)","f",23,29,"p","subcompact" "104","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact" "105","honda","civic",1.8,2008,4,"manual(m5)","f",26,34,"r","subcompact" "106","honda","civic",1.8,2008,4,"auto(l5)","f",25,36,"r","subcompact" "107","honda","civic",1.8,2008,4,"auto(l5)","f",24,36,"c","subcompact" "108","honda","civic",2,2008,4,"manual(m6)","f",21,29,"p","subcompact" "109","hyundai","sonata",2.4,1999,4,"auto(l4)","f",18,26,"r","midsize" "110","hyundai","sonata",2.4,1999,4,"manual(m5)","f",18,27,"r","midsize" "111","hyundai","sonata",2.4,2008,4,"auto(l4)","f",21,30,"r","midsize" "112","hyundai","sonata",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize" "113","hyundai","sonata",2.5,1999,6,"auto(l4)","f",18,26,"r","midsize" "114","hyundai","sonata",2.5,1999,6,"manual(m5)","f",18,26,"r","midsize" "115","hyundai","sonata",3.3,2008,6,"auto(l5)","f",19,28,"r","midsize" "116","hyundai","tiburon",2,1999,4,"auto(l4)","f",19,26,"r","subcompact" "117","hyundai","tiburon",2,1999,4,"manual(m5)","f",19,29,"r","subcompact" "118","hyundai","tiburon",2,2008,4,"manual(m5)","f",20,28,"r","subcompact" "119","hyundai","tiburon",2,2008,4,"auto(l4)","f",20,27,"r","subcompact" "120","hyundai","tiburon",2.7,2008,6,"auto(l4)","f",17,24,"r","subcompact" "121","hyundai","tiburon",2.7,2008,6,"manual(m6)","f",16,24,"r","subcompact" "122","hyundai","tiburon",2.7,2008,6,"manual(m5)","f",17,24,"r","subcompact" "123","jeep","grand cherokee 4wd",3,2008,6,"auto(l5)","4",17,22,"d","suv" "124","jeep","grand cherokee 4wd",3.7,2008,6,"auto(l5)","4",15,19,"r","suv" "125","jeep","grand cherokee 4wd",4,1999,6,"auto(l4)","4",15,20,"r","suv" "126","jeep","grand cherokee 4wd",4.7,1999,8,"auto(l4)","4",14,17,"r","suv" "127","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv" "128","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","suv" "129","jeep","grand cherokee 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv" "130","jeep","grand cherokee 4wd",6.1,2008,8,"auto(l5)","4",11,14,"p","suv" "131","land rover","range rover",4,1999,8,"auto(l4)","4",11,15,"p","suv" "132","land rover","range rover",4.2,2008,8,"auto(s6)","4",12,18,"r","suv" "133","land rover","range rover",4.4,2008,8,"auto(s6)","4",12,18,"r","suv" "134","land rover","range rover",4.6,1999,8,"auto(l4)","4",11,15,"p","suv" "135","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv" "136","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,16,"p","suv" "137","lincoln","navigator 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv" "138","mercury","mountaineer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv" "139","mercury","mountaineer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv" "140","mercury","mountaineer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv" "141","mercury","mountaineer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv" "142","nissan","altima",2.4,1999,4,"manual(m5)","f",21,29,"r","compact" "143","nissan","altima",2.4,1999,4,"auto(l4)","f",19,27,"r","compact" "144","nissan","altima",2.5,2008,4,"auto(av)","f",23,31,"r","midsize" "145","nissan","altima",2.5,2008,4,"manual(m6)","f",23,32,"r","midsize" "146","nissan","altima",3.5,2008,6,"manual(m6)","f",19,27,"p","midsize" "147","nissan","altima",3.5,2008,6,"auto(av)","f",19,26,"p","midsize" "148","nissan","maxima",3,1999,6,"auto(l4)","f",18,26,"r","midsize" "149","nissan","maxima",3,1999,6,"manual(m5)","f",19,25,"r","midsize" "150","nissan","maxima",3.5,2008,6,"auto(av)","f",19,25,"p","midsize" "151","nissan","pathfinder 4wd",3.3,1999,6,"auto(l4)","4",14,17,"r","suv" "152","nissan","pathfinder 4wd",3.3,1999,6,"manual(m5)","4",15,17,"r","suv" "153","nissan","pathfinder 4wd",4,2008,6,"auto(l5)","4",14,20,"p","suv" "154","nissan","pathfinder 4wd",5.6,2008,8,"auto(s5)","4",12,18,"p","suv" "155","pontiac","grand prix",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize" "156","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",16,26,"p","midsize" "157","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",17,27,"r","midsize" "158","pontiac","grand prix",3.8,2008,6,"auto(l4)","f",18,28,"r","midsize" "159","pontiac","grand prix",5.3,2008,8,"auto(s4)","f",16,25,"p","midsize" "160","subaru","forester awd",2.5,1999,4,"manual(m5)","4",18,25,"r","suv" "161","subaru","forester awd",2.5,1999,4,"auto(l4)","4",18,24,"r","suv" "162","subaru","forester awd",2.5,2008,4,"manual(m5)","4",20,27,"r","suv" "163","subaru","forester awd",2.5,2008,4,"manual(m5)","4",19,25,"p","suv" "164","subaru","forester awd",2.5,2008,4,"auto(l4)","4",20,26,"r","suv" "165","subaru","forester awd",2.5,2008,4,"auto(l4)","4",18,23,"p","suv" "166","subaru","impreza awd",2.2,1999,4,"auto(l4)","4",21,26,"r","subcompact" "167","subaru","impreza awd",2.2,1999,4,"manual(m5)","4",19,26,"r","subcompact" "168","subaru","impreza awd",2.5,1999,4,"manual(m5)","4",19,26,"r","subcompact" "169","subaru","impreza awd",2.5,1999,4,"auto(l4)","4",19,26,"r","subcompact" "170","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,25,"p","compact" "171","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,27,"r","compact" "172","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",19,25,"p","compact" "173","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",20,27,"r","compact" "174","toyota","4runner 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","suv" "175","toyota","4runner 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","suv" "176","toyota","4runner 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","suv" "177","toyota","4runner 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","suv" "178","toyota","4runner 4wd",4,2008,6,"auto(l5)","4",16,20,"r","suv" "179","toyota","4runner 4wd",4.7,2008,8,"auto(l5)","4",14,17,"r","suv" "180","toyota","camry",2.2,1999,4,"manual(m5)","f",21,29,"r","midsize" "181","toyota","camry",2.2,1999,4,"auto(l4)","f",21,27,"r","midsize" "182","toyota","camry",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize" "183","toyota","camry",2.4,2008,4,"auto(l5)","f",21,31,"r","midsize" "184","toyota","camry",3,1999,6,"auto(l4)","f",18,26,"r","midsize" "185","toyota","camry",3,1999,6,"manual(m5)","f",18,26,"r","midsize" "186","toyota","camry",3.5,2008,6,"auto(s6)","f",19,28,"r","midsize" "187","toyota","camry solara",2.2,1999,4,"auto(l4)","f",21,27,"r","compact" "188","toyota","camry solara",2.2,1999,4,"manual(m5)","f",21,29,"r","compact" "189","toyota","camry solara",2.4,2008,4,"manual(m5)","f",21,31,"r","compact" "190","toyota","camry solara",2.4,2008,4,"auto(s5)","f",22,31,"r","compact" "191","toyota","camry solara",3,1999,6,"auto(l4)","f",18,26,"r","compact" "192","toyota","camry solara",3,1999,6,"manual(m5)","f",18,26,"r","compact" "193","toyota","camry solara",3.3,2008,6,"auto(s5)","f",18,27,"r","compact" "194","toyota","corolla",1.8,1999,4,"auto(l3)","f",24,30,"r","compact" "195","toyota","corolla",1.8,1999,4,"auto(l4)","f",24,33,"r","compact" "196","toyota","corolla",1.8,1999,4,"manual(m5)","f",26,35,"r","compact" "197","toyota","corolla",1.8,2008,4,"manual(m5)","f",28,37,"r","compact" "198","toyota","corolla",1.8,2008,4,"auto(l4)","f",26,35,"r","compact" "199","toyota","land cruiser wagon 4wd",4.7,1999,8,"auto(l4)","4",11,15,"r","suv" "200","toyota","land cruiser wagon 4wd",5.7,2008,8,"auto(s6)","4",13,18,"r","suv" "201","toyota","toyota tacoma 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","pickup" "202","toyota","toyota tacoma 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","pickup" "203","toyota","toyota tacoma 4wd",2.7,2008,4,"manual(m5)","4",17,22,"r","pickup" "204","toyota","toyota tacoma 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","pickup" "205","toyota","toyota tacoma 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","pickup" "206","toyota","toyota tacoma 4wd",4,2008,6,"manual(m6)","4",15,18,"r","pickup" "207","toyota","toyota tacoma 4wd",4,2008,6,"auto(l5)","4",16,20,"r","pickup" "208","volkswagen","gti",2,1999,4,"manual(m5)","f",21,29,"r","compact" "209","volkswagen","gti",2,1999,4,"auto(l4)","f",19,26,"r","compact" "210","volkswagen","gti",2,2008,4,"manual(m6)","f",21,29,"p","compact" "211","volkswagen","gti",2,2008,4,"auto(s6)","f",22,29,"p","compact" "212","volkswagen","gti",2.8,1999,6,"manual(m5)","f",17,24,"r","compact" "213","volkswagen","jetta",1.9,1999,4,"manual(m5)","f",33,44,"d","compact" "214","volkswagen","jetta",2,1999,4,"manual(m5)","f",21,29,"r","compact" "215","volkswagen","jetta",2,1999,4,"auto(l4)","f",19,26,"r","compact" "216","volkswagen","jetta",2,2008,4,"auto(s6)","f",22,29,"p","compact" "217","volkswagen","jetta",2,2008,4,"manual(m6)","f",21,29,"p","compact" "218","volkswagen","jetta",2.5,2008,5,"auto(s6)","f",21,29,"r","compact" "219","volkswagen","jetta",2.5,2008,5,"manual(m5)","f",21,29,"r","compact" "220","volkswagen","jetta",2.8,1999,6,"auto(l4)","f",16,23,"r","compact" "221","volkswagen","jetta",2.8,1999,6,"manual(m5)","f",17,24,"r","compact" "222","volkswagen","new beetle",1.9,1999,4,"manual(m5)","f",35,44,"d","subcompact" "223","volkswagen","new beetle",1.9,1999,4,"auto(l4)","f",29,41,"d","subcompact" "224","volkswagen","new beetle",2,1999,4,"manual(m5)","f",21,29,"r","subcompact" "225","volkswagen","new beetle",2,1999,4,"auto(l4)","f",19,26,"r","subcompact" "226","volkswagen","new beetle",2.5,2008,5,"manual(m5)","f",20,28,"r","subcompact" "227","volkswagen","new beetle",2.5,2008,5,"auto(s6)","f",20,29,"r","subcompact" "228","volkswagen","passat",1.8,1999,4,"manual(m5)","f",21,29,"p","midsize" "229","volkswagen","passat",1.8,1999,4,"auto(l5)","f",18,29,"p","midsize" "230","volkswagen","passat",2,2008,4,"auto(s6)","f",19,28,"p","midsize" "231","volkswagen","passat",2,2008,4,"manual(m6)","f",21,29,"p","midsize" "232","volkswagen","passat",2.8,1999,6,"auto(l5)","f",16,26,"p","midsize" "233","volkswagen","passat",2.8,1999,6,"manual(m5)","f",18,26,"p","midsize" "234","volkswagen","passat",3.6,2008,6,"auto(s6)","f",17,26,"p","midsize"
# Reading single files from GitLab
import gitlab
from io import StringIO, BytesIO
def gl2Str(filepath, projectID,branch='master'):
# Reading a text-like file
return gitlab.Gitlab('https://gitlab.com/').projects.get(projectID).files.raw(file_path=filepath, ref=branch).decode()
def gl2StrObj(filepath, projectID,branch='master'):
# Reading a text-like file as a StringIO object
return StringIO(gitlab.Gitlab('https://gitlab.com/').projects.get(projectID).files.raw(file_path=filepath, ref=branch).decode())
def gl2ByteObj(filepath, projectID,branch='master'):
# Reading a non-text file as a ByteIO object. Examples: Images, Zip files, etc
return BytesIO(gitlab.Gitlab('https://gitlab.com/').projects.get(projectID).files.raw(file_path=filepath, ref=branch).decode())
[^top]
Last updated 2020-12-16 15:04:41.099138 IST
Comments