9fc219a | yoavg | 12 February 2018, 16:23:01 UTC | weight decay inherited from parent model | 12 February 2018, 16:23:01 UTC |
c5b91cb | yoavg | 12 February 2018, 14:50:12 UTC | Exposing weight-decay-lambda through parameter collection. | 12 February 2018, 14:50:12 UTC |
7cb6455 | Graham Neubig | 09 February 2018, 21:54:04 UTC | Added mention of binary distribution (#1234) | 09 February 2018, 21:54:04 UTC |
8462813 | draplater | 09 February 2018, 17:20:15 UTC | autobatch for conv2d (#1216) * autobatch for conv2d * Fixed random normal and made mean/stddev an option (#1220) * Argmax and straight-through estimator (#1208) * Initial argmax * Add missing file * Python implementation of argmax * straight-through * Use as_vector * Fixed on GPU * Change API * add __gitversion__ info to python build (#1229) * Added unit test | 09 February 2018, 17:20:15 UTC |
e7ad9b8 | Paul Michel | 09 February 2018, 17:19:50 UTC | Add cumulative sum operation (#1012) * Add cumsum operation with tests and doc Former-commit-id: a44bc03df6d269ab96dd5835467d26690d442cf4 * Add missing file and more explicit docs Former-commit-id: 4c38e6086ff733d8482169a0e9175c5306474e48 * Fix cmakelist for gpu Former-commit-id: 655240b0705414d66bf7418c69ca5aacae197592 * Check whether the issue comes from reverse On gpu Former-commit-id: 4938cb16f59d4a96d0fdf966d429b4a040577c49 * With scratch memory * Attempt to upgrade version of Eigen | 09 February 2018, 17:19:50 UTC |
0b1adce | Paul Michel | 09 February 2018, 16:50:07 UTC | Add AMSGrad to the python doc | 09 February 2018, 16:50:07 UTC |
0e5addb | Paul Michel | 09 February 2018, 16:00:04 UTC | Log sigmoid (#1224) * Log sigmoid * Fix on GPU (I think) * Second try * Use 32-bit functions in simd-functors | 09 February 2018, 16:00:04 UTC |
8ea37f6 | Yoav Goldberg | 09 February 2018, 15:54:47 UTC | fix initializing RNN state with given expressions (#1228) | 09 February 2018, 15:54:47 UTC |
d1c58a9 | Yoav Goldberg | 09 February 2018, 13:54:27 UTC | add __gitversion__ info to python build (#1229) | 09 February 2018, 13:54:27 UTC |
598906c | Paul Michel | 07 February 2018, 22:57:33 UTC | Argmax and straight-through estimator (#1208) * Initial argmax * Add missing file * Python implementation of argmax * straight-through * Use as_vector * Fixed on GPU * Change API | 07 February 2018, 22:57:33 UTC |
850c4c8 | Graham Neubig | 05 February 2018, 15:43:32 UTC | Fixed random normal and made mean/stddev an option (#1220) | 05 February 2018, 15:43:32 UTC |
5309f11 | Matt Richardson | 02 February 2018, 16:27:59 UTC | MSVC fixes (#1215) * template keyword required for compilation in MSVC. * std::iota needs #include <numeric> * Change to cross-platform getpid.h * Transformer example depends on Boost, only compile if boost enabled. * Moving curand library to top level so it is linked in python build as well | 02 February 2018, 16:27:59 UTC |
375afbb | Chris Dyer | 30 January 2018, 20:32:23 UTC | fix conflicts with GPU specification using new style parameters | 30 January 2018, 20:32:23 UTC |
ebddcb9 | Chris Dyer | 30 January 2018, 18:43:01 UTC | Allow --dynet_flag=arg argument format | 30 January 2018, 18:43:01 UTC |
936a494 | Hong Wu | 29 January 2018, 16:08:38 UTC | dynet-1201. Fix weight decay load issue. (#1206) * dynet-1201. Fix weight decay load issue. * dynet-1201. Add TestIOPartialWeightDecay in test.py. * add check for as_scale_vector | 29 January 2018, 16:08:38 UTC |
2329b88 | Paul Michel | 29 January 2018, 15:53:14 UTC | 1st attempt at SIMD sigmoid (#1200) * 1st attempt at SIMD sigmoid * Don't use fmin/fmax | 29 January 2018, 15:53:14 UTC |
6190925 | msperber | 29 January 2018, 15:44:07 UTC | Faster inputTensor() (#1194) * implemented a first faster version of inputTensor() * some more improvements * comments * fix negative indexing | 29 January 2018, 15:44:07 UTC |
50e48b9 | Vu Cong Duy Hoang | 29 January 2018, 15:41:42 UTC | Transformer example in C++ (#1186) * fixed a bug of dim in select_cols * corrected typo in concatenate's doc * added impl. for TensorTools::access_element() * added transformer example * added wrap-data script for transformer | 29 January 2018, 15:41:42 UTC |
ebd96d4 | Daniel Hershcovich | 29 January 2018, 13:35:23 UTC | Save/load with generators in Python API (#1180) * Add load_generator to Python API Same as load(), but the parameters are returned as a generator instead of a list. This allows saving memory or even showing a progress bar while loading the parameters. Example: import dynet as dy from tqdm import tqdm pc = dy.ParameterCollection() W = pc.add_parameters((100,50)) E = pc.add_lookup_parameters((1000,50)) builder = dy.LSTMBuilder(2, 50, 50, pc) dy.save("model", tqdm((E, builder, W), unit="param")) # then, when loading: pc = dy.ParameterCollection() E2, builder2, W2 = tqdm(dy.load_generator("model", pc), unit="param") * Test save/load with generators in Python API * Add informative messages to assertions in Python | 29 January 2018, 13:35:23 UTC |
b0037ff | Hong Wu | 24 January 2018, 15:36:10 UTC | dynet-1202. Fix lookup parameter updated bug when set_updated(False). (#1203) * dynet-1202. Fix lookup parameter updated bug when set_updated(False). * Test that set_updated(False) in Python works | 24 January 2018, 15:36:10 UTC |
151f7d7 | Dr. Kashif Rasul | 24 January 2018, 14:54:27 UTC | initial amsgrad implementation (#1185) * initial amsgrad implementation * added tests * added python binding * added swig definition and scala helpers | 24 January 2018, 14:54:27 UTC |
0d1037b | yanaiela | 24 January 2018, 14:52:27 UTC | customable flip gradient option: C++ and python support (#1158) * customable flip gradient option: C++ and python support * Refactoring to allow scaling | 24 January 2018, 14:52:27 UTC |
d0176db | Graham Neubig | 24 January 2018, 14:52:02 UTC | cuRAND support (#1154) * Initial pass at cublas * Added uniform distribution * Added bernoulli | 24 January 2018, 14:52:02 UTC |
210d6b9 | Chris Dyer | 23 January 2018, 12:25:22 UTC | use ptrdiff_t as index type in Eigen | 23 January 2018, 12:25:22 UTC |
e8a144a | Paul Michel | 22 January 2018, 17:31:26 UTC | Merge pull request #1197 from AmitMY/patch-1 docs(API): use dynet method not global | 22 January 2018, 17:31:26 UTC |
ca0f264 | Amit Moryossef | 20 January 2018, 08:46:05 UTC | docs(API): use dynet method not global | 20 January 2018, 08:46:05 UTC |
95145a3 | Paul Michel | 19 January 2018, 16:20:42 UTC | fix code formatting in installation instructions | 19 January 2018, 16:20:42 UTC |
6ae942d | Paul Michel | 18 January 2018, 17:09:09 UTC | Merge pull request #1159 from tohtsky/master Implementing dropout for SimpleRNNBuilder | 18 January 2018, 17:09:09 UTC |
65bd7d8 | ootsuki_t | 18 January 2018, 02:54:48 UTC | added ``virtual`` specifiers for set_dropout(float d) and disable_dropout() | 18 January 2018, 02:54:48 UTC |
77c1672 | Graham Neubig | 17 January 2018, 21:56:59 UTC | Fixed errors on mac by removing "auto" calls (#1191) | 17 January 2018, 21:56:59 UTC |
0eeb191 | Yuval Pinter | 17 January 2018, 20:48:15 UTC | Added `Trainer.set_learning_rate()` #695 (#1176) | 17 January 2018, 20:48:15 UTC |
1790a40 | Hong Wu | 16 January 2018, 14:34:55 UTC | dynet-1187. Add python tests for dynet IO. (#1189) | 16 January 2018, 14:34:55 UTC |
80ca8ec | Vered Shwartz | 16 January 2018, 14:33:15 UTC | Remove the string requirement from the arguments of Parameters.populate_from_textfile, for compatibility with python 3 (#1188) | 16 January 2018, 14:33:15 UTC |
df20bc0 | Chris Dyer | 11 January 2018, 13:53:13 UTC | remove dead code, speed improvements on CPU | 11 January 2018, 13:53:13 UTC |
a5d4834 | Chris Dyer | 11 January 2018, 12:03:48 UTC | add comment about GPU impl of FFT | 11 January 2018, 12:03:48 UTC |
f0e42ec | Chris Dyer | 11 January 2018, 11:09:47 UTC | remove logging message | 11 January 2018, 11:09:47 UTC |
2eafde5 | Graham Neubig | 11 January 2018, 07:00:57 UTC | Support for in-place operations (#1156) * Some partial supports for READ-only inplaced operations. Sharing memories for Reshape(f/b), NoBackprop(f), FlipGradient(f). * Fixed broken assert code * Fix over-aggressive assert * Some fixes to backward checks * Fix exec.cc * Fixed messages * Removed extra message | 11 January 2018, 07:00:57 UTC |
a094a59 | msperber | 10 January 2018, 10:58:50 UTC | Expose set_weight_decay_lambda() to Python (#1173) * initial commit * update doc | 10 January 2018, 10:58:50 UTC |
7d9031c | Tomoki Ohtsuki | 07 January 2018, 04:59:38 UTC | Merge branch 'master' of https://github.com/tohtsky/dynet | 07 January 2018, 04:59:38 UTC |
c1cb5a6 | Tomoki Ohtsuki | 07 January 2018, 04:56:30 UTC | Revert GRUBuilder, modified DYNET_ARG_CHECK in set_dropout | 07 January 2018, 04:56:30 UTC |
67dccd9 | Tomoki Ohtsuki | 07 January 2018, 02:58:31 UTC | 1. Allowed separate dropout ratios for internal & input connections in SimpleRNNBuilder 2. Python bindings. | 07 January 2018, 02:58:31 UTC |
e2b858a | ootsuki_t | 25 December 2017, 05:27:14 UTC | fix indent | 25 December 2017, 05:27:14 UTC |
e6d3ca4 | Tomoki Ohtsuki | 25 December 2017, 01:42:36 UTC | GRU dropout following variational RNN. | 25 December 2017, 01:42:36 UTC |
a2c90aa | Tomoki Ohtsuki | 24 December 2017, 13:36:17 UTC | Removed overlapping in codes and added documentation for dropout implementation | 24 December 2017, 13:36:17 UTC |
79134c3 | Tomoki Ohtsuki | 24 December 2017, 13:18:36 UTC | Attempting to implement dropout for SimpleRNNBuilder | 24 December 2017, 13:18:36 UTC |
2faafe9 | Daniel Hershcovich | 23 December 2017, 10:38:01 UTC | Separate sdist to another job, fix version in setup.py (#1155) | 23 December 2017, 10:38:00 UTC |
77d5eb7 | Hong Wu | 22 December 2017, 03:57:34 UTC | Enhanced implmentation of --dynet-gpu option in python end (#1152) * Enhanced implmentation of --dynet-gpu option in python end * fix copy list bug | 22 December 2017, 03:57:34 UTC |
4b21614 | Matt Richardson | 22 December 2017, 01:26:33 UTC | Fix cudnn ops after Tensor refactor in PR #1091. (#1149) | 22 December 2017, 01:26:33 UTC |
152afd5 | Yangfeng Ji | 22 December 2017, 01:18:04 UTC | fix the bug when choosing no bias in cfsm (#1148) | 22 December 2017, 01:18:04 UTC |
674f863 | Daniel Hershcovich | 22 December 2017, 01:17:10 UTC | Run Travis CI on release tags (#1146) * Run Travis CI on release tags * Create sdist before build to avoid unnecessary files * Fix replacement in .appveyor.yml | 22 December 2017, 01:17:10 UTC |
9b50b35 | Chris Dyer | 21 December 2017, 05:10:52 UTC | underflow problems were causing some spurious failures with the new stricter grad check | 21 December 2017, 05:10:52 UTC |
84ca496 | Chris Dyer | 21 December 2017, 04:30:33 UTC | more careful testing of gradients | 21 December 2017, 04:30:33 UTC |
f2f171f | Chris Dyer | 21 December 2017, 04:26:37 UTC | Merge branch 'master' of https://github.com/clab/dynet | 21 December 2017, 04:26:37 UTC |
a67895f | Chris Dyer | 21 December 2017, 04:26:27 UTC | clarify comment | 21 December 2017, 04:26:27 UTC |
6915288 | Graham Neubig | 21 December 2017, 03:53:54 UTC | More verbose errors for cwise ops | 21 December 2017, 03:53:54 UTC |
750ed92 | Graham Neubig | 20 December 2017, 02:14:52 UTC | Refactoring to improve code separation (#1091) * Removed devices.h from .h files * Made C++ compile * Fix python * Fixeed examples and tests * Fixed compile on Linux and CUDA * Fixed bug on Windows? * Cleaned headers of examples | 20 December 2017, 02:14:52 UTC |
fd0a01b | Alexander Terenin | 19 December 2017, 19:09:23 UTC | Moved complex structures page from dynet.io to documentation (#1140) * added complex structures page to docs * renamed complex structures page | 19 December 2017, 19:09:23 UTC |
8142fa5 | Chris Dyer | 19 December 2017, 16:04:36 UTC | Merge branch 'master' of https://github.com/clab/dynet | 19 December 2017, 16:04:36 UTC |
8d5580c | Arne Köhn | 19 December 2017, 15:59:53 UTC | TreeLSTM additions (#1133) * make {Nary, Unidirectional}TreeLSTMBuilder non-abstract again Commit bf29c18fcf1bcc356570f6c4ffd64fec84fd470d added set_h_impl to RNNBuilder as an abstract method and the TreeLStmBuilders became abstract. This was fixed for the BidirectionalTreeLSTMBuilder but not the other two. This commit moves the the stub throwing a runtime error from BidirectionalTreeLSTMBuilder to the TreeLSTMBuilder super class. * TreeLSTMs: add nodes in arbitrary order; swig bindings Main feature: TreeLSTMs had to be constructed with the nodes in the tree added by their index. This is not practical if the nodes are already sequentially ordered with the child nodes not being first, e.g. when working with dependency trees. If set_num_elements is called, a fixed set of node space is reserved and nodes can be added in any order as long as children are added first. The old behavior still works as usual. Also: - Add documentation to treelstm C++ code - add swig bindings - add scala wrapper for uni- and bidirectional tree lstm * scala uni- and bidirectional tree lstm wrapper | 19 December 2017, 15:59:53 UTC |
f19c74b | Arne Köhn | 19 December 2017, 15:59:03 UTC | scala: Add implicit conversions from seq to vector (#1135) | 19 December 2017, 15:59:03 UTC |
1aef1b7 | Chris Dyer | 19 December 2017, 12:21:39 UTC | always use eigen FFT to compute circular conv/corr, both forward and backward. | 19 December 2017, 12:21:39 UTC |
e6bff4c | Hong Wu | 18 December 2017, 17:40:21 UTC | hotfix for dynet-1137 (#1141) | 18 December 2017, 17:40:21 UTC |
29e2f4e | Chris Dyer | 18 December 2017, 13:18:31 UTC | use FFTs for circular convolution and correlation (currently forward only, and single-batch) | 18 December 2017, 13:18:31 UTC |
a4393da | Hong Wu | 16 December 2017, 12:36:59 UTC | Add pool memory info for profiling. (#1139) * Add pool memory info for profiling. * update * Add profile info when out of memory. * move show_pool_mem_info out of CG class and add it into low-level control code. | 16 December 2017, 12:36:59 UTC |
9048df6 | Hong Wu | 15 December 2017, 14:57:15 UTC | Fix unit bug for profiling and remove some unnecessary code. (#1138) | 15 December 2017, 14:57:15 UTC |
3d8d692 | Arne Köhn | 14 December 2017, 15:57:37 UTC | sbt options come before the sbt action (#1134) some sbt versions ignored the options if they were in the wrong place | 14 December 2017, 15:57:37 UTC |
5e3be5c | Paul Michel | 14 December 2017, 14:20:53 UTC | Merge pull request #1136 from akoehn/doc-fix Trivial fix to make doxygen url work | 14 December 2017, 14:20:53 UTC |
cec1540 | Arne Köhn | 14 December 2017, 11:57:06 UTC | Trivial fix to make doxygen url work | 14 December 2017, 11:57:06 UTC |
45d60a4 | Andre Martins | 10 December 2017, 00:43:37 UTC | Added constrained softmax operator. (#1129) | 10 December 2017, 00:43:37 UTC |
5492ffe | Jetic Gu | 10 December 2017, 00:36:52 UTC | Cuda malloc msg (#1131) * Added more information in case of memory allocation error * Added two more lines for clarification * Added deviceID in cudaErrorMemoryAllocation error message | 10 December 2017, 00:36:52 UTC |
7c38a9b | Chris Dyer | 09 December 2017, 15:52:16 UTC | add rnnlm autobatching example | 09 December 2017, 15:52:16 UTC |
8fe6563 | msperber | 09 December 2017, 05:13:09 UTC | Improve speed for cwise operations (#1107) * fix same_dims check for cmult fwd * improved same_dims checks * Removed error in affine transform arg check * Some refactoring of broadcasting * Better profiling * Updates for cwise * Updated broadcasts * Fixed autobatch profile for csum | 09 December 2017, 05:13:09 UTC |
fd0eda2 | Hong Wu | 08 December 2017, 18:20:55 UTC | Add NoneType assert for list arguments in _dynet.pyx. (#1126) * Add NoneType assert for list arguments in _dynet.pyx. * remove additional assert | 08 December 2017, 18:20:55 UTC |
bc0bf05 | Graham Neubig | 08 December 2017, 17:07:32 UTC | Fixed pernicious bug in autobatching (#1127) * Fixed pernicious bug in autobatching * Reverted to async and added stream | 08 December 2017, 17:07:32 UTC |
03c9467 | Chris Dyer | 07 December 2017, 14:14:54 UTC | add circular convolution and correlation, fix bug in fold rows backward | 07 December 2017, 14:14:54 UTC |
e854be8 | Chris Dyer | 07 December 2017, 09:08:38 UTC | Merge branch 'master' of https://github.com/clab/dynet | 07 December 2017, 09:08:38 UTC |
dfb2ce0 | Chris Dyer | 07 December 2017, 09:08:21 UTC | fix missing packet access check | 07 December 2017, 09:08:21 UTC |
736cce9 | Paul Michel | 05 December 2017, 14:25:47 UTC | Add trig and hyperbolic functions to python doc | 05 December 2017, 14:25:47 UTC |
d6e0fd4 | <pmichel31415@gmail.com> | 04 December 2017, 18:17:42 UTC | Fix documentation | 04 December 2017, 18:17:42 UTC |
910379a | Chris Dyer | 04 December 2017, 17:46:33 UTC | the rest of the trig and inverse trig functions | 04 December 2017, 17:46:33 UTC |
9a51a5a | Chris Dyer | 02 December 2017, 22:43:20 UTC | make len(lookup_params) work | 02 December 2017, 22:43:20 UTC |
f63232f | Chris Dyer | 02 December 2017, 16:11:36 UTC | more trig functions | 02 December 2017, 16:11:36 UTC |
8e246ed | Chris Dyer | 01 December 2017, 14:40:16 UTC | add inverse hyperbolic cosine (acosh) | 01 December 2017, 14:40:16 UTC |
b0eec13 | Edgar Chen | 30 November 2017, 20:30:47 UTC | cudnn_root env var and documentation added for pip (#1109) | 30 November 2017, 20:30:47 UTC |
4464888 | Graham Neubig | 28 November 2017, 14:54:31 UTC | Hotfix for warning in dim.h | 28 November 2017, 14:54:31 UTC |
a62eba1 | Hong Wu | 28 November 2017, 03:58:34 UTC | bugfix for insert_dim (#1105) | 28 November 2017, 03:58:34 UTC |
0729050 | Matthew Richardson | 27 November 2017, 23:22:34 UTC | --dynet-profiling was not removing its argument. | 27 November 2017, 23:22:34 UTC |
d7a2e60 | Matthew Richardson | 27 November 2017, 20:07:29 UTC | Remove MSVC conditional and comments that were made unneccessary due to commit d256c73. | 27 November 2017, 20:07:29 UTC |
c992246 | Daniel Hershcovich | 26 November 2017, 18:52:30 UTC | Fix problem reported in #1101: Permission denied (#1102) libdynet.dylib needs to be copied to the wheel directory in bdist_wheel, but in install it should be copied to the loader_path instead. | 26 November 2017, 18:52:30 UTC |
56d3254 | msperber | 25 November 2017, 13:17:20 UTC | implement strided_select (#1070) * implement strided_select * fix compiling on windows | 25 November 2017, 13:17:20 UTC |
c17ca83 | Manolis Kyriakakis | 25 November 2017, 13:05:07 UTC | Add forget bias parameter(float) for VanillaLSTM model (#1097) * Add forget bias choice(default forget_bias=True) to VanillaLSTM model * Correct default forget_bias value on SWIG instructions * Change forget_bias to float(default = 1.0) * Add if statement to avoid the addition(save some time and memory) if forget_bias is zero * Allow negative values as forget_bias * Eliminate unnecessary auto-formatting from _dynet.pyx * Remove unnecessary formatting from _dynet.pxd * Fix indentation of forget_bias arg in_dynet.pyx | 25 November 2017, 13:05:07 UTC |
930e731 | Graham Neubig | 25 November 2017, 05:07:01 UTC | Revert eigen stream (#1029) * Revert "Fix eigen gcc version (#780)" This reverts commit c8f8ef0823419e6ca4cbdbce4e01f505afb13a26 [formerly d3ac2aefdb460939f41401006d56fff19d9667d4]. Former-commit-id: 6221cb5849e98ab6a63289d4fd430286601cea3d * Removed stream indicators Former-commit-id: 747f16ec535ec44d7f9ff99c842ac4d385fe064f * Fix compile error * Fixed compile error | 25 November 2017, 05:07:01 UTC |
234e3fe | Arne Köhn | 25 November 2017, 00:26:09 UTC | scala bindings: allow to set scala version using cmake (#1086) * scala bindings: allow to set scala version, cleanup The cmake variable SCALA_VERSION can be modified to select the scala version used for building the scala bindings, i.e. you can generate scala 2.12 bindings by running "cmake -D SCALA_VERSION=2.12.3" instead of changing the build files by hand. The resulting jar now has the scala binary version in its file name to distinguish between the different (and incompatible!) scala versions. This binary version would be 2.12 in the example above. In addition, sbt settingKeys are used instead of plain values to conform to the weird sbt way. * change CMAKE_CURRENT_BINARY_DIR to SCALA_VERSION | 25 November 2017, 00:26:09 UTC |
72778b6 | Graham Neubig | 25 November 2017, 00:25:11 UTC | Fixes compile on CUDA 9.0 (#1099) | 25 November 2017, 00:25:11 UTC |
8e070de | Graham Neubig | 24 November 2017, 21:00:21 UTC | Fix compile error on gcc 4.9 + CUDA 7.5 (#1098) | 24 November 2017, 21:00:21 UTC |
1eed174 | Graham Neubig | 24 November 2017, 17:49:30 UTC | Fixed stateful trainers to work with multi-device (#1096) | 24 November 2017, 17:49:30 UTC |
88aa149 | Graham Neubig | 24 November 2017, 16:06:13 UTC | Make possible to set CUDA compute architecture (#1092) | 24 November 2017, 16:06:13 UTC |
07f736b | Graham Neubig | 24 November 2017, 04:08:36 UTC | Added profiling capability | 24 November 2017, 04:08:36 UTC |
d256c73 | Arne Köhn | 24 November 2017, 03:22:17 UTC | MKL: Link against mkl_rt instead of all libraries directly (#1081) Use the "single dynamic library" linking model of MKL, described here: https://software.intel.com/en-us/articles/a-new-linking-model-single-dynamic-library-mkl_rt-since-intel-mkl-103/ | 24 November 2017, 03:22:17 UTC |
4940412 | msperber | 23 November 2017, 14:53:01 UTC | profile fwd/bwd runtimes and memory (#1088) * profile fwd/bwd runtimes and memory * double counted node memory to account for both fx and dEdfx * print nodes sorted by memory when profiling flag >= 2 * percentages for time and memory profiles * print 100% mark * aggregating memory consumption over nodes * fix previous commit | 23 November 2017, 14:53:01 UTC |