Python in Digital Humanities
Episode Deep Dive
Guest Introduction
David Flood is a developer on Harvard's DARTH (Digital Arts and Humanities) team, formally known as Arts & Humanities Research Computing. David's background is in music and the humanities, with a PhD focused on textual criticism of the New Testament. He had no programming experience before 2019, when he began self-teaching Python during his doctoral studies in Edinburgh, Scotland. His need to use computational tools for comparing manuscript variants led him to learn Python by watching YouTube tutorials and listening to podcasts -- including Talk Python To Me. The pandemic gave him extra time to deepen his skills, and he eventually moved from writing one-off scripts to building reusable tools, publishing packages on PyPI, and creating web applications for fellow scholars. That journey led directly to his current role at Harvard, where he builds production web apps for faculty-led humanities research projects.
What to Know If You're New to Python
This episode covers web development, static site generation, and data infrastructure topics. Here is a quick primer to help you get the most out of the discussion:
- Django is Python's most popular full-featured web framework. This episode focuses heavily on Django-based projects and tools like Django Bakery, Django REST Framework, and the Django ORM.
- Static vs. dynamic websites: A dynamic site needs a running server and database to respond to requests; a static site is just HTML, CSS, and JavaScript files that can be hosted anywhere cheaply or even for free.
- Elasticsearch and PostgreSQL are common backend tools for search and data storage. Understanding that these services cost money to run is essential context for the archival challenge discussed throughout this episode.
- WebAssembly (Wasm) is a technology that allows compiled code to run in the browser at near-native speed. The episode explores exciting possibilities around using it to run Python and even Django entirely on the client side.
Key Points and Takeaways
1. Static Sites as the Gold Standard for Archiving Grant-Funded Web Projects
The central thesis of this episode is a deceptively simple question: what happens when the grant money runs out but the research website needs to live on? David and his team at Harvard have developed a "gold standard" answer: convert dynamic web applications into static sites. By baking a Django app out into plain HTML, CSS, and JavaScript files, the resulting site can be hosted for free on platforms like GitHub Pages or dropped into an S3 bucket. The trade-off is that you lose some features like full-text vector search and the ability to easily add new data, but you keep the research accessible to the public indefinitely. This approach acknowledges that the data itself is more valuable than any particular hosting arrangement, and that a folder of HTML files is the most portable, durable format for long-term preservation. David emphasized that they now design some projects from the beginning with this archival endpoint in mind.
- pages.github.com -- GitHub Pages for free static site hosting
- archiveprogram.github.com -- GitHub's Arctic Code Vault / Archive Program
2. PageFind: Replacing Elasticsearch with Client-Side Search
PageFind emerged as one of the most exciting tools discussed in the episode. It is a fully static, client-side search library that can replace server-side search solutions like Elasticsearch on archived sites. PageFind works by crawling your HTML files and building a search index that it chops into many small fragments organized roughly alphabetically. When a user types a search query, only the relevant fragment is pulled over the network, making search nearly instant. David demonstrated that Harvard's Amendments Project, which searches across 22,000+ full texts, can be powered entirely by PageFind after sunsetting its Postgres full-text search. PageFind supports filtering and faceting, which David considers even more important than keyword search for data discovery. Critically, PageFind has a Python API that lets you build indexes programmatically from database dumps rather than only from HTML files. Harvard's DARTH team also maintains an open-source Vue.js component library for PageFind that they reuse across projects. Michael Kennedy noted that on his personal site, "you can't type fast enough to outrun the results."
- pagefind.app -- PageFind static search library
- github.com/artshumrc/pagefind-vue -- Harvard DARTH's Vue.js component library for PageFind
3. Django Bakery and Frozen Flask: Baking Dynamic Sites into Static Files
Django Bakery is a library that lets you "bake" a Django site into flat static files. The key requirement is that you must opt into using Django Bakery's own class-based views from the start of your project, which makes it difficult to add retroactively. Harvard's DARTH team used it for the Water Stories project, a companion site for a Radcliffe Institute art installation, where stories submitted on iPads went into a Django database and were then baked into static HTML. Even after archiving, when the faculty requested changes, David could spin up the full app locally with Docker Compose, make edits in the Django admin, and rebake the site. Michael also mentioned Frozen Flask, which provides similar static-baking functionality for Flask applications. Both tools represent a practical middle ground: develop with the full power of a dynamic framework, then freeze the result for long-term hosting.
- github.com/datadesk/django-bakery -- Django Bakery for baking Django sites into static files
- github.com/Frozen-Flask/Frozen-Flask -- Frozen Flask for converting Flask apps to static files
4. WebAssembly: Running Django Entirely in the Browser
One of the most forward-looking ideas discussed was running a full Django application in the browser via WebAssembly. Thanks to Pyodide (which runs Python in the browser via Wasm) and projects like PGLite (which runs Postgres in the browser), it is now possible to host Django in a service worker with a local SQLite or Postgres database -- all client-side. David pointed to a proof-of-concept project called Django WebAssembly that lets you log into the Django admin entirely within your own browser, with no backend server at all. This approach could preserve the full functionality of a live site as what is essentially a static deployment. The long-term durability question around WebAssembly standards was raised, but David noted that even in a worst case, having everything Dockerized and in a public repo means someone can always rescue the project.
- pyodide.org -- Run Python in the browser via WebAssembly
- pyscript.net -- PyScript for running Python in web pages
- pglite.dev -- PGLite: run PostgreSQL in the browser via Wasm
- github.com/m-butterfield/django_webassembly -- Proof of concept for Django running in the browser
5. Harvard's DARTH Team: A Digital Agency Inside a University
DARTH (Digital Arts and Humanities) operates as a small, agency-like team within Harvard's much larger IT organization (500+ people). They consult with faculty who have funded research projects and build custom web applications for them. David describes three main categories of projects: virtual research environments (platforms for doing research with visualization, data entry, and Postgres), public-facing exploration and search interfaces, and data extraction and transformation tools. The team works on two or three greenfield projects per year and also "puts to bed" a few projects each year as grants expire. They work with a designer and evaluate each project from first principles rather than relying on a single cookie-cutter template, because each project's requirements are sufficiently different. Their 404 page features Darth Vader with the message "I find your lack of nav disturbing."
- digitalhumanities.fas.harvard.edu -- Harvard DARTH official website
- github.com/artshumrc -- DARTH's GitHub organization
6. The Grant Funding Lifecycle and the "What Now?" Problem
A recurring theme throughout the episode is the tension between grant-funded development and long-term sustainability. During active development, projects run on AWS using containers (ECS), RDS Postgres, and Elasticsearch clusters. These are reliable and robust, but the costs add up. When a grant ends, someone has to decide who pays even $100 a month for hosting, and who handles upgrades and maintenance over time. The DARTH team has no DevOps person on call for weekends, so reliability during the active phase matters too. This unglamorous but critical problem drives much of the team's innovation around static site archival, PageFind, and WebAssembly-based solutions. David noted that they now strategize about end-of-life from the very beginning of some projects, rather than scrambling when funding dries up.
7. Showcase of Real-World Digital Humanities Projects
David walked through several compelling projects that illustrate the range of digital humanities work at Harvard. The Amendments Project is a searchable database of over 22,000 proposed amendments to the U.S. Constitution that never passed, built with Postgres full-text vector search and currently being transitioned to a static site with PageFind. The Fionn Folklore Database catalogs hundreds of years of Celtic storytelling traditions around the hero Fionn MacCumhaill, with audio recordings and written documents in English, Scottish Gaelic, and Irish Gaelic -- requiring deep internationalization down to the database level. Mapping Color in History is a pigments database where researchers perform spectral analysis on Asian artwork to track how pigments were made over time, with a deep-zoom image viewer for pinpointing analysis locations. The Tsumeb Mine Notebook documents mineral specimens from the historic Tsumeb mine in Namibia, using an Astro-based static site with PageFind search. Water Stories was a companion to a Radcliffe Institute art installation, built with Django Bakery for easy archival.
- digitalhumanities.fas.harvard.edu/projects/amend/ -- The Amendments Project
- digitalhumanities.fas.harvard.edu/projects/fionn-cycle/ -- Fionn Folklore Database
- mappingcolor.fas.harvard.edu -- Mapping Color in History
- tmn.fas.harvard.edu -- Tsumeb Mine Notebook
- waterstories.fas.harvard.edu -- Water Stories
8. Data Wrangling and ETL in the Humanities
David confirmed the old data science adage that 80% of the work is data wrangling. Most projects begin with researchers handing over Excel spreadsheets (sometimes several), and the first task is ingesting that data into a proper Postgres database. Figuring out the right data model and relationships is the number one challenge of the early stage, but it benefits everyone because it forces the researchers to think about their data in a more organized way. Cleaning the data involves handling fuzzy dates like "summer of 2020" or "July of 2020," and the team writes extensive test suites around the ingest process. Michael recalled the famous example of biologists who had to rename a gene because Excel kept parsing its name as a date. Once the data is cleaned and loaded, the team builds a web-based interface so researchers can continue entering new data in a structured way rather than going back to spreadsheets.
9. Search Interfaces as a Superpower for Research Discovery
David made a compelling case that a powerful search interface is often the single most effective way to demonstrate the value of digital tools to humanities researchers. Many scholars have their data locked behind terrible search interfaces or are scrolling through Excel spreadsheets trying to find what they need. Putting that same data behind Elasticsearch with good filtering and faceting gives them fast, structured access to their research data in a way they never had before. For the public-facing side of projects, search and filtering are what enable discovery. David noted that faceting and filtering -- by state, by Congress, by author -- are often more useful than keyword search alone. The DARTH team maintains reusable search components across projects and has built their own Vue.js PageFind component library to standardize the search experience.
10. From Humanities PhD to Full-Time Developer: Python as a Career Catalyst
David's personal story is a powerful example of how Python can open unexpected career paths. In 2019, he didn't know what Python was or the name of any programming language. He was doing textual criticism of New Testament manuscripts and needed computational tools that turned out to be software libraries, not desktop apps. Learning Python to glue these tools together during his PhD led him into web development, PyPI, GitHub, and eventually a full-time development role at Harvard. He found that the ethos of open-source software mapped naturally onto academic culture. David credited Talk Python To Me as a form of "language immersion" that helped him understand the developer landscape even before he fully understood every technical detail. His advice to others in similar positions: keep listening, keep learning, and let the technical vocabulary become familiar through repeated exposure.
11. AI in Digital Humanities: A Double-Edged Sword
David reflected on AI's impact from two angles. On the practical side, his team uses AI for data extraction to make search interfaces more powerful, and he personally uses Claude to help with complex mathematical operations in audio processing libraries like Librosa. Harvard faculty are beginning to "vibe code" with AI tools, and the DARTH team is teaching them to use dedicated tools like GitHub Copilot and Cursor rather than copy-pasting from ChatGPT. On the philosophical side, David raised a thought-provoking concern: if AI coding had been available when he started his PhD, he could have accomplished his immediate research goals without ever acquiring deep technical skills. That means he would never have discovered the career path that led him to Harvard's DARTH team. Michael agreed this is a real risk: AI might knock people off the more technical path, preventing the kind of serendipitous career discovery that David experienced. David emphasized that AI is more powerful in the hands of someone with real software engineering skills than in the hands of a complete beginner.
- librosa.org -- Librosa: Python library for audio and music analysis
12. AWS Containers, Compliance, and Infrastructure Trade-offs
David shared a candid story about trying to reduce costs by moving from AWS ECS (Elastic Container Service) container clusters to a single EC2 instance. He priced it out, deployed a proof of concept, and confirmed it would be significantly cheaper. However, he discovered that managing your own VM at a large university introduces a host of compliance requirements: you need to ensure the latest OS patches are applied, run specific observability tools, and meet security standards that are automatically handled when running in managed container clusters. The ECS approach costs more but requires much less compliance overhead and no on-call DevOps staff. All of their infrastructure is defined as code using AWS CDK. This is a practical lesson for anyone at an institution with strict IT governance: the cheapest option on paper may not be the cheapest when compliance costs are factored in.
13. Open Source and Long-Term Preservation in Academia
Projects at DARTH typically start as closed-source during development and then transition to open source after consultation with faculty. Making projects open source is especially important when they reach end-of-life, as it allows others to run, fork, or adapt the code. David noted that everything they build is Dockerized, so in the worst case someone can take the Docker image and run the project themselves. He also mentioned GitHub Codespaces as an archival strategy: for one Ruby on Rails project that needed to be archived urgently, he set it up so anyone could boot it with a single command in Codespaces. Universities typically have their own archival systems for important research data, and Michael mentioned GitHub's Arctic Code Vault as an additional layer of preservation. The broader point is that open source, containerization, and static site generation work together as a multi-layered preservation strategy for digital humanities work.
- github.com/copier-org/copier -- Copier: project templating with update capability
- github.com/cookiecutter/cookiecutter -- Cookiecutter: project scaffolding from templates
- joss.theoj.org -- Journal of Open Source Software
Interesting Quotes and Stories
"Just applying these technical tools to old questions, that is the core of digital humanities." -- David Flood
"If AI coding had been around the way it is now when I was learning, I wouldn't be doing digital humanities at Harvard. I wouldn't have been able to get into this field, I wouldn't have known about it." -- David Flood
"AI is more powerful in my hands now [as a software engineer] than it would have been then [as a beginner]. So I'm thankful for that." -- David Flood
"Can this become a static website? Can we bake this out into all HTML files and acknowledge that there will be some trade-offs?" -- David Flood
"It goes on GitHub Pages and it can live hopefully forever. I mean, it feels like GitHub will last forever, but it'll last longer than funding will anyways." -- David Flood
"I just want to hear people talk about deployment to get a sense of what actual deployment sounds like." -- David Flood, on using podcasts as language immersion for learning software development
"You can't type fast enough to outrun the results." -- Michael Kennedy, describing PageFind's search speed
"Programming is a superpower, not a replacement for your job." -- Michael Kennedy
"Talk Python has been kind of like that conversation with the open source community that's been always in my ear." -- David Flood
"Page not found. I find your lack of nav disturbing." -- Harvard DARTH's 404 page
David shared the story of using phylogenetic software -- tools designed for evolutionary biologists to track how DNA mutations spread -- and swapping in Greek textual variants for DNA letters to track how ancient manuscripts changed over time and group them into families. This cross-pollination of computational biology and textual criticism is a vivid example of Python enabling unexpected research connections.
Michael recalled the famous biology story where a human gene had to be renamed because Excel kept parsing its name as a date, perfectly illustrating the data wrangling challenges that humanities researchers face when their data lives in spreadsheets.
Key Definitions and Terms
- Digital Humanities: An interdisciplinary field that applies computational tools and methods to traditional humanities research. David describes it as "applying technical tools to old questions."
- Textual Criticism: The scholarly discipline of comparing multiple copies of the same text to determine the original wording and trace how it changed over time. David's PhD work focused on New Testament manuscripts.
- Critical Apparatus: In textual criticism, a structured display of variant readings alongside a base text, showing how different copies of a text differ from one another.
- Static Site: A website made up of pre-built HTML, CSS, and JavaScript files that require no server-side processing. Can be hosted cheaply or for free on platforms like GitHub Pages.
- Django Bakery: A Django library that "bakes" a dynamic Django site into flat static HTML files for cheap, long-term hosting.
- PageFind: A client-side search library that builds a pre-computed search index split into small fragments, enabling fast, server-free full-text search on static websites.
- Pyodide: A Python distribution compiled to WebAssembly that runs CPython directly in web browsers.
- PGLite: A WebAssembly build of PostgreSQL that runs entirely in the browser.
- ECS (Elastic Container Service): AWS's managed container orchestration service, one step below Kubernetes, used by DARTH for hosting production Django apps.
- AWS CDK (Cloud Development Kit): A framework for defining cloud infrastructure as code using familiar programming languages.
- Vibe Coding: Using AI tools to generate code through natural language prompts with minimal manual coding, a practice David noted is emerging among Harvard faculty.
- Phylogenetic Software: Tools from computational biology that track how DNA sequences mutate over time; repurposed in textual criticism to track how manuscript texts diverge.
Learning Resources
Here are resources from Talk Python Training to go deeper on the topics covered in this episode:
- Django: Getting Started: David's team is a Django shop, and this episode revolves around Django-based projects, Django Bakery, Django REST Framework, and the Django admin. This course teaches you how to build your first Django project and guides you through the key parts of the framework.
- HTMX + Django: Modern Python Web Apps, Hold the JavaScript: David mentioned the value of using vanilla Django templates for archivability rather than JavaScript-heavy frontends. This course shows how to build interactive Django apps using HTMX with minimal JavaScript.
- Static Sites with Sphinx and Markdown: The archival strategy at the heart of this episode is converting dynamic sites to static ones. This free course teaches static site generation with Python tools.
- Getting started with pytest: David described writing extensive test suites around data ingest processes to catch issues like date parsing errors. This course covers pytest fundamentals for building reliable test coverage.
- Python for Absolute Beginners: David's story of going from zero programming knowledge to a full-time developer role is inspiring. If you are just starting out, this is the premier course for beginning developers, covering the big ideas from CS 101 all the way through building applications.
Overall Takeaway
This episode reveals a problem hiding in plain sight across academia: grant-funded research websites are built to be powerful, but they are not built to survive their own funding. David Flood and Harvard's DARTH team have turned that constraint into a design philosophy, proving that static sites, client-side search with PageFind, and even browser-based Django via WebAssembly can keep research alive long after the last dollar is spent. But the technical story is only half of it. David's personal journey from a humanities scholar who didn't know what Python was in 2019 to a full-time developer at Harvard is a testament to Python's unique power as a gateway language. It meets people where they are, lets them solve real problems, and opens doors they didn't know existed. Whether you work in academia, run a small agency, or just want your projects to outlive their infrastructure, the lesson is the same: build for today, but archive for tomorrow.
Links from the show
David Flood: davidaflood.com
DARTH: digitalhumanities.fas.harvard.edu
Amendments Project: digitalhumanities.fas.harvard.edu
Fionn Folklore Database: fionnfolklore.org
Mapping Color in History: iiif.harvard.edu
Apatosaurus: apatosaurus.io
Criticus: github.com
github.com/palewire/django-bakery: github.com
sigsim.acm.org/conf/pads/2026/blog/artifact-evaluation: sigsim.acm.org
Hugo: gohugo.io
Water Stories: waterstories.fas.harvard.edu
Tsumeb Mine Notebook: tmn.fas.harvard.edu
Dharma and Punya: dharmapunya2019.org
Pagefind library: pagefind.app
django_webassembly: github.com
Astro Static Site Generator: astro.build
PageFind Python Lib: pypi.org
Frozen-Flask: frozen-flask.readthedocs.io
Watch this episode on YouTube: youtube.com
Episode #538 deep-dive: talkpython.fm/538
Episode transcripts: talkpython.fm
Theme Song: Developer Rap
🥁 Served in a Flask 🎸: talkpython.fm/flasksong
---== Don't be a stranger ==---
YouTube: youtube.com/@talkpython
Bluesky: @talkpython.fm
Mastodon: @talkpython@fosstodon.org
X.com: @talkpython
Michael on Bluesky: @mkennedy.codes
Michael on Mastodon: @mkennedy@fosstodon.org
Michael on X.com: @mkennedy
Episode Transcript
Collapse transcript
00:00
00:05
00:11
00:18
00:24
00:48
00:53
00:55
00:59
01:00
01:04
01:06
01:10
01:14
01:14
01:18
01:23
01:27
01:29
01:31
01:33
01:37
01:42
01:44
01:46
01:51
01:51
01:56
01:59
02:03
02:10
02:15
02:21
02:34
02:44
02:45
02:47
02:57
02:58
03:00
03:04
03:09
03:16
03:22
03:27
03:33
03:35
03:40
03:42
03:45
03:53
03:58
04:04
04:09
04:15
04:23
04:29
04:37
04:43
04:47
04:54
05:01
05:07
05:11
05:17
05:19
05:24
05:35
05:36
05:40
05:44
05:48
05:56
05:59
06:06
06:12
06:16
06:21
06:27
06:36
06:38
06:39
06:39
06:41
06:43
06:50
06:52
06:57
06:59
07:06
07:13
07:18
07:23
07:29
07:36
07:42
07:48
07:54
08:01
08:07
08:13
08:19
08:25
08:30
08:33
08:37
08:40
08:42
08:45
08:47
08:50
08:52
08:53
08:55
09:00
09:04
09:08
09:14
09:16
09:17
09:18
09:23
09:23
09:28
09:33
09:33
09:35
09:35
09:43
09:47
09:49
09:51
09:51
09:56
10:02
10:08
10:17
10:23
10:28
10:34
10:40
10:45
10:50
10:56
11:00
11:02
11:07
11:11
11:14
11:14
11:19
11:22
11:27
11:33
11:40
11:46
11:48
11:50
12:00
12:02
12:02
12:04
12:06
12:07
12:08
12:09
12:12
12:17
12:18
12:21
12:28
12:33
12:42
12:44
12:54
12:56
12:57
13:01
13:07
13:17
13:23
13:26
13:27
13:36
13:42
13:49
13:50
13:59
14:05
14:13
14:20
14:26
14:31
14:36
14:42
14:49
14:55
14:59
15:03
15:06
15:10
15:14
15:18
15:19
15:20
15:22
15:25
15:30
15:34
15:38
15:42
15:47
15:52
15:56
15:58
16:02
16:06
16:12
16:15
16:21
16:22
16:24
16:30
16:31
16:32
16:38
16:41
16:44
16:49
16:54
16:58
17:02
17:09
17:15
17:20
17:25
17:28
17:33
17:37
17:38
17:43
17:48
17:53
17:57
18:03
18:07
18:12
18:14
18:16
18:19
18:21
18:22
18:26
18:28
18:29
18:30
18:31
18:35
18:38
18:40
18:45
18:51
18:55
19:00
19:05
19:07
19:10
19:14
19:20
19:22
19:24
19:28
19:34
19:36
19:41
19:47
19:52
19:57
20:00
20:01
20:08
20:16
20:24
20:32
20:37
20:43
20:46
20:50
20:55
21:00
21:03
21:08
21:14
21:21
21:25
21:33
21:37
21:42
21:48
21:51
21:57
22:02
22:05
22:08
22:09
22:10
22:10
22:11
22:12
22:13
22:14
22:16
22:21
22:24
22:30
22:34
22:39
22:41
22:47
22:52
22:55
22:55
23:04
23:06
23:10
23:19
23:29
23:31
23:32
23:41
23:46
23:48
23:50
23:51
23:52
23:55
24:07
24:17
24:18
24:20
24:27
24:30
24:31
24:45
24:56
25:04
25:05
25:06
25:07
25:08
25:11
25:13
25:13
25:14
25:16
25:18
25:21
25:21
25:22
25:22
25:27
25:32
25:38
25:40
25:40
25:46
25:47
25:51
25:54
26:00
26:03
26:08
26:10
26:17
26:20
26:22
26:25
26:25
26:26
26:27
26:34
26:38
26:43
26:46
26:49
26:53
26:53
26:58
27:00
27:04
27:09
27:15
27:18
27:21
27:24
27:26
27:31
27:33
27:34
27:37
27:37
27:40
27:44
27:47
27:48
27:49
27:53
27:56
27:57
27:57
28:02
28:03
28:07
28:11
28:13
28:14
28:19
28:21
28:22
28:23
28:24
28:25
28:26
28:29
28:36
28:37
28:41
28:47
28:55
28:55
28:56
28:59
29:04
29:05
29:07
29:08
29:12
29:14
29:15
29:21
29:24
29:30
29:34
29:39
29:43
29:48
29:52
29:53
29:53
30:00
30:02
30:04
30:07
30:11
30:14
30:14
30:16
30:21
30:27
30:32
30:35
30:35
30:36
30:40
30:46
30:52
30:56
31:02
31:06
31:12
31:14
31:19
31:21
31:22
31:23
31:23
31:25
31:28
31:32
31:36
31:38
31:40
31:41
31:42
31:42
31:46
31:53
32:08
32:08
32:10
32:12
32:17
32:22
32:25
32:29
32:32
32:37
32:41
32:45
32:51
33:01
33:08
33:14
33:21
33:29
33:33
33:47
33:53
33:59
34:05
34:05
34:11
34:18
34:18
34:19
34:22
34:23
34:26
34:33
34:35
34:40
34:41
34:45
34:51
34:54
35:00
35:03
35:05
35:06
35:12
35:13
35:14
35:15
35:22
35:25
35:30
35:32
35:34
35:39
35:40
35:45
35:46
35:50
35:53
35:55
35:59
36:04
36:07
36:08
36:13
36:17
36:20
36:24
36:25
36:29
36:34
36:37
36:42
36:44
36:49
36:51
36:54
36:55
36:59
37:00
37:04
37:05
37:07
37:11
37:14
37:16
37:19
37:22
37:26
37:27
37:30
37:34
37:38
37:42
37:43
37:49
37:50
37:50
37:53
38:04
38:05
38:08
38:11
38:12
38:27
38:30
38:35
38:45
38:48
38:50
38:56
38:56
38:58
39:03
39:14
39:15
39:18
39:20
39:30
39:30
39:31
39:32
39:32
39:34
39:40
39:41
39:43
39:47
39:48
39:50
39:51
39:52
39:54
40:00
40:02
40:02
40:05
40:06
40:07
40:09
40:10
40:14
40:18
40:23
40:26
40:28
40:30
40:33
40:34
40:35
40:36
40:41
40:41
40:43
40:44
40:49
40:50
40:52
40:56
41:05
41:10
41:12
41:22
41:25
41:33
41:36
41:40
41:44
41:46
41:55
42:01
42:04
42:06
42:08
42:13
42:15
42:18
42:20
42:26
42:29
42:36
42:46
42:49
42:54
43:00
43:05
43:11
43:17
43:22
43:27
43:31
43:37
43:42
43:47
43:50
43:56
43:56
43:57
43:58
44:02
44:04
44:05
44:06
44:09
44:13
44:17
44:25
44:30
44:37
44:45
44:50
44:56
45:04
45:09
45:16
45:22
45:27
45:34
45:40
45:50
45:55
46:00
46:07
46:14
46:20
46:26
46:29
46:40
46:43
46:48
46:56
46:57
47:00
47:05
47:09
47:11
47:18
47:19
47:21
47:22
47:24
47:29
47:31
47:36
47:40
47:43
47:45
47:50
47:52
47:54
47:59
48:05
48:10
48:16
48:21
48:25
48:26
48:27
48:34
48:39
48:41
48:42
48:44
48:48
48:51
48:57
49:00
49:05
49:05
49:06
49:07
49:07
49:12
49:15
49:16
49:21
49:24
49:26
49:29
49:33
49:36
49:38
49:38
49:41
49:46
49:48
49:51
49:53
49:56
49:57
50:02
50:09
50:11
50:12
50:13
50:13
50:19
50:21
50:22
50:23
50:24
50:26
50:30
50:31
50:33
50:37
50:42
50:47
50:52
50:57
51:00
51:05
51:08
51:09
51:12
51:15
51:17
51:21
51:25
51:29
51:30
51:34
51:38
51:42
51:42
51:46
51:52
51:56
52:01
52:03
52:06
52:11
52:12
52:13
52:15
52:17
52:18
52:20
52:27
52:32
52:34
52:39
52:40
52:45
52:46
52:52
52:53
52:59
53:01
53:10
53:15
53:20
53:26
53:34
53:41
53:43
53:51
53:55
54:03
54:09
54:15
54:23
54:29
54:36
54:40
54:42
54:47
54:50
54:55
54:59
55:02
55:03
55:08
55:09
55:10
55:13
55:15
55:18
55:23
55:25
55:28
55:31
55:32
55:35
55:41
55:48
55:53
55:57
55:59
56:00
56:05
56:05
56:09
56:15
56:17
56:19
56:20
56:21
56:31
56:37
56:39
56:49
56:49
56:52
56:55
57:04
57:10
57:14
57:17
57:22
57:24
57:25
57:26
57:30
57:31
57:32
57:34
57:35
57:36
57:42
57:44
57:46
57:47
57:51
57:53
57:57
57:59
58:05
58:07
58:12
58:13
58:15
58:19
58:27
58:30
58:32
58:32
58:38
58:39
58:42
58:46
58:51
58:58
59:04
59:10
59:17
59:21
59:28
59:34
59:37
59:43
59:52
59:57
01:00:02
01:00:07
01:00:13
01:00:18
01:00:22
01:00:27
01:00:32
01:00:36
01:00:41
01:00:42
01:00:44
01:00:47
01:00:48
01:00:49
01:00:50
01:00:51
01:00:54
01:00:59
01:01:01
01:01:04
01:01:06
01:01:11
01:01:12
01:01:15
01:01:18
01:01:25
01:01:30
01:01:33
01:01:39
01:01:48
01:01:52
01:01:56
01:01:58
01:02:00
01:02:05
01:02:13
01:02:17
01:02:23
01:02:28
01:02:31
01:02:32
01:02:33
01:02:34
01:02:43
01:02:48
01:02:53
01:02:54
01:02:58
01:03:04
01:03:13
01:03:19
01:03:26
01:03:32
01:03:36
01:03:39
01:03:44
01:03:45
01:03:51
01:03:56
01:04:03
01:04:11
01:04:17
01:04:23
01:04:25
01:04:26
01:04:30
01:04:31
01:04:35
01:04:35
01:04:42
01:04:45
01:04:49
01:04:52
01:04:54
01:04:58
01:05:04
01:05:07
01:05:09
01:05:13
01:05:17
01:05:21
01:05:28
01:05:31
01:05:37
01:05:38
01:05:38
01:05:39
01:05:42
01:05:43
01:05:44
01:05:44
01:05:50
01:05:55
01:06:01
01:06:06
01:06:11
01:06:16
01:06:22
01:06:27
01:06:28
01:06:34
01:06:37
01:06:41
01:06:47
01:06:53
01:06:59
01:07:03
01:07:05
01:07:06
01:07:09
01:07:10
01:07:14
01:07:16
01:07:17
01:07:24
01:07:28
01:07:30
01:07:31
01:07:32
01:07:33
01:07:34
01:07:34
01:07:36
01:07:43
01:07:47
01:07:52
01:07:57
01:08:01
01:08:08
01:08:10
01:08:11
01:08:13
01:08:13
01:08:14
01:08:15
01:08:16
01:08:21
01:08:22
01:08:22
01:08:30
01:08:37
01:08:43
01:08:43
01:08:46
01:08:47
01:08:52
01:08:55
01:08:56
01:08:59
01:09:03
01:09:06
01:09:07
01:09:12
01:09:13
01:09:14
01:09:15
01:09:22
01:09:27
01:09:34
01:09:40
01:09:45
01:09:50
01:09:55
01:10:02
01:10:05
01:10:05
01:10:08
01:10:11
01:10:16
01:10:17
01:10:23
01:10:27
01:10:28
01:10:31
01:10:33
01:10:36
01:10:37
01:10:38
01:10:40
01:10:42
01:10:46
01:10:48
01:10:53
01:10:56
01:11:00
01:11:05
01:11:08
01:11:10
01:11:14
01:11:16
01:11:19
01:11:32
01:11:35
01:11:37
01:11:42
01:11:44
01:11:46
01:11:49
01:11:51
01:11:53
01:11:54
01:11:56
01:12:08 I'm out.


