├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── contributor-request.md │ └── feature_request.md ├── Baghurst citation.txt ├── CODE_OF_CONDUCT.md ├── LICENSE ├── MANIFEST.in ├── Paper ├── Figure1.jpg ├── Figure2.jpg ├── Table1.jpg ├── paper.bib └── paper.md ├── R ├── .Rbuildignore ├── DESCRIPTION ├── LICENSE ├── NAMESPACE ├── R │ ├── GMI.R │ ├── J_index.R │ ├── LBGI_HBGI.R │ ├── LGBI_HGBI.R │ ├── MAGE.R │ ├── POR.R │ ├── TIR.R │ ├── TOR.R │ ├── eA1c.R │ ├── hello.R │ ├── interday.R │ ├── intraday.R │ ├── plot_glucose.R │ ├── readfile.R │ └── summary_glucose.R ├── README.md ├── cgmquantify.Rproj ├── cgmquantify_0.1.0.tar.gz ├── man │ ├── GMI.Rd │ ├── HBGI.Rd │ ├── HGBI.Rd │ ├── J_index.Rd │ ├── LBGI.Rd │ ├── LBGI_HBGI.Rd │ ├── LGBI.Rd │ ├── MGE.Rd │ ├── MGN.Rd │ ├── POR.Rd │ ├── TIR.Rd │ ├── TOR.Rd │ ├── eA1c.Rd │ ├── interdaycv.Rd │ ├── interdaysd.Rd │ ├── intradaycv.Rd │ ├── intradaysd.Rd │ ├── plot_glucose.Rd │ ├── readfile.Rd │ └── summary_glucose.Rd ├── tests │ ├── test_file.csv │ └── testthat.R └── vignettes │ ├── .gitignore │ └── guide.Rmd ├── README.md ├── README.rst ├── cgmquantify.egg-info ├── PKG-INFO ├── SOURCES.txt ├── dependency_links.txt ├── not-zip-safe ├── requires.txt └── top_level.txt ├── cgmquantify └── __init__.py ├── setup.py └── test_ ├── README.md ├── test_code.py ├── test_file.csv ├── test_file_freestyle.csv └── test_results.ipynb /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/contributor-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Contributor Request 3 | about: Would you like to contribute to this project? Let us know your idea here! 4 | title: '' 5 | labels: enhancement 6 | assignees: brinnaebent 7 | 8 | --- 9 | 10 | Please provide as much detail as possible on your contribution to this project. Once approved, you will be able to push your contribution and we will update the user guide and materials. 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Do you have any ideas for glucose metrics we should add? functions you would 4 | like? visualizations? let us know here! 5 | title: '' 6 | labels: enhancement 7 | assignees: '' 8 | 9 | --- 10 | 11 | **Is your feature request related to a problem? Please describe.** 12 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 13 | 14 | **Describe the solution you'd like** 15 | A clear and concise description of what you want to happen. 16 | 17 | **Describe alternatives you've considered** 18 | A clear and concise description of any alternative solutions or features you've considered. 19 | 20 | **Additional context** 21 | Add any other context or screenshots about the feature request here. 22 | -------------------------------------------------------------------------------- /Baghurst citation.txt: -------------------------------------------------------------------------------- 1 | https://pubmed.ncbi.nlm.nih.gov/21291334/ -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at brinnae.bent@duke.edu. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 RunsData 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.rst 2 | -------------------------------------------------------------------------------- /Paper/Figure1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DigitalBiomarkerDiscoveryPipeline/cgmquantify/55bb5bcb4f3a5a6cf4399f2879040a7b83d62675/Paper/Figure1.jpg -------------------------------------------------------------------------------- /Paper/Figure2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DigitalBiomarkerDiscoveryPipeline/cgmquantify/55bb5bcb4f3a5a6cf4399f2879040a7b83d62675/Paper/Figure2.jpg -------------------------------------------------------------------------------- /Paper/Table1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DigitalBiomarkerDiscoveryPipeline/cgmquantify/55bb5bcb4f3a5a6cf4399f2879040a7b83d62675/Paper/Table1.jpg -------------------------------------------------------------------------------- /Paper/paper.bib: -------------------------------------------------------------------------------- 1 | @article{Wolinsky:2018, 2 | author = {H. Wolinsky}, 3 | title = {Continuous Glucose Monitors: The Long and Winding Road to Acceptance Coverage}, 4 | year = {2018}, 5 | publisher = {Managed Care}, 6 | journal = {Managed Care Magazine}, 7 | url = {https://www.managedcaremag.com/archives/2018/7/continuous-glucose-monitors-long-and-winding-road-acceptance-coverage} 8 | } 9 | 10 | @article{Tamborlane:2008, 11 | author = {{Tamborlane, W.V.}}, 12 | title = "{Continuous Glucose Monitoring and Intensive Treatment of Type 1 Diabetes}", 13 | journal = {N. Engl. J. Med.}, 14 | year = 2008, 15 | volume = 359, 16 | } 17 | 18 | @article{OpenAPS, 19 | author = {OpenAPS}, 20 | title = {#WeAreNotWaiting to reduce the burden of Tpe 1 diabetes}, 21 | publisher = {Open APS}, 22 | url = {https://openaps.org/} 23 | } 24 | 25 | 26 | @article{Goldsack:2020, 27 | author = {{Goldsack J., et.al.}}, 28 | title = "{Verification, Analytical Validation, and Clinical Validation (V3): The Foundation of Determining Fit-for-Purpose for 29 | Biometric Monitoring Technologies (BioMeTs) }", 30 | journal = {JMIR Preprint}, 31 | year = 2020, 32 | adsurl = {https://preprints.jmir.org/preprint/17532}, 33 | } 34 | 35 | 36 | @article{Umpierrez:2018, 37 | author = {{Umpierrez, et.al.}}, 38 | title = "{Glycemic Variability: How to Measure and Its Clinical Implication for 39 | Type 2 Diabetes}", 40 | journal = {American Journal of Medical Sciences}, 41 | year = 2018, 42 | volume = 356, 43 | } 44 | 45 | 46 | @article{Service:2013, 47 | author = {{Service, J.}}, 48 | title = "{Glcuose Variability}", 49 | journal = {Diabetes}, 50 | year = 2018, 51 | volume = 62, 52 | } 53 | 54 | @article{Kovatchev:2017, 55 | author = {{Kovachev, B.P.}}, 56 | title = "{Metrics for glycaemic control — from HbA1c to continuous glucose monitoring}", 57 | journal = {Nat. Rev. Endocrinol.}, 58 | year = 2017, 59 | volume = 13, 60 | } 61 | 62 | @article{Hill:2011, 63 | author = {{Hill, N.R., et.al.}}, 64 | title = "{Normal reference range for mean tissue glucose and glycemic variability 65 | derived from continuous glucose monitoring for subjects without diabetes in different ethnic groups}", 66 | journal = {Diabetes Technol. Ther.}, 67 | year = 2011, 68 | volume = 13, 69 | } 70 | 71 | @article{Vigers:2019, 72 | author = {{Vigers T., et.al.}}, 73 | title = "{cgmanalysis: An R package for descriptive analysis of continuous glucose monitor data.}", 74 | journal = {Plos One}, 75 | year = 2019, 76 | volume = 14, 77 | } 78 | 79 | @article{Zhang:2018, 80 | author = {{Zhang, X. D., et.al.}}, 81 | title = "{CGManalyzer: An R package for analyzing continuous glucose monitoring studies}", 82 | journal = {Bioinformatics}, 83 | year = 2018, 84 | volume = 34, 85 | } 86 | 87 | @article{Krill:2019, 88 | author = {Krill, P}, 89 | title = {Python popularity reaches an all-time high}, 90 | year = {2019}, 91 | publisher = {Info World}, 92 | url = {https://www.infoworld.com/article/3401536/python-popularity-reaches-an-all-time-high.html} 93 | } 94 | 95 | 96 | @article{DeGroot:2017, 97 | author = {{De Groot, M., et.al.}}, 98 | title = "{Single Subject (N-of-1) Research Design, Data Processing, and Personal Science}", 99 | journal = {Methods Inf. Med.}, 100 | year = 2017, 101 | volume = 56, 102 | } 103 | 104 | @article{Rawlings:2011, 105 | author = {{Rawlings, R.A.}}, 106 | title = "{Translating glucose variability metrics into the clinic via continuous glucose monitoring: 107 | A graphical user interface for diabetes evaluation (CGM-GUIDE©)}", 108 | journal = {Diabetes Technol. Ther.}, 109 | year = 2011, 110 | volume = 13, 111 | } 112 | 113 | @article{Wojcicki:1995, 114 | author = {{Wojcicki, J. M. }}, 115 | title = "{’J’-index. A new proposition of the assessment of current glucose control in diabetic patients}", 116 | journal = {Horm. Metab. Res.}, 117 | year = 1995, 118 | volume = 27, 119 | } 120 | 121 | @article{Kovatchev:2019, 122 | author = {{Kovatchev, B}}, 123 | title = "{Glycemic Variability: Risk Factors, Assessment, and Control}", 124 | journal = {Journal of Diabetes Science and Technology}, 125 | year = 2019, 126 | volume = 13, 127 | } 128 | 129 | 130 | @article{ADA:2018, 131 | author = {ADA}, 132 | title = {eAG/A1C Conversion Calculator | American Diabetes Association}, 133 | year = {2018}, 134 | publisher = {American Diabetes Association}, 135 | url = {https://professional.diabetes.org/diapro/glucose_calc} 136 | } 137 | 138 | @article{Bent:2020, 139 | author = {{Bent, B., et.al.}}, 140 | title = "{Digital Biomarker Discovery Pipeline: An open source software platform for the development of digital biomarkers using mHealth and wearables data}", 141 | journal = {Journal of Clinical Translational Science}, 142 | year = 2020, 143 | volume = 11, 144 | } 145 | 146 | @article{Cho:2020, 147 | author = {{Cho,P., et.al.}}, 148 | title = "{Expanding the Definition of Intraday Glucose Variability}", 149 | journal = {Diabetes: American Diabetes Association 2020 }, 150 | year = 2020, 151 | } 152 | 153 | @article{Suh:2015, 154 | author = {{Suh, S., et.al.}}, 155 | title = "{emic variability: How do we measure it and why is it important?}", 156 | journal = {Diabetes & Metabolism}, 157 | year = 2015, 158 | volume = 4, 159 | } 160 | 161 | 162 | -------------------------------------------------------------------------------- /Paper/paper.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'cgmquantify: Python and R packages for comprehensive analysis of interstitial glucose and glycemic variability from continuous glucose monitor data' 3 | tags: 4 | - Python 5 | - R 6 | - open source 7 | - bioinformatics 8 | - data analysis 9 | - glucose 10 | - glucose variability 11 | - continuous glucose monitoring 12 | - type I diabetes 13 | - type II diabetes 14 | - prediabetes 15 | - diabetes 16 | - Open APS 17 | authors: 18 | - name: Brinnae Bent 19 | orcid: 0000-0002-7039-0177 20 | affiliation: 1 21 | - name: Maria Henriquez 22 | orcid: 23 | affiliation: 2 24 | - name: Jessilyn Dunn 25 | orcid: 0000-0002-3241-8183 26 | affiliation: 1,3 27 | affiliations: 28 | - name: Duke University Department of Biomedical Engineering 29 | index: 1 30 | - name: Duke University Department of Statistics 31 | index: 2 32 | - name: Duke University Department of Biostatistics & Bioinformatics 33 | index: 3 34 | date: 18 February 2020 35 | bibliography: paper.bib 36 | 37 | --- 38 | 39 | # Summary 40 | 41 | Continuous glucose monitoring (CGM) systems provide real-time, dynamic glucose information by tracking interstitial glucose values throughout the day (typically values are recorded every 5 minutes). CGMs are commonly used in diabetes management by clinicians and patients and in research to understand how factors of longitudinal glucose and glucose variability relate to disease onset and severity and the efficacy of interventions. CGM data presents unique bioinformatic challenges because the data is longitudinal, temporal, and there are nearly infinite possible ways to summarize and use this data. There are over 20 metrics of glucose variability, no standardization of metrics, and little validation across studies. Here we present open source python and R packages called cgmquantify, which contains over 20 functions with over 25 clinically validated metrics of glucose and glucose variability and functions for visualizing longitudinal CGM data. This is expected to be useful for researchers and may provide additional insights to patients and clinicians about glucose patterns. 42 | 43 | # Introduction 44 | 45 | Continuous glucose monitoring (CGM) systems provide real-time, dynamic glucose information by tracking interstitial 46 | glucose values throughout the day. CGMs are commonly used in diabetes management, with 1.2 million diabetic patients 47 | using a CGM[@Wolinsky:2018]. CGM use has be associated with improved glycemic control in adults with type 1 diabetes 48 | [@Tamborlane:2008]. These devices 49 | have been used extensively by the T1D community, including in the Open Artificial Pancreas System Project (OpenAPS)[@OpenAPS], 50 | a project developed to create a patient-implemented closed loop system between a CGM and an insulin pump. 51 | 52 |   53 | 54 | CGM data is commonly provided from CGM manufacturers as either raw glucose values (in a .csv format) or in summary 55 | reports that utilize proprietary methods to plot and summarize glucose statistics (e.g. Dexcom Clarity currently shows 56 | overall mean glucose, standard deviation of glucose, time in range, and hypoglycemia risk and daily minimum, maximum, 57 | mean, and standard deviation of glucose). Because these algorithms are proprietary, they cannot be properly validated 58 | by clinical researchers[@Goldsack:2020]. Additionally, the provided glucose summaries are extremely limited and do not usually contain 59 | any information about an important clinical metric, glycemic variability. 60 | 61 |   62 | 63 | Glycemic variability, also known as glucose variability, is an established risk factor for hypoglycemia[@Umpierrez:2018] and has been 64 | shown to be a risk factor in diabetes complications[@Service:2013]. Glucose variability can be found in over 26,000 publications indexed 65 | in PubMed at the time of this publication and is a significant metric in clinical research[@Kovatchev:2017]. Over 20 metrics of glucose 66 | variability have been identified (Table 1)[@Rawlings:2011; @Wojcicki:1995; @Kovatchev:2019; @ADA:2018; @Suh:2015; @Cho:2020], which makes it difficult to examine and compare results across numerous research 67 | studies analyzing and drawing conclusions about glucose variability. 68 | 69 |   70 | 71 | There is a need for an open source resource with algorithms that are utilized and validated in clinical research studies. 72 | This would enable standardized glucose variability metrics and the ability to compare findings from studies that utilize 73 | different metrics of glucose variability. This resource should be available in an open source programming language with 74 | a low barrier to entry to encourage researchers, clinicians, and patients alike to explore CGM data. 75 | 76 |   77 | 78 | Previous open-source resources have been implemented in Excel[@Hill:2011] and R[@Vigers:2019; @Zhang:2018]. There is currently no comprehensive resource for 79 | CGM data in Python, the third most common programming language used globally and the leading language among newcomers[@Krill:2019]. 80 | Additionally, previous implementations of open source CGM data analysis have limited metrics of glucose variability. 81 | Further, these methods are typically developed for a specific purpose and are therefore not extensible (e.g. do not have 82 | simple functions so users can customize their metrics and visualizations). 83 | 84 |   85 | 86 | We have developed a package written and published in Python under the MIT license and a package written and published in R under the MIT license. The packages, both named cgmquantify, contain over 20 functions with more than 25 metrics summarizing glucose and glucose variability. There is also includes code for visualizing CGM data in both packages. Both packages are available in the Digital Biomarker Discovery Pipeline (DBDP)[@Bent:2020], the open source software platform for digital biomarker discovery. The python package is available under the Python Package Index (PyPI) (https://pypi.org/project/cgmquantify/). Source code can be found at https://github.com/DigitalBiomarkerDiscoveryPipeline/cgmquantify. The R package is available in the Comprehensive R Archive Network (CRAN) (https://CRAN.R-project.org/package=cgmquantify) and source code can be found at https://github.com/DigitalBiomarkerDiscoveryPipeline/cgmquantify-R. 87 | 88 | # Methods 89 | cgmquantify is a Python package and an R package composed of 20+ functions with over 25 clinically validated metrics of glucose and glucose 90 | variability, as shown in Table 1. Customizable visualizations (Figure 1, Figure 2) are also included as easy to implement functions. 91 | cgmquantify is version controlled through GitHub and PyPI or CRAN. This allows for single-line installation. Source code and an 92 | extensive user guide are available on GitHub to facilitate ease of use and enable customization based on user needs. Issue 93 | tracking on GitHub is monitored closely by the Big Ideas Lab to allow for rapid feedback. Tests are available in GitHub under 94 | the tests subdirectory to allow for manual testing of all functions. 95 | 96 | # Results 97 | We have included import functions to format data for use with the cgmquantify package. These functions currently support 98 | Dexcom CGM devices, with plans to add additional import functions for other CGM manufacturers, including Medtronic and Abbott. 99 | Our user guide also outlines how one can easily format data to make any data input compatible with the functions in cgmquantify. 100 | Functions are available for all the commonly studied glucose and glucose variability metrics (Table 1). Additionally, functions 101 | for data visualization of the longitudinal CGM data are provided. These visualizations are easily customizable. We have also 102 | implemented a function that enables LOWESS smoothing over the CGM data in the Python package (Figure 1). 103 | 104 | # Discussion 105 | cgmquantify is a package that simplifies the process of calculating metrics and thus allows for easy comparison across different 106 | research studies that use different metrics summarizing glucose and glucose variability. Functions have been developed using 107 | equations from clinically validated research studies so users can compare their results to previous findings. The cgmquantify 108 | package is easily implemented with a one-line installation and an extensive user guide in both the python and R languages. Detailed documentation facilitates 109 | modification of existing code for customization of input and visualizations. This package also has the ability to build a 110 | community of developers to contribute to the literature in this burgeoning field. 111 | 112 |   113 | 114 | This is a much-needed resource for the community of researchers, clinicians, and patients using CGM. Currently, little is 115 | understood about the relationships between glucose and glucose variability metrics from CGM data and relationships to diseases 116 | including but not limited to prediabetes, T2D, and severity of symptoms in T1D. As more researchers and clinicians start looking 117 | to CGM data to answer these questions, the need for a standardized resource in a nearly ubiquitous programming language is 118 | necessary. As we have seen with the Open APS community, analysis of CGM data is not limited to researchers and clinicians but 119 | includes patients themselves[@DeGroot:2017]. By providing this as an open source resource, we hope to encourage patients to interact with 120 | their own data, determine personalized insights, and make meaningful contributions to the digital health landscape. 121 | 122 | # Future Implementations 123 | Future contributions will include additional import functions customized to all the CGM manufacturers, including but not limited 124 | to Medtronic and Abbott. We are exploring methods to incorporate food logs into visualizations of CGM data. 125 | 126 | # Code Availability 127 | The cgmquantify python package is available under the Python Package Index (PyPI) (https://pypi.org/project/cgmquantify/). Source code can be found at https://github.com/DigitalBiomarkerDiscoveryPipeline/cgmquantify. The cgmquantify R package is available in the Comprehensive R Archive Network (CRAN) (https://CRAN.R-project.org/package=cgmquantify) and source code can be found at https://github.com/DigitalBiomarkerDiscoveryPipeline/cgmquantify-R. We encourage others to expand on our ideas and contribute their own glucose and glucose variability metrics to cgmquantify. We have documentation for contributing available in our User Guide. 128 | 129 | # Acknowledgements 130 | Brinnae Bent is funded through the Duke Forge Predoctoral Fellowship. This study was funded in part by Duke MedX. 131 | 132 | # Figures 133 | 134 | **Figure 1. Visualizing longitudinal CGM data with the cgmquantify Python package.** Shown are a visualization with indicators 135 | of 1 SD from the mean and the mean glucose level (a), a visualization with indicators of hyperglycemic (>180 mg/dL glucose) 136 | and hypoglycemic (<70 mg/dL glucose) (b), and a plot with LOWESS smoothing of the glucose data (c). 137 | ![cgmquantify Figures_Page_2](https://user-images.githubusercontent.com/43549914/74770470-541de100-525a-11ea-8631-a714bfbcf7ed.jpg) 138 | 139 | **Figure 2. Visualizing longitudinal CGM data with the cgmquantify R package.** Shown is a visualization available in the cgmquantify 140 | R package that enables visualization of CGM data by time of day for each day specified. 141 | ![Figure2](https://user-images.githubusercontent.com/43549914/107248137-ff8deb80-69ff-11eb-9943-303b5117efa1.jpg) 142 | 143 | 144 | **Table 1. Glucose and Glucose Variability Metrics** 145 | ![Table1](https://user-images.githubusercontent.com/43549914/107248016-e5eca400-69ff-11eb-8170-9b75495915a9.jpg) 146 | 147 | # References 148 | -------------------------------------------------------------------------------- /R/.Rbuildignore: -------------------------------------------------------------------------------- 1 | ^cgmquantify\.Rproj$ 2 | ^\.Rproj\.user$ 3 | -------------------------------------------------------------------------------- /R/DESCRIPTION: -------------------------------------------------------------------------------- 1 | Package: cgmquantify 2 | Type: Package 3 | Title: R Package for Analyzing Glucose and Glucose Variability 4 | Version: 0.1.0 5 | Author: Maria Henriquez and Brinnae Bent 6 | Maintainer: Maria Henriquez 7 | Imports: dplyr, tidyverse, ggplot2, hms, stats, magrittr 8 | Description: Continuous glucose monitoring (CGM) systems provide real-time, 9 | dynamic glucose information by tracking interstitial glucose values 10 | throughout the day. Glycemic variability, also known as glucose variability, 11 | is an established risk factor for hypoglycemia (Kovatchev) and 12 | has been shown to be a risk factor in diabetes complications. 13 | Over 20 metrics of glycemic variability have been identified. 14 | Here, we provide functions to calculate glucose summary metrics, 15 | glucose variability metrics (as defined in clinical publications), 16 | and visualizations to visualize trends in CGM data. 17 | License: MIT License + file LICENSE 18 | Encoding: UTF-8 19 | LazyData: true 20 | RoxygenNote: 7.1.1 21 | Suggests: 22 | testthat (>= 2.0.0), 23 | knitr, 24 | rmarkdown 25 | Config/testthat/edition: 2, devtools 26 | VignetteBuilder: knitr 27 | -------------------------------------------------------------------------------- /R/LICENSE: -------------------------------------------------------------------------------- 1 | YEAR: 2020-2021 2 | COPYRIGHT HOLDER: Brinnae Bent and Maria Heenriquez 3 | -------------------------------------------------------------------------------- /R/NAMESPACE: -------------------------------------------------------------------------------- 1 | # Generated by roxygen2: do not edit by hand 2 | 3 | export(GMI) 4 | export(HBGI) 5 | export(J_index) 6 | export(LBGI) 7 | export(LBGI_HBGI) 8 | export(MGE) 9 | export(MGN) 10 | export(POR) 11 | export(TIR) 12 | export(TOR) 13 | export(eA1c) 14 | export(interdaycv) 15 | export(interdaysd) 16 | export(intradaycv) 17 | export(intradaysd) 18 | export(plot_glucose) 19 | export(readfile) 20 | export(summary_glucose) 21 | import(stats) 22 | importFrom(magrittr,"%>%") 23 | importFrom(stats,median) 24 | importFrom(stats,quantile) 25 | importFrom(stats,sd) 26 | importFrom(utils,read.csv) 27 | -------------------------------------------------------------------------------- /R/R/GMI.R: -------------------------------------------------------------------------------- 1 | #' Compute Glycemic Management Indicator 2 | #' 3 | #' This function computes the estimated GMI 4 | #' 5 | #' @param df Data frame read through readfile 6 | #' @return A numeric value representing GMI 7 | #' @export 8 | 9 | GMI <- function(df) { 10 | GMI = 3.31 + (0.02392*mean(df$glucose)) 11 | return(GMI) 12 | } 13 | 14 | -------------------------------------------------------------------------------- /R/R/J_index.R: -------------------------------------------------------------------------------- 1 | #' Compute J-index 2 | #' 3 | #' This function computes J-index, a glycemic variability metrix 4 | #' 5 | #' @param df Data frame read through readfile 6 | #' @return A numeric value representing J-index 7 | #' @export 8 | #' @import stats 9 | J_index <- function(df) { 10 | J = 0.001*((mean(df$glucose) + sd(df$glucose))^2) 11 | return(J) 12 | } 13 | -------------------------------------------------------------------------------- /R/R/LBGI_HBGI.R: -------------------------------------------------------------------------------- 1 | #' Compute Low Blood Glucose Index 2 | #' 3 | #' This function computes the low blood glucose index 4 | #' 5 | #' @param df Data frame read through readfile 6 | #' @return A data frame containing both the LBGI and HBGI values 7 | #' @export 8 | LBGI_HBGI <- function(df) { 9 | f = data.frame(log_glucose = log(df$glucose^1.084) - 5.381) 10 | f <- dplyr::mutate(f, 11 | rl = dplyr::case_when( 12 | log_glucose <= 0 ~ 13 | 22.77*(log_glucose^2), 14 | TRUE ~ 0), 15 | rh = dplyr::case_when( 16 | log_glucose > 0 ~ 17 | 22.77*(log_glucose^2), 18 | TRUE ~ 0) 19 | ) 20 | 21 | LBGI = mean(f$rl) 22 | HBGI = mean(f$rh) 23 | 24 | return(data.frame(LBGI, HBGI)) 25 | 26 | } 27 | 28 | #' Compute Low Blood Glucose Index 29 | #' 30 | #' This function computes the low blood glucose index 31 | #' 32 | #' @param df Data frame read through readfile 33 | #' @return A numeric value representing LBGI 34 | #' @export 35 | LBGI <- function(df) { 36 | f = data.frame(log_glucose = (log(df$glucose)^1.084) - 5.381) 37 | f <- dplyr::mutate(f, 38 | rl = dplyr::case_when( 39 | log_glucose <= 0 ~ 40 | 22.77*(log_glucose^2), 41 | TRUE ~ 0)) 42 | 43 | return(mean(f$rl)) 44 | 45 | } 46 | 47 | #' Compute High Blood Glucose Index 48 | #' 49 | #' This function computes the high blood glucose index 50 | #' 51 | #' @param df Data frame read through readfile 52 | #' @return A numeric value representing HBGI 53 | #' @export 54 | HBGI <- function(df) { 55 | f = data.frame(log_glucose = (log(df$glucose)^1.084) - 5.381) 56 | f <- dplyr::mutate(f, 57 | rh = dplyr::case_when( 58 | log_glucose > 0 ~ 59 | 22.77*(log_glucose^2), 60 | TRUE ~ 0)) 61 | 62 | return(mean(f$rh)) 63 | 64 | } 65 | -------------------------------------------------------------------------------- /R/R/LGBI_HGBI.R: -------------------------------------------------------------------------------- 1 | LGBI_HBGI <- function(df) { 2 | f = data.frame(log_glucose = log(df$glucose^1.084) - 5.381) 3 | f <- mutate(f, 4 | rl = case_when( 5 | log_glucose <= 0 ~ 6 | 22.77*(log_glucose^2), 7 | TRUE ~ 0), 8 | rh = case_when( 9 | log_glucose > 0 ~ 10 | 22.77*(log_glucose^2), 11 | TRUE ~ 0) 12 | ) 13 | 14 | LGBI = mean(f$rl) 15 | HGBI = mean(f$rh) 16 | 17 | return(data.frame(LGBI, HGBI)) 18 | 19 | } 20 | 21 | #' Compute Low Blood Glucose Index 22 | #' 23 | #' This function computes the low blood glucose index 24 | #' 25 | #' @param df Data frame read through readfile 26 | #' @return A numeric value representing LGBI 27 | #' @export 28 | LGBI <- function(df) { 29 | f = data.frame(log_glucose = log(df$glucose^1.084) - 5.381) 30 | f <- mutate(f, 31 | rl = case_when( 32 | log_glucose <= 0 ~ 33 | 22.77*(log_glucose^2), 34 | TRUE ~ 0)) 35 | 36 | return(mean(f$rl)) 37 | 38 | } 39 | 40 | #' Compute High Blood Glucose Index 41 | #' 42 | #' This function computes the high blood glucose index 43 | #' 44 | #' @param df Data frame read through readfile 45 | #' @return A numeric value representing HGBI 46 | #' @export 47 | HGBI <- function(df) { 48 | f = data.frame(log_glucose = log(df$glucose^1.084) - 5.381) 49 | f <- mutate(f, 50 | rh = case_when( 51 | log_glucose > 0 ~ 52 | 22.77*(log_glucose^2), 53 | TRUE ~ 0)) 54 | 55 | return(mean(f$rh)) 56 | 57 | } 58 | -------------------------------------------------------------------------------- /R/R/MAGE.R: -------------------------------------------------------------------------------- 1 | #' Compute Mean of Glycemic Excursions 2 | #' 3 | #' This function computes the mean of glycemic excursions, 4 | #' glycemic excursions indicated by standard deviation, default = 1 5 | #' 6 | #' @param df Data frame read through readfile 7 | #' @param sd Standard deviation indicating glycemic excursion, default = 1 8 | #' @return A numeric value representing MAGE 9 | #' @export 10 | #' @importFrom stats sd 11 | MGE <- function(df, sd = 1) { 12 | up = mean(df$glucose) + sd*sd(df$glucose) 13 | dw = mean(df$glucose) - sd*sd(df$glucose) 14 | MAGE = mean(subset(df, df$glucose >= up | df$glucose <= dw)$glucose) 15 | return(MAGE) 16 | 17 | } 18 | 19 | #' Compute Mean of Normal Glucose 20 | #' 21 | #' This function computes the mean of normal glucose, 22 | #' glycemic excursions indicated by standard deviation, default = 1 23 | #' 24 | #' @param df Data frame read through readfile 25 | #' @return A numeric value representing MGN 26 | #' @export 27 | #' @importFrom stats sd 28 | MGN <- function(df) { 29 | up = mean(df$glucose) + sd(df$glucose) 30 | dw = mean(df$glucose) - sd(df$glucose) 31 | MAGN = mean(subset(df, df$glucose <= up | df$glucose >= dw)$glucose) 32 | return(MAGN) 33 | 34 | } 35 | 36 | -------------------------------------------------------------------------------- /R/R/POR.R: -------------------------------------------------------------------------------- 1 | #' Compute Percent of Time Outside Range 2 | #' 3 | #' This function computes the percent of time outside range 4 | #' (range in standard deviations from mean, default = 1). 5 | #' 6 | #' @param df Data frame read through readfile 7 | #' @param sd Standard deviation indicating glycemic excursion, default = 1 8 | #' @param sr Sampling rate inverse in minutes of the CGM (default is 9 | #' Dexcom -> 5 minutes) 10 | #' @return A numeric value representing POR 11 | #' @export 12 | #' @import stats 13 | POR <- function(df, sd = 1, sr = 5) { 14 | up = mean(df$glucose) + sd*sd(df$glucose) 15 | dw = mean(df$glucose) - sd*sd(df$glucose) 16 | TOR = nrow(subset(df, df$glucose >= up | df$glucose <= dw)) * sr 17 | POR = (TOR/(nrow(df)*sr))*100 18 | return(POR) 19 | } 20 | -------------------------------------------------------------------------------- /R/R/TIR.R: -------------------------------------------------------------------------------- 1 | #' Compute Time Inside Range 2 | #' 3 | #' This function computes the time inside range (range in standard 4 | #' deviations from mean, default = 1). 5 | #' 6 | #' @param df Data frame read through readfile 7 | #' @param sd Standard deviation indicating glycemic excursions, 8 | #' default = 1 9 | #' @param sr Sampling rate inverse in minutes of the CGM 10 | #' (default is the Dexcom -> 5 minutes) 11 | #' @return A numeric value representing TIR 12 | #' @export 13 | #' @import stats 14 | TIR <- function(df, sd = 1, sr = 5) { 15 | up = mean(df$glucose) + sd*sd(df$glucose) 16 | dw = mean(df$glucose) - sd*sd(df$glucose) 17 | TIR = nrow(subset(df, df$glucose <= up & df$glucose >= dw)) * sr 18 | return(TIR) 19 | } 20 | 21 | -------------------------------------------------------------------------------- /R/R/TOR.R: -------------------------------------------------------------------------------- 1 | #' Compute Time Outside Range 2 | #' 3 | #' This function computes the time outside range (range in standard 4 | #' deviations from mean, default = 1). 5 | #' 6 | #' @param df Data frame read through readfile 7 | #' @param sd Standard deviation indicating glycemic excursions, 8 | #' default = 1 9 | #' @param sr Sampling rate inverse in minutes of the CGM 10 | #' (default is the Dexcom -> 5 minutes) 11 | #' @return A numeric value representing TOR 12 | #' @export 13 | #' @import stats 14 | TOR <- function(df, sd = 1, sr = 5) { 15 | up = mean(df$glucose) + sd*sd(df$glucose) 16 | dw = mean(df$glucose) - sd*sd(df$glucose) 17 | TOR = nrow(subset(df, df$glucose >= up | df$glucose <= dw)) * sr 18 | return(TOR) 19 | } 20 | 21 | -------------------------------------------------------------------------------- /R/R/eA1c.R: -------------------------------------------------------------------------------- 1 | #' Compute Estimated A1c 2 | #' 3 | #' This function computes the estimated A1c, according to 4 | #' the American Diabetes Association calculator 5 | #' 6 | #' @param df Data frame read through readfile 7 | #' @return A numeric value representing eA1c 8 | #' @export 9 | 10 | eA1c <- function(df) { 11 | eA1c = (46.7 + mean(df$glucose))/28.7 12 | return(eA1c) 13 | } 14 | 15 | 16 | -------------------------------------------------------------------------------- /R/R/hello.R: -------------------------------------------------------------------------------- 1 | # Hello, world! 2 | # 3 | # This is an example function named 'hello' 4 | # which prints 'Hello, world!'. 5 | # 6 | # You can learn more about package authoring with RStudio at: 7 | # 8 | # http://r-pkgs.had.co.nz/ 9 | # 10 | # Some useful keyboard shortcuts for package authoring: 11 | # 12 | # Install Package: 'Cmd + Shift + B' 13 | # Check Package: 'Cmd + Shift + E' 14 | # Test Package: 'Cmd + Shift + T' 15 | 16 | hello <- function() { 17 | print("Hello, world!") 18 | } 19 | -------------------------------------------------------------------------------- /R/R/interday.R: -------------------------------------------------------------------------------- 1 | #' Compute Interday Coefficient of Variation 2 | #' 3 | #' This function computes the interday coefficient of variation 4 | #' 5 | #' @param df Data frame read through readfile 6 | #' @return A numeric value representing interday cv 7 | #' @export 8 | #' @import stats 9 | interdaycv <- function(df) { 10 | cvx = (sd(df$glucose) / mean(df$glucose)) * 100 11 | return(cvx) 12 | } 13 | 14 | 15 | #' Compute Interday Standard Deviation 16 | #' 17 | #' This function computes the interday standard deviation 18 | #' 19 | #' @param df Data frame read through readfile 20 | #' @return A numeric value representing interday sd 21 | #' @export 22 | #' @import stats 23 | interdaysd <- function(df) { 24 | interdaysd = stats::sd(df$glucose) 25 | return(interdaysd) 26 | } 27 | 28 | -------------------------------------------------------------------------------- /R/R/intraday.R: -------------------------------------------------------------------------------- 1 | #' Compute Intraday Coefficient of Variation 2 | #' 3 | #' This function computes the intraday coefficient of variation 4 | #' summary statistics: mean, median, standard deviation of all days in data 5 | #' 6 | #' @param df Data frame read through readfile 7 | #' @return A data frame containing the mean, median, and standard deviation 8 | #' of the intraday coefficients of variation. 9 | #' @export 10 | intradaycv <- function(df) { 11 | intradaycv = vector() 12 | for (i in unique(df$Date)) { 13 | intradaycv <- append(intradaycv, ((interdaycv(subset(df, df$Date == i))))) 14 | } 15 | 16 | intradaycv_mean = mean(intradaycv) 17 | intradaycv_median = median(intradaycv) 18 | intradaycv_sd = sd(intradaycv) 19 | 20 | return(data.frame(intradaycv_mean, intradaycv_median, intradaycv_sd)) 21 | } 22 | 23 | #' Compute Intraday Standard Deviation 24 | #' 25 | #' This function computes the intraday standard deviation summary statistics: 26 | #' mean, median, standard deviation of all days in data 27 | #' 28 | #' @param df Data frame read through readfile 29 | #' @return A data frame containing the mean, median, and standard deviation 30 | #' of the intraday standard deviations. 31 | #' @export 32 | #' @import stats 33 | intradaysd <- function(df) { 34 | intradaysd = vector() 35 | for (i in unique(df$Date)) { 36 | intradaysd <- append(intradaysd, sd(subset(df, df$Date == as.Date(i))$glucose)) 37 | } 38 | intradaysd_mean = mean(intradaysd) 39 | intradaysd_median = median(intradaysd) 40 | intradaysd_sd = sd(intradaysd) 41 | 42 | return(data.frame(intradaysd_mean, intradaysd_median, intradaysd_sd)) 43 | } 44 | 45 | 46 | -------------------------------------------------------------------------------- /R/R/plot_glucose.R: -------------------------------------------------------------------------------- 1 | #' Plot Glucose Data 2 | #' 3 | #' This function plots glycemic excursions over the 4 | #' time period in which data was collected. 5 | #' 6 | #' @param df Data frame read through readfile 7 | #' @export 8 | plot_glucose <- function(df) { 9 | ggplot2::ggplot(df) + 10 | ggplot2::geom_point(data = df, ggplot2::aes(x = df$time_of_day, y = df$glucose), 11 | col = "orange", cex = 0.5) + 12 | ggplot2::geom_line(data = df, ggplot2::aes(x = df$time_of_day, y = df$glucose), 13 | col = "orange") + 14 | ggplot2::facet_grid(df$Date ~ ., scale = "fixed") + 15 | ggplot2::theme_bw() + 16 | ggplot2::ylab("Glucose Level") + 17 | ggplot2::xlab("Time of Day") + 18 | ggplot2::labs(title = "CGM data for Participant #1") 19 | } 20 | -------------------------------------------------------------------------------- /R/R/readfile.R: -------------------------------------------------------------------------------- 1 | #' Read in Data Frame 2 | #' 3 | #' This function reads in a .csv with variable names 4 | #' Timestamp..YYYY.MM.DDThh.mm.ss and Glucose.Value..mg.dL 5 | #' 6 | #' @param filename .csv file of data frame to be read 7 | #' @return transformed data frame for further analysis 8 | #' @importFrom utils read.csv 9 | #' @importFrom magrittr %>% 10 | #' @export 11 | 12 | readfile <- function(filename) { 13 | df_CGM = read.csv(filename, 14 | header = TRUE, stringsAsFactors = FALSE) 15 | df_CGM = data.frame(df_CGM$Timestamp..YYYY.MM.DDThh.mm.ss., 16 | df_CGM$Glucose.Value..mg.dL.) 17 | names(df_CGM) = c("Time", "glucose") 18 | df_CGM$Time = as.POSIXct(df_CGM$Time, format = "%Y-%m-%dT%H:%M:%OS", origin = "1970-01-01") 19 | df_CGM = df_CGM %>% 20 | dplyr::mutate(Date = as.Date(df_CGM$Time)) %>% 21 | dplyr::mutate(time_of_day = hms::as_hms(df_CGM$Time)) %>% 22 | dplyr::mutate(type_of_event = ifelse(df_CGM$glucose > 180, 1, 23 | ifelse(df_CGM$glucose < 70, -1, 0))) # threshold and label is for hyper-/hypoglycemia identification 24 | df_CGM = utils::tail(df_CGM, -11) 25 | return(df_CGM) 26 | } 27 | -------------------------------------------------------------------------------- /R/R/summary_glucose.R: -------------------------------------------------------------------------------- 1 | #' Compute Glucose Summary Statistics 2 | #' 3 | #' This function computes the mean, median, minimum, maximum, 4 | #' first quartile, and the third quartile of an indidividual's 5 | #' overall glucose levels 6 | #' @param df Data frame read through readfile 7 | #' @return A dataframe containing the mean, median, minimum, 8 | #' maximum, quartile1, and quartile3 of glucose levels 9 | #' @export 10 | #' @importFrom stats median 11 | #' @importFrom stats quantile 12 | summary_glucose <- function(df) { 13 | meanG = mean(df$glucose) 14 | medianG = median(df$glucose) 15 | minG = min(df$glucose) 16 | maxG = max(df$glucose) 17 | Q1G = quantile(df$glucose, 0.25) 18 | Q3G = quantile(df$glucose, 0.75) 19 | 20 | return(data.frame(meanG, 21 | medianG, 22 | minG, 23 | maxG, 24 | Q1G, 25 | Q3G)) 26 | 27 | } 28 | -------------------------------------------------------------------------------- /R/README.md: -------------------------------------------------------------------------------- 1 | # cgmquantify: R package for analyzing glucose and glucose variability 2 | 3 | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 4 | 5 | Continuous glucose monitoring (CGM) systems provide real-time, dynamic glucose information by tracking interstitial glucose values throughout the day. Glycemic variability, also known as glucose variability, is an established risk factor for hypoglycemia (Kovatchev) and has been shown to be a risk factor in diabetes complications. Over 20 metrics of glycemic variability have been identified. 6 | 7 | Here, we provide functions to calculate glucose summary metrics, glucose variability metrics (as defined in clinical publications), and visualizations to visualize trends in CGM data. 8 | 9 | User Guide 10 | Issue Tracking 11 | Installation: 12 | Recommended: install_github("marhenriq/cgmquantify") 13 | 14 | Coming soon - 15 | 16 | Currently only supports Dexcom CGM, more CGM coming soon 17 | Integration with food logs, myFitnessPal food logs 18 | Machine Learning methods for discovering trends in CGM data 19 | -------------------------------------------------------------------------------- /R/cgmquantify.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: No 4 | SaveWorkspace: No 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | 15 | AutoAppendNewline: Yes 16 | StripTrailingWhitespace: Yes 17 | LineEndingConversion: Posix 18 | 19 | BuildType: Package 20 | PackageUseDevtools: Yes 21 | PackageInstallArgs: --no-multiarch --with-keep.source 22 | PackageRoxygenize: rd,collate,namespace 23 | -------------------------------------------------------------------------------- /R/cgmquantify_0.1.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DigitalBiomarkerDiscoveryPipeline/cgmquantify/55bb5bcb4f3a5a6cf4399f2879040a7b83d62675/R/cgmquantify_0.1.0.tar.gz -------------------------------------------------------------------------------- /R/man/GMI.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/GMI.R 3 | \name{GMI} 4 | \alias{GMI} 5 | \title{Compute Glycemic Management Indicator} 6 | \usage{ 7 | GMI(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A numeric value representing GMI 14 | } 15 | \description{ 16 | This function computes the estimated GMI 17 | } 18 | -------------------------------------------------------------------------------- /R/man/HBGI.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/LBGI_HBGI.R 3 | \name{HBGI} 4 | \alias{HBGI} 5 | \title{Compute High Blood Glucose Index} 6 | \usage{ 7 | HBGI(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A numeric value representing HBGI 14 | } 15 | \description{ 16 | This function computes the high blood glucose index 17 | } 18 | -------------------------------------------------------------------------------- /R/man/HGBI.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/LGBI_HGBI.R 3 | \name{HGBI} 4 | \alias{HGBI} 5 | \title{Compute High Blood Glucose Index} 6 | \usage{ 7 | HGBI(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A numeric value representing HGBI 14 | } 15 | \description{ 16 | This function computes the high blood glucose index 17 | } 18 | -------------------------------------------------------------------------------- /R/man/J_index.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/J_index.R 3 | \name{J_index} 4 | \alias{J_index} 5 | \title{Compute J-index} 6 | \usage{ 7 | J_index(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A numeric value representing J-index 14 | } 15 | \description{ 16 | This function computes J-index, a glycemic variability metrix 17 | } 18 | -------------------------------------------------------------------------------- /R/man/LBGI.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/LBGI_HBGI.R 3 | \name{LBGI} 4 | \alias{LBGI} 5 | \title{Compute Low Blood Glucose Index} 6 | \usage{ 7 | LBGI(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A numeric value representing LBGI 14 | } 15 | \description{ 16 | This function computes the low blood glucose index 17 | } 18 | -------------------------------------------------------------------------------- /R/man/LBGI_HBGI.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/LBGI_HBGI.R 3 | \name{LBGI_HBGI} 4 | \alias{LBGI_HBGI} 5 | \title{Compute Low Blood Glucose Index} 6 | \usage{ 7 | LBGI_HBGI(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A data frame containing both the LBGI and HBGI values 14 | } 15 | \description{ 16 | This function computes the low blood glucose index 17 | } 18 | -------------------------------------------------------------------------------- /R/man/LGBI.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/LGBI_HGBI.R 3 | \name{LGBI} 4 | \alias{LGBI} 5 | \title{Compute Low Blood Glucose Index} 6 | \usage{ 7 | LGBI(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A numeric value representing LGBI 14 | } 15 | \description{ 16 | This function computes the low blood glucose index 17 | } 18 | -------------------------------------------------------------------------------- /R/man/MGE.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/MAGE.R 3 | \name{MGE} 4 | \alias{MGE} 5 | \title{Compute Mean of Glycemic Excursions} 6 | \usage{ 7 | MGE(df, sd = 1) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | 12 | \item{sd}{Standard deviation indicating glycemic excursion, default = 1} 13 | } 14 | \value{ 15 | A numeric value representing MAGE 16 | } 17 | \description{ 18 | This function computes the mean of glycemic excursions, 19 | glycemic excursions indicated by standard deviation, default = 1 20 | } 21 | -------------------------------------------------------------------------------- /R/man/MGN.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/MAGE.R 3 | \name{MGN} 4 | \alias{MGN} 5 | \title{Compute Mean of Normal Glucose} 6 | \usage{ 7 | MGN(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A numeric value representing MGN 14 | } 15 | \description{ 16 | This function computes the mean of normal glucose, 17 | glycemic excursions indicated by standard deviation, default = 1 18 | } 19 | -------------------------------------------------------------------------------- /R/man/POR.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/POR.R 3 | \name{POR} 4 | \alias{POR} 5 | \title{Compute Percent of Time Outside Range} 6 | \usage{ 7 | POR(df, sd = 1, sr = 5) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | 12 | \item{sd}{Standard deviation indicating glycemic excursion, default = 1} 13 | 14 | \item{sr}{Sampling rate inverse in minutes of the CGM (default is 15 | Dexcom -> 5 minutes)} 16 | } 17 | \value{ 18 | A numeric value representing POR 19 | } 20 | \description{ 21 | This function computes the percent of time outside range 22 | (range in standard deviations from mean, default = 1). 23 | } 24 | -------------------------------------------------------------------------------- /R/man/TIR.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/TIR.R 3 | \name{TIR} 4 | \alias{TIR} 5 | \title{Compute Time Inside Range} 6 | \usage{ 7 | TIR(df, sd = 1, sr = 5) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | 12 | \item{sd}{Standard deviation indicating glycemic excursions, 13 | default = 1} 14 | 15 | \item{sr}{Sampling rate inverse in minutes of the CGM 16 | (default is the Dexcom -> 5 minutes)} 17 | } 18 | \value{ 19 | A numeric value representing TIR 20 | } 21 | \description{ 22 | This function computes the time inside range (range in standard 23 | deviations from mean, default = 1). 24 | } 25 | -------------------------------------------------------------------------------- /R/man/TOR.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/TOR.R 3 | \name{TOR} 4 | \alias{TOR} 5 | \title{Compute Time Outside Range} 6 | \usage{ 7 | TOR(df, sd = 1, sr = 5) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | 12 | \item{sd}{Standard deviation indicating glycemic excursions, 13 | default = 1} 14 | 15 | \item{sr}{Sampling rate inverse in minutes of the CGM 16 | (default is the Dexcom -> 5 minutes)} 17 | } 18 | \value{ 19 | A numeric value representing TOR 20 | } 21 | \description{ 22 | This function computes the time outside range (range in standard 23 | deviations from mean, default = 1). 24 | } 25 | -------------------------------------------------------------------------------- /R/man/eA1c.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/eA1c.R 3 | \name{eA1c} 4 | \alias{eA1c} 5 | \title{Compute Estimated A1c} 6 | \usage{ 7 | eA1c(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A numeric value representing eA1c 14 | } 15 | \description{ 16 | This function computes the estimated A1c, according to 17 | the American Diabetes Association calculator 18 | } 19 | -------------------------------------------------------------------------------- /R/man/interdaycv.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/interday.R 3 | \name{interdaycv} 4 | \alias{interdaycv} 5 | \title{Compute Interday Coefficient of Variation} 6 | \usage{ 7 | interdaycv(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A numeric value representing interday cv 14 | } 15 | \description{ 16 | This function computes the interday coefficient of variation 17 | } 18 | -------------------------------------------------------------------------------- /R/man/interdaysd.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/interday.R 3 | \name{interdaysd} 4 | \alias{interdaysd} 5 | \title{Compute Interday Standard Deviation} 6 | \usage{ 7 | interdaysd(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A numeric value representing interday sd 14 | } 15 | \description{ 16 | This function computes the interday standard deviation 17 | } 18 | -------------------------------------------------------------------------------- /R/man/intradaycv.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/intraday.R 3 | \name{intradaycv} 4 | \alias{intradaycv} 5 | \title{Compute Intraday Coefficient of Variation} 6 | \usage{ 7 | intradaycv(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A data frame containing the mean, median, and standard deviation 14 | of the intraday coefficients of variation. 15 | } 16 | \description{ 17 | This function computes the intraday coefficient of variation 18 | summary statistics: mean, median, standard deviation of all days in data 19 | } 20 | -------------------------------------------------------------------------------- /R/man/intradaysd.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/intraday.R 3 | \name{intradaysd} 4 | \alias{intradaysd} 5 | \title{Compute Intraday Standard Deviation} 6 | \usage{ 7 | intradaysd(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A data frame containing the mean, median, and standard deviation 14 | of the intraday standard deviations. 15 | } 16 | \description{ 17 | This function computes the intraday standard deviation summary statistics: 18 | mean, median, standard deviation of all days in data 19 | } 20 | -------------------------------------------------------------------------------- /R/man/plot_glucose.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/plot_glucose.R 3 | \name{plot_glucose} 4 | \alias{plot_glucose} 5 | \title{Plot Glucose Data} 6 | \usage{ 7 | plot_glucose(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \description{ 13 | This function plots glycemic excursions over the 14 | time period in which data was collected. 15 | } 16 | -------------------------------------------------------------------------------- /R/man/readfile.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/readfile.R 3 | \name{readfile} 4 | \alias{readfile} 5 | \title{Read in Data Frame} 6 | \usage{ 7 | readfile(filename) 8 | } 9 | \arguments{ 10 | \item{filename}{.csv file of data frame to be read} 11 | } 12 | \value{ 13 | transformed data frame for further analysis 14 | } 15 | \description{ 16 | This function reads in a .csv with variable names 17 | Timestamp..YYYY.MM.DDThh.mm.ss and Glucose.Value..mg.dL 18 | } 19 | -------------------------------------------------------------------------------- /R/man/summary_glucose.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/summary_glucose.R 3 | \name{summary_glucose} 4 | \alias{summary_glucose} 5 | \title{Compute Glucose Summary Statistics} 6 | \usage{ 7 | summary_glucose(df) 8 | } 9 | \arguments{ 10 | \item{df}{Data frame read through readfile} 11 | } 12 | \value{ 13 | A dataframe containing the mean, median, minimum, 14 | maximum, quartile1, and quartile3 of glucose levels 15 | } 16 | \description{ 17 | This function computes the mean, median, minimum, maximum, 18 | first quartile, and the third quartile of an indidividual's 19 | overall glucose levels 20 | } 21 | -------------------------------------------------------------------------------- /R/tests/test_file.csv: -------------------------------------------------------------------------------- 1 | Index,Timestamp (YYYY-MM-DDThh:mm:ss),Event Type,Event Subtype,Patient Info,Device Info,Source Device ID,Glucose Value (mg/dL),Insulin Value (u),Carb Value (grams),Duration (hh:mm:ss),Glucose Rate of Change (mg/dL/min) 2 | 1,,FirstName,,Joe,,,,,,, 3 | 2,,LastName,,Schmoe,,,,,,, 4 | 3,,DateOfBirth,,1/1/1970,,,,,,, 5 | 4,,Device,,,Dexcom G6 Mobile App,iPhone G6,,,,, 6 | 5,,Alert,Fall,,,iPhone G6,,,,,3 7 | 6,,Alert,High,,,iPhone G6,200,,,, 8 | 7,,Alert,Low,,,iPhone G6,80,,,, 9 | 8,,Alert,Signal Loss,,,iPhone G6,,,,0:20:00, 10 | 9,,Alert,Rise,,,iPhone G6,,,,,3 11 | 10,,Alert,Urgent Low,,,iPhone G6,55,,,, 12 | 11,,Alert,Urgent Low Soon,,,iPhone G6,55,,,, 13 | 12,2016-10-24T11:24:17,EGV,,,,iPhone G6,103,,,, 14 | 13,2016-10-24T11:29:17,EGV,,,,iPhone G6,102,,,, 15 | 14,2016-10-24T11:34:17,EGV,,,,iPhone G6,100,,,, 16 | 15,2016-10-24T11:39:17,EGV,,,,iPhone G6,98,,,, 17 | 16,2016-10-24T11:44:17,EGV,,,,iPhone G6,94,,,, 18 | 17,2016-10-24T11:49:18,EGV,,,,iPhone G6,95,,,, 19 | 18,2016-10-24T11:54:17,EGV,,,,iPhone G6,97,,,, 20 | 19,2016-10-24T11:59:18,EGV,,,,iPhone G6,99,,,, 21 | 20,2016-10-24T12:04:18,EGV,,,,iPhone G6,97,,,, 22 | 21,2016-10-24T12:09:18,EGV,,,,iPhone G6,97,,,, 23 | 22,2016-10-24T12:14:17,EGV,,,,iPhone G6,99,,,, 24 | 23,2016-10-24T12:19:17,EGV,,,,iPhone G6,101,,,, 25 | 24,2016-10-24T12:24:17,EGV,,,,iPhone G6,103,,,, 26 | 25,2016-10-24T12:29:17,EGV,,,,iPhone G6,103,,,, 27 | 26,2016-10-24T12:34:17,EGV,,,,iPhone G6,101,,,, 28 | 27,2016-10-24T12:39:18,EGV,,,,iPhone G6,100,,,, 29 | 28,2016-10-24T12:44:17,EGV,,,,iPhone G6,101,,,, 30 | 29,2016-10-24T12:49:18,EGV,,,,iPhone G6,104,,,, 31 | 30,2016-10-24T12:54:17,EGV,,,,iPhone G6,110,,,, 32 | 31,2016-10-24T12:59:17,EGV,,,,iPhone G6,119,,,, 33 | 32,2016-10-24T13:04:17,EGV,,,,iPhone G6,131,,,, 34 | 33,2016-10-24T13:09:18,EGV,,,,iPhone G6,142,,,, 35 | 34,2016-10-24T13:14:18,EGV,,,,iPhone G6,151,,,, 36 | 35,2016-10-24T13:19:18,EGV,,,,iPhone G6,155,,,, 37 | 36,2016-10-24T13:24:19,EGV,,,,iPhone G6,157,,,, 38 | 37,2016-10-24T13:29:18,EGV,,,,iPhone G6,156,,,, 39 | 38,2016-10-24T13:34:18,EGV,,,,iPhone G6,155,,,, 40 | 39,2016-10-24T13:39:18,EGV,,,,iPhone G6,155,,,, 41 | 40,2016-10-24T13:44:19,EGV,,,,iPhone G6,156,,,, 42 | 41,2016-10-24T13:49:18,EGV,,,,iPhone G6,158,,,, 43 | 42,2016-10-24T13:54:17,EGV,,,,iPhone G6,161,,,, 44 | 43,2016-10-24T13:59:17,EGV,,,,iPhone G6,160,,,, 45 | 44,2016-10-24T14:04:17,EGV,,,,iPhone G6,155,,,, 46 | 45,2016-10-24T14:09:17,EGV,,,,iPhone G6,145,,,, 47 | 46,2016-10-24T14:14:17,EGV,,,,iPhone G6,136,,,, 48 | 47,2016-10-24T14:19:17,EGV,,,,iPhone G6,128,,,, 49 | 48,2016-10-24T14:24:17,EGV,,,,iPhone G6,123,,,, 50 | 49,2016-10-24T14:29:18,EGV,,,,iPhone G6,118,,,, 51 | 50,2016-10-24T14:34:17,EGV,,,,iPhone G6,116,,,, 52 | 51,2016-10-24T14:39:17,EGV,,,,iPhone G6,115,,,, 53 | 52,2016-10-24T14:44:17,EGV,,,,iPhone G6,115,,,, 54 | 53,2016-10-24T14:49:17,EGV,,,,iPhone G6,115,,,, 55 | 54,2016-10-24T14:54:17,EGV,,,,iPhone G6,113,,,, 56 | 55,2016-10-24T14:59:17,EGV,,,,iPhone G6,112,,,, 57 | 56,2016-10-24T15:04:17,EGV,,,,iPhone G6,112,,,, 58 | 57,2016-10-24T15:09:17,EGV,,,,iPhone G6,112,,,, 59 | 58,2016-10-24T15:14:17,EGV,,,,iPhone G6,111,,,, 60 | 59,2016-10-24T15:19:17,EGV,,,,iPhone G6,111,,,, 61 | 60,2016-10-24T15:24:17,EGV,,,,iPhone G6,109,,,, 62 | 61,2016-10-24T15:29:17,EGV,,,,iPhone G6,109,,,, 63 | 62,2016-10-24T15:34:17,EGV,,,,iPhone G6,109,,,, 64 | 63,2016-10-24T15:39:17,EGV,,,,iPhone G6,109,,,, 65 | 64,2016-10-24T15:44:18,EGV,,,,iPhone G6,109,,,, 66 | 65,2016-10-24T15:49:18,EGV,,,,iPhone G6,114,,,, 67 | 66,2016-10-24T15:54:18,EGV,,,,iPhone G6,121,,,, 68 | 67,2016-10-24T15:59:17,EGV,,,,iPhone G6,130,,,, 69 | 68,2016-10-24T16:04:17,EGV,,,,iPhone G6,137,,,, 70 | 69,2016-10-24T16:09:18,EGV,,,,iPhone G6,141,,,, 71 | 70,2016-10-24T16:14:17,EGV,,,,iPhone G6,142,,,, 72 | 71,2016-10-24T16:19:17,EGV,,,,iPhone G6,142,,,, 73 | 72,2016-10-24T16:24:17,EGV,,,,iPhone G6,140,,,, 74 | 73,2016-10-24T16:29:17,EGV,,,,iPhone G6,135,,,, 75 | 74,2016-10-24T16:34:17,EGV,,,,iPhone G6,128,,,, 76 | 75,2016-10-24T16:39:18,EGV,,,,iPhone G6,122,,,, 77 | 76,2016-10-24T16:44:17,EGV,,,,iPhone G6,119,,,, 78 | 77,2016-10-24T16:49:17,EGV,,,,iPhone G6,118,,,, 79 | 78,2016-10-24T16:54:18,EGV,,,,iPhone G6,117,,,, 80 | 79,2016-10-24T16:59:17,EGV,,,,iPhone G6,115,,,, 81 | 80,2016-10-24T17:04:17,EGV,,,,iPhone G6,114,,,, 82 | 81,2016-10-24T17:09:18,EGV,,,,iPhone G6,115,,,, 83 | 82,2016-10-24T17:14:18,EGV,,,,iPhone G6,117,,,, 84 | 83,2016-10-24T17:19:19,EGV,,,,iPhone G6,118,,,, 85 | 84,2016-10-24T17:24:19,EGV,,,,iPhone G6,119,,,, 86 | 85,2016-10-24T17:29:18,EGV,,,,iPhone G6,119,,,, 87 | 86,2016-10-24T17:34:18,EGV,,,,iPhone G6,118,,,, 88 | 87,2016-10-24T17:39:18,EGV,,,,iPhone G6,115,,,, 89 | 88,2016-10-24T17:44:19,EGV,,,,iPhone G6,114,,,, 90 | 89,2016-10-24T17:49:18,EGV,,,,iPhone G6,113,,,, 91 | 90,2016-10-24T17:54:19,EGV,,,,iPhone G6,114,,,, 92 | 91,2016-10-24T17:59:18,EGV,,,,iPhone G6,114,,,, 93 | 92,2016-10-24T18:04:19,EGV,,,,iPhone G6,113,,,, 94 | 93,2016-10-24T18:09:19,EGV,,,,iPhone G6,112,,,, 95 | 94,2016-10-24T18:14:19,EGV,,,,iPhone G6,111,,,, 96 | 95,2016-10-24T18:19:18,EGV,,,,iPhone G6,110,,,, 97 | 96,2016-10-24T18:24:18,EGV,,,,iPhone G6,112,,,, 98 | 97,2016-10-24T18:29:19,EGV,,,,iPhone G6,117,,,, 99 | 98,2016-10-24T18:34:18,EGV,,,,iPhone G6,124,,,, 100 | 99,2016-10-24T18:39:18,EGV,,,,iPhone G6,131,,,, 101 | 100,2016-10-24T18:44:18,EGV,,,,iPhone G6,133,,,, 102 | 101,2016-10-24T18:49:19,EGV,,,,iPhone G6,132,,,, 103 | 102,2016-10-24T18:54:19,EGV,,,,iPhone G6,127,,,, 104 | 103,2016-10-24T18:59:18,EGV,,,,iPhone G6,120,,,, 105 | 104,2016-10-24T19:04:19,EGV,,,,iPhone G6,112,,,, 106 | 105,2016-10-24T19:09:18,EGV,,,,iPhone G6,106,,,, 107 | 106,2016-10-24T19:14:18,EGV,,,,iPhone G6,106,,,, 108 | 107,2016-10-24T19:19:18,EGV,,,,iPhone G6,110,,,, 109 | 108,2016-10-24T19:24:18,EGV,,,,iPhone G6,116,,,, 110 | 109,2016-10-24T19:29:18,EGV,,,,iPhone G6,121,,,, 111 | 110,2016-10-24T19:34:17,EGV,,,,iPhone G6,124,,,, 112 | 111,2016-10-24T19:39:16,EGV,,,,iPhone G6,126,,,, 113 | 112,2016-10-24T19:44:17,EGV,,,,iPhone G6,125,,,, 114 | 113,2016-10-24T19:49:16,EGV,,,,iPhone G6,123,,,, 115 | 114,2016-10-24T19:54:17,EGV,,,,iPhone G6,121,,,, 116 | 115,2016-10-24T19:59:17,EGV,,,,iPhone G6,119,,,, 117 | 116,2016-10-24T20:04:16,EGV,,,,iPhone G6,119,,,, 118 | 117,2016-10-24T20:09:17,EGV,,,,iPhone G6,119,,,, 119 | 118,2016-10-24T20:14:16,EGV,,,,iPhone G6,116,,,, 120 | 119,2016-10-24T20:19:17,EGV,,,,iPhone G6,112,,,, 121 | 120,2016-10-24T20:24:17,EGV,,,,iPhone G6,108,,,, 122 | 121,2016-10-24T20:29:17,EGV,,,,iPhone G6,107,,,, 123 | 122,2016-10-24T20:34:16,EGV,,,,iPhone G6,111,,,, 124 | 123,2016-10-24T20:39:17,EGV,,,,iPhone G6,117,,,, 125 | 124,2016-10-24T20:44:17,EGV,,,,iPhone G6,121,,,, 126 | 125,2016-10-24T20:49:17,EGV,,,,iPhone G6,125,,,, 127 | 126,2016-10-24T20:54:17,EGV,,,,iPhone G6,126,,,, 128 | 127,2016-10-24T20:59:16,EGV,,,,iPhone G6,127,,,, 129 | 128,2016-10-24T21:04:17,EGV,,,,iPhone G6,126,,,, 130 | 129,2016-10-24T21:09:18,EGV,,,,iPhone G6,124,,,, 131 | 130,2016-10-24T21:14:18,EGV,,,,iPhone G6,122,,,, 132 | 131,2016-10-24T21:19:18,EGV,,,,iPhone G6,118,,,, 133 | 132,2016-10-24T21:24:18,EGV,,,,iPhone G6,116,,,, 134 | 133,2016-10-24T21:29:18,EGV,,,,iPhone G6,115,,,, 135 | 134,2016-10-24T21:34:17,EGV,,,,iPhone G6,117,,,, 136 | 135,2016-10-24T21:39:17,EGV,,,,iPhone G6,119,,,, 137 | 136,2016-10-24T21:44:17,EGV,,,,iPhone G6,120,,,, 138 | 137,2016-10-24T21:49:16,EGV,,,,iPhone G6,120,,,, 139 | 138,2016-10-24T21:54:17,EGV,,,,iPhone G6,118,,,, 140 | 139,2016-10-24T21:59:17,EGV,,,,iPhone G6,119,,,, 141 | 140,2016-10-24T22:04:16,EGV,,,,iPhone G6,120,,,, 142 | 141,2016-10-24T22:09:17,EGV,,,,iPhone G6,122,,,, 143 | 142,2016-10-24T22:14:17,EGV,,,,iPhone G6,121,,,, 144 | 143,2016-10-24T22:19:17,EGV,,,,iPhone G6,120,,,, 145 | 144,2016-10-24T22:24:17,EGV,,,,iPhone G6,119,,,, 146 | 145,2016-10-24T22:29:17,EGV,,,,iPhone G6,120,,,, 147 | 146,2016-10-24T22:34:16,EGV,,,,iPhone G6,121,,,, 148 | 147,2016-10-24T22:39:16,EGV,,,,iPhone G6,121,,,, 149 | 148,2016-10-24T22:44:17,EGV,,,,iPhone G6,122,,,, 150 | 149,2016-10-24T22:49:16,EGV,,,,iPhone G6,123,,,, 151 | 150,2016-10-24T22:54:17,EGV,,,,iPhone G6,123,,,, 152 | 151,2016-10-24T22:59:16,EGV,,,,iPhone G6,124,,,, 153 | 152,2016-10-24T23:04:16,EGV,,,,iPhone G6,122,,,, 154 | 153,2016-10-24T23:09:17,EGV,,,,iPhone G6,120,,,, 155 | 154,2016-10-24T23:14:16,EGV,,,,iPhone G6,116,,,, 156 | 155,2016-10-24T23:19:17,EGV,,,,iPhone G6,114,,,, 157 | 156,2016-10-24T23:24:17,EGV,,,,iPhone G6,112,,,, 158 | 157,2016-10-24T23:29:17,EGV,,,,iPhone G6,111,,,, 159 | 158,2016-10-24T23:34:16,EGV,,,,iPhone G6,111,,,, 160 | 159,2016-10-24T23:39:17,EGV,,,,iPhone G6,111,,,, 161 | 160,2016-10-24T23:44:17,EGV,,,,iPhone G6,112,,,, 162 | 161,2016-10-24T23:49:16,EGV,,,,iPhone G6,114,,,, 163 | 162,2016-10-24T23:54:18,EGV,,,,iPhone G6,115,,,, 164 | 163,2016-10-24T23:59:17,EGV,,,,iPhone G6,115,,,, 165 | 164,2016-10-25T00:04:18,EGV,,,,iPhone G6,115,,,, 166 | 165,2016-10-25T00:09:18,EGV,,,,iPhone G6,116,,,, 167 | 166,2016-10-25T00:14:18,EGV,,,,iPhone G6,117,,,, 168 | 167,2016-10-25T00:19:17,EGV,,,,iPhone G6,117,,,, 169 | 168,2016-10-25T00:24:18,EGV,,,,iPhone G6,118,,,, 170 | 169,2016-10-25T00:29:18,EGV,,,,iPhone G6,119,,,, 171 | 170,2016-10-25T00:34:17,EGV,,,,iPhone G6,120,,,, 172 | 171,2016-10-25T00:39:18,EGV,,,,iPhone G6,120,,,, 173 | 172,2016-10-25T00:44:18,EGV,,,,iPhone G6,120,,,, 174 | 173,2016-10-25T00:49:18,EGV,,,,iPhone G6,120,,,, 175 | 174,2016-10-25T00:54:17,EGV,,,,iPhone G6,120,,,, 176 | 175,2016-10-25T00:59:18,EGV,,,,iPhone G6,117,,,, 177 | 176,2016-10-25T01:04:18,EGV,,,,iPhone G6,109,,,, 178 | 177,2016-10-25T01:09:18,EGV,,,,iPhone G6,102,,,, 179 | 178,2016-10-25T01:14:18,EGV,,,,iPhone G6,101,,,, 180 | 179,2016-10-25T01:19:18,EGV,,,,iPhone G6,105,,,, 181 | 180,2016-10-25T01:24:18,EGV,,,,iPhone G6,110,,,, 182 | 181,2016-10-25T01:29:17,EGV,,,,iPhone G6,111,,,, 183 | 182,2016-10-25T01:34:18,EGV,,,,iPhone G6,108,,,, 184 | 183,2016-10-25T01:39:18,EGV,,,,iPhone G6,103,,,, 185 | 184,2016-10-25T01:44:18,EGV,,,,iPhone G6,99,,,, 186 | 185,2016-10-25T01:49:18,EGV,,,,iPhone G6,97,,,, 187 | 186,2016-10-25T01:54:18,EGV,,,,iPhone G6,96,,,, 188 | 187,2016-10-25T01:59:18,EGV,,,,iPhone G6,99,,,, 189 | 188,2016-10-25T02:04:18,EGV,,,,iPhone G6,103,,,, 190 | 189,2016-10-25T02:09:17,EGV,,,,iPhone G6,109,,,, 191 | 190,2016-10-25T02:14:18,EGV,,,,iPhone G6,109,,,, 192 | 191,2016-10-25T02:19:17,EGV,,,,iPhone G6,108,,,, 193 | 192,2016-10-25T02:24:17,EGV,,,,iPhone G6,106,,,, 194 | 193,2016-10-25T02:29:17,EGV,,,,iPhone G6,104,,,, 195 | 194,2016-10-25T02:34:18,EGV,,,,iPhone G6,102,,,, 196 | 195,2016-10-25T02:39:18,EGV,,,,iPhone G6,100,,,, 197 | 196,2016-10-25T02:44:18,EGV,,,,iPhone G6,100,,,, 198 | 197,2016-10-25T02:49:18,EGV,,,,iPhone G6,100,,,, 199 | 198,2016-10-25T02:54:18,EGV,,,,iPhone G6,100,,,, 200 | 199,2016-10-25T02:59:18,EGV,,,,iPhone G6,101,,,, 201 | 200,2016-10-25T03:04:18,EGV,,,,iPhone G6,102,,,, 202 | 201,2016-10-25T03:09:18,EGV,,,,iPhone G6,103,,,, 203 | 202,2016-10-25T03:14:18,EGV,,,,iPhone G6,105,,,, 204 | 203,2016-10-25T03:19:18,EGV,,,,iPhone G6,106,,,, 205 | 204,2016-10-25T03:24:18,EGV,,,,iPhone G6,107,,,, 206 | 205,2016-10-25T03:29:18,EGV,,,,iPhone G6,108,,,, 207 | 206,2016-10-25T03:34:18,EGV,,,,iPhone G6,109,,,, 208 | 207,2016-10-25T03:39:18,EGV,,,,iPhone G6,109,,,, 209 | 208,2016-10-25T03:44:17,EGV,,,,iPhone G6,108,,,, 210 | 209,2016-10-25T03:49:16,EGV,,,,iPhone G6,108,,,, 211 | 210,2016-10-25T03:54:17,EGV,,,,iPhone G6,107,,,, 212 | 211,2016-10-25T03:59:17,EGV,,,,iPhone G6,107,,,, 213 | 212,2016-10-25T04:04:17,EGV,,,,iPhone G6,105,,,, 214 | 213,2016-10-25T04:09:17,EGV,,,,iPhone G6,104,,,, 215 | 214,2016-10-25T04:14:16,EGV,,,,iPhone G6,104,,,, 216 | 215,2016-10-25T04:19:17,EGV,,,,iPhone G6,104,,,, 217 | 216,2016-10-25T04:24:17,EGV,,,,iPhone G6,105,,,, 218 | 217,2016-10-25T04:29:17,EGV,,,,iPhone G6,105,,,, 219 | 218,2016-10-25T04:34:17,EGV,,,,iPhone G6,105,,,, 220 | 219,2016-10-25T04:39:17,EGV,,,,iPhone G6,105,,,, 221 | 220,2016-10-25T04:44:17,EGV,,,,iPhone G6,107,,,, 222 | 221,2016-10-25T04:49:17,EGV,,,,iPhone G6,116,,,, 223 | 222,2016-10-25T04:54:17,EGV,,,,iPhone G6,131,,,, 224 | 223,2016-10-25T04:59:17,EGV,,,,iPhone G6,150,,,, 225 | 224,2016-10-25T05:04:17,EGV,,,,iPhone G6,166,,,, 226 | 225,2016-10-25T05:09:15,EGV,,,,iPhone G6,178,,,, 227 | 226,2016-10-25T05:14:16,EGV,,,,iPhone G6,185,,,, 228 | 227,2016-10-25T05:19:15,EGV,,,,iPhone G6,191,,,, 229 | 228,2016-10-25T05:24:16,EGV,,,,iPhone G6,193,,,, 230 | 229,2016-10-25T05:29:16,EGV,,,,iPhone G6,189,,,, 231 | 230,2016-10-25T05:34:16,EGV,,,,iPhone G6,183,,,, 232 | 231,2016-10-25T05:39:16,EGV,,,,iPhone G6,179,,,, 233 | 232,2016-10-25T05:44:16,EGV,,,,iPhone G6,179,,,, 234 | 233,2016-10-25T05:49:16,EGV,,,,iPhone G6,180,,,, 235 | 234,2016-10-25T05:54:16,EGV,,,,iPhone G6,180,,,, 236 | 235,2016-10-25T05:59:16,EGV,,,,iPhone G6,178,,,, 237 | 236,2016-10-25T06:04:16,EGV,,,,iPhone G6,170,,,, 238 | 237,2016-10-25T06:09:16,EGV,,,,iPhone G6,156,,,, 239 | 238,2016-10-25T06:14:16,EGV,,,,iPhone G6,143,,,, 240 | 239,2016-10-25T06:19:16,EGV,,,,iPhone G6,134,,,, 241 | 240,2016-10-25T06:24:16,EGV,,,,iPhone G6,130,,,, 242 | 241,2016-10-25T06:29:16,EGV,,,,iPhone G6,125,,,, 243 | 242,2016-10-25T06:34:16,EGV,,,,iPhone G6,115,,,, 244 | 243,2016-10-25T06:39:16,EGV,,,,iPhone G6,100,,,, 245 | 244,2016-10-25T06:44:16,EGV,,,,iPhone G6,84,,,, 246 | 245,2016-10-25T06:49:16,EGV,,,,iPhone G6,71,,,, 247 | 246,2016-10-25T06:54:16,EGV,,,,iPhone G6,62,,,, 248 | 247,2016-10-25T06:59:16,EGV,,,,iPhone G6,56,,,, 249 | 248,2016-10-25T07:04:16,EGV,,,,iPhone G6,52,,,, 250 | 249,2016-10-25T07:09:16,EGV,,,,iPhone G6,50,,,, 251 | 250,2016-10-25T07:14:16,EGV,,,,iPhone G6,49,,,, 252 | 251,2016-10-25T07:19:16,EGV,,,,iPhone G6,51,,,, 253 | 252,2016-10-25T07:24:16,EGV,,,,iPhone G6,55,,,, 254 | 253,2016-10-25T07:29:16,EGV,,,,iPhone G6,60,,,, 255 | 254,2016-10-25T07:34:16,EGV,,,,iPhone G6,65,,,, 256 | 255,2016-10-25T07:39:16,EGV,,,,iPhone G6,71,,,, 257 | 256,2016-10-25T07:44:16,EGV,,,,iPhone G6,77,,,, 258 | 257,2016-10-25T07:49:16,EGV,,,,iPhone G6,85,,,, 259 | 258,2016-10-25T07:54:16,EGV,,,,iPhone G6,91,,,, 260 | 259,2016-10-25T07:59:16,EGV,,,,iPhone G6,92,,,, 261 | 260,2016-10-25T08:04:16,EGV,,,,iPhone G6,89,,,, 262 | 261,2016-10-25T08:09:16,EGV,,,,iPhone G6,86,,,, 263 | 262,2016-10-25T08:14:16,EGV,,,,iPhone G6,85,,,, 264 | 263,2016-10-25T08:19:16,EGV,,,,iPhone G6,87,,,, 265 | 264,2016-10-25T08:24:16,EGV,,,,iPhone G6,95,,,, 266 | 265,2016-10-25T08:29:16,EGV,,,,iPhone G6,105,,,, 267 | 266,2016-10-25T08:34:16,EGV,,,,iPhone G6,117,,,, 268 | 267,2016-10-25T08:39:16,EGV,,,,iPhone G6,126,,,, 269 | 268,2016-10-25T08:44:16,EGV,,,,iPhone G6,128,,,, 270 | 269,2016-10-25T08:49:16,EGV,,,,iPhone G6,127,,,, 271 | 270,2016-10-25T08:54:16,EGV,,,,iPhone G6,123,,,, 272 | 271,2016-10-25T08:59:16,EGV,,,,iPhone G6,120,,,, 273 | 272,2016-10-25T09:04:16,EGV,,,,iPhone G6,116,,,, 274 | 273,2016-10-25T09:09:17,EGV,,,,iPhone G6,107,,,, 275 | 274,2016-10-25T09:14:17,EGV,,,,iPhone G6,96,,,, 276 | 275,2016-10-25T09:19:17,EGV,,,,iPhone G6,87,,,, 277 | 276,2016-10-25T09:24:17,EGV,,,,iPhone G6,86,,,, 278 | 277,2016-10-25T09:29:17,EGV,,,,iPhone G6,92,,,, 279 | 278,2016-10-25T09:34:18,EGV,,,,iPhone G6,98,,,, 280 | 279,2016-10-25T09:39:17,EGV,,,,iPhone G6,102,,,, 281 | 280,2016-10-25T09:44:17,EGV,,,,iPhone G6,105,,,, 282 | 281,2016-10-25T09:49:17,EGV,,,,iPhone G6,109,,,, 283 | 282,2016-10-25T09:54:17,EGV,,,,iPhone G6,112,,,, 284 | 283,2016-10-25T09:59:17,EGV,,,,iPhone G6,113,,,, 285 | 284,2016-10-25T10:04:16,EGV,,,,iPhone G6,111,,,, 286 | 285,2016-10-25T10:09:16,EGV,,,,iPhone G6,107,,,, 287 | 286,2016-10-25T10:14:16,EGV,,,,iPhone G6,103,,,, 288 | 287,2016-10-25T10:19:16,EGV,,,,iPhone G6,101,,,, 289 | 288,2016-10-25T10:24:16,EGV,,,,iPhone G6,100,,,, 290 | 289,2016-10-25T10:29:16,EGV,,,,iPhone G6,100,,,, 291 | 290,2016-10-25T10:34:16,EGV,,,,iPhone G6,102,,,, 292 | 291,2016-10-25T10:39:17,EGV,,,,iPhone G6,102,,,, 293 | 292,2016-10-25T10:44:17,EGV,,,,iPhone G6,99,,,, 294 | 293,2016-10-25T10:49:16,EGV,,,,iPhone G6,95,,,, 295 | 294,2016-10-25T10:54:16,EGV,,,,iPhone G6,91,,,, 296 | 295,2016-10-25T10:59:16,EGV,,,,iPhone G6,89,,,, 297 | 296,2016-10-25T11:04:16,EGV,,,,iPhone G6,88,,,, 298 | 297,2016-10-25T11:09:16,EGV,,,,iPhone G6,87,,,, 299 | 298,2016-10-25T11:14:16,EGV,,,,iPhone G6,85,,,, 300 | 299,2016-10-25T11:19:16,EGV,,,,iPhone G6,84,,,, 301 | 300,2016-10-25T11:24:16,EGV,,,,iPhone G6,85,,,, 302 | 301,2016-10-25T11:29:16,EGV,,,,iPhone G6,87,,,, 303 | 302,2016-10-25T11:34:16,EGV,,,,iPhone G6,87,,,, 304 | 303,2016-10-25T11:39:16,EGV,,,,iPhone G6,86,,,, 305 | 304,2016-10-25T11:44:17,EGV,,,,iPhone G6,88,,,, 306 | 305,2016-10-25T11:49:16,EGV,,,,iPhone G6,93,,,, 307 | 306,2016-10-25T11:54:15,EGV,,,,iPhone G6,99,,,, 308 | 307,2016-10-25T11:59:16,EGV,,,,iPhone G6,105,,,, 309 | 308,2016-10-25T12:04:16,EGV,,,,iPhone G6,107,,,, 310 | 309,2016-10-25T12:09:15,EGV,,,,iPhone G6,106,,,, 311 | 310,2016-10-25T12:14:16,EGV,,,,iPhone G6,105,,,, 312 | 311,2016-10-25T12:19:16,EGV,,,,iPhone G6,105,,,, 313 | 312,2016-10-25T12:24:16,EGV,,,,iPhone G6,106,,,, 314 | 313,2016-10-25T12:29:15,EGV,,,,iPhone G6,109,,,, 315 | 314,2016-10-25T12:34:15,EGV,,,,iPhone G6,113,,,, 316 | 315,2016-10-25T12:39:15,EGV,,,,iPhone G6,118,,,, 317 | 316,2016-10-25T12:44:15,EGV,,,,iPhone G6,122,,,, 318 | 317,2016-10-25T12:49:17,EGV,,,,iPhone G6,123,,,, 319 | 318,2016-10-25T12:54:16,EGV,,,,iPhone G6,122,,,, 320 | 319,2016-10-25T12:59:16,EGV,,,,iPhone G6,121,,,, 321 | 320,2016-10-25T13:04:16,EGV,,,,iPhone G6,120,,,, 322 | 321,2016-10-25T13:09:16,EGV,,,,iPhone G6,115,,,, 323 | 322,2016-10-25T13:14:16,EGV,,,,iPhone G6,108,,,, 324 | 323,2016-10-25T13:19:16,EGV,,,,iPhone G6,100,,,, 325 | 324,2016-10-25T13:24:16,EGV,,,,iPhone G6,95,,,, 326 | 325,2016-10-25T13:29:16,EGV,,,,iPhone G6,93,,,, 327 | 326,2016-10-25T13:34:17,EGV,,,,iPhone G6,92,,,, 328 | 327,2016-10-25T13:39:16,EGV,,,,iPhone G6,92,,,, 329 | 328,2016-10-25T13:44:17,EGV,,,,iPhone G6,93,,,, 330 | 329,2016-10-25T13:49:16,EGV,,,,iPhone G6,97,,,, 331 | 330,2016-10-25T13:54:17,EGV,,,,iPhone G6,102,,,, 332 | 331,2016-10-25T13:59:16,EGV,,,,iPhone G6,108,,,, 333 | 332,2016-10-25T14:04:16,EGV,,,,iPhone G6,113,,,, 334 | 333,2016-10-25T14:09:16,EGV,,,,iPhone G6,117,,,, 335 | 334,2016-10-25T14:14:17,EGV,,,,iPhone G6,119,,,, 336 | 335,2016-10-25T14:19:16,EGV,,,,iPhone G6,120,,,, 337 | 336,2016-10-25T14:24:16,EGV,,,,iPhone G6,120,,,, 338 | 337,2016-10-25T14:29:17,EGV,,,,iPhone G6,119,,,, 339 | 338,2016-10-25T14:34:16,EGV,,,,iPhone G6,119,,,, 340 | 339,2016-10-25T14:39:16,EGV,,,,iPhone G6,118,,,, 341 | 340,2016-10-25T14:44:16,EGV,,,,iPhone G6,117,,,, 342 | 341,2016-10-25T14:49:17,EGV,,,,iPhone G6,117,,,, 343 | 342,2016-10-25T14:54:17,EGV,,,,iPhone G6,118,,,, 344 | 343,2016-10-25T14:59:16,EGV,,,,iPhone G6,119,,,, 345 | 344,2016-10-25T15:04:16,EGV,,,,iPhone G6,119,,,, 346 | 345,2016-10-25T15:09:16,EGV,,,,iPhone G6,118,,,, 347 | 346,2016-10-25T15:14:16,EGV,,,,iPhone G6,116,,,, 348 | 347,2016-10-25T15:19:15,EGV,,,,iPhone G6,114,,,, 349 | 348,2016-10-25T15:24:15,EGV,,,,iPhone G6,111,,,, 350 | 349,2016-10-25T15:29:16,EGV,,,,iPhone G6,109,,,, 351 | 350,2016-10-25T15:34:17,EGV,,,,iPhone G6,108,,,, 352 | 351,2016-10-25T15:39:17,EGV,,,,iPhone G6,107,,,, 353 | 352,2016-10-25T15:44:17,EGV,,,,iPhone G6,106,,,, 354 | 353,2016-10-25T15:49:16,EGV,,,,iPhone G6,106,,,, 355 | 354,2016-10-25T15:54:16,EGV,,,,iPhone G6,104,,,, 356 | 355,2016-10-25T15:59:16,EGV,,,,iPhone G6,102,,,, 357 | 356,2016-10-25T16:04:17,EGV,,,,iPhone G6,100,,,, 358 | 357,2016-10-25T16:09:16,EGV,,,,iPhone G6,99,,,, 359 | 358,2016-10-25T16:14:16,EGV,,,,iPhone G6,98,,,, 360 | 359,2016-10-25T16:19:17,EGV,,,,iPhone G6,101,,,, 361 | 360,2016-10-25T16:24:17,EGV,,,,iPhone G6,108,,,, 362 | 361,2016-10-25T16:29:17,EGV,,,,iPhone G6,118,,,, 363 | 362,2016-10-25T16:34:17,EGV,,,,iPhone G6,127,,,, 364 | 363,2016-10-25T16:39:17,EGV,,,,iPhone G6,132,,,, 365 | 364,2016-10-25T16:44:17,EGV,,,,iPhone G6,135,,,, 366 | 365,2016-10-25T16:49:16,EGV,,,,iPhone G6,136,,,, 367 | 366,2016-10-25T16:54:16,EGV,,,,iPhone G6,136,,,, 368 | 367,2016-10-25T16:59:17,EGV,,,,iPhone G6,136,,,, 369 | 368,2016-10-25T17:04:16,EGV,,,,iPhone G6,134,,,, 370 | 369,2016-10-25T17:09:16,EGV,,,,iPhone G6,132,,,, 371 | 370,2016-10-25T17:14:16,EGV,,,,iPhone G6,131,,,, 372 | 371,2016-10-25T17:19:16,EGV,,,,iPhone G6,130,,,, 373 | 372,2016-10-25T17:24:17,EGV,,,,iPhone G6,129,,,, 374 | 373,2016-10-25T17:29:16,EGV,,,,iPhone G6,127,,,, 375 | 374,2016-10-25T17:34:16,EGV,,,,iPhone G6,125,,,, 376 | 375,2016-10-25T17:39:17,EGV,,,,iPhone G6,124,,,, 377 | 376,2016-10-25T17:44:16,EGV,,,,iPhone G6,121,,,, 378 | 377,2016-10-25T17:49:17,EGV,,,,iPhone G6,119,,,, 379 | 378,2016-10-25T17:54:17,EGV,,,,iPhone G6,117,,,, 380 | 379,2016-10-25T17:59:17,EGV,,,,iPhone G6,114,,,, 381 | 380,2016-10-25T18:04:17,EGV,,,,iPhone G6,111,,,, 382 | 381,2016-10-25T18:09:17,EGV,,,,iPhone G6,107,,,, 383 | 382,2016-10-25T18:14:17,EGV,,,,iPhone G6,103,,,, 384 | 383,2016-10-25T18:19:17,EGV,,,,iPhone G6,102,,,, 385 | 384,2016-10-25T18:24:17,EGV,,,,iPhone G6,107,,,, 386 | 385,2016-10-25T18:29:17,EGV,,,,iPhone G6,117,,,, 387 | 386,2016-10-25T18:34:17,EGV,,,,iPhone G6,129,,,, 388 | 387,2016-10-25T18:39:17,EGV,,,,iPhone G6,139,,,, 389 | 388,2016-10-25T18:44:17,EGV,,,,iPhone G6,142,,,, 390 | 389,2016-10-25T18:49:17,EGV,,,,iPhone G6,135,,,, 391 | 390,2016-10-25T18:54:17,EGV,,,,iPhone G6,126,,,, 392 | 391,2016-10-25T18:59:17,EGV,,,,iPhone G6,120,,,, 393 | 392,2016-10-25T19:04:17,EGV,,,,iPhone G6,119,,,, 394 | 393,2016-10-25T19:09:17,EGV,,,,iPhone G6,119,,,, 395 | 394,2016-10-25T19:14:17,EGV,,,,iPhone G6,117,,,, 396 | 395,2016-10-25T19:19:16,EGV,,,,iPhone G6,113,,,, 397 | 396,2016-10-25T19:24:16,EGV,,,,iPhone G6,107,,,, 398 | 397,2016-10-25T19:29:16,EGV,,,,iPhone G6,100,,,, 399 | 398,2016-10-25T19:34:15,EGV,,,,iPhone G6,95,,,, 400 | 399,2016-10-25T19:39:15,EGV,,,,iPhone G6,92,,,, 401 | 400,2016-10-25T19:44:16,EGV,,,,iPhone G6,92,,,, 402 | 401,2016-10-25T19:49:16,EGV,,,,iPhone G6,92,,,, 403 | 402,2016-10-25T19:54:15,EGV,,,,iPhone G6,93,,,, 404 | 403,2016-10-25T19:59:15,EGV,,,,iPhone G6,94,,,, 405 | 404,2016-10-25T20:04:15,EGV,,,,iPhone G6,95,,,, 406 | 405,2016-10-25T20:09:15,EGV,,,,iPhone G6,95,,,, 407 | 406,2016-10-25T20:14:15,EGV,,,,iPhone G6,94,,,, 408 | 407,2016-10-25T20:19:14,EGV,,,,iPhone G6,92,,,, 409 | 408,2016-10-25T20:24:14,EGV,,,,iPhone G6,90,,,, 410 | 409,2016-10-25T20:29:15,EGV,,,,iPhone G6,90,,,, 411 | 410,2016-10-25T20:34:15,EGV,,,,iPhone G6,91,,,, 412 | 411,2016-10-25T20:39:15,EGV,,,,iPhone G6,91,,,, 413 | 412,2016-10-25T20:44:15,EGV,,,,iPhone G6,91,,,, 414 | 413,2016-10-25T20:49:14,EGV,,,,iPhone G6,92,,,, 415 | 414,2016-10-25T20:54:15,EGV,,,,iPhone G6,93,,,, 416 | 415,2016-10-25T20:59:14,EGV,,,,iPhone G6,95,,,, 417 | 416,2016-10-25T21:04:14,EGV,,,,iPhone G6,96,,,, 418 | 417,2016-10-25T21:09:13,EGV,,,,iPhone G6,97,,,, 419 | 418,2016-10-25T21:14:13,EGV,,,,iPhone G6,98,,,, 420 | 419,2016-10-25T21:19:14,EGV,,,,iPhone G6,99,,,, 421 | 420,2016-10-25T21:24:14,EGV,,,,iPhone G6,99,,,, 422 | 421,2016-10-25T21:29:13,EGV,,,,iPhone G6,98,,,, 423 | 422,2016-10-25T21:34:14,EGV,,,,iPhone G6,98,,,, 424 | 423,2016-10-25T21:39:14,EGV,,,,iPhone G6,99,,,, 425 | 424,2016-10-25T21:44:15,EGV,,,,iPhone G6,100,,,, 426 | 425,2016-10-25T21:49:14,EGV,,,,iPhone G6,101,,,, 427 | 426,2016-10-25T21:54:14,EGV,,,,iPhone G6,101,,,, 428 | 427,2016-10-25T21:59:14,EGV,,,,iPhone G6,99,,,, 429 | 428,2016-10-25T22:04:15,EGV,,,,iPhone G6,101,,,, 430 | 429,2016-10-25T22:09:15,EGV,,,,iPhone G6,104,,,, 431 | 430,2016-10-25T22:14:15,EGV,,,,iPhone G6,104,,,, 432 | 431,2016-10-25T22:19:15,EGV,,,,iPhone G6,97,,,, 433 | 432,2016-10-25T22:24:14,EGV,,,,iPhone G6,87,,,, 434 | 433,2016-10-26T05:04:15,EGV,,,,iPhone G6,102,,,, 435 | 434,2016-10-26T05:09:15,EGV,,,,iPhone G6,103,,,, 436 | 435,2016-10-26T05:14:15,EGV,,,,iPhone G6,103,,,, 437 | 436,2016-10-26T05:19:15,EGV,,,,iPhone G6,103,,,, 438 | 437,2016-10-26T05:24:15,EGV,,,,iPhone G6,103,,,, 439 | 438,2016-10-26T05:29:15,EGV,,,,iPhone G6,103,,,, 440 | 439,2016-10-26T05:34:15,EGV,,,,iPhone G6,104,,,, 441 | 440,2016-10-26T05:39:15,EGV,,,,iPhone G6,104,,,, 442 | 441,2016-10-26T05:44:15,EGV,,,,iPhone G6,104,,,, 443 | 442,2016-10-26T05:49:15,EGV,,,,iPhone G6,104,,,, 444 | 443,2016-10-26T05:54:15,EGV,,,,iPhone G6,104,,,, 445 | 444,2016-10-26T05:59:15,EGV,,,,iPhone G6,104,,,, 446 | 445,2016-10-26T06:04:15,EGV,,,,iPhone G6,104,,,, 447 | 446,2016-10-26T06:09:15,EGV,,,,iPhone G6,104,,,, 448 | 447,2016-10-26T06:14:15,EGV,,,,iPhone G6,104,,,, 449 | 448,2016-10-26T06:19:15,EGV,,,,iPhone G6,105,,,, 450 | 449,2016-10-26T06:24:15,EGV,,,,iPhone G6,105,,,, 451 | 450,2016-10-26T06:29:15,EGV,,,,iPhone G6,105,,,, 452 | 451,2016-10-26T06:34:15,EGV,,,,iPhone G6,104,,,, 453 | 452,2016-10-26T06:39:15,EGV,,,,iPhone G6,103,,,, 454 | 453,2016-10-26T06:44:15,EGV,,,,iPhone G6,102,,,, 455 | 454,2016-10-26T06:49:15,EGV,,,,iPhone G6,102,,,, 456 | 455,2016-10-26T06:54:15,EGV,,,,iPhone G6,102,,,, 457 | 456,2016-10-26T06:59:15,EGV,,,,iPhone G6,102,,,, 458 | 457,2016-10-26T07:04:15,EGV,,,,iPhone G6,103,,,, 459 | 458,2016-10-26T07:09:15,EGV,,,,iPhone G6,104,,,, 460 | 459,2016-10-26T07:14:15,EGV,,,,iPhone G6,105,,,, 461 | 460,2016-10-26T07:19:15,EGV,,,,iPhone G6,106,,,, 462 | 461,2016-10-26T07:24:15,EGV,,,,iPhone G6,105,,,, 463 | 462,2016-10-26T07:29:15,EGV,,,,iPhone G6,103,,,, 464 | 463,2016-10-26T07:34:15,EGV,,,,iPhone G6,102,,,, 465 | 464,2016-10-26T07:39:15,EGV,,,,iPhone G6,102,,,, 466 | 465,2016-10-26T07:44:15,EGV,,,,iPhone G6,102,,,, 467 | 466,2016-10-26T07:49:15,EGV,,,,iPhone G6,103,,,, 468 | 467,2016-10-26T07:54:15,EGV,,,,iPhone G6,104,,,, 469 | 468,2016-10-26T07:59:15,EGV,,,,iPhone G6,105,,,, 470 | 469,2016-10-26T08:04:15,EGV,,,,iPhone G6,106,,,, 471 | 470,2016-10-26T08:09:15,EGV,,,,iPhone G6,106,,,, 472 | 471,2016-10-26T08:14:15,EGV,,,,iPhone G6,106,,,, 473 | 472,2016-10-26T08:19:15,EGV,,,,iPhone G6,104,,,, 474 | 473,2016-10-26T08:24:15,EGV,,,,iPhone G6,102,,,, 475 | 474,2016-10-26T08:29:15,EGV,,,,iPhone G6,101,,,, 476 | 475,2016-10-26T08:34:15,EGV,,,,iPhone G6,102,,,, 477 | 476,2016-10-26T08:39:15,EGV,,,,iPhone G6,103,,,, 478 | 477,2016-10-26T08:44:15,EGV,,,,iPhone G6,104,,,, 479 | 478,2016-10-26T08:49:15,EGV,,,,iPhone G6,103,,,, 480 | 479,2016-10-26T08:54:15,EGV,,,,iPhone G6,101,,,, 481 | 480,2016-10-26T08:59:15,EGV,,,,iPhone G6,98,,,, 482 | 481,2016-10-26T09:04:15,EGV,,,,iPhone G6,97,,,, 483 | 482,2016-10-26T09:09:15,EGV,,,,iPhone G6,98,,,, 484 | 483,2016-10-26T09:14:15,EGV,,,,iPhone G6,101,,,, 485 | 484,2016-10-26T09:19:16,EGV,,,,iPhone G6,105,,,, 486 | 485,2016-10-26T09:24:15,EGV,,,,iPhone G6,108,,,, 487 | 486,2016-10-26T09:29:14,EGV,,,,iPhone G6,111,,,, 488 | 487,2016-10-26T09:34:14,EGV,,,,iPhone G6,112,,,, 489 | 488,2016-10-26T09:39:14,EGV,,,,iPhone G6,113,,,, 490 | 489,2016-10-26T09:44:14,EGV,,,,iPhone G6,113,,,, 491 | 490,2016-10-26T09:49:14,EGV,,,,iPhone G6,112,,,, 492 | 491,2016-10-26T09:54:14,EGV,,,,iPhone G6,112,,,, 493 | 492,2016-10-26T09:59:14,EGV,,,,iPhone G6,113,,,, 494 | 493,2016-10-26T10:04:14,EGV,,,,iPhone G6,114,,,, 495 | 494,2016-10-26T10:09:14,EGV,,,,iPhone G6,116,,,, 496 | 495,2016-10-26T10:14:14,EGV,,,,iPhone G6,116,,,, 497 | 496,2016-10-26T10:19:14,EGV,,,,iPhone G6,114,,,, 498 | 497,2016-10-26T10:24:15,EGV,,,,iPhone G6,110,,,, 499 | 498,2016-10-26T10:29:14,EGV,,,,iPhone G6,107,,,, 500 | 499,2016-10-26T10:34:14,EGV,,,,iPhone G6,108,,,, 501 | 500,2016-10-26T10:39:14,EGV,,,,iPhone G6,115,,,, 502 | 501,2016-10-26T10:44:14,EGV,,,,iPhone G6,125,,,, 503 | 502,2016-10-26T10:49:14,EGV,,,,iPhone G6,130,,,, 504 | 503,2016-10-26T10:54:14,EGV,,,,iPhone G6,131,,,, 505 | 504,2016-10-26T10:59:14,EGV,,,,iPhone G6,130,,,, 506 | 505,2016-10-26T11:04:14,EGV,,,,iPhone G6,130,,,, 507 | 506,2016-10-26T11:09:14,EGV,,,,iPhone G6,132,,,, 508 | 507,2016-10-26T11:14:14,EGV,,,,iPhone G6,132,,,, 509 | 508,2016-10-26T11:19:14,EGV,,,,iPhone G6,130,,,, 510 | 509,2016-10-26T11:24:14,EGV,,,,iPhone G6,127,,,, 511 | 510,2016-10-26T11:29:14,EGV,,,,iPhone G6,124,,,, 512 | 511,2016-10-26T11:34:14,EGV,,,,iPhone G6,120,,,, 513 | 512,2016-10-26T11:39:14,EGV,,,,iPhone G6,117,,,, 514 | 513,2016-10-26T11:44:15,EGV,,,,iPhone G6,116,,,, 515 | 514,2016-10-26T11:49:15,EGV,,,,iPhone G6,114,,,, 516 | 515,2016-10-26T11:54:15,EGV,,,,iPhone G6,110,,,, 517 | 516,2016-10-26T11:59:15,EGV,,,,iPhone G6,105,,,, 518 | 517,2016-10-26T12:04:15,EGV,,,,iPhone G6,100,,,, 519 | 518,2016-10-26T12:09:15,EGV,,,,iPhone G6,98,,,, 520 | 519,2016-10-26T12:14:14,EGV,,,,iPhone G6,96,,,, 521 | 520,2016-10-26T12:19:14,EGV,,,,iPhone G6,91,,,, 522 | 521,2016-10-26T12:24:14,EGV,,,,iPhone G6,86,,,, 523 | 522,2016-10-26T12:29:14,EGV,,,,iPhone G6,84,,,, 524 | 523,2016-10-26T12:34:14,EGV,,,,iPhone G6,81,,,, 525 | 524,2016-10-26T12:39:14,EGV,,,,iPhone G6,78,,,, 526 | 525,2016-10-26T12:44:14,EGV,,,,iPhone G6,73,,,, 527 | 526,2016-10-26T12:49:14,EGV,,,,iPhone G6,70,,,, 528 | 527,2016-10-26T12:54:14,EGV,,,,iPhone G6,70,,,, 529 | 528,2016-10-26T12:59:14,EGV,,,,iPhone G6,74,,,, 530 | 529,2016-10-26T13:04:14,EGV,,,,iPhone G6,78,,,, 531 | 530,2016-10-26T13:09:15,EGV,,,,iPhone G6,80,,,, 532 | 531,2016-10-26T13:14:15,EGV,,,,iPhone G6,83,,,, 533 | 532,2016-10-26T13:19:14,EGV,,,,iPhone G6,87,,,, 534 | 533,2016-10-26T13:24:14,EGV,,,,iPhone G6,92,,,, 535 | 534,2016-10-26T13:29:14,EGV,,,,iPhone G6,95,,,, 536 | 535,2016-10-26T13:34:14,EGV,,,,iPhone G6,98,,,, 537 | 536,2016-10-26T13:39:14,EGV,,,,iPhone G6,99,,,, 538 | 537,2016-10-26T13:44:14,EGV,,,,iPhone G6,99,,,, 539 | 538,2016-10-26T13:49:14,EGV,,,,iPhone G6,99,,,, 540 | 539,2016-10-26T13:54:14,EGV,,,,iPhone G6,97,,,, 541 | 540,2016-10-26T13:59:14,EGV,,,,iPhone G6,98,,,, 542 | 541,2016-10-26T14:04:15,EGV,,,,iPhone G6,97,,,, 543 | 542,2016-10-26T14:09:14,EGV,,,,iPhone G6,95,,,, 544 | 543,2016-10-26T14:14:14,EGV,,,,iPhone G6,90,,,, 545 | 544,2016-10-26T14:19:14,EGV,,,,iPhone G6,86,,,, 546 | 545,2016-10-26T14:24:14,EGV,,,,iPhone G6,83,,,, 547 | 546,2016-10-26T14:29:14,EGV,,,,iPhone G6,82,,,, 548 | 547,2016-10-26T14:34:14,EGV,,,,iPhone G6,81,,,, 549 | 548,2016-10-26T14:39:15,EGV,,,,iPhone G6,81,,,, 550 | 549,2016-10-26T14:44:14,EGV,,,,iPhone G6,82,,,, 551 | 550,2016-10-26T14:49:15,EGV,,,,iPhone G6,84,,,, 552 | 551,2016-10-26T14:54:14,EGV,,,,iPhone G6,88,,,, 553 | 552,2016-10-26T14:59:14,EGV,,,,iPhone G6,91,,,, 554 | 553,2016-10-26T15:04:14,EGV,,,,iPhone G6,95,,,, 555 | 554,2016-10-26T15:09:14,EGV,,,,iPhone G6,93,,,, 556 | 555,2016-10-26T15:14:14,EGV,,,,iPhone G6,90,,,, 557 | 556,2016-10-26T15:19:14,EGV,,,,iPhone G6,86,,,, 558 | 557,2016-10-26T15:24:14,EGV,,,,iPhone G6,88,,,, 559 | 558,2016-10-26T15:29:14,EGV,,,,iPhone G6,94,,,, 560 | 559,2016-10-26T15:34:14,EGV,,,,iPhone G6,103,,,, 561 | 560,2016-10-26T15:39:15,EGV,,,,iPhone G6,105,,,, 562 | 561,2016-10-26T15:44:14,EGV,,,,iPhone G6,100,,,, 563 | 562,2016-10-26T15:49:14,EGV,,,,iPhone G6,92,,,, 564 | 563,2016-10-26T15:54:14,EGV,,,,iPhone G6,87,,,, 565 | 564,2016-10-26T15:59:15,EGV,,,,iPhone G6,88,,,, 566 | 565,2016-10-26T16:04:14,EGV,,,,iPhone G6,90,,,, 567 | 566,2016-10-26T16:09:14,EGV,,,,iPhone G6,91,,,, 568 | 567,2016-10-26T16:14:15,EGV,,,,iPhone G6,91,,,, 569 | 568,2016-10-26T16:19:14,EGV,,,,iPhone G6,91,,,, 570 | 569,2016-10-26T16:24:14,EGV,,,,iPhone G6,93,,,, 571 | 570,2016-10-26T16:29:14,EGV,,,,iPhone G6,96,,,, 572 | 571,2016-10-26T16:34:14,EGV,,,,iPhone G6,98,,,, 573 | 572,2016-10-26T16:39:15,EGV,,,,iPhone G6,97,,,, 574 | 573,2016-10-26T16:44:14,EGV,,,,iPhone G6,92,,,, 575 | 574,2016-10-26T16:49:15,EGV,,,,iPhone G6,89,,,, 576 | 575,2016-10-26T16:54:15,EGV,,,,iPhone G6,87,,,, 577 | 576,2016-10-26T16:59:15,EGV,,,,iPhone G6,87,,,, 578 | 577,2016-10-26T17:04:14,EGV,,,,iPhone G6,87,,,, 579 | 578,2016-10-26T17:09:14,EGV,,,,iPhone G6,87,,,, 580 | 579,2016-10-26T17:14:14,EGV,,,,iPhone G6,87,,,, 581 | 580,2016-10-26T17:19:14,EGV,,,,iPhone G6,85,,,, 582 | 581,2016-10-26T17:24:14,EGV,,,,iPhone G6,81,,,, 583 | 582,2016-10-26T17:29:14,EGV,,,,iPhone G6,76,,,, 584 | 583,2016-10-26T17:34:14,EGV,,,,iPhone G6,72,,,, 585 | 584,2016-10-26T17:39:13,EGV,,,,iPhone G6,69,,,, 586 | 585,2016-10-26T17:44:13,EGV,,,,iPhone G6,69,,,, 587 | 586,2016-10-26T17:49:13,EGV,,,,iPhone G6,72,,,, 588 | 587,2016-10-26T17:54:14,EGV,,,,iPhone G6,74,,,, 589 | 588,2016-10-26T17:59:15,EGV,,,,iPhone G6,74,,,, 590 | 589,2016-10-26T18:04:15,EGV,,,,iPhone G6,74,,,, 591 | 590,2016-10-26T18:09:14,EGV,,,,iPhone G6,74,,,, 592 | 591,2016-10-26T18:14:14,EGV,,,,iPhone G6,74,,,, 593 | 592,2016-10-26T18:19:13,EGV,,,,iPhone G6,74,,,, 594 | 593,2016-10-26T18:24:13,EGV,,,,iPhone G6,74,,,, 595 | 594,2016-10-26T18:29:13,EGV,,,,iPhone G6,76,,,, 596 | 595,2016-10-26T18:34:14,EGV,,,,iPhone G6,80,,,, 597 | 596,2016-10-26T18:39:14,EGV,,,,iPhone G6,84,,,, 598 | 597,2016-10-26T18:44:13,EGV,,,,iPhone G6,86,,,, 599 | 598,2016-10-26T18:49:13,EGV,,,,iPhone G6,90,,,, 600 | 599,2016-10-26T18:54:13,EGV,,,,iPhone G6,96,,,, 601 | 600,2016-10-26T18:59:13,EGV,,,,iPhone G6,103,,,, 602 | 601,2016-10-26T19:04:14,EGV,,,,iPhone G6,109,,,, 603 | 602,2016-10-26T19:09:13,EGV,,,,iPhone G6,112,,,, 604 | 603,2016-10-26T19:14:14,EGV,,,,iPhone G6,114,,,, 605 | 604,2016-10-26T19:19:14,EGV,,,,iPhone G6,117,,,, 606 | 605,2016-10-26T19:24:13,EGV,,,,iPhone G6,123,,,, 607 | 606,2016-10-26T19:29:14,EGV,,,,iPhone G6,126,,,, 608 | 607,2016-10-26T19:34:14,EGV,,,,iPhone G6,123,,,, 609 | 608,2016-10-26T19:39:14,EGV,,,,iPhone G6,117,,,, 610 | 609,2016-10-26T19:44:14,EGV,,,,iPhone G6,111,,,, 611 | 610,2016-10-26T19:49:14,EGV,,,,iPhone G6,107,,,, 612 | 611,2016-10-26T19:54:14,EGV,,,,iPhone G6,102,,,, 613 | 612,2016-10-26T19:59:15,EGV,,,,iPhone G6,97,,,, 614 | 613,2016-10-26T20:04:14,EGV,,,,iPhone G6,91,,,, 615 | 614,2016-10-26T20:09:14,EGV,,,,iPhone G6,87,,,, 616 | 615,2016-10-26T20:14:15,EGV,,,,iPhone G6,82,,,, 617 | 616,2016-10-26T20:19:15,EGV,,,,iPhone G6,80,,,, 618 | 617,2016-10-26T20:24:14,EGV,,,,iPhone G6,79,,,, 619 | 618,2016-10-26T20:29:13,EGV,,,,iPhone G6,80,,,, 620 | 619,2016-10-26T20:34:13,EGV,,,,iPhone G6,80,,,, 621 | 620,2016-10-26T20:39:13,EGV,,,,iPhone G6,80,,,, 622 | 621,2016-10-26T20:44:13,EGV,,,,iPhone G6,80,,,, 623 | 622,2016-10-26T20:49:13,EGV,,,,iPhone G6,80,,,, 624 | 623,2016-10-26T20:54:14,EGV,,,,iPhone G6,81,,,, 625 | 624,2016-10-26T20:59:13,EGV,,,,iPhone G6,82,,,, 626 | 625,2016-10-26T21:04:13,EGV,,,,iPhone G6,83,,,, 627 | 626,2016-10-26T21:09:14,EGV,,,,iPhone G6,83,,,, 628 | 627,2016-10-26T21:14:14,EGV,,,,iPhone G6,83,,,, 629 | 628,2016-10-26T21:19:14,EGV,,,,iPhone G6,82,,,, 630 | 629,2016-10-26T21:24:13,EGV,,,,iPhone G6,81,,,, 631 | 630,2016-10-26T21:29:14,EGV,,,,iPhone G6,78,,,, 632 | 631,2016-10-26T21:34:14,EGV,,,,iPhone G6,78,,,, 633 | 632,2016-10-26T21:39:13,EGV,,,,iPhone G6,80,,,, 634 | 633,2016-10-26T21:44:12,EGV,,,,iPhone G6,83,,,, 635 | 634,2016-10-26T21:49:12,EGV,,,,iPhone G6,85,,,, 636 | 635,2016-10-26T21:54:12,EGV,,,,iPhone G6,85,,,, 637 | 636,2016-10-26T21:59:13,EGV,,,,iPhone G6,85,,,, 638 | 637,2016-10-26T22:04:12,EGV,,,,iPhone G6,86,,,, 639 | 638,2016-10-26T22:09:12,EGV,,,,iPhone G6,88,,,, 640 | 639,2016-10-26T22:14:12,EGV,,,,iPhone G6,91,,,, 641 | 640,2016-10-26T22:19:13,EGV,,,,iPhone G6,93,,,, 642 | 641,2016-10-26T22:24:13,EGV,,,,iPhone G6,94,,,, 643 | 642,2016-10-26T22:29:12,EGV,,,,iPhone G6,94,,,, 644 | 643,2016-10-26T22:34:13,EGV,,,,iPhone G6,95,,,, 645 | 644,2016-10-26T22:39:12,EGV,,,,iPhone G6,97,,,, 646 | 645,2016-10-26T22:44:12,EGV,,,,iPhone G6,99,,,, 647 | 646,2016-10-26T22:49:12,EGV,,,,iPhone G6,100,,,, 648 | 647,2016-10-26T22:54:13,EGV,,,,iPhone G6,101,,,, 649 | 648,2016-10-26T22:59:13,EGV,,,,iPhone G6,102,,,, 650 | 649,2016-10-26T23:04:13,EGV,,,,iPhone G6,102,,,, 651 | 650,2016-10-26T23:09:14,EGV,,,,iPhone G6,101,,,, 652 | 651,2016-10-26T23:14:13,EGV,,,,iPhone G6,100,,,, 653 | 652,2016-10-26T23:19:14,EGV,,,,iPhone G6,98,,,, 654 | 653,2016-10-26T23:24:14,EGV,,,,iPhone G6,97,,,, 655 | 654,2016-10-26T23:29:14,EGV,,,,iPhone G6,97,,,, 656 | 655,2016-10-26T23:34:13,EGV,,,,iPhone G6,98,,,, 657 | 656,2016-10-26T23:39:14,EGV,,,,iPhone G6,99,,,, 658 | 657,2016-10-26T23:44:13,EGV,,,,iPhone G6,101,,,, 659 | 658,2016-10-26T23:49:13,EGV,,,,iPhone G6,104,,,, 660 | 659,2016-10-26T23:54:14,EGV,,,,iPhone G6,107,,,, 661 | 660,2016-10-26T23:59:13,EGV,,,,iPhone G6,106,,,, 662 | 661,2016-10-27T00:04:14,EGV,,,,iPhone G6,105,,,, 663 | 662,2016-10-27T00:09:14,EGV,,,,iPhone G6,105,,,, 664 | 663,2016-10-27T00:14:13,EGV,,,,iPhone G6,106,,,, 665 | 664,2016-10-27T00:19:13,EGV,,,,iPhone G6,107,,,, 666 | 665,2016-10-27T00:24:13,EGV,,,,iPhone G6,108,,,, 667 | 666,2016-10-27T00:29:14,EGV,,,,iPhone G6,108,,,, 668 | 667,2016-10-27T00:34:14,EGV,,,,iPhone G6,109,,,, 669 | 668,2016-10-27T00:39:13,EGV,,,,iPhone G6,109,,,, 670 | 669,2016-10-27T00:44:14,EGV,,,,iPhone G6,110,,,, 671 | 670,2016-10-27T00:49:14,EGV,,,,iPhone G6,111,,,, 672 | 671,2016-10-27T00:54:13,EGV,,,,iPhone G6,111,,,, 673 | 672,2016-10-27T00:59:14,EGV,,,,iPhone G6,108,,,, 674 | 673,2016-10-27T01:04:14,EGV,,,,iPhone G6,104,,,, 675 | 674,2016-10-27T01:09:13,EGV,,,,iPhone G6,99,,,, 676 | 675,2016-10-27T01:14:13,EGV,,,,iPhone G6,98,,,, 677 | 676,2016-10-27T01:19:14,EGV,,,,iPhone G6,101,,,, 678 | 677,2016-10-27T01:24:14,EGV,,,,iPhone G6,106,,,, 679 | 678,2016-10-27T01:29:14,EGV,,,,iPhone G6,110,,,, 680 | 679,2016-10-27T01:34:14,EGV,,,,iPhone G6,112,,,, 681 | 680,2016-10-27T01:39:14,EGV,,,,iPhone G6,112,,,, 682 | 681,2016-10-27T01:44:14,EGV,,,,iPhone G6,112,,,, 683 | 682,2016-10-27T01:49:14,EGV,,,,iPhone G6,112,,,, 684 | 683,2016-10-27T01:54:13,EGV,,,,iPhone G6,113,,,, 685 | 684,2016-10-27T01:59:14,EGV,,,,iPhone G6,113,,,, 686 | 685,2016-10-27T02:04:14,EGV,,,,iPhone G6,112,,,, 687 | 686,2016-10-27T02:09:14,EGV,,,,iPhone G6,112,,,, 688 | 687,2016-10-27T02:14:14,EGV,,,,iPhone G6,111,,,, 689 | 688,2016-10-27T02:19:14,EGV,,,,iPhone G6,110,,,, 690 | 689,2016-10-27T02:24:14,EGV,,,,iPhone G6,110,,,, 691 | 690,2016-10-27T02:29:14,EGV,,,,iPhone G6,109,,,, 692 | 691,2016-10-27T02:34:14,EGV,,,,iPhone G6,109,,,, 693 | 692,2016-10-27T02:39:14,EGV,,,,iPhone G6,109,,,, 694 | 693,2016-10-27T02:44:13,EGV,,,,iPhone G6,109,,,, 695 | 694,2016-10-27T02:49:12,EGV,,,,iPhone G6,110,,,, 696 | 695,2016-10-27T02:54:12,EGV,,,,iPhone G6,110,,,, 697 | 696,2016-10-27T02:59:13,EGV,,,,iPhone G6,109,,,, 698 | 697,2016-10-27T03:04:12,EGV,,,,iPhone G6,109,,,, 699 | 698,2016-10-27T03:09:13,EGV,,,,iPhone G6,108,,,, 700 | 699,2016-10-27T03:14:13,EGV,,,,iPhone G6,107,,,, 701 | 700,2016-10-27T03:19:13,EGV,,,,iPhone G6,107,,,, 702 | 701,2016-10-27T03:24:13,EGV,,,,iPhone G6,105,,,, 703 | 702,2016-10-27T03:29:12,EGV,,,,iPhone G6,103,,,, 704 | 703,2016-10-27T03:34:13,EGV,,,,iPhone G6,101,,,, 705 | 704,2016-10-27T03:39:13,EGV,,,,iPhone G6,100,,,, 706 | 705,2016-10-27T03:44:12,EGV,,,,iPhone G6,100,,,, 707 | 706,2016-10-27T03:49:12,EGV,,,,iPhone G6,101,,,, 708 | 707,2016-10-27T03:54:13,EGV,,,,iPhone G6,102,,,, 709 | 708,2016-10-27T03:59:13,EGV,,,,iPhone G6,102,,,, 710 | 709,2016-10-27T04:04:13,EGV,,,,iPhone G6,102,,,, 711 | 710,2016-10-27T04:09:13,EGV,,,,iPhone G6,103,,,, 712 | 711,2016-10-27T04:14:13,EGV,,,,iPhone G6,104,,,, 713 | 712,2016-10-27T04:19:13,EGV,,,,iPhone G6,105,,,, 714 | 713,2016-10-27T04:24:12,EGV,,,,iPhone G6,105,,,, 715 | 714,2016-10-27T04:29:12,EGV,,,,iPhone G6,104,,,, 716 | 715,2016-10-27T04:34:11,EGV,,,,iPhone G6,104,,,, 717 | 716,2016-10-27T04:39:12,EGV,,,,iPhone G6,104,,,, 718 | 717,2016-10-27T04:44:11,EGV,,,,iPhone G6,104,,,, 719 | 718,2016-10-27T04:49:12,EGV,,,,iPhone G6,104,,,, 720 | 719,2016-10-27T04:54:12,EGV,,,,iPhone G6,105,,,, 721 | 720,2016-10-27T04:59:11,EGV,,,,iPhone G6,105,,,, 722 | 721,2016-10-27T05:04:12,EGV,,,,iPhone G6,105,,,, 723 | 722,2016-10-27T05:09:12,EGV,,,,iPhone G6,105,,,, 724 | 723,2016-10-27T05:14:12,EGV,,,,iPhone G6,105,,,, 725 | 724,2016-10-27T05:19:12,EGV,,,,iPhone G6,105,,,, 726 | 725,2016-10-27T05:24:12,EGV,,,,iPhone G6,104,,,, 727 | 726,2016-10-27T05:29:12,EGV,,,,iPhone G6,103,,,, 728 | 727,2016-10-27T05:34:11,EGV,,,,iPhone G6,102,,,, 729 | 728,2016-10-27T05:39:11,EGV,,,,iPhone G6,102,,,, 730 | 729,2016-10-27T05:44:11,EGV,,,,iPhone G6,103,,,, 731 | 730,2016-10-27T05:49:12,EGV,,,,iPhone G6,107,,,, 732 | 731,2016-10-27T05:54:12,EGV,,,,iPhone G6,117,,,, 733 | 732,2016-10-27T05:59:12,EGV,,,,iPhone G6,130,,,, 734 | 733,2016-10-27T06:04:11,EGV,,,,iPhone G6,147,,,, 735 | 734,2016-10-27T06:09:12,EGV,,,,iPhone G6,165,,,, 736 | 735,2016-10-27T06:14:12,EGV,,,,iPhone G6,183,,,, 737 | 736,2016-10-27T06:19:12,EGV,,,,iPhone G6,195,,,, 738 | 737,2016-10-27T06:24:12,EGV,,,,iPhone G6,202,,,, 739 | 738,2016-10-27T06:29:11,EGV,,,,iPhone G6,204,,,, 740 | 739,2016-10-27T06:34:12,EGV,,,,iPhone G6,202,,,, 741 | 740,2016-10-27T06:39:12,EGV,,,,iPhone G6,192,,,, 742 | 741,2016-10-27T06:44:11,EGV,,,,iPhone G6,179,,,, 743 | 742,2016-10-27T06:49:11,EGV,,,,iPhone G6,166,,,, 744 | 743,2016-10-27T06:54:11,EGV,,,,iPhone G6,155,,,, 745 | 744,2016-10-27T06:59:12,EGV,,,,iPhone G6,146,,,, 746 | 745,2016-10-27T07:04:12,EGV,,,,iPhone G6,142,,,, 747 | 746,2016-10-27T07:09:12,EGV,,,,iPhone G6,144,,,, 748 | 747,2016-10-27T07:14:12,EGV,,,,iPhone G6,152,,,, 749 | 748,2016-10-27T07:19:12,EGV,,,,iPhone G6,161,,,, 750 | 749,2016-10-27T07:24:12,EGV,,,,iPhone G6,165,,,, 751 | 750,2016-10-27T07:29:12,EGV,,,,iPhone G6,163,,,, 752 | 751,2016-10-27T07:34:12,EGV,,,,iPhone G6,155,,,, 753 | 752,2016-10-27T07:39:12,EGV,,,,iPhone G6,146,,,, 754 | 753,2016-10-27T07:44:12,EGV,,,,iPhone G6,131,,,, 755 | 754,2016-10-27T07:49:11,EGV,,,,iPhone G6,118,,,, 756 | 755,2016-10-27T07:54:12,EGV,,,,iPhone G6,105,,,, 757 | 756,2016-10-27T07:59:12,EGV,,,,iPhone G6,95,,,, 758 | 757,2016-10-27T08:04:11,EGV,,,,iPhone G6,85,,,, 759 | 758,2016-10-27T08:09:11,EGV,,,,iPhone G6,75,,,, 760 | 759,2016-10-27T08:14:12,EGV,,,,iPhone G6,70,,,, 761 | 760,2016-10-27T08:19:11,EGV,,,,iPhone G6,67,,,, 762 | 761,2016-10-27T08:24:12,EGV,,,,iPhone G6,66,,,, 763 | 762,2016-10-27T08:29:12,EGV,,,,iPhone G6,65,,,, 764 | 763,2016-10-27T08:34:12,EGV,,,,iPhone G6,63,,,, 765 | 764,2016-10-27T08:39:12,EGV,,,,iPhone G6,65,,,, 766 | 765,2016-10-27T08:44:12,EGV,,,,iPhone G6,67,,,, 767 | 766,2016-10-27T08:49:12,EGV,,,,iPhone G6,71,,,, 768 | 767,2016-10-27T08:54:12,EGV,,,,iPhone G6,75,,,, 769 | 768,2016-10-27T08:59:12,EGV,,,,iPhone G6,79,,,, 770 | 769,2016-10-27T09:04:12,EGV,,,,iPhone G6,85,,,, 771 | 770,2016-10-27T09:09:12,EGV,,,,iPhone G6,91,,,, 772 | 771,2016-10-27T09:14:12,EGV,,,,iPhone G6,98,,,, 773 | 772,2016-10-27T09:19:12,EGV,,,,iPhone G6,104,,,, 774 | 773,2016-10-27T09:24:12,EGV,,,,iPhone G6,111,,,, 775 | 774,2016-10-27T09:29:12,EGV,,,,iPhone G6,116,,,, 776 | 775,2016-10-27T09:34:12,EGV,,,,iPhone G6,121,,,, 777 | 776,2016-10-27T09:39:12,EGV,,,,iPhone G6,123,,,, 778 | 777,2016-10-27T09:44:12,EGV,,,,iPhone G6,122,,,, 779 | 778,2016-10-27T09:49:12,EGV,,,,iPhone G6,120,,,, 780 | 779,2016-10-27T09:54:12,EGV,,,,iPhone G6,119,,,, 781 | 780,2016-10-27T09:59:12,EGV,,,,iPhone G6,119,,,, 782 | 781,2016-10-27T10:04:12,EGV,,,,iPhone G6,119,,,, 783 | 782,2016-10-27T10:09:12,EGV,,,,iPhone G6,116,,,, 784 | 783,2016-10-27T10:14:12,EGV,,,,iPhone G6,110,,,, 785 | 784,2016-10-27T10:19:12,EGV,,,,iPhone G6,104,,,, 786 | 785,2016-10-27T10:24:12,EGV,,,,iPhone G6,100,,,, 787 | 786,2016-10-27T10:29:12,EGV,,,,iPhone G6,97,,,, 788 | 787,2016-10-27T10:34:12,EGV,,,,iPhone G6,98,,,, 789 | 788,2016-10-27T10:39:13,EGV,,,,iPhone G6,100,,,, 790 | 789,2016-10-27T10:44:13,EGV,,,,iPhone G6,103,,,, 791 | 790,2016-10-27T10:49:13,EGV,,,,iPhone G6,104,,,, 792 | 791,2016-10-27T10:54:13,EGV,,,,iPhone G6,104,,,, 793 | 792,2016-10-27T10:59:13,EGV,,,,iPhone G6,103,,,, 794 | 793,2016-10-27T11:04:13,EGV,,,,iPhone G6,103,,,, 795 | 794,2016-10-27T11:09:13,EGV,,,,iPhone G6,103,,,, 796 | 795,2016-10-27T11:14:13,EGV,,,,iPhone G6,101,,,, 797 | 796,2016-10-27T11:19:13,EGV,,,,iPhone G6,98,,,, 798 | 797,2016-10-27T11:24:13,EGV,,,,iPhone G6,96,,,, 799 | 798,2016-10-27T11:29:13,EGV,,,,iPhone G6,94,,,, 800 | 799,2016-10-27T11:34:13,EGV,,,,iPhone G6,96,,,, 801 | 800,2016-10-27T11:39:13,EGV,,,,iPhone G6,101,,,, 802 | 801,2016-10-27T11:44:13,EGV,,,,iPhone G6,108,,,, 803 | 802,2016-10-27T11:49:13,EGV,,,,iPhone G6,111,,,, 804 | 803,2016-10-27T11:54:13,EGV,,,,iPhone G6,112,,,, 805 | 804,2016-10-27T11:59:13,EGV,,,,iPhone G6,110,,,, 806 | 805,2016-10-27T12:04:13,EGV,,,,iPhone G6,108,,,, 807 | 806,2016-10-27T12:09:13,EGV,,,,iPhone G6,106,,,, 808 | 807,2016-10-27T12:14:13,EGV,,,,iPhone G6,106,,,, 809 | 808,2016-10-27T12:19:13,EGV,,,,iPhone G6,105,,,, 810 | 809,2016-10-27T12:24:13,EGV,,,,iPhone G6,105,,,, 811 | 810,2016-10-27T12:29:13,EGV,,,,iPhone G6,105,,,, 812 | 811,2016-10-27T12:34:13,EGV,,,,iPhone G6,105,,,, 813 | 812,2016-10-27T12:39:12,EGV,,,,iPhone G6,104,,,, 814 | 813,2016-10-27T12:44:12,EGV,,,,iPhone G6,103,,,, 815 | 814,2016-10-27T12:49:12,EGV,,,,iPhone G6,103,,,, 816 | 815,2016-10-27T12:54:12,EGV,,,,iPhone G6,103,,,, 817 | 816,2016-10-27T12:59:12,EGV,,,,iPhone G6,101,,,, 818 | 817,2016-10-27T13:04:12,EGV,,,,iPhone G6,99,,,, 819 | 818,2016-10-27T13:09:12,EGV,,,,iPhone G6,95,,,, 820 | 819,2016-10-27T13:14:12,EGV,,,,iPhone G6,95,,,, 821 | 820,2016-10-27T13:19:12,EGV,,,,iPhone G6,101,,,, 822 | 821,2016-10-27T13:24:12,EGV,,,,iPhone G6,114,,,, 823 | 822,2016-10-27T13:29:12,EGV,,,,iPhone G6,130,,,, 824 | 823,2016-10-27T13:34:12,EGV,,,,iPhone G6,146,,,, 825 | 824,2016-10-27T13:39:12,EGV,,,,iPhone G6,162,,,, 826 | 825,2016-10-27T13:44:13,EGV,,,,iPhone G6,174,,,, 827 | 826,2016-10-27T13:49:12,EGV,,,,iPhone G6,186,,,, 828 | 827,2016-10-27T13:54:12,EGV,,,,iPhone G6,196,,,, 829 | 828,2016-10-27T13:59:12,EGV,,,,iPhone G6,206,,,, 830 | 829,2016-10-27T14:04:12,EGV,,,,iPhone G6,213,,,, 831 | 830,2016-10-27T14:09:12,EGV,,,,iPhone G6,215,,,, 832 | 831,2016-10-27T14:14:12,EGV,,,,iPhone G6,213,,,, 833 | 832,2016-10-27T14:19:13,EGV,,,,iPhone G6,209,,,, 834 | 833,2016-10-27T14:24:12,EGV,,,,iPhone G6,206,,,, 835 | 834,2016-10-27T14:29:12,EGV,,,,iPhone G6,205,,,, 836 | 835,2016-10-27T14:34:13,EGV,,,,iPhone G6,204,,,, 837 | 836,2016-10-27T14:39:12,EGV,,,,iPhone G6,202,,,, 838 | 837,2016-10-27T14:44:12,EGV,,,,iPhone G6,201,,,, 839 | 838,2016-10-27T14:49:12,EGV,,,,iPhone G6,199,,,, 840 | 839,2016-10-27T14:54:11,EGV,,,,iPhone G6,198,,,, 841 | 840,2016-10-27T14:59:11,EGV,,,,iPhone G6,199,,,, 842 | 841,2016-10-27T15:04:11,EGV,,,,iPhone G6,201,,,, 843 | 842,2016-10-27T15:09:11,EGV,,,,iPhone G6,203,,,, 844 | 843,2016-10-27T15:14:11,EGV,,,,iPhone G6,204,,,, 845 | 844,2016-10-27T15:19:11,EGV,,,,iPhone G6,204,,,, 846 | 845,2016-10-27T15:24:11,EGV,,,,iPhone G6,203,,,, 847 | 846,2016-10-27T15:29:11,EGV,,,,iPhone G6,200,,,, 848 | 847,2016-10-27T15:34:11,EGV,,,,iPhone G6,197,,,, 849 | 848,2016-10-27T15:39:12,EGV,,,,iPhone G6,189,,,, 850 | 849,2016-10-27T15:44:12,EGV,,,,iPhone G6,176,,,, 851 | 850,2016-10-27T15:49:12,EGV,,,,iPhone G6,163,,,, 852 | 851,2016-10-27T15:54:12,EGV,,,,iPhone G6,152,,,, 853 | 852,2016-10-27T15:59:11,EGV,,,,iPhone G6,144,,,, 854 | 853,2016-10-27T16:04:11,EGV,,,,iPhone G6,139,,,, 855 | 854,2016-10-27T16:09:12,EGV,,,,iPhone G6,137,,,, 856 | 855,2016-10-27T16:14:11,EGV,,,,iPhone G6,138,,,, 857 | 856,2016-10-27T16:19:11,EGV,,,,iPhone G6,144,,,, 858 | 857,2016-10-27T16:24:12,EGV,,,,iPhone G6,154,,,, 859 | 858,2016-10-27T16:29:12,EGV,,,,iPhone G6,165,,,, 860 | 859,2016-10-27T16:34:12,EGV,,,,iPhone G6,172,,,, 861 | 860,2016-10-27T16:39:12,EGV,,,,iPhone G6,173,,,, 862 | 861,2016-10-27T16:44:12,EGV,,,,iPhone G6,169,,,, 863 | 862,2016-10-27T16:49:13,EGV,,,,iPhone G6,163,,,, 864 | 863,2016-10-27T16:54:12,EGV,,,,iPhone G6,156,,,, 865 | 864,2016-10-27T16:59:13,EGV,,,,iPhone G6,150,,,, 866 | 865,2016-10-27T17:04:12,EGV,,,,iPhone G6,145,,,, 867 | 866,2016-10-27T17:09:12,EGV,,,,iPhone G6,141,,,, 868 | 867,2016-10-27T17:14:12,EGV,,,,iPhone G6,137,,,, 869 | 868,2016-10-27T17:19:12,EGV,,,,iPhone G6,130,,,, 870 | 869,2016-10-27T17:24:12,EGV,,,,iPhone G6,125,,,, 871 | 870,2016-10-27T17:29:12,EGV,,,,iPhone G6,120,,,, 872 | 871,2016-10-27T17:34:12,EGV,,,,iPhone G6,120,,,, 873 | 872,2016-10-27T17:39:13,EGV,,,,iPhone G6,123,,,, 874 | 873,2016-10-27T17:44:12,EGV,,,,iPhone G6,127,,,, 875 | 874,2016-10-27T17:49:12,EGV,,,,iPhone G6,132,,,, 876 | 875,2016-10-27T17:54:12,EGV,,,,iPhone G6,138,,,, 877 | 876,2016-10-27T17:59:13,EGV,,,,iPhone G6,146,,,, 878 | 877,2016-10-27T18:04:12,EGV,,,,iPhone G6,153,,,, 879 | 878,2016-10-27T18:09:12,EGV,,,,iPhone G6,157,,,, 880 | 879,2016-10-27T18:14:12,EGV,,,,iPhone G6,159,,,, 881 | 880,2016-10-27T18:19:12,EGV,,,,iPhone G6,160,,,, 882 | 881,2016-10-27T18:24:13,EGV,,,,iPhone G6,159,,,, 883 | 882,2016-10-27T18:29:12,EGV,,,,iPhone G6,157,,,, 884 | 883,2016-10-27T18:34:12,EGV,,,,iPhone G6,154,,,, 885 | 884,2016-10-27T18:39:13,EGV,,,,iPhone G6,150,,,, 886 | 885,2016-10-27T18:44:12,EGV,,,,iPhone G6,146,,,, 887 | 886,2016-10-27T18:49:13,EGV,,,,iPhone G6,142,,,, 888 | 887,2016-10-27T18:54:12,EGV,,,,iPhone G6,138,,,, 889 | 888,2016-10-27T18:59:12,EGV,,,,iPhone G6,131,,,, 890 | 889,2016-10-27T19:04:12,EGV,,,,iPhone G6,120,,,, 891 | 890,2016-10-27T19:09:12,EGV,,,,iPhone G6,111,,,, 892 | 891,2016-10-27T19:14:12,EGV,,,,iPhone G6,104,,,, 893 | 892,2016-10-27T19:19:12,EGV,,,,iPhone G6,102,,,, 894 | 893,2016-10-27T19:24:13,EGV,,,,iPhone G6,100,,,, 895 | 894,2016-10-27T19:29:12,EGV,,,,iPhone G6,100,,,, 896 | 895,2016-10-27T19:34:12,EGV,,,,iPhone G6,100,,,, 897 | 896,2016-10-27T19:39:13,EGV,,,,iPhone G6,100,,,, 898 | 897,2016-10-27T19:44:12,EGV,,,,iPhone G6,99,,,, 899 | 898,2016-10-27T19:49:13,EGV,,,,iPhone G6,100,,,, 900 | 899,2016-10-27T19:54:12,EGV,,,,iPhone G6,103,,,, 901 | 900,2016-10-27T19:59:12,EGV,,,,iPhone G6,106,,,, 902 | 901,2016-10-27T20:04:12,EGV,,,,iPhone G6,109,,,, 903 | 902,2016-10-27T20:09:13,EGV,,,,iPhone G6,109,,,, 904 | 903,2016-10-27T20:14:12,EGV,,,,iPhone G6,108,,,, 905 | 904,2016-10-27T20:19:13,EGV,,,,iPhone G6,105,,,, 906 | 905,2016-10-27T20:24:13,EGV,,,,iPhone G6,100,,,, 907 | 906,2016-10-27T20:29:13,EGV,,,,iPhone G6,96,,,, 908 | 907,2016-10-27T20:34:12,EGV,,,,iPhone G6,94,,,, 909 | 908,2016-10-27T20:39:13,EGV,,,,iPhone G6,95,,,, 910 | 909,2016-10-27T20:44:11,EGV,,,,iPhone G6,99,,,, 911 | 910,2016-10-27T20:49:12,EGV,,,,iPhone G6,103,,,, 912 | 911,2016-10-27T20:54:12,EGV,,,,iPhone G6,106,,,, 913 | 912,2016-10-27T20:59:12,EGV,,,,iPhone G6,107,,,, 914 | 913,2016-10-27T21:04:12,EGV,,,,iPhone G6,110,,,, 915 | 914,2016-10-27T21:09:12,EGV,,,,iPhone G6,113,,,, 916 | 915,2016-10-27T21:14:12,EGV,,,,iPhone G6,116,,,, 917 | 916,2016-10-27T21:19:12,EGV,,,,iPhone G6,117,,,, 918 | 917,2016-10-27T21:24:12,EGV,,,,iPhone G6,118,,,, 919 | 918,2016-10-27T21:29:12,EGV,,,,iPhone G6,119,,,, 920 | 919,2016-10-27T21:34:12,EGV,,,,iPhone G6,120,,,, 921 | 920,2016-10-27T21:39:12,EGV,,,,iPhone G6,121,,,, 922 | 921,2016-10-27T21:44:12,EGV,,,,iPhone G6,122,,,, 923 | 922,2016-10-27T21:49:12,EGV,,,,iPhone G6,123,,,, 924 | 923,2016-10-27T21:54:12,EGV,,,,iPhone G6,122,,,, 925 | 924,2016-10-27T21:59:12,EGV,,,,iPhone G6,121,,,, 926 | 925,2016-10-27T22:04:11,EGV,,,,iPhone G6,121,,,, 927 | 926,2016-10-27T22:09:11,EGV,,,,iPhone G6,122,,,, 928 | 927,2016-10-27T22:14:12,EGV,,,,iPhone G6,123,,,, 929 | 928,2016-10-27T22:19:12,EGV,,,,iPhone G6,125,,,, 930 | 929,2016-10-27T22:24:11,EGV,,,,iPhone G6,126,,,, 931 | 930,2016-10-27T22:29:11,EGV,,,,iPhone G6,126,,,, 932 | 931,2016-10-27T22:34:11,EGV,,,,iPhone G6,125,,,, 933 | 932,2016-10-27T22:39:12,EGV,,,,iPhone G6,125,,,, 934 | 933,2016-10-27T22:44:12,EGV,,,,iPhone G6,124,,,, 935 | 934,2016-10-27T22:49:12,EGV,,,,iPhone G6,123,,,, 936 | 935,2016-10-27T22:54:11,EGV,,,,iPhone G6,123,,,, 937 | 936,2016-10-27T22:59:11,EGV,,,,iPhone G6,123,,,, 938 | 937,2016-10-27T23:04:11,EGV,,,,iPhone G6,125,,,, 939 | 938,2016-10-27T23:09:12,EGV,,,,iPhone G6,125,,,, 940 | 939,2016-10-27T23:14:12,EGV,,,,iPhone G6,124,,,, 941 | 940,2016-10-27T23:19:11,EGV,,,,iPhone G6,123,,,, 942 | 941,2016-10-27T23:24:12,EGV,,,,iPhone G6,123,,,, 943 | 942,2016-10-27T23:29:12,EGV,,,,iPhone G6,124,,,, 944 | 943,2016-10-27T23:34:11,EGV,,,,iPhone G6,124,,,, 945 | 944,2016-10-27T23:39:11,EGV,,,,iPhone G6,124,,,, 946 | 945,2016-10-27T23:44:12,EGV,,,,iPhone G6,124,,,, 947 | 946,2016-10-27T23:49:11,EGV,,,,iPhone G6,124,,,, 948 | 947,2016-10-27T23:54:11,EGV,,,,iPhone G6,125,,,, 949 | 948,2016-10-27T23:59:09,EGV,,,,iPhone G6,126,,,, 950 | 949,2016-10-28T00:04:10,EGV,,,,iPhone G6,126,,,, 951 | 950,2016-10-28T00:09:10,EGV,,,,iPhone G6,126,,,, 952 | 951,2016-10-28T00:14:10,EGV,,,,iPhone G6,127,,,, 953 | 952,2016-10-28T00:19:10,EGV,,,,iPhone G6,126,,,, 954 | 953,2016-10-28T00:24:09,EGV,,,,iPhone G6,125,,,, 955 | 954,2016-10-28T00:29:12,EGV,,,,iPhone G6,123,,,, 956 | 955,2016-10-28T00:34:12,EGV,,,,iPhone G6,123,,,, 957 | 956,2016-10-28T00:39:11,EGV,,,,iPhone G6,123,,,, 958 | 957,2016-10-28T00:44:11,EGV,,,,iPhone G6,125,,,, 959 | 958,2016-10-28T00:49:11,EGV,,,,iPhone G6,126,,,, 960 | 959,2016-10-28T00:54:12,EGV,,,,iPhone G6,126,,,, 961 | 960,2016-10-28T00:59:11,EGV,,,,iPhone G6,125,,,, 962 | 961,2016-10-28T01:04:12,EGV,,,,iPhone G6,124,,,, 963 | 962,2016-10-28T01:09:10,EGV,,,,iPhone G6,124,,,, 964 | 963,2016-10-28T01:14:11,EGV,,,,iPhone G6,124,,,, 965 | 964,2016-10-28T01:19:10,EGV,,,,iPhone G6,124,,,, 966 | 965,2016-10-28T01:24:10,EGV,,,,iPhone G6,125,,,, 967 | 966,2016-10-28T01:29:11,EGV,,,,iPhone G6,125,,,, 968 | 967,2016-10-28T01:34:11,EGV,,,,iPhone G6,124,,,, 969 | 968,2016-10-28T01:39:11,EGV,,,,iPhone G6,124,,,, 970 | 969,2016-10-28T01:44:11,EGV,,,,iPhone G6,124,,,, 971 | 970,2016-10-28T01:49:11,EGV,,,,iPhone G6,125,,,, 972 | 971,2016-10-28T01:54:11,EGV,,,,iPhone G6,126,,,, 973 | 972,2016-10-28T01:59:11,EGV,,,,iPhone G6,127,,,, 974 | 973,2016-10-28T02:04:11,EGV,,,,iPhone G6,127,,,, 975 | 974,2016-10-28T02:09:11,EGV,,,,iPhone G6,127,,,, 976 | 975,2016-10-28T02:14:11,EGV,,,,iPhone G6,127,,,, 977 | 976,2016-10-28T02:19:10,EGV,,,,iPhone G6,126,,,, 978 | 977,2016-10-28T02:24:12,EGV,,,,iPhone G6,124,,,, 979 | 978,2016-10-28T02:29:12,EGV,,,,iPhone G6,122,,,, 980 | 979,2016-10-28T02:34:12,EGV,,,,iPhone G6,121,,,, 981 | 980,2016-10-28T02:39:12,EGV,,,,iPhone G6,121,,,, 982 | 981,2016-10-28T02:44:11,EGV,,,,iPhone G6,120,,,, 983 | 982,2016-10-28T02:49:12,EGV,,,,iPhone G6,119,,,, 984 | 983,2016-10-28T02:54:11,EGV,,,,iPhone G6,119,,,, 985 | 984,2016-10-28T02:59:11,EGV,,,,iPhone G6,119,,,, 986 | 985,2016-10-28T03:04:10,EGV,,,,iPhone G6,119,,,, 987 | 986,2016-10-28T03:09:11,EGV,,,,iPhone G6,119,,,, 988 | 987,2016-10-28T03:14:11,EGV,,,,iPhone G6,119,,,, 989 | 988,2016-10-28T03:19:11,EGV,,,,iPhone G6,119,,,, 990 | 989,2016-10-28T03:24:10,EGV,,,,iPhone G6,118,,,, 991 | 990,2016-10-28T03:29:11,EGV,,,,iPhone G6,118,,,, 992 | 991,2016-10-28T03:34:10,EGV,,,,iPhone G6,118,,,, 993 | 992,2016-10-28T03:39:10,EGV,,,,iPhone G6,117,,,, 994 | 993,2016-10-28T03:44:11,EGV,,,,iPhone G6,116,,,, 995 | 994,2016-10-28T03:49:11,EGV,,,,iPhone G6,116,,,, 996 | 995,2016-10-28T03:54:11,EGV,,,,iPhone G6,115,,,, 997 | 996,2016-10-28T03:59:10,EGV,,,,iPhone G6,115,,,, 998 | 997,2016-10-28T04:04:11,EGV,,,,iPhone G6,116,,,, 999 | 998,2016-10-28T04:09:10,EGV,,,,iPhone G6,117,,,, 1000 | 999,2016-10-28T04:14:11,EGV,,,,iPhone G6,118,,,, 1001 | 1000,2016-10-28T04:19:11,EGV,,,,iPhone G6,118,,,, 1002 | 1001,2016-10-28T04:24:11,EGV,,,,iPhone G6,117,,,, 1003 | 1002,2016-10-28T04:29:11,EGV,,,,iPhone G6,115,,,, 1004 | 1003,2016-10-28T04:34:10,EGV,,,,iPhone G6,111,,,, 1005 | 1004,2016-10-28T04:39:11,EGV,,,,iPhone G6,107,,,, 1006 | 1005,2016-10-28T04:44:10,EGV,,,,iPhone G6,107,,,, 1007 | 1006,2016-10-28T04:49:11,EGV,,,,iPhone G6,107,,,, 1008 | 1007,2016-10-28T04:54:10,EGV,,,,iPhone G6,110,,,, 1009 | 1008,2016-10-28T04:59:10,EGV,,,,iPhone G6,116,,,, 1010 | 1009,2016-10-28T05:04:10,EGV,,,,iPhone G6,126,,,, 1011 | 1010,2016-10-28T05:09:10,EGV,,,,iPhone G6,132,,,, 1012 | 1011,2016-10-28T05:14:10,EGV,,,,iPhone G6,129,,,, 1013 | 1012,2016-10-28T05:19:10,EGV,,,,iPhone G6,121,,,, 1014 | 1013,2016-10-28T05:24:10,EGV,,,,iPhone G6,110,,,, 1015 | 1014,2016-10-28T05:29:10,EGV,,,,iPhone G6,100,,,, 1016 | 1015,2016-10-28T05:34:11,EGV,,,,iPhone G6,92,,,, 1017 | 1016,2016-10-28T05:39:10,EGV,,,,iPhone G6,89,,,, 1018 | 1017,2016-10-28T05:44:11,EGV,,,,iPhone G6,91,,,, 1019 | 1018,2016-10-28T05:49:11,EGV,,,,iPhone G6,97,,,, 1020 | 1019,2016-10-28T05:54:11,EGV,,,,iPhone G6,100,,,, 1021 | 1020,2016-10-28T05:59:11,EGV,,,,iPhone G6,103,,,, 1022 | 1021,2016-10-28T06:04:11,EGV,,,,iPhone G6,104,,,, 1023 | 1022,2016-10-28T06:09:11,EGV,,,,iPhone G6,105,,,, 1024 | 1023,2016-10-28T06:14:10,EGV,,,,iPhone G6,104,,,, 1025 | 1024,2016-10-28T06:19:11,EGV,,,,iPhone G6,101,,,, 1026 | 1025,2016-10-28T06:24:11,EGV,,,,iPhone G6,99,,,, 1027 | 1026,2016-10-28T06:29:11,EGV,,,,iPhone G6,96,,,, 1028 | 1027,2016-10-28T06:34:11,EGV,,,,iPhone G6,95,,,, 1029 | 1028,2016-10-28T06:39:11,EGV,,,,iPhone G6,92,,,, 1030 | 1029,2016-10-28T06:44:11,EGV,,,,iPhone G6,87,,,, 1031 | 1030,2016-10-28T06:49:10,EGV,,,,iPhone G6,83,,,, 1032 | 1031,2016-10-28T06:54:10,EGV,,,,iPhone G6,83,,,, 1033 | 1032,2016-10-28T06:59:10,EGV,,,,iPhone G6,84,,,, 1034 | 1033,2016-10-28T07:04:11,EGV,,,,iPhone G6,87,,,, 1035 | 1034,2016-10-28T07:09:11,EGV,,,,iPhone G6,85,,,, 1036 | 1035,2016-10-28T07:14:11,EGV,,,,iPhone G6,83,,,, 1037 | 1036,2016-10-28T07:19:11,EGV,,,,iPhone G6,79,,,, 1038 | 1037,2016-10-28T07:24:11,EGV,,,,iPhone G6,76,,,, 1039 | 1038,2016-10-28T07:29:11,EGV,,,,iPhone G6,75,,,, 1040 | 1039,2016-10-28T07:34:11,EGV,,,,iPhone G6,76,,,, 1041 | 1040,2016-10-28T07:39:11,EGV,,,,iPhone G6,77,,,, 1042 | 1041,2016-10-28T07:44:11,EGV,,,,iPhone G6,81,,,, 1043 | 1042,2016-10-28T07:49:11,EGV,,,,iPhone G6,87,,,, 1044 | 1043,2016-10-28T07:54:11,EGV,,,,iPhone G6,94,,,, 1045 | 1044,2016-10-28T07:59:11,EGV,,,,iPhone G6,99,,,, 1046 | 1045,2016-10-28T08:04:11,EGV,,,,iPhone G6,102,,,, 1047 | 1046,2016-10-28T08:09:11,EGV,,,,iPhone G6,103,,,, 1048 | 1047,2016-10-28T08:14:11,EGV,,,,iPhone G6,103,,,, 1049 | 1048,2016-10-28T08:19:11,EGV,,,,iPhone G6,105,,,, 1050 | 1049,2016-10-28T08:24:11,EGV,,,,iPhone G6,109,,,, 1051 | 1050,2016-10-28T08:29:11,EGV,,,,iPhone G6,119,,,, 1052 | 1051,2016-10-28T08:34:11,EGV,,,,iPhone G6,137,,,, 1053 | 1052,2016-10-28T08:39:11,EGV,,,,iPhone G6,157,,,, 1054 | 1053,2016-10-28T08:44:11,EGV,,,,iPhone G6,170,,,, 1055 | 1054,2016-10-28T08:49:09,EGV,,,,iPhone G6,176,,,, 1056 | 1055,2016-10-28T08:54:09,EGV,,,,iPhone G6,171,,,, 1057 | 1056,2016-10-28T08:59:09,EGV,,,,iPhone G6,161,,,, 1058 | 1057,2016-10-28T09:04:09,EGV,,,,iPhone G6,141,,,, 1059 | 1058,2016-10-28T09:09:09,EGV,,,,iPhone G6,122,,,, 1060 | 1059,2016-10-28T09:14:09,EGV,,,,iPhone G6,111,,,, 1061 | 1060,2016-10-28T09:19:09,EGV,,,,iPhone G6,107,,,, 1062 | 1061,2016-10-28T09:24:09,EGV,,,,iPhone G6,106,,,, 1063 | 1062,2016-10-28T09:29:09,EGV,,,,iPhone G6,108,,,, 1064 | 1063,2016-10-28T09:34:09,EGV,,,,iPhone G6,111,,,, 1065 | 1064,2016-10-28T09:39:09,EGV,,,,iPhone G6,116,,,, 1066 | 1065,2016-10-28T09:44:09,EGV,,,,iPhone G6,119,,,, 1067 | 1066,2016-10-28T09:49:09,EGV,,,,iPhone G6,117,,,, 1068 | 1067,2016-10-28T09:54:09,EGV,,,,iPhone G6,111,,,, 1069 | 1068,2016-10-28T09:59:09,EGV,,,,iPhone G6,104,,,, 1070 | 1069,2016-10-28T10:04:10,EGV,,,,iPhone G6,103,,,, 1071 | 1070,2016-10-28T10:09:10,EGV,,,,iPhone G6,102,,,, 1072 | 1071,2016-10-28T10:14:10,EGV,,,,iPhone G6,99,,,, 1073 | 1072,2016-10-28T10:19:09,EGV,,,,iPhone G6,95,,,, 1074 | 1073,2016-10-28T10:24:10,EGV,,,,iPhone G6,92,,,, 1075 | 1074,2016-10-28T10:29:10,EGV,,,,iPhone G6,94,,,, 1076 | 1075,2016-10-28T10:34:10,EGV,,,,iPhone G6,97,,,, 1077 | 1076,2016-10-28T10:39:10,EGV,,,,iPhone G6,100,,,, 1078 | 1077,2016-10-28T10:44:10,EGV,,,,iPhone G6,99,,,, 1079 | 1078,2016-10-28T10:49:10,EGV,,,,iPhone G6,98,,,, 1080 | 1079,2016-10-28T10:54:10,EGV,,,,iPhone G6,96,,,, 1081 | 1080,2016-10-28T10:59:10,EGV,,,,iPhone G6,96,,,, 1082 | 1081,2016-10-28T11:04:10,EGV,,,,iPhone G6,96,,,, 1083 | 1082,2016-10-28T11:09:10,EGV,,,,iPhone G6,94,,,, 1084 | 1083,2016-10-28T11:14:10,EGV,,,,iPhone G6,91,,,, 1085 | 1084,2016-10-28T11:19:09,EGV,,,,iPhone G6,88,,,, 1086 | 1085,2016-10-28T11:24:10,EGV,,,,iPhone G6,87,,,, 1087 | 1086,2016-10-28T11:29:10,EGV,,,,iPhone G6,87,,,, 1088 | 1087,2016-10-28T11:34:10,EGV,,,,iPhone G6,88,,,, 1089 | 1088,2016-10-28T11:39:10,EGV,,,,iPhone G6,88,,,, 1090 | 1089,2016-10-28T11:44:10,EGV,,,,iPhone G6,87,,,, 1091 | 1090,2016-10-28T11:49:10,EGV,,,,iPhone G6,87,,,, 1092 | 1091,2016-10-28T11:54:10,EGV,,,,iPhone G6,83,,,, 1093 | 1092,2016-10-28T11:59:10,EGV,,,,iPhone G6,78,,,, 1094 | 1093,2016-10-28T12:04:10,EGV,,,,iPhone G6,76,,,, 1095 | 1094,2016-10-28T12:09:10,EGV,,,,iPhone G6,79,,,, 1096 | 1095,2016-10-28T12:14:10,EGV,,,,iPhone G6,91,,,, 1097 | 1096,2016-10-28T12:19:10,EGV,,,,iPhone G6,104,,,, 1098 | 1097,2016-10-28T12:24:11,EGV,,,,iPhone G6,118,,,, 1099 | 1098,2016-10-28T12:29:10,EGV,,,,iPhone G6,125,,,, 1100 | 1099,2016-10-28T12:34:10,EGV,,,,iPhone G6,129,,,, 1101 | 1100,2016-10-28T12:39:10,EGV,,,,iPhone G6,131,,,, 1102 | 1101,2016-10-28T12:44:10,EGV,,,,iPhone G6,134,,,, 1103 | 1102,2016-10-28T12:49:10,EGV,,,,iPhone G6,136,,,, 1104 | 1103,2016-10-28T12:54:10,EGV,,,,iPhone G6,138,,,, 1105 | 1104,2016-10-28T12:59:10,EGV,,,,iPhone G6,137,,,, 1106 | 1105,2016-10-28T13:04:09,EGV,,,,iPhone G6,135,,,, 1107 | 1106,2016-10-28T13:09:09,EGV,,,,iPhone G6,132,,,, 1108 | 1107,2016-10-28T13:14:10,EGV,,,,iPhone G6,129,,,, 1109 | 1108,2016-10-28T13:19:09,EGV,,,,iPhone G6,125,,,, 1110 | 1109,2016-10-28T13:24:09,EGV,,,,iPhone G6,119,,,, 1111 | 1110,2016-10-28T13:29:09,EGV,,,,iPhone G6,114,,,, 1112 | 1111,2016-10-28T13:34:09,EGV,,,,iPhone G6,107,,,, 1113 | 1112,2016-10-28T13:39:09,EGV,,,,iPhone G6,100,,,, 1114 | 1113,2016-10-28T13:44:09,EGV,,,,iPhone G6,94,,,, 1115 | 1114,2016-10-28T13:49:09,EGV,,,,iPhone G6,91,,,, 1116 | 1115,2016-10-28T13:54:09,EGV,,,,iPhone G6,94,,,, 1117 | 1116,2016-10-28T13:59:09,EGV,,,,iPhone G6,97,,,, 1118 | 1117,2016-10-28T14:04:10,EGV,,,,iPhone G6,101,,,, 1119 | 1118,2016-10-28T14:09:09,EGV,,,,iPhone G6,102,,,, 1120 | 1119,2016-10-28T14:14:09,EGV,,,,iPhone G6,103,,,, 1121 | 1120,2016-10-28T14:19:09,EGV,,,,iPhone G6,103,,,, 1122 | 1121,2016-10-28T14:24:09,EGV,,,,iPhone G6,101,,,, 1123 | 1122,2016-10-28T14:29:09,EGV,,,,iPhone G6,98,,,, 1124 | 1123,2016-10-28T14:34:09,EGV,,,,iPhone G6,95,,,, 1125 | 1124,2016-10-28T14:39:09,EGV,,,,iPhone G6,93,,,, 1126 | 1125,2016-10-28T14:44:10,EGV,,,,iPhone G6,92,,,, 1127 | 1126,2016-10-28T14:49:09,EGV,,,,iPhone G6,91,,,, 1128 | 1127,2016-10-28T14:54:09,EGV,,,,iPhone G6,90,,,, 1129 | 1128,2016-10-28T14:59:09,EGV,,,,iPhone G6,87,,,, 1130 | 1129,2016-10-28T15:04:09,EGV,,,,iPhone G6,86,,,, 1131 | 1130,2016-10-28T15:09:09,EGV,,,,iPhone G6,87,,,, 1132 | 1131,2016-10-28T15:14:09,EGV,,,,iPhone G6,90,,,, 1133 | 1132,2016-10-28T15:19:09,EGV,,,,iPhone G6,90,,,, 1134 | 1133,2016-10-28T15:24:09,EGV,,,,iPhone G6,95,,,, 1135 | 1134,2016-10-28T15:29:09,EGV,,,,iPhone G6,103,,,, 1136 | 1135,2016-10-28T15:34:09,EGV,,,,iPhone G6,114,,,, 1137 | 1136,2016-10-28T15:39:09,EGV,,,,iPhone G6,124,,,, 1138 | 1137,2016-10-28T15:44:09,EGV,,,,iPhone G6,133,,,, 1139 | 1138,2016-10-28T15:49:09,EGV,,,,iPhone G6,137,,,, 1140 | 1139,2016-10-28T15:54:09,EGV,,,,iPhone G6,138,,,, 1141 | 1140,2016-10-28T15:59:10,EGV,,,,iPhone G6,136,,,, 1142 | 1141,2016-10-28T16:04:09,EGV,,,,iPhone G6,133,,,, 1143 | 1142,2016-10-28T16:09:09,EGV,,,,iPhone G6,131,,,, 1144 | 1143,2016-10-28T16:14:09,EGV,,,,iPhone G6,129,,,, 1145 | 1144,2016-10-28T16:19:09,EGV,,,,iPhone G6,127,,,, 1146 | 1145,2016-10-28T16:24:09,EGV,,,,iPhone G6,124,,,, 1147 | 1146,2016-10-28T16:29:09,EGV,,,,iPhone G6,122,,,, 1148 | 1147,2016-10-28T16:34:10,EGV,,,,iPhone G6,122,,,, 1149 | 1148,2016-10-28T16:39:09,EGV,,,,iPhone G6,122,,,, 1150 | 1149,2016-10-28T16:44:09,EGV,,,,iPhone G6,122,,,, 1151 | 1150,2016-10-28T16:49:09,EGV,,,,iPhone G6,119,,,, 1152 | 1151,2016-10-28T16:54:09,EGV,,,,iPhone G6,111,,,, 1153 | 1152,2016-10-28T16:59:09,EGV,,,,iPhone G6,103,,,, 1154 | 1153,2016-10-28T17:04:10,EGV,,,,iPhone G6,100,,,, 1155 | 1154,2016-10-28T17:09:09,EGV,,,,iPhone G6,101,,,, 1156 | 1155,2016-10-28T17:14:10,EGV,,,,iPhone G6,103,,,, 1157 | 1156,2016-10-28T17:19:09,EGV,,,,iPhone G6,102,,,, 1158 | 1157,2016-10-28T17:24:09,EGV,,,,iPhone G6,101,,,, 1159 | 1158,2016-10-28T17:29:09,EGV,,,,iPhone G6,99,,,, 1160 | 1159,2016-10-28T17:34:09,EGV,,,,iPhone G6,99,,,, 1161 | 1160,2016-10-28T17:39:09,EGV,,,,iPhone G6,103,,,, 1162 | 1161,2016-10-28T17:44:09,EGV,,,,iPhone G6,113,,,, 1163 | 1162,2016-10-28T17:49:09,EGV,,,,iPhone G6,124,,,, 1164 | 1163,2016-10-28T17:54:09,EGV,,,,iPhone G6,131,,,, 1165 | 1164,2016-10-28T17:59:09,EGV,,,,iPhone G6,133,,,, 1166 | 1165,2016-10-28T18:04:09,EGV,,,,iPhone G6,132,,,, 1167 | 1166,2016-10-28T18:09:09,EGV,,,,iPhone G6,129,,,, 1168 | 1167,2016-10-28T18:14:09,EGV,,,,iPhone G6,127,,,, 1169 | 1168,2016-10-28T18:19:09,EGV,,,,iPhone G6,124,,,, 1170 | 1169,2016-10-28T18:24:09,EGV,,,,iPhone G6,122,,,, 1171 | 1170,2016-10-28T18:29:10,EGV,,,,iPhone G6,120,,,, 1172 | 1171,2016-10-28T18:34:09,EGV,,,,iPhone G6,118,,,, 1173 | 1172,2016-10-28T18:39:09,EGV,,,,iPhone G6,116,,,, 1174 | 1173,2016-10-28T18:44:09,EGV,,,,iPhone G6,114,,,, 1175 | 1174,2016-10-28T18:49:09,EGV,,,,iPhone G6,112,,,, 1176 | 1175,2016-10-28T18:54:10,EGV,,,,iPhone G6,112,,,, 1177 | 1176,2016-10-28T18:59:10,EGV,,,,iPhone G6,111,,,, 1178 | 1177,2016-10-28T19:04:10,EGV,,,,iPhone G6,108,,,, 1179 | 1178,2016-10-28T19:09:10,EGV,,,,iPhone G6,105,,,, 1180 | 1179,2016-10-28T19:14:10,EGV,,,,iPhone G6,103,,,, 1181 | 1180,2016-10-28T19:19:11,EGV,,,,iPhone G6,102,,,, 1182 | 1181,2016-10-28T19:24:10,EGV,,,,iPhone G6,98,,,, 1183 | 1182,2016-10-28T19:29:10,EGV,,,,iPhone G6,93,,,, 1184 | 1183,2016-10-28T19:34:11,EGV,,,,iPhone G6,86,,,, 1185 | 1184,2016-10-28T19:39:11,EGV,,,,iPhone G6,82,,,, 1186 | 1185,2016-10-28T19:44:10,EGV,,,,iPhone G6,80,,,, 1187 | 1186,2016-10-28T19:49:10,EGV,,,,iPhone G6,80,,,, 1188 | 1187,2016-10-28T19:54:10,EGV,,,,iPhone G6,81,,,, 1189 | 1188,2016-10-28T19:59:10,EGV,,,,iPhone G6,84,,,, 1190 | 1189,2016-10-28T20:04:10,EGV,,,,iPhone G6,87,,,, 1191 | 1190,2016-10-28T20:09:10,EGV,,,,iPhone G6,91,,,, 1192 | 1191,2016-10-28T20:14:10,EGV,,,,iPhone G6,95,,,, 1193 | 1192,2016-10-28T20:19:10,EGV,,,,iPhone G6,99,,,, 1194 | 1193,2016-10-28T20:24:11,EGV,,,,iPhone G6,104,,,, 1195 | 1194,2016-10-28T20:29:10,EGV,,,,iPhone G6,108,,,, 1196 | 1195,2016-10-28T20:34:11,EGV,,,,iPhone G6,113,,,, 1197 | 1196,2016-10-28T20:39:10,EGV,,,,iPhone G6,116,,,, 1198 | 1197,2016-10-28T20:44:10,EGV,,,,iPhone G6,117,,,, 1199 | 1198,2016-10-28T20:49:10,EGV,,,,iPhone G6,115,,,, 1200 | 1199,2016-10-28T20:54:10,EGV,,,,iPhone G6,111,,,, 1201 | 1200,2016-10-28T20:59:10,EGV,,,,iPhone G6,109,,,, 1202 | 1201,2016-10-28T21:04:10,EGV,,,,iPhone G6,109,,,, 1203 | 1202,2016-10-28T21:09:09,EGV,,,,iPhone G6,109,,,, 1204 | 1203,2016-10-28T21:14:09,EGV,,,,iPhone G6,109,,,, 1205 | 1204,2016-10-28T21:19:10,EGV,,,,iPhone G6,108,,,, 1206 | 1205,2016-10-28T21:24:10,EGV,,,,iPhone G6,107,,,, 1207 | 1206,2016-10-28T21:29:10,EGV,,,,iPhone G6,107,,,, 1208 | 1207,2016-10-28T21:34:09,EGV,,,,iPhone G6,107,,,, 1209 | 1208,2016-10-28T21:39:09,EGV,,,,iPhone G6,108,,,, 1210 | 1209,2016-10-28T21:44:09,EGV,,,,iPhone G6,108,,,, 1211 | 1210,2016-10-28T21:49:09,EGV,,,,iPhone G6,108,,,, 1212 | 1211,2016-10-28T21:54:09,EGV,,,,iPhone G6,109,,,, 1213 | 1212,2016-10-28T21:59:10,EGV,,,,iPhone G6,108,,,, 1214 | 1213,2016-10-28T22:04:10,EGV,,,,iPhone G6,107,,,, 1215 | 1214,2016-10-28T22:09:09,EGV,,,,iPhone G6,105,,,, 1216 | 1215,2016-10-28T22:14:09,EGV,,,,iPhone G6,101,,,, 1217 | 1216,2016-10-28T22:19:10,EGV,,,,iPhone G6,96,,,, 1218 | 1217,2016-10-28T22:24:09,EGV,,,,iPhone G6,92,,,, 1219 | 1218,2016-10-28T22:29:09,EGV,,,,iPhone G6,92,,,, 1220 | 1219,2016-10-28T22:34:09,EGV,,,,iPhone G6,93,,,, 1221 | 1220,2016-10-28T22:39:10,EGV,,,,iPhone G6,94,,,, 1222 | 1221,2016-10-28T22:44:09,EGV,,,,iPhone G6,95,,,, 1223 | 1222,2016-10-28T22:49:09,EGV,,,,iPhone G6,95,,,, 1224 | 1223,2016-10-28T22:54:09,EGV,,,,iPhone G6,95,,,, 1225 | 1224,2016-10-28T22:59:10,EGV,,,,iPhone G6,95,,,, 1226 | 1225,2016-10-28T23:04:10,EGV,,,,iPhone G6,95,,,, 1227 | 1226,2016-10-28T23:09:10,EGV,,,,iPhone G6,95,,,, 1228 | 1227,2016-10-28T23:14:09,EGV,,,,iPhone G6,95,,,, 1229 | 1228,2016-10-28T23:19:09,EGV,,,,iPhone G6,98,,,, 1230 | 1229,2016-10-28T23:24:09,EGV,,,,iPhone G6,101,,,, 1231 | 1230,2016-10-28T23:29:10,EGV,,,,iPhone G6,104,,,, 1232 | 1231,2016-10-28T23:34:10,EGV,,,,iPhone G6,105,,,, 1233 | 1232,2016-10-28T23:39:09,EGV,,,,iPhone G6,105,,,, 1234 | 1233,2016-10-28T23:44:09,EGV,,,,iPhone G6,105,,,, 1235 | 1234,2016-10-28T23:49:10,EGV,,,,iPhone G6,105,,,, 1236 | 1235,2016-10-28T23:54:10,EGV,,,,iPhone G6,104,,,, 1237 | 1236,2016-10-28T23:59:10,EGV,,,,iPhone G6,103,,,, 1238 | 1237,2016-10-29T00:04:09,EGV,,,,iPhone G6,101,,,, 1239 | 1238,2016-10-29T00:09:09,EGV,,,,iPhone G6,99,,,, 1240 | 1239,2016-10-29T00:14:09,EGV,,,,iPhone G6,99,,,, 1241 | 1240,2016-10-29T00:19:10,EGV,,,,iPhone G6,99,,,, 1242 | 1241,2016-10-29T00:24:09,EGV,,,,iPhone G6,99,,,, 1243 | 1242,2016-10-29T00:29:10,EGV,,,,iPhone G6,99,,,, 1244 | 1243,2016-10-29T00:34:09,EGV,,,,iPhone G6,99,,,, 1245 | 1244,2016-10-29T00:39:10,EGV,,,,iPhone G6,99,,,, 1246 | 1245,2016-10-29T00:44:09,EGV,,,,iPhone G6,100,,,, 1247 | 1246,2016-10-29T00:49:08,EGV,,,,iPhone G6,102,,,, 1248 | 1247,2016-10-29T00:54:08,EGV,,,,iPhone G6,104,,,, 1249 | 1248,2016-10-29T00:59:08,EGV,,,,iPhone G6,105,,,, 1250 | 1249,2016-10-29T01:04:08,EGV,,,,iPhone G6,104,,,, 1251 | 1250,2016-10-29T01:09:08,EGV,,,,iPhone G6,104,,,, 1252 | 1251,2016-10-29T01:14:08,EGV,,,,iPhone G6,102,,,, 1253 | 1252,2016-10-29T01:19:08,EGV,,,,iPhone G6,98,,,, 1254 | 1253,2016-10-29T01:24:10,EGV,,,,iPhone G6,94,,,, 1255 | 1254,2016-10-29T01:29:10,EGV,,,,iPhone G6,92,,,, 1256 | 1255,2016-10-29T01:34:10,EGV,,,,iPhone G6,93,,,, 1257 | 1256,2016-10-29T01:39:09,EGV,,,,iPhone G6,96,,,, 1258 | 1257,2016-10-29T01:44:10,EGV,,,,iPhone G6,98,,,, 1259 | 1258,2016-10-29T01:49:10,EGV,,,,iPhone G6,100,,,, 1260 | 1259,2016-10-29T01:54:10,EGV,,,,iPhone G6,101,,,, 1261 | 1260,2016-10-29T01:59:08,EGV,,,,iPhone G6,100,,,, 1262 | 1261,2016-10-29T02:04:09,EGV,,,,iPhone G6,95,,,, 1263 | 1262,2016-10-29T02:09:09,EGV,,,,iPhone G6,88,,,, 1264 | 1263,2016-10-29T02:14:09,EGV,,,,iPhone G6,83,,,, 1265 | 1264,2016-10-29T02:19:09,EGV,,,,iPhone G6,81,,,, 1266 | 1265,2016-10-29T02:24:09,EGV,,,,iPhone G6,81,,,, 1267 | 1266,2016-10-29T02:29:08,EGV,,,,iPhone G6,82,,,, 1268 | 1267,2016-10-29T02:34:10,EGV,,,,iPhone G6,83,,,, 1269 | 1268,2016-10-29T02:39:09,EGV,,,,iPhone G6,84,,,, 1270 | 1269,2016-10-29T02:44:10,EGV,,,,iPhone G6,85,,,, 1271 | 1270,2016-10-29T02:49:10,EGV,,,,iPhone G6,85,,,, 1272 | 1271,2016-10-29T02:54:10,EGV,,,,iPhone G6,85,,,, 1273 | 1272,2016-10-29T02:59:09,EGV,,,,iPhone G6,85,,,, 1274 | 1273,2016-10-29T03:04:10,EGV,,,,iPhone G6,90,,,, 1275 | 1274,2016-10-29T03:09:09,EGV,,,,iPhone G6,97,,,, 1276 | 1275,2016-10-29T03:14:08,EGV,,,,iPhone G6,104,,,, 1277 | 1276,2016-10-29T03:19:09,EGV,,,,iPhone G6,106,,,, 1278 | 1277,2016-10-29T03:24:09,EGV,,,,iPhone G6,105,,,, 1279 | 1278,2016-10-29T03:29:09,EGV,,,,iPhone G6,105,,,, 1280 | 1279,2016-10-29T03:34:09,EGV,,,,iPhone G6,106,,,, 1281 | 1280,2016-10-29T03:39:08,EGV,,,,iPhone G6,107,,,, 1282 | 1281,2016-10-29T03:44:08,EGV,,,,iPhone G6,107,,,, 1283 | 1282,2016-10-29T03:49:09,EGV,,,,iPhone G6,108,,,, 1284 | 1283,2016-10-29T03:54:09,EGV,,,,iPhone G6,108,,,, 1285 | 1284,2016-10-29T03:59:08,EGV,,,,iPhone G6,108,,,, 1286 | 1285,2016-10-29T04:04:09,EGV,,,,iPhone G6,108,,,, 1287 | 1286,2016-10-29T04:09:08,EGV,,,,iPhone G6,107,,,, 1288 | 1287,2016-10-29T04:14:08,EGV,,,,iPhone G6,105,,,, 1289 | 1288,2016-10-29T04:19:08,EGV,,,,iPhone G6,103,,,, 1290 | 1289,2016-10-29T04:24:09,EGV,,,,iPhone G6,102,,,, 1291 | 1290,2016-10-29T04:29:09,EGV,,,,iPhone G6,102,,,, 1292 | 1291,2016-10-29T04:34:08,EGV,,,,iPhone G6,101,,,, 1293 | 1292,2016-10-29T04:39:08,EGV,,,,iPhone G6,101,,,, 1294 | 1293,2016-10-29T04:44:08,EGV,,,,iPhone G6,104,,,, 1295 | 1294,2016-10-29T04:49:08,EGV,,,,iPhone G6,113,,,, 1296 | 1295,2016-10-29T04:54:08,EGV,,,,iPhone G6,125,,,, 1297 | 1296,2016-10-29T04:59:09,EGV,,,,iPhone G6,139,,,, 1298 | 1297,2016-10-29T05:04:09,EGV,,,,iPhone G6,155,,,, 1299 | 1298,2016-10-29T05:09:09,EGV,,,,iPhone G6,169,,,, 1300 | 1299,2016-10-29T05:14:08,EGV,,,,iPhone G6,177,,,, 1301 | 1300,2016-10-29T05:19:08,EGV,,,,iPhone G6,179,,,, 1302 | 1301,2016-10-29T05:24:08,EGV,,,,iPhone G6,178,,,, 1303 | 1302,2016-10-29T05:29:08,EGV,,,,iPhone G6,177,,,, 1304 | 1303,2016-10-29T05:34:07,EGV,,,,iPhone G6,180,,,, 1305 | 1304,2016-10-29T05:39:09,EGV,,,,iPhone G6,181,,,, 1306 | 1305,2016-10-29T05:44:08,EGV,,,,iPhone G6,181,,,, 1307 | 1306,2016-10-29T05:49:08,EGV,,,,iPhone G6,182,,,, 1308 | 1307,2016-10-29T05:54:08,EGV,,,,iPhone G6,182,,,, 1309 | 1308,2016-10-29T05:59:09,EGV,,,,iPhone G6,181,,,, 1310 | 1309,2016-10-29T06:04:08,EGV,,,,iPhone G6,174,,,, 1311 | 1310,2016-10-29T06:09:08,EGV,,,,iPhone G6,168,,,, 1312 | 1311,2016-10-29T06:14:08,EGV,,,,iPhone G6,164,,,, 1313 | 1312,2016-10-29T06:19:08,EGV,,,,iPhone G6,159,,,, 1314 | 1313,2016-10-29T06:24:08,EGV,,,,iPhone G6,147,,,, 1315 | 1314,2016-10-29T06:29:08,EGV,,,,iPhone G6,132,,,, 1316 | 1315,2016-10-29T06:34:08,EGV,,,,iPhone G6,112,,,, 1317 | 1316,2016-10-29T06:39:08,EGV,,,,iPhone G6,93,,,, 1318 | 1317,2016-10-29T06:44:08,EGV,,,,iPhone G6,71,,,, 1319 | 1318,2016-10-29T06:49:08,EGV,,,,iPhone G6,57,,,, 1320 | 1319,2016-10-29T06:54:08,EGV,,,,iPhone G6,54,,,, 1321 | 1320,2016-10-29T06:59:08,EGV,,,,iPhone G6,62,,,, 1322 | 1321,2016-10-29T07:04:08,EGV,,,,iPhone G6,73,,,, 1323 | 1322,2016-10-29T07:09:08,EGV,,,,iPhone G6,76,,,, 1324 | 1323,2016-10-29T07:14:08,EGV,,,,iPhone G6,70,,,, 1325 | 1324,2016-10-29T07:19:08,EGV,,,,iPhone G6,61,,,, 1326 | 1325,2016-10-29T07:24:08,EGV,,,,iPhone G6,58,,,, 1327 | 1326,2016-10-29T07:29:08,EGV,,,,iPhone G6,58,,,, 1328 | 1327,2016-10-29T07:34:08,EGV,,,,iPhone G6,61,,,, 1329 | 1328,2016-10-29T07:39:08,EGV,,,,iPhone G6,66,,,, 1330 | 1329,2016-10-29T07:44:08,EGV,,,,iPhone G6,71,,,, 1331 | 1330,2016-10-29T07:49:08,EGV,,,,iPhone G6,76,,,, 1332 | 1331,2016-10-29T07:54:08,EGV,,,,iPhone G6,80,,,, 1333 | 1332,2016-10-29T07:59:08,EGV,,,,iPhone G6,84,,,, 1334 | 1333,2016-10-29T08:04:08,EGV,,,,iPhone G6,86,,,, 1335 | 1334,2016-10-29T08:09:08,EGV,,,,iPhone G6,90,,,, 1336 | 1335,2016-10-29T08:14:08,EGV,,,,iPhone G6,93,,,, 1337 | 1336,2016-10-29T08:19:08,EGV,,,,iPhone G6,95,,,, 1338 | 1337,2016-10-29T08:24:07,EGV,,,,iPhone G6,93,,,, 1339 | 1338,2016-10-29T08:29:08,EGV,,,,iPhone G6,88,,,, 1340 | 1339,2016-10-29T08:34:07,EGV,,,,iPhone G6,83,,,, 1341 | 1340,2016-10-29T08:39:08,EGV,,,,iPhone G6,81,,,, 1342 | 1341,2016-10-29T08:44:08,EGV,,,,iPhone G6,80,,,, 1343 | 1342,2016-10-29T08:49:08,EGV,,,,iPhone G6,81,,,, 1344 | 1343,2016-10-29T08:54:07,EGV,,,,iPhone G6,83,,,, 1345 | 1344,2016-10-29T08:59:08,EGV,,,,iPhone G6,92,,,, 1346 | 1345,2016-10-29T09:04:08,EGV,,,,iPhone G6,104,,,, 1347 | 1346,2016-10-29T09:09:07,EGV,,,,iPhone G6,119,,,, 1348 | 1347,2016-10-29T09:14:08,EGV,,,,iPhone G6,131,,,, 1349 | 1348,2016-10-29T09:19:08,EGV,,,,iPhone G6,137,,,, 1350 | 1349,2016-10-29T09:24:08,EGV,,,,iPhone G6,140,,,, 1351 | 1350,2016-10-29T09:29:08,EGV,,,,iPhone G6,138,,,, 1352 | 1351,2016-10-29T09:34:08,EGV,,,,iPhone G6,134,,,, 1353 | 1352,2016-10-29T09:39:09,EGV,,,,iPhone G6,127,,,, 1354 | 1353,2016-10-29T09:44:09,EGV,,,,iPhone G6,116,,,, 1355 | 1354,2016-10-29T09:49:09,EGV,,,,iPhone G6,104,,,, 1356 | 1355,2016-10-29T09:54:09,EGV,,,,iPhone G6,99,,,, 1357 | 1356,2016-10-29T09:59:09,EGV,,,,iPhone G6,101,,,, 1358 | 1357,2016-10-29T10:04:09,EGV,,,,iPhone G6,109,,,, 1359 | 1358,2016-10-29T10:09:09,EGV,,,,iPhone G6,116,,,, 1360 | 1359,2016-10-29T10:14:09,EGV,,,,iPhone G6,118,,,, 1361 | 1360,2016-10-29T10:19:09,EGV,,,,iPhone G6,122,,,, 1362 | 1361,2016-10-29T10:24:09,EGV,,,,iPhone G6,128,,,, 1363 | 1362,2016-10-29T10:29:09,EGV,,,,iPhone G6,135,,,, 1364 | 1363,2016-10-29T10:34:09,EGV,,,,iPhone G6,142,,,, 1365 | 1364,2016-10-29T10:39:09,EGV,,,,iPhone G6,147,,,, 1366 | 1365,2016-10-29T10:44:09,EGV,,,,iPhone G6,153,,,, 1367 | 1366,2016-10-29T10:49:09,EGV,,,,iPhone G6,157,,,, 1368 | 1367,2016-10-29T10:54:09,EGV,,,,iPhone G6,162,,,, 1369 | 1368,2016-10-29T10:59:09,EGV,,,,iPhone G6,170,,,, 1370 | 1369,2016-10-29T11:04:09,EGV,,,,iPhone G6,181,,,, 1371 | 1370,2016-10-29T11:09:09,EGV,,,,iPhone G6,189,,,, 1372 | 1371,2016-10-29T11:14:09,EGV,,,,iPhone G6,195,,,, 1373 | 1372,2016-10-29T11:19:09,EGV,,,,iPhone G6,199,,,, 1374 | 1373,2016-10-29T11:24:09,EGV,,,,iPhone G6,203,,,, 1375 | 1374,2016-10-29T11:29:09,EGV,,,,iPhone G6,207,,,, 1376 | 1375,2016-10-29T11:34:09,EGV,,,,iPhone G6,212,,,, 1377 | 1376,2016-10-29T11:39:09,EGV,,,,iPhone G6,220,,,, 1378 | 1377,2016-10-29T11:44:09,EGV,,,,iPhone G6,223,,,, 1379 | 1378,2016-10-29T11:49:09,EGV,,,,iPhone G6,225,,,, 1380 | 1379,2016-10-29T11:54:09,EGV,,,,iPhone G6,222,,,, 1381 | 1380,2016-10-29T11:59:09,EGV,,,,iPhone G6,219,,,, 1382 | 1381,2016-10-29T12:04:09,EGV,,,,iPhone G6,213,,,, 1383 | 1382,2016-10-29T12:09:09,EGV,,,,iPhone G6,205,,,, 1384 | 1383,2016-10-29T12:14:08,EGV,,,,iPhone G6,195,,,, 1385 | 1384,2016-10-29T12:19:08,EGV,,,,iPhone G6,186,,,, 1386 | 1385,2016-10-29T12:24:08,EGV,,,,iPhone G6,176,,,, 1387 | 1386,2016-10-29T12:29:08,EGV,,,,iPhone G6,167,,,, 1388 | 1387,2016-10-29T12:34:08,EGV,,,,iPhone G6,157,,,, 1389 | 1388,2016-10-29T12:39:08,EGV,,,,iPhone G6,149,,,, 1390 | 1389,2016-10-29T12:44:08,EGV,,,,iPhone G6,142,,,, 1391 | 1390,2016-10-29T12:49:08,EGV,,,,iPhone G6,137,,,, 1392 | 1391,2016-10-29T12:54:08,EGV,,,,iPhone G6,131,,,, 1393 | 1392,2016-10-29T12:59:08,EGV,,,,iPhone G6,125,,,, 1394 | 1393,2016-10-29T13:04:08,EGV,,,,iPhone G6,118,,,, 1395 | 1394,2016-10-29T13:09:08,EGV,,,,iPhone G6,112,,,, 1396 | 1395,2016-10-29T13:14:08,EGV,,,,iPhone G6,105,,,, 1397 | 1396,2016-10-29T13:19:08,EGV,,,,iPhone G6,100,,,, 1398 | 1397,2016-10-29T13:24:07,EGV,,,,iPhone G6,96,,,, 1399 | 1398,2016-10-29T13:29:07,EGV,,,,iPhone G6,92,,,, 1400 | 1399,2016-10-29T13:34:07,EGV,,,,iPhone G6,88,,,, 1401 | 1400,2016-10-29T13:39:07,EGV,,,,iPhone G6,85,,,, 1402 | 1401,2016-10-29T13:44:07,EGV,,,,iPhone G6,81,,,, 1403 | 1402,2016-10-29T13:49:07,EGV,,,,iPhone G6,77,,,, 1404 | 1403,2016-10-29T13:54:07,EGV,,,,iPhone G6,73,,,, 1405 | 1404,2016-10-29T13:59:07,EGV,,,,iPhone G6,74,,,, 1406 | 1405,2016-10-29T14:04:07,EGV,,,,iPhone G6,79,,,, 1407 | 1406,2016-10-29T14:09:07,EGV,,,,iPhone G6,89,,,, 1408 | 1407,2016-10-29T14:14:07,EGV,,,,iPhone G6,102,,,, 1409 | 1408,2016-10-29T14:19:08,EGV,,,,iPhone G6,112,,,, 1410 | 1409,2016-10-29T14:24:08,EGV,,,,iPhone G6,114,,,, 1411 | 1410,2016-10-29T14:29:08,EGV,,,,iPhone G6,108,,,, 1412 | 1411,2016-10-29T14:34:08,EGV,,,,iPhone G6,100,,,, 1413 | 1412,2016-10-29T14:39:08,EGV,,,,iPhone G6,94,,,, 1414 | 1413,2016-10-29T14:44:08,EGV,,,,iPhone G6,93,,,, 1415 | 1414,2016-10-29T14:49:08,EGV,,,,iPhone G6,95,,,, 1416 | 1415,2016-10-29T14:54:08,EGV,,,,iPhone G6,99,,,, 1417 | 1416,2016-10-29T14:59:08,EGV,,,,iPhone G6,104,,,, 1418 | 1417,2016-10-29T15:04:08,EGV,,,,iPhone G6,107,,,, 1419 | 1418,2016-10-29T15:09:07,EGV,,,,iPhone G6,108,,,, 1420 | 1419,2016-10-29T15:14:08,EGV,,,,iPhone G6,105,,,, 1421 | 1420,2016-10-29T15:19:07,EGV,,,,iPhone G6,102,,,, 1422 | 1421,2016-10-29T15:24:07,EGV,,,,iPhone G6,101,,,, 1423 | 1422,2016-10-29T15:29:07,EGV,,,,iPhone G6,101,,,, 1424 | 1423,2016-10-29T15:34:08,EGV,,,,iPhone G6,102,,,, 1425 | 1424,2016-10-29T15:39:07,EGV,,,,iPhone G6,101,,,, 1426 | 1425,2016-10-29T15:44:07,EGV,,,,iPhone G6,101,,,, 1427 | 1426,2016-10-29T15:49:07,EGV,,,,iPhone G6,101,,,, 1428 | 1427,2016-10-29T15:54:07,EGV,,,,iPhone G6,101,,,, 1429 | 1428,2016-10-29T15:59:07,EGV,,,,iPhone G6,101,,,, 1430 | 1429,2016-10-29T16:04:08,EGV,,,,iPhone G6,100,,,, 1431 | 1430,2016-10-29T16:09:07,EGV,,,,iPhone G6,102,,,, 1432 | 1431,2016-10-29T16:14:07,EGV,,,,iPhone G6,105,,,, 1433 | 1432,2016-10-29T16:19:07,EGV,,,,iPhone G6,111,,,, 1434 | 1433,2016-10-29T16:24:07,EGV,,,,iPhone G6,117,,,, 1435 | 1434,2016-10-29T16:29:08,EGV,,,,iPhone G6,122,,,, 1436 | 1435,2016-10-29T16:34:07,EGV,,,,iPhone G6,124,,,, 1437 | 1436,2016-10-29T16:39:07,EGV,,,,iPhone G6,126,,,, 1438 | 1437,2016-10-29T16:44:07,EGV,,,,iPhone G6,126,,,, 1439 | 1438,2016-10-29T16:49:07,EGV,,,,iPhone G6,124,,,, 1440 | 1439,2016-10-29T16:54:08,EGV,,,,iPhone G6,122,,,, 1441 | 1440,2016-10-29T16:59:07,EGV,,,,iPhone G6,119,,,, 1442 | 1441,2016-10-29T17:04:07,EGV,,,,iPhone G6,114,,,, 1443 | 1442,2016-10-29T17:09:08,EGV,,,,iPhone G6,109,,,, 1444 | 1443,2016-10-29T17:14:07,EGV,,,,iPhone G6,105,,,, 1445 | 1444,2016-10-29T17:19:07,EGV,,,,iPhone G6,103,,,, 1446 | 1445,2016-10-29T17:24:07,EGV,,,,iPhone G6,101,,,, 1447 | 1446,2016-10-29T17:29:08,EGV,,,,iPhone G6,100,,,, 1448 | 1447,2016-10-29T17:34:07,EGV,,,,iPhone G6,99,,,, 1449 | 1448,2016-10-29T17:39:07,EGV,,,,iPhone G6,99,,,, 1450 | 1449,2016-10-29T17:44:07,EGV,,,,iPhone G6,99,,,, 1451 | 1450,2016-10-29T17:49:07,EGV,,,,iPhone G6,99,,,, 1452 | 1451,2016-10-29T17:54:07,EGV,,,,iPhone G6,97,,,, 1453 | 1452,2016-10-29T17:59:07,EGV,,,,iPhone G6,97,,,, 1454 | 1453,2016-10-29T18:04:07,EGV,,,,iPhone G6,98,,,, 1455 | 1454,2016-10-29T18:09:07,EGV,,,,iPhone G6,100,,,, 1456 | 1455,2016-10-29T18:14:07,EGV,,,,iPhone G6,102,,,, 1457 | 1456,2016-10-29T18:19:07,EGV,,,,iPhone G6,104,,,, 1458 | 1457,2016-10-29T18:24:07,EGV,,,,iPhone G6,105,,,, 1459 | 1458,2016-10-29T18:29:07,EGV,,,,iPhone G6,107,,,, 1460 | 1459,2016-10-29T18:34:07,EGV,,,,iPhone G6,108,,,, 1461 | 1460,2016-10-29T18:39:07,EGV,,,,iPhone G6,108,,,, 1462 | 1461,2016-10-29T18:44:07,EGV,,,,iPhone G6,108,,,, 1463 | 1462,2016-10-29T18:49:08,EGV,,,,iPhone G6,111,,,, 1464 | 1463,2016-10-29T18:54:07,EGV,,,,iPhone G6,118,,,, 1465 | 1464,2016-10-29T18:59:08,EGV,,,,iPhone G6,125,,,, 1466 | 1465,2016-10-29T19:04:07,EGV,,,,iPhone G6,126,,,, 1467 | 1466,2016-10-29T19:09:07,EGV,,,,iPhone G6,125,,,, 1468 | 1467,2016-10-29T19:14:07,EGV,,,,iPhone G6,120,,,, 1469 | 1468,2016-10-29T19:19:07,EGV,,,,iPhone G6,117,,,, 1470 | 1469,2016-10-29T19:24:07,EGV,,,,iPhone G6,116,,,, 1471 | 1470,2016-10-29T19:29:07,EGV,,,,iPhone G6,115,,,, 1472 | 1471,2016-10-29T19:34:07,EGV,,,,iPhone G6,114,,,, 1473 | 1472,2016-10-29T19:39:07,EGV,,,,iPhone G6,112,,,, 1474 | 1473,2016-10-29T19:44:07,EGV,,,,iPhone G6,111,,,, 1475 | 1474,2016-10-29T19:49:07,EGV,,,,iPhone G6,108,,,, 1476 | 1475,2016-10-29T19:54:07,EGV,,,,iPhone G6,102,,,, 1477 | 1476,2016-10-29T19:59:07,EGV,,,,iPhone G6,95,,,, 1478 | 1477,2016-10-29T20:04:07,EGV,,,,iPhone G6,90,,,, 1479 | 1478,2016-10-29T20:09:07,EGV,,,,iPhone G6,88,,,, 1480 | 1479,2016-10-29T20:14:07,EGV,,,,iPhone G6,88,,,, 1481 | 1480,2016-10-29T20:19:07,EGV,,,,iPhone G6,90,,,, 1482 | 1481,2016-10-29T20:24:07,EGV,,,,iPhone G6,92,,,, 1483 | 1482,2016-10-29T20:29:07,EGV,,,,iPhone G6,94,,,, 1484 | 1483,2016-10-29T20:34:08,EGV,,,,iPhone G6,94,,,, 1485 | 1484,2016-10-29T20:39:07,EGV,,,,iPhone G6,89,,,, 1486 | 1485,2016-10-29T20:44:08,EGV,,,,iPhone G6,85,,,, 1487 | 1486,2016-10-29T20:49:08,EGV,,,,iPhone G6,82,,,, 1488 | 1487,2016-10-29T20:54:07,EGV,,,,iPhone G6,83,,,, 1489 | 1488,2016-10-29T20:59:07,EGV,,,,iPhone G6,85,,,, 1490 | 1489,2016-10-29T21:04:08,EGV,,,,iPhone G6,89,,,, 1491 | 1490,2016-10-29T21:09:08,EGV,,,,iPhone G6,92,,,, 1492 | 1491,2016-10-29T21:14:08,EGV,,,,iPhone G6,95,,,, 1493 | 1492,2016-10-29T21:19:08,EGV,,,,iPhone G6,97,,,, 1494 | 1493,2016-10-29T21:24:08,EGV,,,,iPhone G6,98,,,, 1495 | 1494,2016-10-29T21:29:08,EGV,,,,iPhone G6,98,,,, 1496 | 1495,2016-10-29T21:34:07,EGV,,,,iPhone G6,99,,,, 1497 | 1496,2016-10-29T21:39:08,EGV,,,,iPhone G6,100,,,, 1498 | 1497,2016-10-29T21:44:07,EGV,,,,iPhone G6,100,,,, 1499 | 1498,2016-10-29T21:49:08,EGV,,,,iPhone G6,101,,,, 1500 | 1499,2016-10-29T21:54:08,EGV,,,,iPhone G6,102,,,, 1501 | 1500,2016-10-29T21:59:07,EGV,,,,iPhone G6,103,,,, 1502 | 1501,2016-10-29T22:04:07,EGV,,,,iPhone G6,103,,,, 1503 | 1502,2016-10-29T22:09:08,EGV,,,,iPhone G6,104,,,, 1504 | 1503,2016-10-29T22:14:07,EGV,,,,iPhone G6,104,,,, 1505 | 1504,2016-10-29T22:19:07,EGV,,,,iPhone G6,104,,,, 1506 | 1505,2016-10-29T22:24:07,EGV,,,,iPhone G6,105,,,, 1507 | 1506,2016-10-29T22:29:08,EGV,,,,iPhone G6,105,,,, 1508 | 1507,2016-10-29T22:34:07,EGV,,,,iPhone G6,104,,,, 1509 | 1508,2016-10-29T22:39:07,EGV,,,,iPhone G6,104,,,, 1510 | 1509,2016-10-29T22:44:07,EGV,,,,iPhone G6,104,,,, 1511 | 1510,2016-10-29T22:49:08,EGV,,,,iPhone G6,105,,,, 1512 | 1511,2016-10-29T22:54:07,EGV,,,,iPhone G6,105,,,, 1513 | 1512,2016-10-29T22:59:08,EGV,,,,iPhone G6,105,,,, 1514 | 1513,2016-10-29T23:04:07,EGV,,,,iPhone G6,104,,,, 1515 | 1514,2016-10-29T23:09:08,EGV,,,,iPhone G6,103,,,, 1516 | 1515,2016-10-29T23:14:08,EGV,,,,iPhone G6,103,,,, 1517 | 1516,2016-10-29T23:19:07,EGV,,,,iPhone G6,103,,,, 1518 | 1517,2016-10-29T23:24:07,EGV,,,,iPhone G6,103,,,, 1519 | 1518,2016-10-29T23:29:08,EGV,,,,iPhone G6,102,,,, 1520 | 1519,2016-10-29T23:34:08,EGV,,,,iPhone G6,102,,,, 1521 | 1520,2016-10-29T23:39:07,EGV,,,,iPhone G6,103,,,, 1522 | 1521,2016-10-29T23:44:06,EGV,,,,iPhone G6,103,,,, 1523 | 1522,2016-10-29T23:49:07,EGV,,,,iPhone G6,103,,,, 1524 | 1523,2016-10-29T23:54:06,EGV,,,,iPhone G6,103,,,, 1525 | 1524,2016-10-29T23:59:06,EGV,,,,iPhone G6,104,,,, 1526 | 1525,2016-10-30T00:04:06,EGV,,,,iPhone G6,105,,,, 1527 | 1526,2016-10-30T00:09:06,EGV,,,,iPhone G6,105,,,, 1528 | 1527,2016-10-30T00:14:06,EGV,,,,iPhone G6,105,,,, 1529 | 1528,2016-10-30T00:19:07,EGV,,,,iPhone G6,106,,,, 1530 | 1529,2016-10-30T00:24:08,EGV,,,,iPhone G6,106,,,, 1531 | 1530,2016-10-30T00:29:07,EGV,,,,iPhone G6,106,,,, 1532 | 1531,2016-10-30T00:34:08,EGV,,,,iPhone G6,106,,,, 1533 | 1532,2016-10-30T00:39:07,EGV,,,,iPhone G6,106,,,, 1534 | 1533,2016-10-30T00:44:07,EGV,,,,iPhone G6,106,,,, 1535 | 1534,2016-10-30T00:49:08,EGV,,,,iPhone G6,106,,,, 1536 | 1535,2016-10-30T00:54:08,EGV,,,,iPhone G6,106,,,, 1537 | 1536,2016-10-30T00:59:08,EGV,,,,iPhone G6,106,,,, 1538 | 1537,2016-10-30T01:04:07,EGV,,,,iPhone G6,105,,,, 1539 | 1538,2016-10-30T01:09:08,EGV,,,,iPhone G6,102,,,, 1540 | 1539,2016-10-30T01:14:07,EGV,,,,iPhone G6,98,,,, 1541 | 1540,2016-10-30T01:19:07,EGV,,,,iPhone G6,96,,,, 1542 | 1541,2016-10-30T01:24:08,EGV,,,,iPhone G6,96,,,, 1543 | 1542,2016-10-30T01:29:07,EGV,,,,iPhone G6,99,,,, 1544 | 1543,2016-10-30T01:34:07,EGV,,,,iPhone G6,101,,,, 1545 | 1544,2016-10-30T01:39:07,EGV,,,,iPhone G6,103,,,, 1546 | 1545,2016-10-30T01:44:08,EGV,,,,iPhone G6,104,,,, 1547 | 1546,2016-10-30T01:49:08,EGV,,,,iPhone G6,105,,,, 1548 | 1547,2016-10-30T01:54:07,EGV,,,,iPhone G6,105,,,, 1549 | 1548,2016-10-30T01:59:08,EGV,,,,iPhone G6,105,,,, 1550 | 1549,2016-10-30T02:04:07,EGV,,,,iPhone G6,105,,,, 1551 | 1550,2016-10-30T02:09:08,EGV,,,,iPhone G6,106,,,, 1552 | 1551,2016-10-30T02:14:07,EGV,,,,iPhone G6,106,,,, 1553 | 1552,2016-10-30T02:19:08,EGV,,,,iPhone G6,106,,,, 1554 | 1553,2016-10-30T02:24:08,EGV,,,,iPhone G6,107,,,, 1555 | 1554,2016-10-30T02:29:08,EGV,,,,iPhone G6,107,,,, 1556 | 1555,2016-10-30T02:34:08,EGV,,,,iPhone G6,107,,,, 1557 | 1556,2016-10-30T02:39:07,EGV,,,,iPhone G6,107,,,, 1558 | 1557,2016-10-30T02:44:06,EGV,,,,iPhone G6,107,,,, 1559 | 1558,2016-10-30T02:49:07,EGV,,,,iPhone G6,107,,,, 1560 | 1559,2016-10-30T02:54:07,EGV,,,,iPhone G6,107,,,, 1561 | 1560,2016-10-30T02:59:06,EGV,,,,iPhone G6,107,,,, 1562 | 1561,2016-10-30T03:04:07,EGV,,,,iPhone G6,106,,,, 1563 | 1562,2016-10-30T03:09:06,EGV,,,,iPhone G6,105,,,, 1564 | 1563,2016-10-30T03:14:07,EGV,,,,iPhone G6,105,,,, 1565 | 1564,2016-10-30T03:19:07,EGV,,,,iPhone G6,105,,,, 1566 | 1565,2016-10-30T03:24:07,EGV,,,,iPhone G6,106,,,, 1567 | 1566,2016-10-30T03:29:07,EGV,,,,iPhone G6,106,,,, 1568 | 1567,2016-10-30T03:34:07,EGV,,,,iPhone G6,105,,,, 1569 | 1568,2016-10-30T03:39:07,EGV,,,,iPhone G6,104,,,, 1570 | 1569,2016-10-30T03:44:07,EGV,,,,iPhone G6,103,,,, 1571 | 1570,2016-10-30T03:49:07,EGV,,,,iPhone G6,103,,,, 1572 | 1571,2016-10-30T03:54:07,EGV,,,,iPhone G6,104,,,, 1573 | 1572,2016-10-30T03:59:07,EGV,,,,iPhone G6,105,,,, 1574 | 1573,2016-10-30T04:04:06,EGV,,,,iPhone G6,105,,,, 1575 | 1574,2016-10-30T04:09:07,EGV,,,,iPhone G6,105,,,, 1576 | 1575,2016-10-30T04:14:07,EGV,,,,iPhone G6,105,,,, 1577 | 1576,2016-10-30T04:19:07,EGV,,,,iPhone G6,106,,,, 1578 | 1577,2016-10-30T04:24:06,EGV,,,,iPhone G6,106,,,, 1579 | 1578,2016-10-30T04:29:07,EGV,,,,iPhone G6,106,,,, 1580 | 1579,2016-10-30T04:34:06,EGV,,,,iPhone G6,105,,,, 1581 | 1580,2016-10-30T04:39:07,EGV,,,,iPhone G6,103,,,, 1582 | 1581,2016-10-30T04:44:07,EGV,,,,iPhone G6,100,,,, 1583 | 1582,2016-10-30T04:49:06,EGV,,,,iPhone G6,96,,,, 1584 | 1583,2016-10-30T04:54:07,EGV,,,,iPhone G6,94,,,, 1585 | 1584,2016-10-30T04:59:06,EGV,,,,iPhone G6,95,,,, 1586 | 1585,2016-10-30T05:04:06,EGV,,,,iPhone G6,97,,,, 1587 | 1586,2016-10-30T05:09:07,EGV,,,,iPhone G6,102,,,, 1588 | 1587,2016-10-30T05:14:08,EGV,,,,iPhone G6,107,,,, 1589 | 1588,2016-10-30T05:19:08,EGV,,,,iPhone G6,110,,,, 1590 | 1589,2016-10-30T05:24:08,EGV,,,,iPhone G6,108,,,, 1591 | 1590,2016-10-30T05:29:08,EGV,,,,iPhone G6,105,,,, 1592 | 1591,2016-10-30T05:34:07,EGV,,,,iPhone G6,102,,,, 1593 | 1592,2016-10-30T05:39:07,EGV,,,,iPhone G6,104,,,, 1594 | 1593,2016-10-30T05:44:06,EGV,,,,iPhone G6,106,,,, 1595 | 1594,2016-10-30T05:49:07,EGV,,,,iPhone G6,108,,,, 1596 | 1595,2016-10-30T05:54:06,EGV,,,,iPhone G6,110,,,, 1597 | 1596,2016-10-30T05:59:07,EGV,,,,iPhone G6,109,,,, 1598 | 1597,2016-10-30T06:04:07,EGV,,,,iPhone G6,105,,,, 1599 | 1598,2016-10-30T06:09:07,EGV,,,,iPhone G6,94,,,, 1600 | 1599,2016-10-30T06:14:07,EGV,,,,iPhone G6,86,,,, 1601 | 1600,2016-10-30T06:19:06,EGV,,,,iPhone G6,82,,,, 1602 | 1601,2016-10-30T06:24:06,EGV,,,,iPhone G6,83,,,, 1603 | 1602,2016-10-30T06:29:07,EGV,,,,iPhone G6,82,,,, 1604 | 1603,2016-10-30T06:34:06,EGV,,,,iPhone G6,81,,,, 1605 | 1604,2016-10-30T06:39:06,EGV,,,,iPhone G6,80,,,, 1606 | 1605,2016-10-30T06:44:07,EGV,,,,iPhone G6,80,,,, 1607 | 1606,2016-10-30T06:49:07,EGV,,,,iPhone G6,83,,,, 1608 | 1607,2016-10-30T06:54:07,EGV,,,,iPhone G6,87,,,, 1609 | 1608,2016-10-30T06:59:07,EGV,,,,iPhone G6,89,,,, 1610 | 1609,2016-10-30T07:04:06,EGV,,,,iPhone G6,88,,,, 1611 | 1610,2016-10-30T07:09:06,EGV,,,,iPhone G6,86,,,, 1612 | 1611,2016-10-30T07:14:06,EGV,,,,iPhone G6,85,,,, 1613 | 1612,2016-10-30T07:19:06,EGV,,,,iPhone G6,84,,,, 1614 | 1613,2016-10-30T07:24:06,EGV,,,,iPhone G6,83,,,, 1615 | 1614,2016-10-30T07:29:06,EGV,,,,iPhone G6,82,,,, 1616 | 1615,2016-10-30T07:34:06,EGV,,,,iPhone G6,81,,,, 1617 | 1616,2016-10-30T07:39:06,EGV,,,,iPhone G6,81,,,, 1618 | 1617,2016-10-30T07:44:06,EGV,,,,iPhone G6,82,,,, 1619 | 1618,2016-10-30T07:49:06,EGV,,,,iPhone G6,82,,,, 1620 | 1619,2016-10-30T07:54:06,EGV,,,,iPhone G6,83,,,, 1621 | 1620,2016-10-30T07:59:06,EGV,,,,iPhone G6,84,,,, 1622 | 1621,2016-10-30T08:04:06,EGV,,,,iPhone G6,85,,,, 1623 | 1622,2016-10-30T08:09:07,EGV,,,,iPhone G6,86,,,, 1624 | 1623,2016-10-30T08:14:07,EGV,,,,iPhone G6,88,,,, 1625 | 1624,2016-10-30T08:19:07,EGV,,,,iPhone G6,89,,,, 1626 | 1625,2016-10-30T08:24:06,EGV,,,,iPhone G6,92,,,, 1627 | 1626,2016-10-30T08:29:07,EGV,,,,iPhone G6,92,,,, 1628 | 1627,2016-10-30T08:34:07,EGV,,,,iPhone G6,94,,,, 1629 | 1628,2016-10-30T08:39:07,EGV,,,,iPhone G6,94,,,, 1630 | 1629,2016-10-30T08:44:07,EGV,,,,iPhone G6,95,,,, 1631 | 1630,2016-10-30T08:49:07,EGV,,,,iPhone G6,98,,,, 1632 | 1631,2016-10-30T08:54:07,EGV,,,,iPhone G6,106,,,, 1633 | 1632,2016-10-30T08:59:06,EGV,,,,iPhone G6,118,,,, 1634 | 1633,2016-10-30T09:04:06,EGV,,,,iPhone G6,131,,,, 1635 | 1634,2016-10-30T09:09:06,EGV,,,,iPhone G6,138,,,, 1636 | 1635,2016-10-30T09:14:06,EGV,,,,iPhone G6,139,,,, 1637 | 1636,2016-10-30T09:19:06,EGV,,,,iPhone G6,138,,,, 1638 | 1637,2016-10-30T09:24:06,EGV,,,,iPhone G6,134,,,, 1639 | 1638,2016-10-30T09:29:06,EGV,,,,iPhone G6,130,,,, 1640 | 1639,2016-10-30T09:34:06,EGV,,,,iPhone G6,128,,,, 1641 | 1640,2016-10-30T09:39:06,EGV,,,,iPhone G6,128,,,, 1642 | 1641,2016-10-30T09:44:06,EGV,,,,iPhone G6,126,,,, 1643 | 1642,2016-10-30T09:49:06,EGV,,,,iPhone G6,121,,,, 1644 | 1643,2016-10-30T09:54:05,EGV,,,,iPhone G6,111,,,, 1645 | 1644,2016-10-30T09:59:06,EGV,,,,iPhone G6,100,,,, 1646 | 1645,2016-10-30T10:04:06,EGV,,,,iPhone G6,92,,,, 1647 | 1646,2016-10-30T10:09:06,EGV,,,,iPhone G6,92,,,, 1648 | 1647,2016-10-30T10:14:06,EGV,,,,iPhone G6,98,,,, 1649 | 1648,2016-10-30T10:19:05,EGV,,,,iPhone G6,105,,,, 1650 | 1649,2016-10-30T10:24:06,EGV,,,,iPhone G6,108,,,, 1651 | 1650,2016-10-30T10:29:06,EGV,,,,iPhone G6,110,,,, 1652 | 1651,2016-10-30T10:34:06,EGV,,,,iPhone G6,110,,,, 1653 | 1652,2016-10-30T10:39:06,EGV,,,,iPhone G6,109,,,, 1654 | 1653,2016-10-30T10:44:06,EGV,,,,iPhone G6,107,,,, 1655 | 1654,2016-10-30T10:49:06,EGV,,,,iPhone G6,107,,,, 1656 | 1655,2016-10-30T10:54:06,EGV,,,,iPhone G6,108,,,, 1657 | 1656,2016-10-30T10:59:06,EGV,,,,iPhone G6,107,,,, 1658 | 1657,2016-10-30T11:04:06,EGV,,,,iPhone G6,102,,,, 1659 | 1658,2016-10-30T11:09:06,EGV,,,,iPhone G6,98,,,, 1660 | 1659,2016-10-30T11:14:06,EGV,,,,iPhone G6,93,,,, 1661 | 1660,2016-10-30T11:19:06,EGV,,,,iPhone G6,87,,,, 1662 | 1661,2016-10-30T11:24:06,EGV,,,,iPhone G6,81,,,, 1663 | 1662,2016-10-30T11:29:06,EGV,,,,iPhone G6,83,,,, 1664 | 1663,2016-10-30T11:34:06,EGV,,,,iPhone G6,87,,,, 1665 | 1664,2016-10-30T11:39:06,EGV,,,,iPhone G6,92,,,, 1666 | 1665,2016-10-30T11:44:06,EGV,,,,iPhone G6,93,,,, 1667 | 1666,2016-10-30T11:49:06,EGV,,,,iPhone G6,92,,,, 1668 | 1667,2016-10-30T11:54:06,EGV,,,,iPhone G6,91,,,, 1669 | 1668,2016-10-30T11:59:06,EGV,,,,iPhone G6,91,,,, 1670 | 1669,2016-10-30T12:04:06,EGV,,,,iPhone G6,91,,,, 1671 | 1670,2016-10-30T12:09:06,EGV,,,,iPhone G6,91,,,, 1672 | 1671,2016-10-30T12:14:06,EGV,,,,iPhone G6,91,,,, 1673 | 1672,2016-10-30T12:19:06,EGV,,,,iPhone G6,91,,,, 1674 | 1673,2016-10-30T12:24:06,EGV,,,,iPhone G6,90,,,, 1675 | 1674,2016-10-30T12:29:06,EGV,,,,iPhone G6,89,,,, 1676 | 1675,2016-10-30T12:34:06,EGV,,,,iPhone G6,90,,,, 1677 | 1676,2016-10-30T12:39:06,EGV,,,,iPhone G6,91,,,, 1678 | 1677,2016-10-30T12:44:06,EGV,,,,iPhone G6,93,,,, 1679 | 1678,2016-10-30T12:49:06,EGV,,,,iPhone G6,93,,,, 1680 | 1679,2016-10-30T12:54:06,EGV,,,,iPhone G6,91,,,, 1681 | 1680,2016-10-30T12:59:06,EGV,,,,iPhone G6,88,,,, 1682 | 1681,2016-10-30T13:04:06,EGV,,,,iPhone G6,84,,,, 1683 | 1682,2016-10-30T13:09:06,EGV,,,,iPhone G6,83,,,, 1684 | 1683,2016-10-30T13:14:06,EGV,,,,iPhone G6,87,,,, 1685 | 1684,2016-10-30T13:19:05,EGV,,,,iPhone G6,95,,,, 1686 | 1685,2016-10-30T13:24:06,EGV,,,,iPhone G6,107,,,, 1687 | 1686,2016-10-30T13:29:06,EGV,,,,iPhone G6,119,,,, 1688 | 1687,2016-10-30T13:34:06,EGV,,,,iPhone G6,127,,,, 1689 | 1688,2016-10-30T13:39:06,EGV,,,,iPhone G6,127,,,, 1690 | 1689,2016-10-30T13:44:05,EGV,,,,iPhone G6,122,,,, 1691 | 1690,2016-10-30T13:49:05,EGV,,,,iPhone G6,117,,,, 1692 | 1691,2016-10-30T13:54:05,EGV,,,,iPhone G6,116,,,, 1693 | 1692,2016-10-30T13:59:05,EGV,,,,iPhone G6,117,,,, 1694 | 1693,2016-10-30T14:04:05,EGV,,,,iPhone G6,118,,,, 1695 | 1694,2016-10-30T14:09:05,EGV,,,,iPhone G6,119,,,, 1696 | 1695,2016-10-30T14:14:05,EGV,,,,iPhone G6,121,,,, 1697 | 1696,2016-10-30T14:19:05,EGV,,,,iPhone G6,121,,,, 1698 | 1697,2016-10-30T14:24:05,EGV,,,,iPhone G6,120,,,, 1699 | 1698,2016-10-30T14:29:05,EGV,,,,iPhone G6,115,,,, 1700 | 1699,2016-10-30T14:34:05,EGV,,,,iPhone G6,107,,,, 1701 | 1700,2016-10-30T14:39:05,EGV,,,,iPhone G6,99,,,, 1702 | 1701,2016-10-30T14:44:05,EGV,,,,iPhone G6,93,,,, 1703 | 1702,2016-10-30T14:49:05,EGV,,,,iPhone G6,93,,,, 1704 | 1703,2016-10-30T14:54:05,EGV,,,,iPhone G6,96,,,, 1705 | 1704,2016-10-30T14:59:05,EGV,,,,iPhone G6,100,,,, 1706 | 1705,2016-10-30T15:04:05,EGV,,,,iPhone G6,101,,,, 1707 | 1706,2016-10-30T15:09:05,EGV,,,,iPhone G6,101,,,, 1708 | 1707,2016-10-30T15:14:05,EGV,,,,iPhone G6,101,,,, 1709 | 1708,2016-10-30T15:19:05,EGV,,,,iPhone G6,101,,,, 1710 | 1709,2016-10-30T15:24:05,EGV,,,,iPhone G6,100,,,, 1711 | 1710,2016-10-30T15:29:05,EGV,,,,iPhone G6,99,,,, 1712 | 1711,2016-10-30T15:34:05,EGV,,,,iPhone G6,98,,,, 1713 | 1712,2016-10-30T15:39:05,EGV,,,,iPhone G6,97,,,, 1714 | 1713,2016-10-30T15:44:05,EGV,,,,iPhone G6,95,,,, 1715 | 1714,2016-10-30T15:49:06,EGV,,,,iPhone G6,94,,,, 1716 | 1715,2016-10-30T15:54:05,EGV,,,,iPhone G6,92,,,, 1717 | 1716,2016-10-30T15:59:05,EGV,,,,iPhone G6,91,,,, 1718 | 1717,2016-10-30T16:04:05,EGV,,,,iPhone G6,90,,,, 1719 | 1718,2016-10-30T16:09:05,EGV,,,,iPhone G6,89,,,, 1720 | 1719,2016-10-30T16:14:05,EGV,,,,iPhone G6,87,,,, 1721 | 1720,2016-10-30T16:19:05,EGV,,,,iPhone G6,85,,,, 1722 | 1721,2016-10-30T16:24:05,EGV,,,,iPhone G6,82,,,, 1723 | 1722,2016-10-30T16:29:05,EGV,,,,iPhone G6,80,,,, 1724 | 1723,2016-10-30T16:34:05,EGV,,,,iPhone G6,81,,,, 1725 | 1724,2016-10-30T16:39:05,EGV,,,,iPhone G6,90,,,, 1726 | 1725,2016-10-30T16:44:05,EGV,,,,iPhone G6,106,,,, 1727 | 1726,2016-10-30T16:49:05,EGV,,,,iPhone G6,123,,,, 1728 | 1727,2016-10-30T16:54:05,EGV,,,,iPhone G6,133,,,, 1729 | 1728,2016-10-30T16:59:06,EGV,,,,iPhone G6,138,,,, 1730 | 1729,2016-10-30T17:04:05,EGV,,,,iPhone G6,137,,,, 1731 | 1730,2016-10-30T17:09:06,EGV,,,,iPhone G6,134,,,, 1732 | 1731,2016-10-30T17:14:05,EGV,,,,iPhone G6,128,,,, 1733 | 1732,2016-10-30T17:19:05,EGV,,,,iPhone G6,123,,,, 1734 | 1733,2016-10-30T17:24:05,EGV,,,,iPhone G6,122,,,, 1735 | 1734,2016-10-30T17:29:05,EGV,,,,iPhone G6,119,,,, 1736 | 1735,2016-10-30T17:34:05,EGV,,,,iPhone G6,119,,,, 1737 | 1736,2016-10-30T17:39:05,EGV,,,,iPhone G6,119,,,, 1738 | 1737,2016-10-30T17:44:05,EGV,,,,iPhone G6,118,,,, 1739 | 1738,2016-10-30T17:49:05,EGV,,,,iPhone G6,115,,,, 1740 | 1739,2016-10-30T17:54:05,EGV,,,,iPhone G6,113,,,, 1741 | 1740,2016-10-30T17:59:06,EGV,,,,iPhone G6,112,,,, 1742 | 1741,2016-10-30T18:04:06,EGV,,,,iPhone G6,111,,,, 1743 | 1742,2016-10-30T18:09:06,EGV,,,,iPhone G6,108,,,, 1744 | 1743,2016-10-30T18:14:06,EGV,,,,iPhone G6,104,,,, 1745 | 1744,2016-10-30T18:19:06,EGV,,,,iPhone G6,103,,,, 1746 | 1745,2016-10-30T18:24:06,EGV,,,,iPhone G6,103,,,, 1747 | 1746,2016-10-30T18:29:06,EGV,,,,iPhone G6,108,,,, 1748 | 1747,2016-10-30T18:34:07,EGV,,,,iPhone G6,112,,,, 1749 | 1748,2016-10-30T18:39:06,EGV,,,,iPhone G6,119,,,, 1750 | 1749,2016-10-30T18:44:07,EGV,,,,iPhone G6,123,,,, 1751 | 1750,2016-10-30T18:49:06,EGV,,,,iPhone G6,120,,,, 1752 | 1751,2016-10-30T18:54:06,EGV,,,,iPhone G6,112,,,, 1753 | 1752,2016-10-30T18:59:06,EGV,,,,iPhone G6,103,,,, 1754 | 1753,2016-10-30T19:04:06,EGV,,,,iPhone G6,99,,,, 1755 | 1754,2016-10-30T19:09:06,EGV,,,,iPhone G6,99,,,, 1756 | 1755,2016-10-30T19:14:07,EGV,,,,iPhone G6,101,,,, 1757 | 1756,2016-10-30T19:19:06,EGV,,,,iPhone G6,99,,,, 1758 | 1757,2016-10-30T19:24:06,EGV,,,,iPhone G6,92,,,, 1759 | 1758,2016-10-30T19:29:06,EGV,,,,iPhone G6,82,,,, 1760 | 1759,2016-10-30T19:34:06,EGV,,,,iPhone G6,74,,,, 1761 | 1760,2016-10-30T19:39:06,EGV,,,,iPhone G6,71,,,, 1762 | 1761,2016-10-30T19:44:06,EGV,,,,iPhone G6,70,,,, 1763 | 1762,2016-10-30T19:49:06,EGV,,,,iPhone G6,73,,,, 1764 | 1763,2016-10-30T19:54:06,EGV,,,,iPhone G6,76,,,, 1765 | 1764,2016-10-30T19:59:06,EGV,,,,iPhone G6,79,,,, 1766 | 1765,2016-10-30T20:04:06,EGV,,,,iPhone G6,83,,,, 1767 | 1766,2016-10-30T20:09:06,EGV,,,,iPhone G6,87,,,, 1768 | 1767,2016-10-30T20:14:06,EGV,,,,iPhone G6,91,,,, 1769 | 1768,2016-10-30T20:19:06,EGV,,,,iPhone G6,94,,,, 1770 | 1769,2016-10-30T20:24:06,EGV,,,,iPhone G6,98,,,, 1771 | 1770,2016-10-30T20:29:06,EGV,,,,iPhone G6,103,,,, 1772 | 1771,2016-10-30T20:34:06,EGV,,,,iPhone G6,112,,,, 1773 | 1772,2016-10-30T20:39:06,EGV,,,,iPhone G6,117,,,, 1774 | 1773,2016-10-30T20:44:06,EGV,,,,iPhone G6,117,,,, 1775 | 1774,2016-10-30T20:49:07,EGV,,,,iPhone G6,110,,,, 1776 | 1775,2016-10-30T20:54:07,EGV,,,,iPhone G6,106,,,, 1777 | 1776,2016-10-30T20:59:06,EGV,,,,iPhone G6,106,,,, 1778 | 1777,2016-10-30T21:04:06,EGV,,,,iPhone G6,112,,,, 1779 | 1778,2016-10-30T21:09:06,EGV,,,,iPhone G6,120,,,, 1780 | 1779,2016-10-31T01:39:05,EGV,,,,iPhone G6,97,,,, 1781 | 1780,2016-10-31T01:44:05,EGV,,,,iPhone G6,95,,,, 1782 | 1781,2016-10-31T01:49:05,EGV,,,,iPhone G6,92,,,, 1783 | 1782,2016-10-31T01:54:05,EGV,,,,iPhone G6,91,,,, 1784 | 1783,2016-10-31T01:59:05,EGV,,,,iPhone G6,91,,,, 1785 | 1784,2016-10-31T02:04:05,EGV,,,,iPhone G6,92,,,, 1786 | 1785,2016-10-31T02:09:05,EGV,,,,iPhone G6,93,,,, 1787 | 1786,2016-10-31T02:14:05,EGV,,,,iPhone G6,95,,,, 1788 | 1787,2016-10-31T02:19:05,EGV,,,,iPhone G6,95,,,, 1789 | 1788,2016-10-31T02:24:05,EGV,,,,iPhone G6,96,,,, 1790 | 1789,2016-10-31T02:29:05,EGV,,,,iPhone G6,96,,,, 1791 | 1790,2016-10-31T02:34:05,EGV,,,,iPhone G6,96,,,, 1792 | 1791,2016-10-31T02:39:05,EGV,,,,iPhone G6,96,,,, 1793 | 1792,2016-10-31T02:44:05,EGV,,,,iPhone G6,97,,,, 1794 | 1793,2016-10-31T02:49:05,EGV,,,,iPhone G6,98,,,, 1795 | 1794,2016-10-31T02:54:05,EGV,,,,iPhone G6,99,,,, 1796 | 1795,2016-10-31T02:59:05,EGV,,,,iPhone G6,99,,,, 1797 | 1796,2016-10-31T03:04:05,EGV,,,,iPhone G6,99,,,, 1798 | 1797,2016-10-31T03:09:05,EGV,,,,iPhone G6,100,,,, 1799 | 1798,2016-10-31T03:14:05,EGV,,,,iPhone G6,100,,,, 1800 | 1799,2016-10-31T03:19:05,EGV,,,,iPhone G6,100,,,, 1801 | 1800,2016-10-31T03:24:05,EGV,,,,iPhone G6,100,,,, 1802 | 1801,2016-10-31T03:29:05,EGV,,,,iPhone G6,101,,,, 1803 | 1802,2016-10-31T03:34:05,EGV,,,,iPhone G6,101,,,, 1804 | 1803,2016-10-31T03:39:05,EGV,,,,iPhone G6,100,,,, 1805 | 1804,2016-10-31T03:44:05,EGV,,,,iPhone G6,99,,,, 1806 | 1805,2016-10-31T03:49:05,EGV,,,,iPhone G6,99,,,, 1807 | 1806,2016-10-31T03:54:05,EGV,,,,iPhone G6,100,,,, 1808 | 1807,2016-10-31T03:59:05,EGV,,,,iPhone G6,100,,,, 1809 | 1808,2016-10-31T04:04:05,EGV,,,,iPhone G6,101,,,, 1810 | 1809,2016-10-31T04:09:05,EGV,,,,iPhone G6,101,,,, 1811 | 1810,2016-10-31T04:14:05,EGV,,,,iPhone G6,102,,,, 1812 | 1811,2016-10-31T04:19:05,EGV,,,,iPhone G6,103,,,, 1813 | 1812,2016-10-31T04:24:05,EGV,,,,iPhone G6,104,,,, 1814 | 1813,2016-10-31T04:29:05,EGV,,,,iPhone G6,104,,,, 1815 | 1814,2016-10-31T04:34:05,EGV,,,,iPhone G6,104,,,, 1816 | 1815,2016-10-31T04:39:05,EGV,,,,iPhone G6,104,,,, 1817 | 1816,2016-10-31T04:44:05,EGV,,,,iPhone G6,106,,,, 1818 | 1817,2016-10-31T04:49:05,EGV,,,,iPhone G6,113,,,, 1819 | 1818,2016-10-31T04:54:04,EGV,,,,iPhone G6,125,,,, 1820 | 1819,2016-10-31T04:59:04,EGV,,,,iPhone G6,141,,,, 1821 | 1820,2016-10-31T05:04:05,EGV,,,,iPhone G6,160,,,, 1822 | 1821,2016-10-31T05:09:05,EGV,,,,iPhone G6,177,,,, 1823 | 1822,2016-10-31T05:14:04,EGV,,,,iPhone G6,192,,,, 1824 | 1823,2016-10-31T05:19:05,EGV,,,,iPhone G6,203,,,, 1825 | 1824,2016-10-31T05:24:04,EGV,,,,iPhone G6,213,,,, 1826 | 1825,2016-10-31T05:29:04,EGV,,,,iPhone G6,218,,,, 1827 | 1826,2016-10-31T05:34:04,EGV,,,,iPhone G6,219,,,, 1828 | 1827,2016-10-31T05:39:04,EGV,,,,iPhone G6,216,,,, 1829 | 1828,2016-10-31T05:44:05,EGV,,,,iPhone G6,210,,,, 1830 | 1829,2016-10-31T05:49:05,EGV,,,,iPhone G6,202,,,, 1831 | 1830,2016-10-31T05:54:05,EGV,,,,iPhone G6,194,,,, 1832 | 1831,2016-10-31T05:59:04,EGV,,,,iPhone G6,189,,,, 1833 | 1832,2016-10-31T06:04:04,EGV,,,,iPhone G6,186,,,, 1834 | 1833,2016-10-31T06:09:04,EGV,,,,iPhone G6,181,,,, 1835 | 1834,2016-10-31T06:14:04,EGV,,,,iPhone G6,172,,,, 1836 | 1835,2016-10-31T06:19:04,EGV,,,,iPhone G6,161,,,, 1837 | 1836,2016-10-31T06:24:04,EGV,,,,iPhone G6,155,,,, 1838 | 1837,2016-10-31T06:29:03,EGV,,,,iPhone G6,151,,,, 1839 | 1838,2016-10-31T06:34:04,EGV,,,,iPhone G6,145,,,, 1840 | 1839,2016-10-31T06:39:03,EGV,,,,iPhone G6,132,,,, 1841 | 1840,2016-10-31T06:44:03,EGV,,,,iPhone G6,111,,,, 1842 | 1841,2016-10-31T06:49:03,EGV,,,,iPhone G6,89,,,, 1843 | 1842,2016-10-31T06:54:03,EGV,,,,iPhone G6,72,,,, 1844 | 1843,2016-10-31T06:59:03,EGV,,,,iPhone G6,64,,,, 1845 | 1844,2016-10-31T07:04:03,EGV,,,,iPhone G6,60,,,, 1846 | 1845,2016-10-31T07:09:03,EGV,,,,iPhone G6,57,,,, 1847 | 1846,2016-10-31T07:14:03,EGV,,,,iPhone G6,54,,,, 1848 | 1847,2016-10-31T07:19:03,EGV,,,,iPhone G6,52,,,, 1849 | 1848,2016-10-31T07:24:03,EGV,,,,iPhone G6,50,,,, 1850 | 1849,2016-10-31T07:29:03,EGV,,,,iPhone G6,49,,,, 1851 | 1850,2016-10-31T07:34:03,EGV,,,,iPhone G6,53,,,, 1852 | 1851,2016-10-31T07:39:03,EGV,,,,iPhone G6,59,,,, 1853 | 1852,2016-10-31T07:44:03,EGV,,,,iPhone G6,69,,,, 1854 | 1853,2016-10-31T07:49:03,EGV,,,,iPhone G6,78,,,, 1855 | 1854,2016-10-31T07:54:04,EGV,,,,iPhone G6,86,,,, 1856 | 1855,2016-10-31T07:59:04,EGV,,,,iPhone G6,90,,,, 1857 | 1856,2016-10-31T08:04:04,EGV,,,,iPhone G6,90,,,, 1858 | 1857,2016-10-31T08:09:04,EGV,,,,iPhone G6,88,,,, 1859 | 1858,2016-10-31T08:14:04,EGV,,,,iPhone G6,87,,,, 1860 | 1859,2016-10-31T08:19:04,EGV,,,,iPhone G6,92,,,, 1861 | 1860,2016-10-31T08:24:04,EGV,,,,iPhone G6,101,,,, 1862 | 1861,2016-10-31T08:29:03,EGV,,,,iPhone G6,113,,,, 1863 | 1862,2016-10-31T08:34:04,EGV,,,,iPhone G6,127,,,, 1864 | 1863,2016-10-31T08:39:04,EGV,,,,iPhone G6,135,,,, 1865 | 1864,2016-10-31T08:44:04,EGV,,,,iPhone G6,139,,,, 1866 | 1865,2016-10-31T08:49:04,EGV,,,,iPhone G6,135,,,, 1867 | 1866,2016-10-31T08:54:03,EGV,,,,iPhone G6,126,,,, 1868 | 1867,2016-10-31T08:59:03,EGV,,,,iPhone G6,112,,,, 1869 | 1868,2016-10-31T09:04:03,EGV,,,,iPhone G6,98,,,, 1870 | 1869,2016-10-31T09:09:03,EGV,,,,iPhone G6,94,,,, 1871 | 1870,2016-10-31T09:14:03,EGV,,,,iPhone G6,99,,,, 1872 | 1871,2016-10-31T09:19:03,EGV,,,,iPhone G6,109,,,, 1873 | 1872,2016-10-31T09:24:03,EGV,,,,iPhone G6,115,,,, 1874 | 1873,2016-10-31T09:29:03,EGV,,,,iPhone G6,117,,,, 1875 | 1874,2016-10-31T09:34:03,EGV,,,,iPhone G6,117,,,, 1876 | 1875,2016-10-31T09:39:03,EGV,,,,iPhone G6,117,,,, 1877 | 1876,2016-10-31T09:44:03,EGV,,,,iPhone G6,115,,,, 1878 | 1877,2016-10-31T09:49:03,EGV,,,,iPhone G6,113,,,, 1879 | 1878,2016-10-31T09:54:03,EGV,,,,iPhone G6,107,,,, 1880 | 1879,2016-10-31T09:59:03,EGV,,,,iPhone G6,99,,,, 1881 | 1880,2016-10-31T10:04:03,EGV,,,,iPhone G6,93,,,, 1882 | 1881,2016-10-31T10:09:03,EGV,,,,iPhone G6,90,,,, 1883 | 1882,2016-10-31T10:14:03,EGV,,,,iPhone G6,90,,,, 1884 | 1883,2016-10-31T10:19:03,EGV,,,,iPhone G6,92,,,, 1885 | 1884,2016-10-31T10:24:03,EGV,,,,iPhone G6,95,,,, 1886 | 1885,2016-10-31T10:29:03,EGV,,,,iPhone G6,97,,,, 1887 | 1886,2016-10-31T10:34:03,EGV,,,,iPhone G6,98,,,, 1888 | 1887,2016-10-31T10:39:03,EGV,,,,iPhone G6,99,,,, 1889 | 1888,2016-10-31T10:44:03,EGV,,,,iPhone G6,99,,,, 1890 | 1889,2016-10-31T10:49:03,EGV,,,,iPhone G6,98,,,, 1891 | 1890,2016-10-31T10:54:03,EGV,,,,iPhone G6,98,,,, 1892 | 1891,2016-10-31T10:59:03,EGV,,,,iPhone G6,98,,,, 1893 | 1892,2016-10-31T11:04:03,EGV,,,,iPhone G6,97,,,, 1894 | 1893,2016-10-31T11:09:03,EGV,,,,iPhone G6,97,,,, 1895 | 1894,2016-10-31T11:14:03,EGV,,,,iPhone G6,97,,,, 1896 | 1895,2016-10-31T11:19:03,EGV,,,,iPhone G6,96,,,, 1897 | 1896,2016-10-31T11:24:03,EGV,,,,iPhone G6,95,,,, 1898 | 1897,2016-10-31T11:29:03,EGV,,,,iPhone G6,94,,,, 1899 | 1898,2016-10-31T11:34:03,EGV,,,,iPhone G6,93,,,, 1900 | 1899,2016-10-31T11:39:03,EGV,,,,iPhone G6,92,,,, 1901 | 1900,2016-10-31T11:44:04,EGV,,,,iPhone G6,90,,,, 1902 | 1901,2016-10-31T11:49:03,EGV,,,,iPhone G6,90,,,, 1903 | 1902,2016-10-31T11:54:05,EGV,,,,iPhone G6,90,,,, 1904 | 1903,2016-10-31T11:59:05,EGV,,,,iPhone G6,90,,,, 1905 | 1904,2016-10-31T12:04:05,EGV,,,,iPhone G6,90,,,, 1906 | 1905,2016-10-31T12:09:05,EGV,,,,iPhone G6,90,,,, 1907 | 1906,2016-10-31T12:14:05,EGV,,,,iPhone G6,90,,,, 1908 | 1907,2016-10-31T12:19:05,EGV,,,,iPhone G6,93,,,, 1909 | 1908,2016-10-31T12:24:05,EGV,,,,iPhone G6,95,,,, 1910 | 1909,2016-10-31T12:29:05,EGV,,,,iPhone G6,97,,,, 1911 | 1910,2016-10-31T12:34:05,EGV,,,,iPhone G6,97,,,, 1912 | 1911,2016-10-31T12:39:05,EGV,,,,iPhone G6,97,,,, 1913 | 1912,2016-10-31T12:44:05,EGV,,,,iPhone G6,96,,,, 1914 | 1913,2016-10-31T12:49:05,EGV,,,,iPhone G6,92,,,, 1915 | 1914,2016-10-31T12:54:05,EGV,,,,iPhone G6,89,,,, 1916 | 1915,2016-10-31T12:59:05,EGV,,,,iPhone G6,88,,,, 1917 | 1916,2016-10-31T13:04:05,EGV,,,,iPhone G6,91,,,, 1918 | 1917,2016-10-31T13:09:04,EGV,,,,iPhone G6,95,,,, 1919 | 1918,2016-10-31T13:14:04,EGV,,,,iPhone G6,99,,,, 1920 | 1919,2016-10-31T13:19:04,EGV,,,,iPhone G6,106,,,, 1921 | 1920,2016-10-31T13:24:04,EGV,,,,iPhone G6,113,,,, 1922 | 1921,2016-10-31T13:29:05,EGV,,,,iPhone G6,118,,,, 1923 | 1922,2016-10-31T13:34:04,EGV,,,,iPhone G6,121,,,, 1924 | 1923,2016-10-31T13:39:04,EGV,,,,iPhone G6,127,,,, 1925 | 1924,2016-10-31T13:44:04,EGV,,,,iPhone G6,140,,,, 1926 | 1925,2016-10-31T13:49:04,EGV,,,,iPhone G6,160,,,, 1927 | 1926,2016-10-31T13:54:04,EGV,,,,iPhone G6,180,,,, 1928 | 1927,2016-10-31T13:59:04,EGV,,,,iPhone G6,201,,,, 1929 | 1928,2016-10-31T14:04:04,EGV,,,,iPhone G6,220,,,, 1930 | 1929,2016-10-31T14:09:03,EGV,,,,iPhone G6,240,,,, 1931 | 1930,2016-10-31T14:14:03,EGV,,,,iPhone G6,251,,,, 1932 | 1931,2016-10-31T14:19:03,EGV,,,,iPhone G6,254,,,, 1933 | 1932,2016-10-31T14:24:03,EGV,,,,iPhone G6,256,,,, 1934 | 1933,2016-10-31T14:29:03,EGV,,,,iPhone G6,258,,,, 1935 | 1934,2016-10-31T14:34:03,EGV,,,,iPhone G6,261,,,, 1936 | 1935,2016-10-31T14:39:03,EGV,,,,iPhone G6,260,,,, 1937 | 1936,2016-10-31T14:44:03,EGV,,,,iPhone G6,257,,,, 1938 | 1937,2016-10-31T14:49:03,EGV,,,,iPhone G6,249,,,, 1939 | 1938,2016-10-31T14:54:03,EGV,,,,iPhone G6,239,,,, 1940 | 1939,2016-10-31T14:59:03,EGV,,,,iPhone G6,227,,,, 1941 | 1940,2016-10-31T15:04:03,EGV,,,,iPhone G6,219,,,, 1942 | 1941,2016-10-31T15:09:03,EGV,,,,iPhone G6,216,,,, 1943 | 1942,2016-10-31T15:14:03,EGV,,,,iPhone G6,215,,,, 1944 | 1943,2016-10-31T15:19:03,EGV,,,,iPhone G6,216,,,, 1945 | 1944,2016-10-31T15:24:03,EGV,,,,iPhone G6,211,,,, 1946 | 1945,2016-10-31T15:29:04,EGV,,,,iPhone G6,201,,,, 1947 | 1946,2016-10-31T15:34:04,EGV,,,,iPhone G6,187,,,, 1948 | 1947,2016-10-31T15:39:04,EGV,,,,iPhone G6,177,,,, 1949 | 1948,2016-10-31T15:44:04,EGV,,,,iPhone G6,173,,,, 1950 | 1949,2016-10-31T15:49:04,EGV,,,,iPhone G6,172,,,, 1951 | 1950,2016-10-31T15:54:04,EGV,,,,iPhone G6,174,,,, 1952 | 1951,2016-10-31T15:59:04,EGV,,,,iPhone G6,179,,,, 1953 | 1952,2016-10-31T16:04:04,EGV,,,,iPhone G6,186,,,, 1954 | 1953,2016-10-31T16:09:04,EGV,,,,iPhone G6,191,,,, 1955 | 1954,2016-10-31T16:14:04,EGV,,,,iPhone G6,194,,,, 1956 | 1955,2016-10-31T16:19:04,EGV,,,,iPhone G6,193,,,, 1957 | 1956,2016-10-31T16:24:04,EGV,,,,iPhone G6,189,,,, 1958 | 1957,2016-10-31T16:29:04,EGV,,,,iPhone G6,184,,,, 1959 | 1958,2016-10-31T16:34:04,EGV,,,,iPhone G6,179,,,, 1960 | 1959,2016-10-31T16:39:04,EGV,,,,iPhone G6,177,,,, 1961 | 1960,2016-10-31T16:44:04,EGV,,,,iPhone G6,173,,,, 1962 | 1961,2016-10-31T16:49:04,EGV,,,,iPhone G6,165,,,, 1963 | 1962,2016-10-31T16:54:04,EGV,,,,iPhone G6,155,,,, 1964 | 1963,2016-10-31T16:59:04,EGV,,,,iPhone G6,143,,,, 1965 | 1964,2016-10-31T17:04:04,EGV,,,,iPhone G6,136,,,, 1966 | 1965,2016-10-31T17:09:04,EGV,,,,iPhone G6,132,,,, 1967 | 1966,2016-10-31T17:14:04,EGV,,,,iPhone G6,131,,,, 1968 | 1967,2016-10-31T17:19:04,EGV,,,,iPhone G6,129,,,, 1969 | 1968,2016-10-31T17:24:04,EGV,,,,iPhone G6,126,,,, 1970 | 1969,2016-10-31T17:29:04,EGV,,,,iPhone G6,119,,,, 1971 | 1970,2016-10-31T17:34:04,EGV,,,,iPhone G6,108,,,, 1972 | 1971,2016-10-31T17:39:04,EGV,,,,iPhone G6,97,,,, 1973 | 1972,2016-10-31T17:44:04,EGV,,,,iPhone G6,88,,,, 1974 | 1973,2016-10-31T17:49:04,EGV,,,,iPhone G6,83,,,, 1975 | 1974,2016-10-31T17:54:04,EGV,,,,iPhone G6,80,,,, 1976 | 1975,2016-10-31T17:59:04,EGV,,,,iPhone G6,82,,,, 1977 | 1976,2016-10-31T18:04:04,EGV,,,,iPhone G6,90,,,, 1978 | 1977,2016-10-31T18:09:04,EGV,,,,iPhone G6,103,,,, 1979 | 1978,2016-10-31T18:14:04,EGV,,,,iPhone G6,116,,,, 1980 | 1979,2016-10-31T18:19:04,EGV,,,,iPhone G6,126,,,, 1981 | 1980,2016-10-31T18:24:04,EGV,,,,iPhone G6,132,,,, 1982 | 1981,2016-10-31T18:29:04,EGV,,,,iPhone G6,135,,,, 1983 | 1982,2016-10-31T18:34:04,EGV,,,,iPhone G6,132,,,, 1984 | 1983,2016-10-31T18:39:04,EGV,,,,iPhone G6,128,,,, 1985 | 1984,2016-10-31T18:44:04,EGV,,,,iPhone G6,124,,,, 1986 | 1985,2016-10-31T18:49:04,EGV,,,,iPhone G6,121,,,, 1987 | 1986,2016-10-31T18:54:04,EGV,,,,iPhone G6,116,,,, 1988 | 1987,2016-10-31T18:59:04,EGV,,,,iPhone G6,111,,,, 1989 | 1988,2016-10-31T19:04:04,EGV,,,,iPhone G6,107,,,, 1990 | 1989,2016-10-31T19:09:04,EGV,,,,iPhone G6,105,,,, 1991 | 1990,2016-10-31T19:14:04,EGV,,,,iPhone G6,102,,,, 1992 | 1991,2016-10-31T19:19:04,EGV,,,,iPhone G6,101,,,, 1993 | 1992,2016-10-31T19:24:04,EGV,,,,iPhone G6,99,,,, 1994 | 1993,2016-10-31T19:29:04,EGV,,,,iPhone G6,98,,,, 1995 | 1994,2016-10-31T19:34:04,EGV,,,,iPhone G6,97,,,, 1996 | 1995,2016-10-31T19:39:04,EGV,,,,iPhone G6,97,,,, 1997 | 1996,2016-10-31T19:44:03,EGV,,,,iPhone G6,97,,,, 1998 | 1997,2016-10-31T19:49:03,EGV,,,,iPhone G6,97,,,, 1999 | 1998,2016-10-31T19:54:03,EGV,,,,iPhone G6,98,,,, 2000 | 1999,2016-10-31T19:59:03,EGV,,,,iPhone G6,97,,,, 2001 | 2000,2016-10-31T20:04:03,EGV,,,,iPhone G6,97,,,, 2002 | 2001,2016-10-31T20:09:03,EGV,,,,iPhone G6,96,,,, 2003 | 2002,2016-10-31T20:14:04,EGV,,,,iPhone G6,97,,,, 2004 | 2003,2016-10-31T20:19:04,EGV,,,,iPhone G6,97,,,, 2005 | 2004,2016-10-31T20:24:04,EGV,,,,iPhone G6,94,,,, 2006 | 2005,2016-10-31T20:29:05,EGV,,,,iPhone G6,90,,,, 2007 | 2006,2016-10-31T20:34:04,EGV,,,,iPhone G6,87,,,, 2008 | 2007,2016-10-31T20:39:05,EGV,,,,iPhone G6,86,,,, 2009 | 2008,2016-10-31T20:44:04,EGV,,,,iPhone G6,86,,,, 2010 | 2009,2016-10-31T20:49:04,EGV,,,,iPhone G6,88,,,, 2011 | 2010,2016-10-31T20:54:04,EGV,,,,iPhone G6,90,,,, 2012 | 2011,2016-10-31T20:59:04,EGV,,,,iPhone G6,92,,,, 2013 | 2012,2016-10-31T21:04:04,EGV,,,,iPhone G6,93,,,, 2014 | 2013,2016-10-31T21:09:04,EGV,,,,iPhone G6,94,,,, 2015 | 2014,2016-10-31T21:14:04,EGV,,,,iPhone G6,95,,,, 2016 | 2015,2016-10-31T21:19:04,EGV,,,,iPhone G6,95,,,, 2017 | 2016,2016-10-31T21:24:03,EGV,,,,iPhone G6,95,,,, 2018 | 2017,2016-10-31T21:29:03,EGV,,,,iPhone G6,95,,,, 2019 | 2018,2016-10-31T21:34:03,EGV,,,,iPhone G6,96,,,, 2020 | 2016,2016-10-31T21:39:03,EGV,,,,iPhone G6,96,,,, 2021 | 2020,2016-10-31T21:44:03,EGV,,,,iPhone G6,95,,,, 2022 | 2021,2016-10-31T21:49:03,EGV,,,,iPhone G6,95,,,, 2023 | 2022,2016-10-31T21:54:03,EGV,,,,iPhone G6,94,,,, 2024 | 2023,2016-10-31T21:59:03,EGV,,,,iPhone G6,94,,,, 2025 | 2024,2016-10-31T22:04:03,EGV,,,,iPhone G6,95,,,, 2026 | 2025,2016-10-31T22:09:03,EGV,,,,iPhone G6,96,,,, 2027 | 2026,2016-10-31T22:14:03,EGV,,,,iPhone G6,97,,,, 2028 | 2027,2016-10-31T22:19:03,EGV,,,,iPhone G6,97,,,, 2029 | 2028,2016-10-31T22:24:03,EGV,,,,iPhone G6,98,,,, 2030 | 2029,2016-10-31T22:29:03,EGV,,,,iPhone G6,99,,,, 2031 | 2030,2016-10-31T22:34:03,EGV,,,,iPhone G6,100,,,, 2032 | 2031,2016-10-31T22:39:03,EGV,,,,iPhone G6,101,,,, 2033 | 2032,2016-10-31T22:44:03,EGV,,,,iPhone G6,101,,,, 2034 | 2033,2016-10-31T22:49:04,EGV,,,,iPhone G6,101,,,, 2035 | 2034,2016-10-31T22:54:04,EGV,,,,iPhone G6,102,,,, 2036 | 2035,2016-10-31T22:59:03,EGV,,,,iPhone G6,102,,,, 2037 | 2036,2016-10-31T23:04:03,EGV,,,,iPhone G6,102,,,, 2038 | 2037,2016-10-31T23:09:04,EGV,,,,iPhone G6,103,,,, 2039 | 2038,2016-10-31T23:14:03,EGV,,,,iPhone G6,104,,,, 2040 | 2039,2016-10-31T23:19:03,EGV,,,,iPhone G6,104,,,, 2041 | 2040,2016-10-31T23:24:03,EGV,,,,iPhone G6,105,,,, 2042 | 2041,2016-10-31T23:29:04,EGV,,,,iPhone G6,105,,,, 2043 | 2042,2016-10-31T23:34:03,EGV,,,,iPhone G6,106,,,, 2044 | 2043,2016-10-31T23:39:03,EGV,,,,iPhone G6,106,,,, 2045 | 2044,2016-10-31T23:44:03,EGV,,,,iPhone G6,106,,,, 2046 | 2045,2016-10-31T23:49:03,EGV,,,,iPhone G6,105,,,, 2047 | 2046,2016-10-31T23:54:04,EGV,,,,iPhone G6,104,,,, 2048 | 2047,2016-10-31T23:59:03,EGV,,,,iPhone G6,103,,,, 2049 | 2048,2016-11-01T00:04:03,EGV,,,,iPhone G6,103,,,, 2050 | 2049,2016-11-01T00:09:03,EGV,,,,iPhone G6,102,,,, 2051 | 2050,2016-11-01T00:14:03,EGV,,,,iPhone G6,103,,,, 2052 | 2051,2016-11-01T00:19:03,EGV,,,,iPhone G6,103,,,, 2053 | 2052,2016-11-01T00:24:03,EGV,,,,iPhone G6,103,,,, 2054 | 2053,2016-11-01T00:29:03,EGV,,,,iPhone G6,104,,,, 2055 | 2054,2016-11-01T00:34:04,EGV,,,,iPhone G6,104,,,, 2056 | 2055,2016-11-01T00:39:03,EGV,,,,iPhone G6,104,,,, 2057 | 2056,2016-11-01T00:44:03,EGV,,,,iPhone G6,104,,,, 2058 | 2057,2016-11-01T00:49:02,EGV,,,,iPhone G6,104,,,, 2059 | 2058,2016-11-01T00:54:02,EGV,,,,iPhone G6,104,,,, 2060 | 2059,2016-11-01T00:59:03,EGV,,,,iPhone G6,104,,,, 2061 | 2060,2016-11-01T01:04:03,EGV,,,,iPhone G6,104,,,, 2062 | 2061,2016-11-01T01:09:03,EGV,,,,iPhone G6,104,,,, 2063 | 2062,2016-11-01T01:14:02,EGV,,,,iPhone G6,104,,,, 2064 | 2063,2016-11-01T01:19:04,EGV,,,,iPhone G6,105,,,, 2065 | 2064,2016-11-01T01:24:04,EGV,,,,iPhone G6,104,,,, 2066 | 2065,2016-11-01T01:29:04,EGV,,,,iPhone G6,102,,,, 2067 | 2066,2016-11-01T01:34:04,EGV,,,,iPhone G6,99,,,, 2068 | 2067,2016-11-01T01:39:03,EGV,,,,iPhone G6,97,,,, 2069 | 2068,2016-11-01T01:44:03,EGV,,,,iPhone G6,96,,,, 2070 | 2069,2016-11-01T01:49:03,EGV,,,,iPhone G6,97,,,, 2071 | 2070,2016-11-01T01:54:02,EGV,,,,iPhone G6,98,,,, 2072 | 2071,2016-11-01T01:59:03,EGV,,,,iPhone G6,100,,,, 2073 | 2072,2016-11-01T02:04:02,EGV,,,,iPhone G6,103,,,, 2074 | 2073,2016-11-01T02:09:03,EGV,,,,iPhone G6,105,,,, 2075 | 2074,2016-11-01T02:14:02,EGV,,,,iPhone G6,103,,,, 2076 | 2075,2016-11-01T02:19:03,EGV,,,,iPhone G6,102,,,, 2077 | 2076,2016-11-01T02:24:02,EGV,,,,iPhone G6,101,,,, 2078 | 2077,2016-11-01T02:29:03,EGV,,,,iPhone G6,101,,,, 2079 | 2078,2016-11-01T02:34:02,EGV,,,,iPhone G6,102,,,, 2080 | 2079,2016-11-01T02:39:02,EGV,,,,iPhone G6,103,,,, 2081 | 2080,2016-11-01T02:44:02,EGV,,,,iPhone G6,105,,,, 2082 | 2081,2016-11-01T02:49:02,EGV,,,,iPhone G6,106,,,, 2083 | 2082,2016-11-01T02:54:02,EGV,,,,iPhone G6,106,,,, 2084 | 2083,2016-11-01T02:59:02,EGV,,,,iPhone G6,105,,,, 2085 | 2084,2016-11-01T03:04:03,EGV,,,,iPhone G6,105,,,, 2086 | 2085,2016-11-01T03:09:03,EGV,,,,iPhone G6,105,,,, 2087 | 2086,2016-11-01T03:14:03,EGV,,,,iPhone G6,104,,,, 2088 | 2087,2016-11-01T03:19:03,EGV,,,,iPhone G6,103,,,, 2089 | 2088,2016-11-01T03:24:04,EGV,,,,iPhone G6,103,,,, 2090 | 2089,2016-11-01T03:29:04,EGV,,,,iPhone G6,103,,,, 2091 | 2090,2016-11-01T03:34:03,EGV,,,,iPhone G6,104,,,, 2092 | 2091,2016-11-01T03:39:02,EGV,,,,iPhone G6,105,,,, 2093 | 2092,2016-11-01T03:44:03,EGV,,,,iPhone G6,105,,,, 2094 | 2093,2016-11-01T03:49:02,EGV,,,,iPhone G6,105,,,, 2095 | 2094,2016-11-01T03:54:02,EGV,,,,iPhone G6,105,,,, 2096 | 2095,2016-11-01T03:59:03,EGV,,,,iPhone G6,105,,,, 2097 | 2096,2016-11-01T04:04:03,EGV,,,,iPhone G6,105,,,, 2098 | 2097,2016-11-01T04:09:02,EGV,,,,iPhone G6,105,,,, 2099 | 2098,2016-11-01T04:14:03,EGV,,,,iPhone G6,105,,,, 2100 | 2099,2016-11-01T04:19:03,EGV,,,,iPhone G6,105,,,, 2101 | 2100,2016-11-01T04:24:04,EGV,,,,iPhone G6,106,,,, 2102 | 2101,2016-11-01T04:29:04,EGV,,,,iPhone G6,106,,,, 2103 | 2102,2016-11-01T04:34:04,EGV,,,,iPhone G6,106,,,, 2104 | 2103,2016-11-01T04:39:04,EGV,,,,iPhone G6,107,,,, 2105 | 2104,2016-11-01T04:44:03,EGV,,,,iPhone G6,107,,,, 2106 | 2105,2016-11-01T04:49:04,EGV,,,,iPhone G6,106,,,, 2107 | 2106,2016-11-01T04:54:04,EGV,,,,iPhone G6,106,,,, 2108 | 2107,2016-11-01T04:59:04,EGV,,,,iPhone G6,106,,,, 2109 | 2108,2016-11-01T05:04:03,EGV,,,,iPhone G6,105,,,, 2110 | 2109,2016-11-01T05:09:03,EGV,,,,iPhone G6,105,,,, 2111 | 2110,2016-11-01T05:14:02,EGV,,,,iPhone G6,105,,,, 2112 | 2111,2016-11-01T05:19:03,EGV,,,,iPhone G6,105,,,, 2113 | 2112,2016-11-01T05:24:02,EGV,,,,iPhone G6,106,,,, 2114 | 2113,2016-11-01T05:29:02,EGV,,,,iPhone G6,107,,,, 2115 | 2114,2016-11-01T05:34:03,EGV,,,,iPhone G6,107,,,, 2116 | 2115,2016-11-01T05:39:02,EGV,,,,iPhone G6,107,,,, 2117 | 2116,2016-11-01T05:44:02,EGV,,,,iPhone G6,106,,,, 2118 | 2117,2016-11-01T05:49:03,EGV,,,,iPhone G6,104,,,, 2119 | 2118,2016-11-01T05:54:02,EGV,,,,iPhone G6,101,,,, 2120 | 2119,2016-11-01T05:59:02,EGV,,,,iPhone G6,98,,,, 2121 | 2120,2016-11-01T06:04:02,EGV,,,,iPhone G6,97,,,, 2122 | 2121,2016-11-01T06:09:02,EGV,,,,iPhone G6,98,,,, 2123 | 2122,2016-11-01T06:14:02,EGV,,,,iPhone G6,99,,,, 2124 | 2123,2016-11-01T06:19:02,EGV,,,,iPhone G6,99,,,, 2125 | 2124,2016-11-01T06:24:01,EGV,,,,iPhone G6,96,,,, 2126 | 2125,2016-11-01T06:29:01,EGV,,,,iPhone G6,93,,,, 2127 | 2126,2016-11-01T06:34:02,EGV,,,,iPhone G6,89,,,, 2128 | 2127,2016-11-01T06:39:02,EGV,,,,iPhone G6,86,,,, 2129 | 2128,2016-11-01T06:44:01,EGV,,,,iPhone G6,85,,,, 2130 | 2129,2016-11-01T06:49:02,EGV,,,,iPhone G6,84,,,, 2131 | 2130,2016-11-01T06:54:01,EGV,,,,iPhone G6,85,,,, 2132 | 2131,2016-11-01T06:59:02,EGV,,,,iPhone G6,83,,,, 2133 | 2132,2016-11-01T07:04:01,EGV,,,,iPhone G6,82,,,, 2134 | 2133,2016-11-01T07:09:01,EGV,,,,iPhone G6,82,,,, 2135 | 2134,2016-11-01T07:14:01,EGV,,,,iPhone G6,84,,,, 2136 | 2135,2016-11-01T07:19:01,EGV,,,,iPhone G6,88,,,, 2137 | 2136,2016-11-01T07:24:01,EGV,,,,iPhone G6,97,,,, 2138 | 2137,2016-11-01T07:29:02,EGV,,,,iPhone G6,112,,,, 2139 | 2138,2016-11-01T07:34:02,EGV,,,,iPhone G6,130,,,, 2140 | 2139,2016-11-01T07:39:01,EGV,,,,iPhone G6,145,,,, 2141 | 2140,2016-11-01T07:44:02,EGV,,,,iPhone G6,156,,,, 2142 | 2141,2016-11-01T07:49:01,EGV,,,,iPhone G6,164,,,, 2143 | 2142,2016-11-01T07:54:01,EGV,,,,iPhone G6,169,,,, 2144 | 2143,2016-11-01T07:59:02,EGV,,,,iPhone G6,171,,,, 2145 | 2144,2016-11-01T08:04:02,EGV,,,,iPhone G6,172,,,, 2146 | 2145,2016-11-01T08:09:02,EGV,,,,iPhone G6,173,,,, 2147 | 2146,2016-11-01T08:14:02,EGV,,,,iPhone G6,174,,,, 2148 | 2147,2016-11-01T08:19:02,EGV,,,,iPhone G6,177,,,, 2149 | 2148,2016-11-01T08:24:02,EGV,,,,iPhone G6,179,,,, 2150 | 2149,2016-11-01T08:29:02,EGV,,,,iPhone G6,181,,,, 2151 | 2150,2016-11-01T08:34:02,EGV,,,,iPhone G6,180,,,, 2152 | 2151,2016-11-01T08:39:02,EGV,,,,iPhone G6,177,,,, 2153 | 2152,2016-11-01T08:44:02,EGV,,,,iPhone G6,173,,,, 2154 | 2153,2016-11-01T08:49:02,EGV,,,,iPhone G6,166,,,, 2155 | 2154,2016-11-01T08:54:02,EGV,,,,iPhone G6,155,,,, 2156 | 2155,2016-11-01T08:59:03,EGV,,,,iPhone G6,145,,,, 2157 | 2156,2016-11-01T09:04:02,EGV,,,,iPhone G6,139,,,, 2158 | 2157,2016-11-01T09:09:03,EGV,,,,iPhone G6,136,,,, 2159 | 2158,2016-11-01T09:14:02,EGV,,,,iPhone G6,126,,,, 2160 | 2159,2016-11-01T09:19:02,EGV,,,,iPhone G6,108,,,, 2161 | -------------------------------------------------------------------------------- /R/tests/testthat.R: -------------------------------------------------------------------------------- 1 | library(testthat) 2 | library(cgmquantify) 3 | library(utils) 4 | 5 | #test_check("cgmquantify") 6 | 7 | 8 | test_that("eA1c is correct", { 9 | expect_equal(eA1c(readfile("test_file.csv")), 10 | 5.526016, 0.1) 11 | }) 12 | 13 | test_that("GMI is correct", { 14 | expect_equal(GMI(readfile("test_file.csv")), 15 | 5.986, 0.1) 16 | }) 17 | 18 | test_that("J_index is correct", { 19 | expect_equal(J_index(readfile("test_file.csv")), 20 | 19.796, 0.1) 21 | }) 22 | 23 | test_that("interdaysd is correct", { 24 | expect_equal(interdaysd(readfile("test_file.csv")), 25 | 28.799, 0.1) 26 | }) 27 | 28 | test_that("interdaycv is correct", { 29 | expect_equal(interdaycv(readfile("test_file.csv")), 30 | 25.736, 0.1) 31 | }) 32 | 33 | test_that("LBGI is correct", { 34 | expect_equal(LBGI(readfile("test_file.csv")), 35 | 0.9095, 0.1) 36 | }) 37 | 38 | test_that("HBGI is correct", { 39 | expect_equal(HBGI(readfile("test_file.csv")), 40 | 0.94299, 0.1) 41 | }) 42 | 43 | test_that("MGE is correct", { 44 | expect_equal(MGE(readfile("test_file.csv")), 45 | 135.423, 0.1) 46 | }) 47 | 48 | test_that("MGN is correct", { 49 | expect_equal(MGN(readfile("test_file.csv")), 50 | 106.564, 0.1) 51 | }) 52 | 53 | test_that("POR correct", { 54 | expect_equal(POR(readfile("test_file.csv")), 55 | 18.4909, 0.1) 56 | }) 57 | 58 | test_that("TOR correct", { 59 | expect_equal(TOR(readfile("test_file.csv")), 60 | 1985, 0.1) 61 | }) 62 | 63 | test_that("TIR correct", { 64 | expect_equal(TIR(readfile("test_file.csv")), 65 | 8750, 0.1) 66 | }) 67 | 68 | -------------------------------------------------------------------------------- /R/vignettes/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | *.R 3 | -------------------------------------------------------------------------------- /R/vignettes/guide.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "User Guide" 3 | output: rmarkdown::html_vignette 4 | vignette: > 5 | %\VignetteIndexEntry{User Guide} 6 | %\VignetteEngine{knitr::rmarkdown} 7 | %\VignetteEncoding{UTF-8} 8 | --- 9 | 10 | ```{r setup} 11 | library(cgmquantify) 12 | ``` 13 | 14 | ## Using cgmquantify package: 15 | 16 | ### Formatting data for input 17 | 18 | Before reading in your dataframe with the readfile function, please make sure the .csv file has the following Dexcom CGM format: 19 | 20 | * A column **Timestamp (YYYY-MM-DDThh:mm:ss)** representing the timestamps of the glucose measurements in the specified format. 21 | * A column **Glucose Value (mg/dL)** containing glucose measurements from CGM. 22 | * The official glucose measurements start on row 12. 23 | 24 | Once this has been done, your .csv file should be read easily with the readfile function. Please read your .csv file with the readfile function before using the rest of the functions to avoid possible errors. 25 | 26 | ### Functions currently available 27 | 28 | * readfile(data) - reads in a .csv with format specified above and turns it into data frame suitable for further package analysis 29 | * eA1c(data)- computes estimated A1c, according to American Diabetes Association calculator 30 | * GMI(data) - computes glycemic management indicator 31 | * interdaycv(data) - computes interday coefficient of variation 32 | * interdaysd(data) - computes interday standard deviation 33 | * intradaycv(data) - computes intraday coefficient of variation: mean, median, standard deviadtion of all days in data 34 | * intradaysd(data) - computes intraday standard deviation: mean, median, standard deviation of all days in data 35 | * J_index(data) - computes the glycemic variability metric, J-index 36 | * LBGI(data) - computes glycemic variability metric low blood glucose index 37 | * HBGI(data) - computes glycemic variability metric high blood glucose index 38 | * LBGI_HBGI(data) - computes LBGI and HBGI and returns both values in a data frame 39 | * MGE(data, sd=1) - computes the mean of glycemic excursions, glycemic excursions indicated by standard deviation, default = 1 40 | * MGN(data, sd=1) - computes the mean of normal glucose, glycemic excursions indicated by standard deviation, default = 1 41 | * plot_gluocse(data) - plots glycemic excursions over the time period in which data was collected. 42 | * POR(data, sd=1, sr=5) - computes percent of time outside range (range in standard deviations from mean, default = 1). sr is the sampling rate inverse in minutes of the CGM (default is the Dexcom -> 5 minutes) 43 | * summary_glucose(data) - computes the mean, median, minimum, maximum, first quartile, and the third quartile of an indidividual's overall glucose levels and returns value in data frame 44 | * TIR(data, sd=1, sr=5) - computes time inside range (range in standard deviations from mean, default = 1). sr is the sampling rate inverse in minutes of the CGM (default is the Dexcom -> 5 minutes) 45 | * TOR(data, sd=1, sr=5) - computes time outside range (range in standard deviations from mean, default = 1). sr is the sampling rate inverse in minutes of the CGM (default is the Dexcom -> 5 minutes) 46 | 47 | ### Functions coming soon 48 | 49 | * MODD(data) - computes meean of daily differences in glucose 50 | * ADRR(data) - computes Average Daily Risk Range, assessment of total daily glucose variations within risk space 51 | * CONGA24(data) - computes continuous overall net glycemic action over 24 hours 52 | * MAGE(data, std=1) - computes the mean amplitude of glycemic excursions, glycemic excursions indicated by standard deviation, default = 1; calculation following Baghurst's algorithm for MAGE 53 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # cgmquantify: python package for analyzing glucose and glucose variability 3 | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 4 | 5 | Continuous glucose monitoring (CGM) systems provide real-time, dynamic glucose information by tracking interstitial glucose values throughout the day. Glycemic variability, also known as glucose variability, is an established risk factor for hypoglycemia (Kovatchev) and has been shown to be a risk factor in diabetes complications. Over 20 metrics of glycemic variability have been identified. 6 | 7 | Here, we provide functions to calculate glucose summary metrics, glucose variability metrics (as defined in clinical publications), and visualizations to visualize trends in CGM data. 8 | 9 | This module currently works with [Dexcom G6 data](https://www.dexcom.com/get-started-cgm/111?sfc=7014y000000yxYNAAY&gclid=EAIaIQobChMI4ejrpLHQ7gIVhbzICh1ntQ2hEAAYASAAEgKghfD_BwE). 10 | 11 | The cgmquantify package is [now available in R!](https://CRAN.R-project.org/package=cgmquantify) 12 | 13 | #### [User Guide](https://github.com/brinnaebent/cgmquantify/wiki/User-Guide) 14 | #### [Issue Tracking](https://github.com/brinnaebent/cgmquantify/issues) 15 | 16 | #### Installation: 17 | * **Recommended:** pip install cgmquantify 18 | * If above does not work: pip install git+git://github.com/brinnaebent/cgmquantify.git 19 | * git clone [repo](https://github.com/brinnaebent/cgmquantify.git) 20 | 21 | #### Dependencies: (these will be downloaded upon installation with pip) 22 | pandas, numpy, matplotlib, statsmodels, datetime 23 | 24 | >Coming soon - 25 | >* Currently only supports Dexcom CGM, more CGM coming soon 26 | >* Integration with food logs, myFitnessPal food logs 27 | >* Machine Learning methods for discovering trends in CGM data 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | cgm quantify 2 | ---------- 3 | 30 metrics of glucose and glucose variability= visualizations 4 | -------------------------------------------------------------------------------- /cgmquantify.egg-info/PKG-INFO: -------------------------------------------------------------------------------- 1 | Metadata-Version: 2.1 2 | Name: cgmquantify 3 | Version: 0.5 4 | Summary: Quantifying glucose and glucose variability from CGM devices 5 | Home-page: https://github.com/brinnaebent/cgmquantify 6 | Author: Brinnae Bent 7 | Author-email: bmbent@ncsu.edu 8 | License: MIT 9 | Description: 10 | # cgmquantify: python package for analyzing glucose and glucose variability 11 | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 12 | 13 | Continuous glucose monitoring (CGM) systems provide real-time, dynamic glucose information by tracking interstitial glucose values throughout the day. Glycemic variability, also known as glucose variability, is an established risk factor for hypoglycemia (Kovatchev) and has been shown to be a risk factor in diabetes complications. Over 20 metrics of glycemic variability have been identified. 14 | 15 | Here, we provide functions to calculate glucose summary metrics, glucose variability metrics (as defined in clinical publications), and visualizations to visualize trends in CGM data. 16 | 17 | #### [User Guide](https://github.com/brinnaebent/cgmquantify/wiki/User-Guide) 18 | #### [Issue Tracking](https://github.com/brinnaebent/cgmquantify/issues) 19 | 20 | #### Installation: 21 | * **Recommended:** pip install cgmquantify 22 | * If above does not work: pip install git+git://github.com/brinnaebent/cgmquantify.git 23 | * git clone [repo](https://github.com/brinnaebent/cgmquantify.git) 24 | 25 | #### Dependencies: (these will be downloaded upon installation with pip) 26 | pandas, numpy, matplotlib, statsmodels, datetime 27 | 28 | >Coming soon - 29 | >* Currently only supports Dexcom CGM, more CGM coming soon 30 | >* Integration with food logs, myFitnessPal food logs 31 | >* Machine Learning methods for discovering trends in CGM data 32 | 33 | 34 | 35 | 36 | 37 | Platform: UNKNOWN 38 | Description-Content-Type: text/markdown 39 | -------------------------------------------------------------------------------- /cgmquantify.egg-info/SOURCES.txt: -------------------------------------------------------------------------------- 1 | MANIFEST.in 2 | README.rst 3 | setup.cfg 4 | setup.py 5 | cgmquantify/__init__.py 6 | cgmquantify.egg-info/PKG-INFO 7 | cgmquantify.egg-info/SOURCES.txt 8 | cgmquantify.egg-info/dependency_links.txt 9 | cgmquantify.egg-info/not-zip-safe 10 | cgmquantify.egg-info/requires.txt 11 | cgmquantify.egg-info/top_level.txt -------------------------------------------------------------------------------- /cgmquantify.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cgmquantify.egg-info/not-zip-safe: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cgmquantify.egg-info/requires.txt: -------------------------------------------------------------------------------- 1 | pandas 2 | numpy 3 | matplotlib 4 | datetime 5 | statsmodels 6 | -------------------------------------------------------------------------------- /cgmquantify.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | cgmquantify 2 | -------------------------------------------------------------------------------- /cgmquantify/__init__.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import datetime as datetime 3 | import numpy as np 4 | import matplotlib.pyplot as plt 5 | from statsmodels.nonparametric.smoothers_lowess import lowess 6 | 7 | """ 8 | cgmquantify package 9 | Description: 10 | The cgmquantify package is a comprehensive library for computing metrics from continuous glucose monitors. 11 | 12 | Requirements: 13 | pandas, datetime, numpy, matplotlib, statsmodels 14 | 15 | Functions: 16 | importdexcom(): Imports data from Dexcom continuous glucose monitor devices 17 | interdaycv(): Computes and returns the interday coefficient of variation of glucose 18 | interdaysd(): Computes and returns the interday standard deviation of glucose 19 | intradaycv(): Computes and returns the intraday coefficient of variation of glucose 20 | intradaysd(): Computes and returns the intraday standard deviation of glucose 21 | TIR(): Computes and returns the time in range 22 | TOR(): Computes and returns the time outside range 23 | PIR(): Computes and returns the percent time in range 24 | POR(): Computes and returns the percent time outside range 25 | MGE(): Computes and returns the mean of glucose outside specified range 26 | MGN(): Computes and returns the mean of glucose inside specified range 27 | MAGE(): Computes and returns the mean amplitude of glucose excursions 28 | J_index(): Computes and returns the J-index 29 | LBGI(): Computes and returns the low blood glucose index 30 | HBGI(): Computes and returns the high blood glucose index 31 | ADRR(): Computes and returns the average daily risk range, an assessment of total daily glucose variations within risk space 32 | MODD(): Computes and returns the mean of daily differences. Examines mean of value + value 24 hours before 33 | CONGA24(): Computes and returns the continuous overall net glycemic action over 24 hours 34 | GMI(): Computes and returns the glucose management index 35 | eA1c(): Computes and returns the American Diabetes Association estimated HbA1c 36 | summary(): Computes and returns glucose summary metrics, including interday mean glucose, interday median glucose, interday minimum glucose, interday maximum glucose, interday first quartile glucose, and interday third quartile glucose 37 | plotglucosesd(): Plots glucose with specified standard deviation lines 38 | plotglucosebounds(): Plots glucose with user-defined boundaries 39 | plotglucosesmooth(): Plots smoothed glucose plot (with LOWESS smoothing) 40 | 41 | """ 42 | 43 | def importdexcom(filename): 44 | """ 45 | Imports data from Dexcom continuous glucose monitor devices 46 | Args: 47 | filename (String): path to file 48 | Returns: 49 | (pd.DataFrame): dataframe of data with Time, Glucose, and Day columns 50 | """ 51 | data = pd.read_csv(filename) 52 | df = pd.DataFrame() 53 | df['Time'] = data['Timestamp (YYYY-MM-DDThh:mm:ss)'] 54 | df['Glucose'] = pd.to_numeric(data['Glucose Value (mg/dL)']) 55 | df.drop(df.index[:12], inplace=True) 56 | df['Time'] = pd.to_datetime(df['Time'], format='%Y-%m-%dT%H:%M:%S') 57 | df['Day'] = df['Time'].dt.date 58 | df = df.reset_index() 59 | return df 60 | 61 | 62 | def importfreestylelibre(filename): 63 | """ 64 | Imports data from Abbott FreeStyle Libre continuous glucose monitor devices 65 | Args: 66 | filename (String): path to file 67 | Returns: 68 | (pd.DataFrame): dataframe of data with Time, Glucose, and Day columns 69 | """ 70 | data = pd.read_csv(filename, header=1, parse_dates=['Device Timestamp']) 71 | df = pd.DataFrame() 72 | 73 | historic_id = 0 74 | 75 | df['Time'] = data.loc[data['Record Type'] == historic_id, 'Device Timestamp'] 76 | df['Glucose'] = pd.to_numeric(data.loc[data['Record Type'] == historic_id, 'Historic Glucose mg/dL']) 77 | df['Day'] = df['Time'].dt.date 78 | return df 79 | 80 | 81 | def interdaycv(df): 82 | """ 83 | Computes and returns the interday coefficient of variation of glucose 84 | Args: 85 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 86 | Returns: 87 | cvx (float): interday coefficient of variation averaged over all days 88 | 89 | """ 90 | cvx = (np.std(df['Glucose']) / (np.mean(df['Glucose'])))*100 91 | return cvx 92 | 93 | def interdaysd(df): 94 | """ 95 | Computes and returns the interday standard deviation of glucose 96 | Args: 97 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 98 | Returns: 99 | interdaysd (float): interday standard deviation averaged over all days 100 | 101 | """ 102 | interdaysd = np.std(df['Glucose']) 103 | return interdaysd 104 | 105 | def intradaycv(df): 106 | """ 107 | Computes and returns the intraday coefficient of variation of glucose 108 | Args: 109 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 110 | Returns: 111 | intradaycv_mean (float): intraday coefficient of variation averaged over all days 112 | intradaycv_medan (float): intraday coefficient of variation median over all days 113 | intradaycv_sd (float): intraday coefficient of variation standard deviation over all days 114 | 115 | """ 116 | intradaycv = [] 117 | for i in pd.unique(df['Day']): 118 | intradaycv.append(interdaycv(df[df['Day']==i])) 119 | 120 | intradaycv_mean = np.mean(intradaycv) 121 | intradaycv_median = np.median(intradaycv) 122 | intradaycv_sd = np.std(intradaycv) 123 | 124 | return intradaycv_mean, intradaycv_median, intradaycv_sd 125 | 126 | 127 | def intradaysd(df): 128 | """ 129 | Computes and returns the intraday standard deviation of glucose 130 | Args: 131 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 132 | Returns: 133 | intradaysd_mean (float): intraday standard deviation averaged over all days 134 | intradaysd_medan (float): intraday standard deviation median over all days 135 | intradaysd_sd (float): intraday standard deviation standard deviation over all days 136 | 137 | """ 138 | intradaysd =[] 139 | 140 | for i in pd.unique(df['Day']): 141 | intradaysd.append(np.std(df[df['Day']==i])) 142 | 143 | intradaysd_mean = np.mean(intradaysd) 144 | intradaysd_median = np.median(intradaysd) 145 | intradaysd_sd = np.std(intradaysd) 146 | return intradaysd_mean, intradaysd_median, intradaysd_sd 147 | 148 | def TIR(df, sd=1, sr=5): 149 | """ 150 | Computes and returns the time in range 151 | Args: 152 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 153 | sd (integer): standard deviation for computing range (default=1) 154 | sr (integer): sampling rate (default=5[minutes, once every 5 minutes glucose is recorded]) 155 | Returns: 156 | TIR (float): time in range, units=minutes 157 | 158 | """ 159 | up = np.mean(df['Glucose']) + sd*np.std(df['Glucose']) 160 | dw = np.mean(df['Glucose']) - sd*np.std(df['Glucose']) 161 | TIR = len(df[(df['Glucose']<= up) & (df['Glucose']>= dw)])*sr 162 | return TIR 163 | 164 | def TOR(df, sd=1, sr=5): 165 | """ 166 | Computes and returns the time outside range 167 | Args: 168 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 169 | sd (integer): standard deviation for computing range (default=1) 170 | sr (integer): sampling rate (default=5[minutes, once every 5 minutes glucose is recorded]) 171 | Returns: 172 | TOR (float): time outside range, units=minutes 173 | 174 | """ 175 | up = np.mean(df['Glucose']) + sd*np.std(df['Glucose']) 176 | dw = np.mean(df['Glucose']) - sd*np.std(df['Glucose']) 177 | TOR = len(df[(df['Glucose']>= up) | (df['Glucose']<= dw)])*sr 178 | return TOR 179 | 180 | def POR(df, sd=1, sr=5): 181 | """ 182 | Computes and returns the percent time outside range 183 | Args: 184 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 185 | sd (integer): standard deviation for computing range (default=1) 186 | sr (integer): sampling rate (default=5[minutes, once every 5 minutes glucose is recorded]) 187 | Returns: 188 | POR (float): percent time outside range, units=% 189 | 190 | """ 191 | up = np.mean(df['Glucose']) + sd*np.std(df['Glucose']) 192 | dw = np.mean(df['Glucose']) - sd*np.std(df['Glucose']) 193 | TOR = len(df[(df['Glucose']>= up) | (df['Glucose']<= dw)])*sr 194 | POR = (TOR/(len(df)*sr))*100 195 | return POR 196 | 197 | def PIR(df, sd=1, sr=5): 198 | """ 199 | Computes and returns the percent time inside range 200 | Args: 201 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 202 | sd (integer): standard deviation for computing range (default=1) 203 | sr (integer): sampling rate (default=5[minutes, once every 5 minutes glucose is recorded]) 204 | Returns: 205 | PIR (float): percent time inside range, units=% 206 | 207 | """ 208 | up = np.mean(df['Glucose']) + sd*np.std(df['Glucose']) 209 | dw = np.mean(df['Glucose']) - sd*np.std(df['Glucose']) 210 | TIR = len(df[(df['Glucose']<= up) | (df['Glucose']>= dw)])*sr 211 | PIR = (TIR/(len(df)*sr))*100 212 | return PIR 213 | 214 | def MGE(df, sd=1): 215 | """ 216 | Computes and returns the mean of glucose outside specified range 217 | Args: 218 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 219 | sd (integer): standard deviation for computing range (default=1) 220 | Returns: 221 | MGE (float): the mean of glucose excursions (outside specified range) 222 | 223 | """ 224 | up = np.mean(df['Glucose']) + sd*np.std(df['Glucose']) 225 | dw = np.mean(df['Glucose']) - sd*np.std(df['Glucose']) 226 | MGE = np.mean(df[(df['Glucose']>= up) | (df['Glucose']<= dw)]) 227 | return MGE 228 | 229 | def MGN(df, sd=1): 230 | """ 231 | Computes and returns the mean of glucose inside specified range 232 | Args: 233 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 234 | sd (integer): standard deviation for computing range (default=1) 235 | Returns: 236 | MGN (float): the mean of glucose excursions (inside specified range) 237 | 238 | """ 239 | up = np.mean(df['Glucose']) + sd*np.std(df['Glucose']) 240 | dw = np.mean(df['Glucose']) - sd*np.std(df['Glucose']) 241 | MGN = np.mean(df[(df['Glucose']<= up) & (df['Glucose']>= dw)]) 242 | return MGN 243 | 244 | def MAGE(df, std=1): 245 | """ 246 | Computes and returns the mean amplitude of glucose excursions 247 | Args: 248 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 249 | sd (integer): standard deviation for computing range (default=1) 250 | Returns: 251 | MAGE (float): the mean amplitude of glucose excursions 252 | Refs: 253 | Sneh Gajiwala: https://github.com/snehG0205/NCSA_genomics/tree/2bfbb87c9c872b1458ef3597d9fb2e56ac13ad64 254 | 255 | """ 256 | 257 | #extracting glucose values and incdices 258 | glucose = df['Glucose'].tolist() 259 | ix = [1*i for i in range(len(glucose))] 260 | stdev = std 261 | 262 | # local minima & maxima 263 | a = np.diff(np.sign(np.diff(glucose))).nonzero()[0] + 1 264 | # local min 265 | valleys = (np.diff(np.sign(np.diff(glucose))) > 0).nonzero()[0] + 1 266 | # local max 267 | peaks = (np.diff(np.sign(np.diff(glucose))) < 0).nonzero()[0] + 1 268 | # +1 -- diff reduces original index number 269 | 270 | #store local minima and maxima -> identify + remove turning points 271 | excursion_points = pd.DataFrame(columns=['Index', 'Time', 'Glucose', 'Type']) 272 | k=0 273 | for i in range(len(peaks)): 274 | excursion_points.loc[k] = [peaks[i]] + [df['Time'][k]] + [df['Glucose'][k]] + ["P"] 275 | k+=1 276 | 277 | for i in range(len(valleys)): 278 | excursion_points.loc[k] = [valleys[i]] + [df['Time'][k]] + [df['Glucose'][k]] + ["V"] 279 | k+=1 280 | 281 | excursion_points = excursion_points.sort_values(by=['Index']) 282 | excursion_points = excursion_points.reset_index(drop=True) 283 | 284 | 285 | # selecting turning points 286 | turning_points = pd.DataFrame(columns=['Index', 'Time', 'Glucose', 'Type']) 287 | k=0 288 | for i in range(stdev,len(excursion_points.Index)-stdev): 289 | positions = [i-stdev,i,i+stdev] 290 | for j in range(0,len(positions)-1): 291 | if(excursion_points.Type[positions[j]] == excursion_points.Type[positions[j+1]]): 292 | if(excursion_points.Type[positions[j]]=='P'): 293 | if excursion_points.Glucose[positions[j]]>=excursion_points.Glucose[positions[j+1]]: 294 | turning_points.loc[k] = excursion_points.loc[positions[j+1]] 295 | k+=1 296 | else: 297 | turning_points.loc[k] = excursion_points.loc[positions[j+1]] 298 | k+=1 299 | else: 300 | if excursion_points.Glucose[positions[j]]<=excursion_points.Glucose[positions[j+1]]: 301 | turning_points.loc[k] = excursion_points.loc[positions[j]] 302 | k+=1 303 | else: 304 | turning_points.loc[k] = excursion_points.loc[positions[j+1]] 305 | k+=1 306 | 307 | if len(turning_points.index)<10: 308 | turning_points = excursion_points.copy() 309 | excursion_count = len(excursion_points.index) 310 | else: 311 | excursion_count = len(excursion_points.index)/2 312 | 313 | 314 | turning_points = turning_points.drop_duplicates(subset= "Index", keep= "first") 315 | turning_points=turning_points.reset_index(drop=True) 316 | excursion_points = excursion_points[excursion_points.Index.isin(turning_points.Index) == False] 317 | excursion_points = excursion_points.reset_index(drop=True) 318 | 319 | # calculating MAGE 320 | mage = turning_points.Glucose.sum()/excursion_count 321 | 322 | return round(mage,3) 323 | 324 | 325 | 326 | def J_index(df): 327 | """ 328 | Computes and returns the J-index 329 | Args: 330 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 331 | Returns: 332 | J (float): J-index of glucose 333 | 334 | """ 335 | J = 0.001*((np.mean(df['Glucose'])+np.std(df['Glucose']))**2) 336 | return J 337 | 338 | def LBGI_HBGI(df): 339 | """ 340 | Connecter function to calculate rh and rl, used for ADRR function 341 | Args: 342 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 343 | Returns: 344 | LBGI (float): Low blood glucose index 345 | HBGI (float): High blood glucose index 346 | rl (float): See calculation of LBGI 347 | rh (float): See calculation of HBGI 348 | 349 | """ 350 | f = ((np.log(df['Glucose'])**1.084) - 5.381) 351 | rl = [] 352 | for i in f: 353 | if (i <= 0): 354 | rl.append(22.77*(i**2)) 355 | else: 356 | rl.append(0) 357 | 358 | LBGI = np.mean(rl) 359 | 360 | rh = [] 361 | for i in f: 362 | if (i > 0): 363 | rh.append(22.77*(i**2)) 364 | else: 365 | rh.append(0) 366 | 367 | HBGI = np.mean(rh) 368 | 369 | return LBGI, HBGI, rh, rl 370 | 371 | 372 | 373 | def LBGI(df): 374 | """ 375 | Computes and returns the low blood glucose index 376 | Args: 377 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 378 | Returns: 379 | LBGI (float): Low blood glucose index 380 | 381 | """ 382 | f = ((np.log(df['Glucose'])**1.084) - 5.381) 383 | rl = [] 384 | for i in f: 385 | if (i <= 0): 386 | rl.append(22.77*(i**2)) 387 | else: 388 | rl.append(0) 389 | 390 | LBGI = np.mean(rl) 391 | return LBGI 392 | 393 | def HBGI(df): 394 | """ 395 | Computes and returns the high blood glucose index 396 | Args: 397 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 398 | Returns: 399 | HBGI (float): High blood glucose index 400 | 401 | """ 402 | f = ((np.log(df['Glucose'])**1.084) - 5.381) 403 | rh = [] 404 | for i in f: 405 | if (i > 0): 406 | rh.append(22.77*(i**2)) 407 | else: 408 | rh.append(0) 409 | 410 | HBGI = np.mean(rh) 411 | return HBGI 412 | 413 | def ADRR(df): 414 | """ 415 | Computes and returns the average daily risk range, an assessment of total daily glucose variations within risk space 416 | Args: 417 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 418 | Returns: 419 | ADRRx (float): average daily risk range 420 | 421 | """ 422 | ADRRl = [] 423 | for i in pd.unique(df['Day']): 424 | LBGI, HBGI, rh, rl = LBGI_HBGI(df[df['Day']==i]) 425 | LR = np.max(rl) 426 | HR = np.max(rh) 427 | ADRRl.append(LR+HR) 428 | 429 | ADRRx = np.mean(ADRRl) 430 | return ADRRx 431 | 432 | def uniquevalfilter(df, value): 433 | """ 434 | Supporting function for MODD and CONGA24 functions 435 | Args: 436 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 437 | value (datetime): time to match up with previous 24 hours 438 | Returns: 439 | MODD_n (float): Best matched with unique value, value 440 | 441 | """ 442 | xdf = df[df['Minfrommid'] == value] 443 | n = len(xdf) 444 | diff = abs(xdf['Glucose'].diff()) 445 | MODD_n = np.nanmean(diff) 446 | return MODD_n 447 | 448 | def MODD(df): 449 | """ 450 | Computes and returns the mean of daily differences. Examines mean of value + value 24 hours before 451 | Args: 452 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 453 | Requires: 454 | uniquevalfilter (function) 455 | Returns: 456 | MODD (float): Mean of daily differences 457 | 458 | """ 459 | df['Timefrommidnight'] = df['Time'].dt.time 460 | lists=[] 461 | for i in range(0, len(df['Timefrommidnight'])): 462 | lists.append(int(df['Timefrommidnight'][i].strftime('%H:%M:%S')[0:2])*60 + int(df['Timefrommidnight'][i].strftime('%H:%M:%S')[3:5]) + round(int(df['Timefrommidnight'][i].strftime('%H:%M:%S')[6:9])/60)) 463 | df['Minfrommid'] = lists 464 | df = df.drop(columns=['Timefrommidnight']) 465 | 466 | #Calculation of MODD and CONGA: 467 | MODD_n = [] 468 | uniquetimes = df['Minfrommid'].unique() 469 | 470 | for i in uniquetimes: 471 | MODD_n.append(uniquevalfilter(df, i)) 472 | 473 | #Remove zeros from dataframe for calculation (in case there are random unique values that result in a mean of 0) 474 | MODD_n[MODD_n == 0] = np.nan 475 | 476 | MODD = np.nanmean(MODD_n) 477 | return MODD 478 | 479 | def CONGA24(df): 480 | """ 481 | Computes and returns the continuous overall net glycemic action over 24 hours 482 | Args: 483 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 484 | Requires: 485 | uniquevalfilter (function) 486 | Returns: 487 | CONGA24 (float): continuous overall net glycemic action over 24 hours 488 | 489 | """ 490 | df['Timefrommidnight'] = df['Time'].dt.time 491 | lists=[] 492 | for i in range(0, len(df['Timefrommidnight'])): 493 | lists.append(int(df['Timefrommidnight'][i].strftime('%H:%M:%S')[0:2])*60 + int(df['Timefrommidnight'][i].strftime('%H:%M:%S')[3:5]) + round(int(df['Timefrommidnight'][i].strftime('%H:%M:%S')[6:9])/60)) 494 | df['Minfrommid'] = lists 495 | df = df.drop(columns=['Timefrommidnight']) 496 | 497 | #Calculation of MODD and CONGA: 498 | MODD_n = [] 499 | uniquetimes = df['Minfrommid'].unique() 500 | 501 | for i in uniquetimes: 502 | MODD_n.append(uniquevalfilter(df, i)) 503 | 504 | #Remove zeros from dataframe for calculation (in case there are random unique values that result in a mean of 0) 505 | MODD_n[MODD_n == 0] = np.nan 506 | 507 | CONGA24 = np.nanstd(MODD_n) 508 | return CONGA24 509 | 510 | def GMI(df): 511 | """ 512 | Computes and returns the glucose management index 513 | Args: 514 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 515 | Returns: 516 | GMI (float): glucose management index (an estimate of HbA1c) 517 | 518 | """ 519 | GMI = 3.31 + (0.02392*np.mean(df['Glucose'])) 520 | return GMI 521 | 522 | def eA1c(df): 523 | """ 524 | Computes and returns the American Diabetes Association estimated HbA1c 525 | Args: 526 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 527 | Returns: 528 | eA1c (float): an estimate of HbA1c from the American Diabetes Association 529 | 530 | """ 531 | eA1c = (46.7 + np.mean(df['Glucose']))/ 28.7 532 | return eA1c 533 | 534 | def summary(df): 535 | """ 536 | Computes and returns glucose summary metrics 537 | Args: 538 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 539 | Returns: 540 | meanG (float): interday mean of glucose 541 | medianG (float): interday median of glucose 542 | minG (float): interday minimum of glucose 543 | maxG (float): interday maximum of glucose 544 | Q1G (float): interday first quartile of glucose 545 | Q3G (float): interday third quartile of glucose 546 | 547 | """ 548 | meanG = np.nanmean(df['Glucose']) 549 | medianG = np.nanmedian(df['Glucose']) 550 | minG = np.nanmin(df['Glucose']) 551 | maxG = np.nanmax(df['Glucose']) 552 | Q1G = np.nanpercentile(df['Glucose'], 25) 553 | Q3G = np.nanpercentile(df['Glucose'], 75) 554 | 555 | return meanG, medianG, minG, maxG, Q1G, Q3G 556 | 557 | def plotglucosesd(df, sd=1, size=15): 558 | """ 559 | Plots glucose with specified standard deviation lines 560 | Args: 561 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 562 | sd (integer): standard deviation lines to plot (default=1) 563 | size (integer): font size for plot (default=15) 564 | Returns: 565 | plot of glucose with standard deviation lines 566 | 567 | """ 568 | glucose_mean = np.mean(df['Glucose']) 569 | up = np.mean(df['Glucose']) + sd*np.std(df['Glucose']) 570 | dw = np.mean(df['Glucose']) - sd*np.std(df['Glucose']) 571 | 572 | plt.figure(figsize=(20,5)) 573 | plt.rcParams.update({'font.size': size}) 574 | plt.plot(df['Time'], df['Glucose'], '.', color = '#1f77b4') 575 | plt.axhline(y=glucose_mean, color='red', linestyle='-') 576 | plt.axhline(y=up, color='pink', linestyle='-') 577 | plt.axhline(y=dw, color='pink', linestyle='-') 578 | plt.ylabel('Glucose') 579 | plt.show() 580 | 581 | def plotglucosebounds(df, upperbound = 180, lowerbound = 70, size=15): 582 | """ 583 | Plots glucose with user-defined boundaries 584 | Args: 585 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 586 | upperbound (integer): user defined upper bound for glucose line to plot (default=180) 587 | lowerbound (integer): user defined lower bound for glucose line to plot (default=70) 588 | size (integer): font size for plot (default=15) 589 | Returns: 590 | plot of glucose with user defined boundary lines 591 | 592 | """ 593 | plt.figure(figsize=(20,5)) 594 | plt.rcParams.update({'font.size': size}) 595 | plt.plot(df['Time'], df['Glucose'], '.', color = '#1f77b4') 596 | plt.axhline(y=upperbound, color='red', linestyle='-') 597 | plt.axhline(y=lowerbound, color='orange', linestyle='-') 598 | plt.ylabel('Glucose') 599 | plt.show() 600 | 601 | def plotglucosesmooth(df, size=15): 602 | """ 603 | Plots smoothed glucose plot (with LOWESS smoothing) 604 | Args: 605 | (pd.DataFrame): dataframe of data with DateTime, Time and Glucose columns 606 | size (integer): font size for plot (default=15) 607 | Returns: 608 | LOWESS-smoothed plot of glucose 609 | 610 | """ 611 | filteres = lowess(df['Glucose'], df['Time'], is_sorted=True, frac=0.025, it=0) 612 | filtered = pd.to_datetime(filteres[:,0], format='%Y-%m-%dT%H:%M:%S') 613 | 614 | plt.figure(figsize=(20,5)) 615 | plt.rcParams.update({'font.size': size}) 616 | plt.plot(df['Time'], df['Glucose'], '.') 617 | plt.plot(filtered, filteres[:,1], 'r') 618 | plt.ylabel('Glucose') 619 | plt.show() 620 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | def readme(): 4 | with open('README.rst') as f: 5 | return f.read() 6 | 7 | from os import path 8 | this_directory = path.abspath(path.dirname(__file__)) 9 | with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f: 10 | ld = f.read() 11 | 12 | 13 | setup(name='cgmquantify', 14 | version='0.5', 15 | description='Quantifying glucose and glucose variability from CGM devices', 16 | long_description= ld, 17 | long_description_content_type= 'text/markdown', 18 | url='https://github.com/brinnaebent/cgmquantify', 19 | #download_url='https://github.com/brinnaebent/cgmquantify/archive/0.4.tar.gz', 20 | author='Brinnae Bent', 21 | author_email='bmbent@ncsu.edu', 22 | license='MIT', 23 | packages=['cgmquantify'], 24 | install_requires=['pandas','numpy','matplotlib','datetime','statsmodels', 25 | ], 26 | zip_safe=False) 27 | -------------------------------------------------------------------------------- /test_/README.md: -------------------------------------------------------------------------------- 1 | ## Test data under the filename test_file.csv is de-identified data that is time shifted. This data is not meant to be utilized for research purposes, but rather as a way to verify that the package cgmquantify is functioning properly. 2 | -------------------------------------------------------------------------------- /test_/test_code.py: -------------------------------------------------------------------------------- 1 | import cgmquantify as cgm 2 | 3 | data = cgm.importdexcom('test_file.csv') 4 | 5 | print('interdaysd is: ' + str(cgm.interdaysd(data))) 6 | print('interdaycv is: ' + str(cgm.interdaycv(data))) 7 | print('intradaysd is: ' + str(cgm.intradaysd(data))) 8 | print('intradaycv is: ' + str(cgm.intradaycv(data))) 9 | print('TOR is: ' + str(cgm.TOR(data))) 10 | print('TIR is: ' + str(cgm.TIR(data))) 11 | print('POR is: ' + str(cgm.POR(data))) 12 | print('MGE is: ' + str(cgm.MGE(data))) 13 | print('MGN is: ' + str(cgm.MGN(data))) 14 | print('MAGE is: ' + str(cgm.MAGE(data))) 15 | print('MODD is: ' + str(cgm.MODD(data))) 16 | print('J_index is: ' + str(cgm.J_index(data))) 17 | print('LBGI is: ' + str(cgm.LBGI(data))) 18 | print('HBGI is: ' + str(cgm.HBGI(data))) 19 | print('ADRR is: ' + str(cgm.ADRR(data))) 20 | print('CONGA24 is: ' + str(cgm.CONGA24(data))) 21 | print('GMI is: ' + str(cgm.GMI(data))) 22 | print('eA1c is: ' + str(cgm.eA1c(data))) 23 | print('summary is: ' + str(cgm.summary(data))) 24 | 25 | cgm.plotglucosebounds(data) 26 | 27 | cgm.plotglucosesd(data) 28 | 29 | cgm.plotglucosesmooth(data) 30 | --------------------------------------------------------------------------------