arbtt-chart

"Plot charts from arbtt-stats to terminal"


Keywords
arbtt, pandas, python, terminal
License
MIT
Install
pip install arbtt-chart==1.0.3a1

Documentation

arbtt-chart

PyPI Python Version badge PyPI Version badge License badge

Overview

Textual chart for arbtt, the automatic, rule-based time tracker.

Similar to arbtt-graph, just in plain monospace text.

demo

(The above screenshot is generated using my liskin-arbtt-stats which provides a few handy commands and combines data from multiple X sessions and Strava.)

Raw arbtt-stats output for the same time period looks something like this:

arbtt-stats

Getting started

  1. Install arbtt and make sure arbtt-capture runs in your graphical login session.

  2. Configure arbtt rules in ~/.arbtt/categorize.cfg. See Configuring the arbtt categorizer, Effective Use of Arbtt, and sample categorize.cfg for arbtt-graph.

  3. Install arbtt-chart.

  4. Try arbtt-stats --output-format=csv --each-category | arbtt-chart or arbtt-stats --output-format=csv --category=Graph | arbtt-chart

Installation

Using pipx:

pipx ensurepath
pipx install arbtt-chart

To keep a local git clone around:

git clone https://github.com/liskin/arbtt-chart
make -C arbtt-chart pipx

Alternatively, if you don't need the isolated virtualenv that pipx provides, feel free to just:

pip install arbtt-chart

Or, since the only dependency is pandas, you can just sudo apt install python3-pandas and run arbtt_chart.py directly. :-)

Usage

$ arbtt-chart --help
usage: arbtt-chart [-h] [--no-stacked] [--subtags] [--totals-re RE]

Plot charts from arbtt-stats to terminal. Expects `arbtt-stats --output-
format=csv --category=โ€ฆ` or `arbtt-stats --output-format=csv --each-category`
output on stdin.

options:
  -h, --help      show this help message and exit
  --no-stacked    don't stack bar chart
  --subtags       recognize subtags (separated by '-') and sort them together
  --totals-re RE  totals row regexp, default: ^\(total time\)$

Examples

single category

$ arbtt-stats --filter='$date >= 2021-03-0220:00 && $date < 2021-03-0303:00' \
>             --min-percentage=2 --category=Activity --output-format=csv \
> | arbtt-chart
Activity                                                                        
โ•โ•โ•โ•โ•โ•โ•โ•                                                                        
Proj-arbttโฑ          03:11:40  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ยทยทยทยทยทยทยทยทรทยทยทยท
Chat                 00:30:20  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Šยทยทยทรทยทยทยท
(8 entries omitted)  00:15:40  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทโ–•โ–ˆโ–ˆโ–Šรทยทยทยท
Web-Social           00:08:20  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทโ–โ–“โ–ยทยท
Web-otherโฑ           00:06:40  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทรทโ–ˆโ–ยท
Web-HN               00:06:20  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทรทยทโ–โ–Š
(unmatched time)     00:01:20  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทรทยทยทโ–•
                                                                                
(total time)         04:20:20  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆ

single category, subtags

$ arbtt-stats --filter='$date >= 2021-03-0220:00 && $date < 2021-03-0303:00' \
>             --min-percentage=2 --category=Activity --output-format=csv \
> | arbtt-chart --subtags
Activity                                                                        
โ•โ•โ•โ•โ•โ•โ•โ•                                                                        
Proj                arbttโฑ  03:11:40  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆยทยทยทยทยทยทยทรทยทยทยท
Chat                        00:30:20  ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทโ–•โ–ˆโ–ˆโ–ˆโ–ˆโ–Šยทยทรทยทยทยท
Web                 Social  00:08:20  ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทโ–•โ–ˆโ–รทยทยทยท
                    otherโฑ  00:06:40  ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทโ–ˆโ–ยทยทยท
                    HN      00:06:20  ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทโ–“โ–ยทยท
(8 entries omitted)         00:15:40  ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทรทโ–ˆโ–ˆโ–‹
(unmatched time)            00:01:20  ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทรทยทยทโ–•
                                                                                
(total time)                04:20:20  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆ

multiple categories

$ arbtt-stats --filter='$date >= 2021-03-0220:00 && $date < 2021-03-0303:00' \
>             --min-percentage=2 --each-category --output-format=csv \
> | arbtt-chart
Activity                                                                        
โ•โ•โ•โ•โ•โ•โ•โ•                                                                        
Proj-arbttโฑ          03:11:40  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ยทยทยทยทยทยทยทยทรทยทยทยท
Chat                 00:30:20  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Šยทยทยทรทยทยทยท
(8 entries omitted)  00:15:40  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทโ–•โ–ˆโ–ˆโ–Šรทยทยทยท
Web-Social           00:08:20  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทโ–โ–“โ–ยทยท
Web-otherโฑ           00:06:40  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทรทโ–ˆโ–ยท
Web-HN               00:06:20  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทรทยทโ–โ–Š
(unmatched time)     00:01:20  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทรทยทยทโ–•
                                                                                
(total time)         04:20:20  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆ
                                                                                
Desktop                                                                         
โ•โ•โ•โ•โ•โ•โ•                                                                         
4_arbtt              02:21:40  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–Šยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทรทยทยทยท
6_arbtt_web          00:50:20  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทโ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆยทยทยทยทยทยทยทยทยทรทยทยทยท
1_irc                00:34:00  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Œยทยทรทยทยทยท
2_web                00:34:00  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทโ–โ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆ
(1 entries omitted)  00:00:20  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทรทยทยทโ–•
                                                                                
(total time)         04:20:20  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆ
                                                                                
Program                                                                         
โ•โ•โ•โ•โ•โ•โ•                                                                         
urxvt                02:38:00  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Šยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทรทยทยทยท
google-chrome        01:21:40  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทโ–โ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‰รทยทยทยท
app_element_io       00:14:40  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทโ–“โ–ˆโ–‰ยท
(3 entries omitted)  00:06:00  ยทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทยทยทรทยทโ–•โ–ˆ
                                                                                
(total time)         04:20:20  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆ

custom inputs

$ arbtt-chart --totals-re='^\(' <<END
> Tag,Time
> Act:Work,02:30:00
> Act:Social,01:20:00
> Act:Mail,00:20:00
> Act:Movie,01:30:00
> (screen),05:40:00
> 
> Tag,Time
> Act:Sport,3600
> Act:Commute,1800
> (outside),5400
> END
Act                                                                             
โ•โ•โ•                                                                             
Work       02:30:00  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–‹ยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยท
Movie      01:30:00  ยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทโ–โ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‰ยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยท
Social     01:20:00  ยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทโ–•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–Šยทยทยทยทยทรทยทยทยทยทยทยทยทรทยท
Sport      01:00:00  ยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทรทยทโ–•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆยทยทยทยทยทรทยท
Commute    00:30:00  ยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทโ–ˆโ–ˆโ–ˆโ–ˆโ–รทยท
Mail       00:20:00  ยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทโ–ˆโ–“โ–Š
                                                                                
(screen)   05:40:00  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–Šยทยทรทยทยทยทยทยทยทยทรทยท
(outside)  01:30:00  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทรทยท

custom inputs, multiple tables at same scale

$ arbtt-chart <<END
> Tag,Time
> Screen:Work,02:30:00
> Screen:Social,01:20:00
> Screen:Mail,00:20:00
> Screen:Movie,01:30:00
> (total time),05:40:00
> 
> Tag,Time
> Outside:Sport,3600
> Outside:Commute,1800
> (total time),5400
> END
Screen                                                                          
โ•โ•โ•โ•โ•โ•                                                                          
Work          02:30:00  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–Šยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยท
Movie         01:30:00  ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทโ–โ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยท
Social        01:20:00  ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทโ–โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–Šยทยทยท
Mail          00:20:00  ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทโ–โ–ˆโ–ˆโ–‰
                                                                                
(total time)  05:40:00  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
                                                                                
Outside                                                                         
โ•โ•โ•โ•โ•โ•โ•                                                                         
Sport         01:00:00  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“ยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยท
Commute       00:30:00  ยทยทยทยทยทยทยทยทยทโ–•โ–ˆโ–ˆโ–ˆโ–ˆโ–Šยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยท
                                                                                
(total time)  01:30:00  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–‰ยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยทยทยทยทรทยทยทยทยทยทยท