1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-29 03:34:07 +00:00
Commit graph

96 commits

Author SHA1 Message Date
fig02
42af56b231
git subrepo pull --force tools/ZAPD (#718)
subrepo:
  subdir:   "tools/ZAPD"
  merged:   "4bf6600a3"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "4bf6600a3"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"
2021-03-14 11:40:25 -04:00
Parker Burnett
a30b5bbb26
m2ctx.py fixes (#681)
* adding a fix to m2ctx and adding argparse

* adding in some print statements
2021-02-11 14:08:24 -05:00
Anghelo Carvajal
088e8c09bc
Update regconvert.py (#666)
* change raw offset to index

Signed-off-by: angie <angheloalf95@gmail.com>

* Rename offset to data index

Signed-off-by: Anghelo <angheloalf95@gmail.com>

* clean up a bit the code

Signed-off-by: Anghelo <angheloalf95@gmail.com>

* add --offset and --hex options

Signed-off-by: Anghelo <angheloalf95@gmail.com>

* add --file flag to automatically convert every gGameInfo index to a macro

Signed-off-by: Anghelo <angheloalf95@gmail.com>

* add --stdout flag

Signed-off-by: Anghelo <angheloalf95@gmail.com>

* Check if index/offset is valid

Signed-off-by: Anghelo <angheloalf95@gmail.com>

* Changes asked by @ethteck

Signed-off-by: Anghelo <angheloalf95@gmail.com>
2021-02-03 14:48:23 -05:00
Anghelo Carvajal
d1a9775926
Improve the get_actor_sizes.py script (#673)
* the script now should be able to parse the files in the build folder

also added some flags to ignore an actor list and parse the non-matching like before

Signed-off-by: angie <angheloalf95@gmail.com>

* bit of cleanup

Signed-off-by: angie <angheloalf95@gmail.com>

* script to compare the results

Signed-off-by: angie <angheloalf95@gmail.com>

* dont assume every function is in just one file

Signed-off-by: angie <angheloalf95@gmail.com>

* fix qword allign

Signed-off-by: angie <angheloalf95@gmail.com>

* move the csv stuff to a function

Signed-off-by: angie <angheloalf95@gmail.com>

* add flag to export the amount of instructions per function

add examples for how to use the script
fix a bug

Signed-off-by: angie <angheloalf95@gmail.com>

* add include-only flag

Signed-off-by: angie <angheloalf95@gmail.com>

* delete extra file

Signed-off-by: angie <angheloalf95@gmail.com>

* keep functions order

Signed-off-by: angie <angheloalf95@gmail.com>
2021-02-02 13:30:34 -05:00
louist103
45a21b0ac7
EnNy OK (#624)
* get data in

* Match Init and one other

* match some more

* match a bunch more

* merge master

* OK

* Some naming done

* OBJECT_NY almost done. waiting on ZAP changes

* Remove ASM

* Cleanup

* Commit before merge

* fix damage table

* Change comment
2021-01-31 15:32:55 -05:00
Zelllll
20c1f4e648
Decompile Gameplay_Keep and fix all existing decompiled objects (#595)
* First batch of files

* Add missing folders back

* Fix missing folders again

* Finish fixing existing texture files

* Gameplay_Keep XML finished

* Most actor gameplay_keep undefined syms removed

* Only ~200 gkeep symbols remain

* All gkeep symbols that ZAP supports are fixed

* Cleanup, and make gkeep names more accurate

* Starting to figure out what some unknown blobs are, merge zeldaret in

* fix a few more things

* refactor gkeep

* Change how gitkeep is handled

* gkeep xml cleanup

* Gkeep finished, now just waiting up ZAP updates

* 100 link animations finished

* 150 link animations finished

* 200 link animations finished

* 250 link animations finished

* 350 link animations finished

* 400 link animations finished

* 450 link animations finished

* 500 link animations finished

* 550 link animations finished

* All Link animations finished

cannot build yet because ZAP doesn't have LinkAnimationHeader yet

* xml changes for new zap stuff

* finish gameplay_keep

* fixing existing objects

* ready for pr besides zap padding issue

* mostly ready for pr

* format all c files

* all conflicts fixed

* make changes that roman requested

* fix thing i didn't mean to change

* some animation symbols renamed

* fixed roman's stuff

* lifemeter hardcoded pointers removed

* fix issue with incorrect data in gameplay_keep

* removed unused asm

* fixed most of fig's comments

* fix all of fig's comments

* reformat files

* Update assets/xml/textures/icon_item_static.xml

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update assets/xml/textures/icon_item_static.xml

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* fixed stuff

* fixed most of roman's comments

* remove leading zeroes

* should build now

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "f84d8337b"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "f84d8337b"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* all of gkeep symbols fixed

* compiler error fixed

* format files

* final changes

Co-authored-by: Zelllll <elijah@DESKTOP-NMP1I89.localdomain>
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
2021-01-24 19:36:40 -05:00
fig02
588de66d06
git subrepo pull --force tools/ZAPD (#653)
subrepo:
  subdir:   "tools/ZAPD"
  merged:   "2e1174063"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "2e1174063"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"
2021-01-22 16:25:08 -05:00
Random
be84e1f0f8
Add Cygwin support (#594)
* Add Cygwin support

* revert .gitignore changes

* Add Cygwin instructions

* corrections

* specify dependencies in README.md
2021-01-20 14:46:25 -05:00
fig02
00a5edea71
Actor Struct Changes (and a few related things) (#617)
* reformat header

* type -> category

* done for now i think

* some more stuff

* first -> head

* focus

* flag comment

* ground -> floor

* remove asm, name wrapper funcs

* name func, format

* review

* targetPriority, format

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "0305ec2c2"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "0305ec2c2"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* comment

* review

* feet flags

* horse shadow
2021-01-18 16:04:04 -05:00
petrie911
02994f5339
Document Collision_Check (#468)
* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* could be useful

* whoops

* some decomp

* still playing around with this

* rename functions

* ZAP again

* ZAP again

* the renaming begins

* more renaming. hopefully didn't break anything

* change all the things

* this and then merge

* and done

* one little thing

* small docs, small rename

* changed mind on cylinder and quad elements

* something

* more stuff

* more docs

* more adjustments

* Fixed some types

* more fixes

* all sorts of cleanup

* now with flags

* match!

* names and such

* update tools

* damage tables

* ColChkInfo

* one more thing

* formatting

* more formatting

* anime merge

* some stuff

* damage table

* again

* changes

* .s

* changes

* oc2 type

* a couple things

* format

* un-name magic arrows, not enough proof yet

* fix damage table script and remove old one

* EnAObj

* changes

Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: Fig02 <fig02srl@gmail.com>
2021-01-17 21:13:36 -05:00
Ethan Roseman
bda5b83346
MacOS ZAPD fixes (#606)
* Adding -Wno-return-type to GCC check for MacOS

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "0325ec161"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "0325ec161"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "605f6972e"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "605f6972e"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "6e6ad445a"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "6e6ad445a"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* Rewrote func to avoid returns without values
2021-01-10 04:04:36 -05:00
fig02
1ff2f0f849
ZAPD update (#612)
* remove roompoly

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "fd4d53a26"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "fd4d53a26"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"
2021-01-08 19:38:28 -05:00
Roman971
5c6335f9fb
Remove touchasset.py to improve build performance (#611) 2021-01-08 17:42:05 -05:00
petrie911
8cd367c43b
Automatic object xml creation (#596)
* new tool

* fixes

Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
2021-01-04 12:06:51 -05:00
fig02
794538f6f7
ZAPD hotfix (#599)
* change parent

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "440ed2684"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "440ed2684"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"
2021-01-03 17:29:44 -05:00
fig02
ba0c6965ca
Remove submodule and use subrepo for ZAPD (#591)
* remove zap

* git subrepo clone https://github.com/zeldaret/ZAPD.git tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "cd4a8760b"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "cd4a8760b"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* remove thanks.md

* zap2 -> zapd and spec changes

* remove submodule init
2021-01-01 23:24:29 -05:00
petrie911
2dfa188706
Docs for the Anime part of SkelAnime (#517)
* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* could be useful

* whoops

* ZAP2 stuff

* ZAP why

* ZAP again

* more names

* so many names

* we got subsystems now

* slight cleanup

* merge part 2

* new naming scheme

* slight adjustment

* no limit

* syms maybe

* step one

* OK, it's fixed

* table

* some names and such

* comments**

* update zap

* gitkeep to please jenkins

* ZAP

* fixer

* fixer2

* fixer3

* zap

Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: fig <fig02srl@gmail.com>
2020-12-29 17:46:46 -05:00
petrie911
3727cc38b8
matched Math3D_CylVsLineSeg and fixed a Math_ error (#564)
* matched cylvsline

* slight name adjustment

* format

* and asm

* comment cleanup

* fixed misspelling and added mathfixer tool

* formatting

Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
2020-12-27 11:13:38 -05:00
Nicholas Estelami
b95643b397
Updated Texture Asset Handling (#478)
* Auto stash before rebase of "upstream/master"

* A large number of scenes have been decompiled.

* Fixed makefile

* Decompiled around 40 scenes.

* Removed old file

* Finished matching remaining scenes.

* Removed old commented out spec lines

* Decompiled a few object files.

* Reorganized xmls a bit. Updated pu_box overlay to use proper symbol.

* Updated texture and object file decomp

* Fixed newline issue with ZAPD

* Moved scenes/ into the assets/ folder

* Fixed a few compile errors

* Auto stash before rebase of "upstream/master"

* A large number of scenes have been decompiled.

* Fixed makefile

* Decompiled around 40 scenes.

* Removed old file

* Finished matching remaining scenes.

* Removed old commented out spec lines

* Decompiled a few object files.

* Reorganized xmls a bit. Updated pu_box overlay to use proper symbol.

* Updated texture and object file decomp

* Moved scenes/ into the assets/ folder

* Fixed a few compile errors

* Fixed merge issues.

* Fixed makefile merge error

* Fixed additional merge error

* Fixed several more merge issues

* Commented out gameplay_keep and sk2 extraction, since currently unused.

* Reenabled gameplay_keep extraction since it's used in the spec

* Fixed build error

* Removed test struct

* Fixed makefile error that would happen on fresh builds

* Fixed merge issue

* Removed relative paths

* Multithreading on extraction, spec uses numbers, few changes to XMLs

* Removed redundant code from the extract_assets script

* object_sk2 and object_spot09_obj OK

* object_spot11_obj OK

* object_spot17_obj OK

* Test: One of the gameplay_keep dlists given a proper symbol

* Updated asset symbol names based on new naming scheme

* XMLs use "Offset" instead of "Address" now

* Fixed merge issues, updated ovl_Magic_Dark xml and gfx file

* Updated to use latest build of ZAPD

* Updated ZAPD again

* Updated ZAP to remove assimp dependency

* Jenkins Test: Added .gitkeep file

* Updated ZAP once more

* Updated png file name to comply with new naming scheme.

* Fixed bad include

Co-authored-by: Jack Walker <7463599+Jack-Walker@users.noreply.github.com>
2020-12-26 06:39:52 -05:00
Ethan Roseman
60b1f5dd41
Fixing mkldscript.c for mac (#563) 2020-12-25 16:38:57 -05:00
petrie911
4f2259e24e
Fix bug in sfxconvert.py (#553)
* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* could be useful

* whoops

* ZAP2 stuff

* ZAP why

* ZAP again

* small fix to function parser

* off by one error
2020-12-22 12:00:28 -05:00
Tharo
5632df406b
Fix colliderinit.py to run from project root (#531)
* Now works from root but not from overlayhelpers

* Fix to run from anywhere
2020-12-15 18:27:35 -05:00
petrie911
0c2b92125f
New tool: sfxconvert (#514)
* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* could be useful

* whoops

* ZAP2 stuff

* ZAP why

* ZAP again

* new tool

* python function conventions

* new name

* new error handling

* whoops comments
2020-12-09 19:39:32 -05:00
louist103
e455a24876
Decomp EnMb (#445)
* Fixed upstream

* Initial commit

* Matched init but broke something else

* All fixed.  Matched Init OK

* Progress

* Lots of progress

* Progress

* progress

* Progress

* progress

* fix struct size

* commit

* progress

* progress

* add comment

* merge master

* fix undefined syms

* progress

* progress

* progress

* Progress

* progress

* Finish

* Remove asm

* Clean up

* Delete some ASM

* Fix spec

* Update z_en_mb.h

* Match a few more and move func_80AA7938 to non equivilent

* asm

* no more non equiv

* matched

* asm

* review

Co-authored-by: Louis <5883445+louist103@users.noreply.github.com>
Co-authored-by: fig <fig02srl@gmail.com>
2020-12-03 19:25:36 -05:00
petrie911
bf9a1aadd9
En_Dh (#474)
* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* could be useful

* whoops

* ZAP2 stuff

* ZAP why

* ZAP again

* Is this where I make a Mr Hands joke?

* Manos: the Hands of Fate

* cleanup

* and format
2020-12-02 14:58:57 -05:00
Ethan Roseman
932174b6ee
Decompiled ovl_En_Zl3 (2 non-matchings) (#491)
* Progress

* deleting more function files

* more

* more

* More

* more

* more

* more

* more

* 2 more

* more

* more

* more

* more

* more

* more

* more

* more

* more

* master update

* 4 more

* Merged

* 3 more

* One more done!

* ug

* Ido Recomp test

* try 2

* Recomp by default

* Fix Jenkinsfile

* Fix 2

* Fixing struct

* CFE errors

* CFE fix -O2

* Cleanup

* More progress, almost done...

* Almost..

* Update and some progress

* formatting

* Cleanup

* Major cleanup

* done for now

* PR comments

* PR comments

* merge master and format

* a few things

Co-authored-by: fig <fig02srl@gmail.com>
2020-12-01 20:48:54 -05:00
fig02
6e000fcc54
En_Elf Decompiled (#432)
* init matched

* everything but navi OK

* progress

* 4 left

* remove asm

* progress

* progress

* asm and spec

* remove comment

* suggestion

* review1

* use type enum

* name func

* overridelimbdraw

* review 2

* forgot one

* merge master

* format
2020-10-28 13:02:35 -04:00
louist103
eea81d97d8
BgJyaBombchuiwa OK (#452)
* Fixed upstream

* Almost done

* Done

* PR fixes

* PR fix

Co-authored-by: Louis <5883445+louist103@users.noreply.github.com>
2020-10-26 12:55:37 -04:00
zelda2774
9e5cbcdd57
Small asm-processor optimization (#459)
Co-authored-by: zelda2774 <zelda2774@invalid>
2020-10-18 19:10:31 -04:00
Dragorn421
2cea0d8b82
Fix ichaindis.py always outputting an unsigned value (#435) 2020-10-03 22:38:39 -04:00
Roman971
2a9225763b
Decompile En_Mag (#406)
* Decompile En_Mag

* Document En_Mag

* Address some review comments
2020-09-27 10:14:25 -04:00
Ethan Roseman
08bf25fca7
Decompiled ovl_En_Rd (1 nonmatching) (#390)
* Initial progress

* Broken but almost

* Final attempt at the last function

* Fixing struct def

* PR updates

* PR stuff

* baby commit

* PR comments

* Error handling
2020-09-26 21:16:28 -04:00
Ethan Roseman
807713a29b
Native MacOS build support (#399)
* MacOS build OK

* Adding build instructions for building mips-linux-binutils on MacOS

* *

* Update Makefile

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
2020-09-21 03:00:28 -04:00
Darin
d61ae83df1
Added ability to provide ichaindis a symbol (#385)
* Added ability to provide ichaindis a symbol and gave it ability to look up actor var names

* Minor fixes

* Fixed bug with output of script

* Refactored the ROM lookup for ichaindis

* Switched ichaindis to use filemap for ROM address lookup

* Removed unused import and constant

* Minor improvements to ichaindis

* Updated help text

* ichaindis will now only calculate Actor vars if needed

* Changed no-names switch to names switch
2020-09-20 11:16:00 -04:00
notyouraveragehooman
48f2e10bef
fix m2ctx incompatibility on MacOS (#354) 2020-09-02 07:13:21 -04:00
Roman971
b4ac94a8fd
Match/Improve more non matching functions (#366)
* Match/Improve more non matchings

* Remove SET_NEXT_GAMESTATE from preserved macros
2020-08-30 12:51:46 -04:00
Roman971
2a2fdf7f3e
Introduce OPEN_DISPS/CLOSE_DISPS macros (#360) 2020-08-29 19:00:17 -04:00
Ethan Roseman
b78a777216
Update ZAP2 (#344) 2020-08-23 23:07:56 -04:00
zelda2774
281aaa0cb6
Speed up build a bit (#341)
* Speed up elf2rom

* Remove all built-in make rules

* Only perform a single mkdir

* Optimize elf2rom further

Co-authored-by: zelda2774 <zelda2774@invalid>
2020-08-23 13:43:26 -04:00
Ethan Roseman
6f54edd365
Ido Static Recomp (#337)
* Ido Recomp test

* try 2

* Recomp by default

* Fix Jenkinsfile

* Fix 2

* CFE errors

* CFE fix -O2

* Update Makefile

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update README.md

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update README.md

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* PR suggestions

* PR updates

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
2020-08-22 19:06:52 -04:00
fullgrowngaming
3cb03b2b2f
z_en_js OK (#336)
* Initial commit for en_js

* More work on decomping en_js

* More en_js work

* z_en_js OK

* Made requested changes/improvements

* Renamed arg in func_80A88F64

* Fixed undefined_symbols.txt

* Fixed undefined_symbols.txt

* Fixed undefined_symbols.txt
2020-08-22 02:24:07 -04:00
fig02
296b20e925
En_Light OK (#332)
* fix colliderinit typo

* en_light OK

* format

* remove asm

* cleanup

* pr review

* no U

* few changes
2020-08-19 22:57:31 -04:00
krimtonz
f11a74d41d
Math3D and olib updates (#315)
* wip

* Olib updates

* wip

* wip

* rename most Math3D functions, few matches, documentation

* wip

* document most of math3d

* pr updates

* pr updates

* add missing comment block finalizer
2020-08-17 15:42:08 -04:00
Ethan Roseman
d374d8d026
Various repo improvements (#316)
* Narrowing down ido5-required files, assist.py, permuter settings

* OSX support changes, +x on setup scripts

* ZAP2 Update for OSX

* Remove assist.py

* Removing ido 5 things
2020-08-15 14:08:53 -04:00
louist103
fb548ac9e4
Fix Bug with colliderinit.py (#321) 2020-08-13 22:59:44 -04:00
Random
c76c584006
add vt_fmt.py script (#295) 2020-07-28 13:19:24 -04:00
Tharo
741c140aef
Split remaining unsplit asm files and migrate more rodata (#277)
* Split files

* Format rodata

* Some more code rodata migrated

* Some more actor rodata migrated

* Migrate rodata for ovl_Boss_Ganon

* Migrate rodata for code_800EC960

* Remove unused rodata

* x1b occurences all lowercase b
2020-07-19 21:08:50 -04:00
Ethan Roseman
e672778b0e
Fx bootstrap (#278)
* script

* update

* dun?
2020-07-19 19:42:59 -04:00
Ethan Roseman
06d1743d22
Effect rodata migration (#268)
* Some rodata migrated

* Migrated all effect rodata

* cleanup

* clean

* Removing .balign
2020-07-18 20:34:23 -04:00
fig02
24ab14f748
Change Colors To Decimal (#260)
* fix colliderinit typo

* convert as many colors i can find to decimal

* fix GPACK_RGBA5551, merge fhgFire

* fix remaining colors

* remove unwanted file

* alpha as 1
2020-07-16 21:37:53 -04:00