)]}'
{
  "log": [
    {
      "commit": "90fcb1285dec51888a3fb73080e75b4c03e6fc52",
      "tree": "47aee0fdbe64c776e9a70f1d2770ecd6ee790835",
      "parents": [
        "75ad37d100cc699430072c84d11aeea3862d3baf"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Nov 18 16:09:07 2017 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Nov 18 16:09:07 2017 +0100"
      },
      "message": "add support for horizontal span in HTML tables\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "75ad37d100cc699430072c84d11aeea3862d3baf",
      "tree": "3ce6c41955605adcf15213dee56809e990de7b34",
      "parents": [
        "c12b47e54cbccb10476a28788670e3ef6cb71a08"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Jul 31 13:53:16 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Jul 31 13:53:16 2016 +0200"
      },
      "message": "add support for nested CALS tables\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "c12b47e54cbccb10476a28788670e3ef6cb71a08",
      "tree": "b2608d90542a9303b7f572b5f7f0254c1c135333",
      "parents": [
        "cb6f24bc4fde09815170578da51f91de0c0121ed"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jul 21 19:51:56 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jul 21 19:51:56 2016 +0200"
      },
      "message": "force layout of the modified box, reconcile the ancestors\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "cb6f24bc4fde09815170578da51f91de0c0121ed",
      "tree": "419b605571d116639bc96a2c54e7b0d9e166b3e7",
      "parents": [
        "50f69718d8711018c275fbf26c475e75da97e520"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jul 21 19:19:22 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jul 21 19:19:22 2016 +0200"
      },
      "message": "relocate view port on resize\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "50f69718d8711018c275fbf26c475e75da97e520",
      "tree": "ec7df071bfee426057e8fd3a861ce7624f60bc53",
      "parents": [
        "fd1a4d23c2bd41c061780df6ce2785d1562ab9b4"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Jul 17 10:26:58 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Jul 17 10:26:58 2016 +0200"
      },
      "message": "fix layout reconciliation after content deletion\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "fd1a4d23c2bd41c061780df6ce2785d1562ab9b4",
      "tree": "f66ef7975ea5988c96964048d7a03e466d9db907",
      "parents": [
        "347b27fe1021f84f86ef135aec140aeb24c1f5c4"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jul 16 21:19:36 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jul 16 21:19:36 2016 +0200"
      },
      "message": "optimize reconciling layout by taking box structure into account\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "347b27fe1021f84f86ef135aec140aeb24c1f5c4",
      "tree": "279f0c84ac41eb0014ed01ab302bbb43766846f5",
      "parents": [
        "a9d8e35399ce44e844fac17fde487a55a44c93f0"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Jul 13 21:42:14 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Jul 13 21:42:14 2016 +0200"
      },
      "message": "invalidate all affected rows when reconciling cells with vertical span\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "a9d8e35399ce44e844fac17fde487a55a44c93f0",
      "tree": "1a84cc13f85a2e8ef96fd2552dd922d061ab3ba6",
      "parents": [
        "7df9874847214b8e4fbe18ed636454afe23702f2"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Jul 13 21:32:51 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Jul 13 21:32:51 2016 +0200"
      },
      "message": "return a list of other invalidated boxes when reconciling layout\n\nInstead of indicated that something has changed and outer boxes have to\nadapt, we return a list of the boxes that need to adapt. This can e.g.\nbe used by table cells that span over several rows, to indicate which\nrows need to be reconciled.\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "7df9874847214b8e4fbe18ed636454afe23702f2",
      "tree": "6e226f651bd2fc79dc23b08e76b56da8c34bb108",
      "parents": [
        "0cc6c8437bb781cf1b839e2e7b78532603c0c87f"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Jul 13 20:46:09 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Jul 13 20:46:09 2016 +0200"
      },
      "message": "do not auto-format block comments\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "0cc6c8437bb781cf1b839e2e7b78532603c0c87f",
      "tree": "679cdb2aa5085b12e464dfecf2ebff90e613a2e0",
      "parents": [
        "9c808b4700fa9a3760a4f2f1810b5caaf5ff6097"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Jul 13 20:24:58 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Jul 13 20:45:29 2016 +0200"
      },
      "message": "store references to all rows in the layout grid\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "9c808b4700fa9a3760a4f2f1810b5caaf5ff6097",
      "tree": "dad3d8d4dd6da797ace550293bee90317ff7164c",
      "parents": [
        "330d68b8cc56719ae8d1bfcc2bd4d93895d7ad30"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jun 18 16:27:44 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jun 18 16:27:44 2016 +0200"
      },
      "message": "handle problem when box is to small to show any text\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "330d68b8cc56719ae8d1bfcc2bd4d93895d7ad30",
      "tree": "6b0830149fc757483878ecf67f73dd119b9b7451",
      "parents": [
        "0000f70cbce15bf5a71b60f99626cf672c6441f7"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jun 18 12:54:00 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jun 18 12:54:00 2016 +0200"
      },
      "message": "manage the column definitions within the layout grid\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "0000f70cbce15bf5a71b60f99626cf672c6441f7",
      "tree": "307daf166532307975bd2b85e0df1c40f0b724fd",
      "parents": [
        "eda60a9c52a4c6721e4bd832c7c043949d61775d"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jun 16 20:27:45 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jun 16 20:27:45 2016 +0200"
      },
      "message": "introduce the concept of a height-adjustable structural box\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "eda60a9c52a4c6721e4bd832c7c043949d61775d",
      "tree": "a9b182d1689d52d1ab9e318c74fd6da689862bde",
      "parents": [
        "4074790aa8e0c5a3cc97340cd5d5aecb73484734"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Mon Jun 13 21:05:21 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Mon Jun 13 21:05:21 2016 +0200"
      },
      "message": "use table cell as outmost box and adjust the frame height\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "4074790aa8e0c5a3cc97340cd5d5aecb73484734",
      "tree": "0b7973f9f78ee185b936ef421c29b27ab4bea2bd",
      "parents": [
        "906f9a9ae9a0e9bd7905037e2c82b8ed54a47b5c"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Jun 12 21:31:09 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Mon Jun 13 20:28:00 2016 +0200"
      },
      "message": "use layout grid to render vertical span (almost) correct\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "906f9a9ae9a0e9bd7905037e2c82b8ed54a47b5c",
      "tree": "cc27c4414e78560a2b9dc4c932bc5b16dce5b343",
      "parents": [
        "e49156ff02147a19f497e000a7b330524440ad63"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Jun 12 14:19:19 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Jun 12 14:19:19 2016 +0200"
      },
      "message": "introduce a new datastructure to represent the whole table grid\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "e49156ff02147a19f497e000a7b330524440ad63",
      "tree": "f73856329e23e60bff6da83bd1f2698b3ea62682",
      "parents": [
        "a9223d29c783a112978057ebfb097ab22ae7bb09"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed May 25 19:46:29 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed May 25 19:46:29 2016 +0200"
      },
      "message": "all cells in a row should have the same height\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "a9223d29c783a112978057ebfb097ab22ae7bb09",
      "tree": "1201cf9177ca0a74eb0067b8b04d58518600111c",
      "parents": [
        "8210aa1107f95bd783072ef82869a8c589b8812d"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Apr 05 20:06:21 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Apr 05 20:06:21 2016 +0200"
      },
      "message": "relayout the whole table if anything inside changed\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "8210aa1107f95bd783072ef82869a8c589b8812d",
      "tree": "0dffe6b0732247ed17a590ce3be03484f955e345",
      "parents": [
        "446ab4cd893bf367f8e39e0456fe4d3927d48bea"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Apr 05 20:05:51 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Apr 05 20:05:51 2016 +0200"
      },
      "message": "rebuild the parent if an attribute changed\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "446ab4cd893bf367f8e39e0456fe4d3927d48bea",
      "tree": "b2c84961931f7a91a69af812bef2ac862599d134",
      "parents": [
        "ac3e1e7daab1a0945b943837056ae9290d282e16"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Apr 01 16:17:14 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Apr 01 16:17:14 2016 +0200"
      },
      "message": "show placeholder box for empty row\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "ac3e1e7daab1a0945b943837056ae9290d282e16",
      "tree": "328fbbadb861abff9bb66aed5115da98e5800ba0",
      "parents": [
        "fee523345ab9b5d56d8e69f2177c91d9b7396531"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Apr 01 14:45:20 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Apr 01 14:45:20 2016 +0200"
      },
      "message": "move column layout processing out of CssBasedBoxModelBuilder\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "fee523345ab9b5d56d8e69f2177c91d9b7396531",
      "tree": "93febd54cf1276acf2247b4870a66896dc8307bc",
      "parents": [
        "f764103a3b7eca808dd3f7f57d8e400416974abd"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 31 17:49:34 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 31 17:49:34 2016 +0200"
      },
      "message": "layout cells according to CALS colspec elements\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "f764103a3b7eca808dd3f7f57d8e400416974abd",
      "tree": "70ee4071406de3370a251b76c955b34e35c959f8",
      "parents": [
        "dcefc01f19bef58e6a91255565a42f79c91e40d8"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 31 12:42:53 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 31 12:42:53 2016 +0200"
      },
      "message": "layout cells in a row\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "dcefc01f19bef58e6a91255565a42f79c91e40d8",
      "tree": "3edf9e83db25f1cab25c1d422c4168b2d92f7595",
      "parents": [
        "c1cce509c462d5a5dbccee19f5307e8b232a6b3e"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Mar 30 16:59:13 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Mar 30 16:59:13 2016 +0200"
      },
      "message": "add table-related boxes into the box structure\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "c1cce509c462d5a5dbccee19f5307e8b232a6b3e",
      "tree": "b34d711126f4f18cdc15e8b85a433bfc62f008b4",
      "parents": [
        "39cd4724162701abab0d1c923afb434b3fcd4eca"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Mar 29 20:41:04 2016 +0200"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Wed Mar 30 14:05:22 2016 +0200"
      },
      "message": "add box classes that represent a tables, row groups, rows, and cells\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "39cd4724162701abab0d1c923afb434b3fcd4eca",
      "tree": "4aad9779805d86690592546edd83b9d480783b08",
      "parents": [
        "21b0936eec481b5d6bd997c6c14fc8c3696fac42"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Mar 26 14:31:41 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Mar 26 14:31:41 2016 +0100"
      },
      "message": "adjust bullet size with start/end tag marker size\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "21b0936eec481b5d6bd997c6c14fc8c3696fac42",
      "tree": "045cbd76b49a3d355a74a9afba74bd8c15468a8a",
      "parents": [
        "c6b4b6885fa11a68cf01527c4c44e50f6de230c0"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Mar 26 14:30:54 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Mar 26 14:30:54 2016 +0100"
      },
      "message": "use smaller start and end tag markers\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "c6b4b6885fa11a68cf01527c4c44e50f6de230c0",
      "tree": "93a953326f360f03c0d67d4302cdafbf6a5497ae",
      "parents": [
        "49389d99f3f06683861590faaf65a2c4b472855d"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Mar 25 19:43:50 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Mar 25 19:43:50 2016 +0100"
      },
      "message": "move block-level pseudo-elements into the frame\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "49389d99f3f06683861590faaf65a2c4b472855d",
      "tree": "4a690fffedd7dbc7d3f1f8febaf08076c4ac4ad6",
      "parents": [
        "972ba3311f1bd3c7f07a4015b2b03a02b2ced119"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Mar 25 13:58:26 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Mar 25 13:59:51 2016 +0100"
      },
      "message": "introduce a feature toggle preference to activate the new box model \n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "972ba3311f1bd3c7f07a4015b2b03a02b2ced119",
      "tree": "8719c36aa4e79c9f7f8672e4e129a639f8f58de2",
      "parents": [
        "9f00c8cdd2be494c3de5d1cde6d6877452675799",
        "ce308c09ad7d2b3853661af32098f623a85d1caf"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 24 20:39:54 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 24 20:39:54 2016 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into feature/newBoxModel"
    },
    {
      "commit": "ce308c09ad7d2b3853661af32098f623a85d1caf",
      "tree": "ad357c2f5e785bdad25091a11594325ef227a5b2",
      "parents": [
        "6fe1df9f4c16dacfde55f35af57623c4f50d96f7"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 24 20:25:32 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 24 20:25:32 2016 +0100"
      },
      "message": "fix bogus m2e problems"
    },
    {
      "commit": "9f00c8cdd2be494c3de5d1cde6d6877452675799",
      "tree": "d61ee1aac3576a24804ca3e0ea045a46e390029d",
      "parents": [
        "343ac3dfc719fa06c53e85e4871cf197b2e1a494"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 24 18:56:34 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 24 18:56:34 2016 +0100"
      },
      "message": "tweak GraphicalBullet\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "343ac3dfc719fa06c53e85e4871cf197b2e1a494",
      "tree": "56d9b9bb7f0915b8171f1d787b8bb93530a75670",
      "parents": [
        "aa9712a734a9ddc679e54d6cb2b45714b835be32"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 24 18:43:26 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Mar 24 18:43:26 2016 +0100"
      },
      "message": "activate anti-aliasing to make the circular bullets more eye-friendly\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "aa9712a734a9ddc679e54d6cb2b45714b835be32",
      "tree": "6b5ef9c014a8b35ebfa4a141fcaa1071c91651ca",
      "parents": [
        "bdc44461f9e6ecadf6ed6ad570efd80597c504f6"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Mon Mar 21 21:52:32 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Mon Mar 21 21:52:32 2016 +0100"
      },
      "message": "introduce a special purpose inline box that represents graphical bullets\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "bdc44461f9e6ecadf6ed6ad570efd80597c504f6",
      "tree": "d59f2311c1383492c8f0d54e444939e3aa4d4228",
      "parents": [
        "d0b32beaa6a450d6529869c68b987a7cd8d28edd"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 15:40:58 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 15:40:58 2016 +0100"
      },
      "message": "fix cursor movement through empty structural boxes\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "d0b32beaa6a450d6529869c68b987a7cd8d28edd",
      "tree": "38a0056ab55274b6a624985a2a9250fafec63083",
      "parents": [
        "41704112682dc35606e890fd4eca7b88bad2941d"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 14:51:44 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 14:51:44 2016 +0100"
      },
      "message": "remove the wrong abstraction of IVisualDecorator\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "41704112682dc35606e890fd4eca7b88bad2941d",
      "tree": "88efbdd3661bd55cd3402edb2e833966dde94a47",
      "parents": [
        "efef91642f59a72e7eb091e7d0b3a5dd83c211d0"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 14:48:15 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 14:48:15 2016 +0100"
      },
      "message": "move calculations and layout for inside bullets to List\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "efef91642f59a72e7eb091e7d0b3a5dd83c211d0",
      "tree": "a51ce65add755eca75817cce983ef8837f262d35",
      "parents": [
        "184d6ccd87d32d75cf9a2ae11eccea348b4acb8b"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 14:15:22 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 14:15:22 2016 +0100"
      },
      "message": "separate layout related to outside bullets\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "184d6ccd87d32d75cf9a2ae11eccea348b4acb8b",
      "tree": "f45053922860609cfc1c439b0ef37fac0372195e",
      "parents": [
        "49a0bebe108bc78914bb3ab2ebcd1f0bb2a7e5a7"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 11:10:44 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 13:51:14 2016 +0100"
      },
      "message": "move calculations and layout for outside bullets to List\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "49a0bebe108bc78914bb3ab2ebcd1f0bb2a7e5a7",
      "tree": "1f80c98a49dc4ccd0295da354eaabdaf6beddd4c",
      "parents": [
        "9e641050360c192f0f6c7c08120be348639d6612"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 09:49:44 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 20 09:49:44 2016 +0100"
      },
      "message": "introduce explicit representation of a list in the box model\n\nThe List box represents the root of the list. It will take care of the\ncalculations and layout related to the bullets for the list items.\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "9e641050360c192f0f6c7c08120be348639d6612",
      "tree": "db294fd37231378107f2397b0a95aa4d2aa23f2e",
      "parents": [
        "b63ef36d27f8a3c550edda7468a4fadeff9f79e4"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 13 09:44:58 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Mar 13 17:28:08 2016 +0100"
      },
      "message": "add support for bullet position INSIDE the listitem\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "b63ef36d27f8a3c550edda7468a4fadeff9f79e4",
      "tree": "ed86f0d6454dabcef71fcd84ffb6d918e4bad572",
      "parents": [
        "f67d0358ff5df2a5fa54af15959cf308923908a5"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Mon Feb 08 21:22:13 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Mon Feb 08 21:22:13 2016 +0100"
      },
      "message": "push ListItem further down the box structure\n\nThe ListItem must be inside the NodeReference box and should contain\nonly the actual content (Paragraph or VerticalBlock). All the decoration\n(Frame) should happen outside of ListItem.\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "f67d0358ff5df2a5fa54af15959cf308923908a5",
      "tree": "29bd969ae7de2b5ee9d092b395a69848965a9aa4",
      "parents": [
        "7b6a86f5d0ae288a849049733b051ebbd1430fff"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Feb 07 10:02:24 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Feb 07 11:25:05 2016 +0100"
      },
      "message": "add new box type to visualize list items\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "7b6a86f5d0ae288a849049733b051ebbd1430fff",
      "tree": "e29167c4dfb0bbb49821e660b1c57384ca33cc74",
      "parents": [
        "b0480abfbf8853fc97e3218fabc5ddef38d8be8a"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Feb 06 21:31:14 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Feb 07 10:13:20 2016 +0100"
      },
      "message": "recognize the root of a list\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "b0480abfbf8853fc97e3218fabc5ddef38d8be8a",
      "tree": "61ca25aee1817dc0241eb496874d9acdb830ea42",
      "parents": [
        "dc1d896b295eb850e07d8ea31bba1391ffaa0568"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Feb 06 21:03:34 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Feb 07 10:13:20 2016 +0100"
      },
      "message": "provide representation of bullet style with transformation into text\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "dc1d896b295eb850e07d8ea31bba1391ffaa0568",
      "tree": "6a1bf065bc13a83aec0c0049570753a528c6ef33",
      "parents": [
        "0ced40ab456262ab0a920ad671bf91c7ba0f2cb6"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Feb 06 16:58:55 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Feb 07 10:13:19 2016 +0100"
      },
      "message": "recognize the root of a list\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "0ced40ab456262ab0a920ad671bf91c7ba0f2cb6",
      "tree": "8f8ab014077d2815536c4440a12b6c9483f55f46",
      "parents": [
        "b6a201913886607edd33a400f2865cc844ed7373"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Feb 06 16:52:23 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sun Feb 07 10:13:19 2016 +0100"
      },
      "message": "restructure according to levels of abstraction\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "b6a201913886607edd33a400f2865cc844ed7373",
      "tree": "d03198e4d853349b943bef13bcf84ee340cc434c",
      "parents": [
        "b36656260dfd846c4078815363263ab97307f96f"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:29:00 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:29:00 2016 +0100"
      },
      "message": "remove references to the document from EclipseContext on editor closing\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "b36656260dfd846c4078815363263ab97307f96f",
      "tree": "2fe706733613198ddf6d40bc230e13e1a44e83b7",
      "parents": [
        "9d53249b1cda94482f2ece39ca5e857419683a0c"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:28:45 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:28:45 2016 +0100"
      },
      "message": "flush the style cache when an editor is closed\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "9d53249b1cda94482f2ece39ca5e857419683a0c",
      "tree": "6614116cc6a159cd80821244937c8ff61aa288f8",
      "parents": [
        "b43d82803a437fb58422db2aab4de61fb477092b"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:28:31 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:28:31 2016 +0100"
      },
      "message": "fix splitting for very narrow view ports\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "b43d82803a437fb58422db2aab4de61fb477092b",
      "tree": "1e4b64fca88bc7218a851a1f589b07b2e6a8102e",
      "parents": [
        "de7b73e469a2079f1060fb78d884dfcc23a47949"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:28:16 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:28:16 2016 +0100"
      },
      "message": "track clean/dirty state in EditStack and IDocumentEditor\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "de7b73e469a2079f1060fb78d884dfcc23a47949",
      "tree": "33f4057924b87b7187138fccc2ca65e16b38d555",
      "parents": [
        "0f47efded25f96bbc03fd334f10e798ce86c1299"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:28:01 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:28:01 2016 +0100"
      },
      "message": "remove unused variable\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "0f47efded25f96bbc03fd334f10e798ce86c1299",
      "tree": "713b70c3a79f78174ca97b13a2761f0a02e2468d",
      "parents": [
        "87d720c21dbf5b0aa9c0e4af09a6634e784908d4"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:27:44 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:27:45 2016 +0100"
      },
      "message": "check boundaries\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "87d720c21dbf5b0aa9c0e4af09a6634e784908d4",
      "tree": "34cfdc591ad35cc48dea9b6ee841dc8d5d725cd9",
      "parents": [
        "cb049528e571de81fe4d765ad9bb3043a01822cd"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:27:27 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:27:27 2016 +0100"
      },
      "message": "fix one-off problem when surrounding a selection with an element\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "cb049528e571de81fe4d765ad9bb3043a01822cd",
      "tree": "9931c864fd62d3b7e46fec53abec71ba8ead1692",
      "parents": [
        "a17cf2ab2b407cac3e9470190a1d9660e56c2608"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:27:03 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:27:03 2016 +0100"
      },
      "message": "fix one-off problems in duplicate selection\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "a17cf2ab2b407cac3e9470190a1d9660e56c2608",
      "tree": "9c43fbb9978d75fb4949f2039825c7dc9dea7c52",
      "parents": [
        "14dd81598dc506cf6d655ec47a1e9fab6fab6d1e"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:26:46 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:26:46 2016 +0100"
      },
      "message": "fix search for next box below: take InlineNodeReference into account\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "14dd81598dc506cf6d655ec47a1e9fab6fab6d1e",
      "tree": "73559d15d3322f3584f03deac05359183eba9d6c",
      "parents": [
        "9559df80b238fef1e755bfb40ae9b109d28f8f27"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:26:27 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:26:27 2016 +0100"
      },
      "message": "cache images to improve rendering performance\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "9559df80b238fef1e755bfb40ae9b109d28f8f27",
      "tree": "485b6414b45297dba784328e3694a5193eb26109",
      "parents": [
        "be6c2ed6b12e6a7cf894f4f2d42dc5a15ce2c00d"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:26:14 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:26:14 2016 +0100"
      },
      "message": "scale image width relative to view port width\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "be6c2ed6b12e6a7cf894f4f2d42dc5a15ce2c00d",
      "tree": "07ed051ef20de670ec405c0114440f1ff5bf5b7e",
      "parents": [
        "c020bf1d2dfbe9553b5cec2ee52b5e73280f2a83"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:25:59 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:25:59 2016 +0100"
      },
      "message": "ensure images are not wider than the view port, scale them if needed\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "c020bf1d2dfbe9553b5cec2ee52b5e73280f2a83",
      "tree": "35e93160cafe15ba7187ee082593e6d0ce3ed5a5",
      "parents": [
        "599929f776f14cb6c79f6768b9db1b71c5f635b6"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:25:38 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:25:39 2016 +0100"
      },
      "message": "add support for a preferred image width/height\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "599929f776f14cb6c79f6768b9db1b71c5f635b6",
      "tree": "0a581baca94637df69b843a0a4e6f7ccec745baa",
      "parents": [
        "016b817162a149affeaa3eba13ce4c9875a98e10"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:25:10 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:25:10 2016 +0100"
      },
      "message": "use the image() CSS function in XHTML, DocBook and DITA\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "016b817162a149affeaa3eba13ce4c9875a98e10",
      "tree": "0a9f2315bbcb73c2d4f6a62a67dc4795a530a5fd",
      "parents": [
        "110c76dac1d7f1cc286e0ed7b3de8443c345a8b8"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:24:46 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 28 19:24:46 2016 +0100"
      },
      "message": "introduce CSS function image(); parse content CSS property in own class\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "110c76dac1d7f1cc286e0ed7b3de8443c345a8b8",
      "tree": "880c5b5fdac25c531d24b61124b4a07eca5550bb",
      "parents": [
        "b619ab480fc667e2723a9f7235ec7a8fc0a95aa8"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:55:02 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:55:02 2016 +0100"
      },
      "message": "define the visualization of empty elements through the content property\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "b619ab480fc667e2723a9f7235ec7a8fc0a95aa8",
      "tree": "3ae6ffa7822f9097a399a00f21a737e5c2858593",
      "parents": [
        "d58fe54aafc7bc1fe6ae73a09b22966b90f73a66"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:54:49 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:54:49 2016 +0100"
      },
      "message": "surround empty inline elements with their inline pseudo elements\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "d58fe54aafc7bc1fe6ae73a09b22966b90f73a66",
      "tree": "b622984ccde6bda84b3f0fe8099c4ec81c68e3d3",
      "parents": [
        "d7b818b87f062c2a7b72e3f4de9df0ddc1e3e9fe"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:54:35 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:54:36 2016 +0100"
      },
      "message": "show images in the before/after pseudo elements\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "d7b818b87f062c2a7b72e3f4de9df0ddc1e3e9fe",
      "tree": "5596f1a3d968de193716f5a9f081bbdc6cee739c",
      "parents": [
        "8d7e9b473724baf0c142f67753145220c2bc32a8"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:54:21 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:54:21 2016 +0100"
      },
      "message": "extract visualization of the content CSS property\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "8d7e9b473724baf0c142f67753145220c2bc32a8",
      "tree": "a7e471efc950b871f5f0c807dda5a9adac0f3716",
      "parents": [
        "bcbe88ad4caf86de5340d3236bd255e47e920b74"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:54:01 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:54:01 2016 +0100"
      },
      "message": "allow url(...) to be used in the content CSS property\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "bcbe88ad4caf86de5340d3236bd255e47e920b74",
      "tree": "1f628c843a5c659c56e7dfcc228e49bbf028f16e",
      "parents": [
        "5fdfb395ff401e0ea9263b9509f19fbfe5b3a989"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:53:46 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:53:46 2016 +0100"
      },
      "message": "move cursor into the first line also for one-liners\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "5fdfb395ff401e0ea9263b9509f19fbfe5b3a989",
      "tree": "0c371d8fa49f31c056062da0597ff802ba99125b",
      "parents": [
        "409e1e9bb2b196e6e1c79393ecf7cbb0c0ff0e4f"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:53:30 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:53:30 2016 +0100"
      },
      "message": "improve move to next/previous page\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "409e1e9bb2b196e6e1c79393ecf7cbb0c0ff0e4f",
      "tree": "ad7c5c4591a184426c81d6081e62e30e8d19873b",
      "parents": [
        "6446e4bf8a2f018889e27f72cf5ffa5e2089e5c2"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:53:14 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:53:14 2016 +0100"
      },
      "message": "set isAbsolute to false for relative moves\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "6446e4bf8a2f018889e27f72cf5ffa5e2089e5c2",
      "tree": "b94c91c5c0f897bdf472c9a1611d363eeb9b02c9",
      "parents": [
        "ff017a84c456eac4d9951b9d8cd8d89c3bd9aaa0"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:52:49 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:52:49 2016 +0100"
      },
      "message": "provide the current node as selected object if only text is selected\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "ff017a84c456eac4d9951b9d8cd8d89c3bd9aaa0",
      "tree": "1beeec3af50b2604dd3e71f59609ec46c460fd71",
      "parents": [
        "00af23dacf6f26e936fa4ceba11604779495575d"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:52:33 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:52:33 2016 +0100"
      },
      "message": "cleanup\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "00af23dacf6f26e936fa4ceba11604779495575d",
      "tree": "181fa6ecf0b092faea1a07f08e66a605d35b1325",
      "parents": [
        "b02c4357e2c147f9b57043af60b873ad5ef5103f"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:52:19 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:52:19 2016 +0100"
      },
      "message": "use NodeEndOffsetPlaceholder also for empty structural nodes\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "b02c4357e2c147f9b57043af60b873ad5ef5103f",
      "tree": "3e67e0359ab5bfdd06ac607d0d4fb0a1e93cc19d",
      "parents": [
        "3ea4a56285fd93c8c1f303c318dea1e1b353a79a"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:52:03 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:52:03 2016 +0100"
      },
      "message": "render mix of block and inline content in one block element\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "3ea4a56285fd93c8c1f303c318dea1e1b353a79a",
      "tree": "301ccf858aea91d990d1d467db03f1b7d6354a42",
      "parents": [
        "7854f99ce1d37ebbd93cbc19a9514df8c5fcec72"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:51:50 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:51:50 2016 +0100"
      },
      "message": "convert to UTF-8\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "7854f99ce1d37ebbd93cbc19a9514df8c5fcec72",
      "tree": "4dae5e7fe947563ea26f91899b69c8ec236e7c84",
      "parents": [
        "a4fd371958afab0ffe3bddd8530f4cf138467148"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:51:33 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:51:33 2016 +0100"
      },
      "message": "remove trace output\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "a4fd371958afab0ffe3bddd8530f4cf138467148",
      "tree": "5d8e4e98203860a3ec2db719bfd779132c3a4f3b",
      "parents": [
        "68da27465533bec64020de2bf59cb7d1fb7279b3"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:51:03 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 21 17:51:03 2016 +0100"
      },
      "message": "always delete the selection, if there is one\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "68da27465533bec64020de2bf59cb7d1fb7279b3",
      "tree": "fbd5bb9f137e9f65c0bfdd406d4764c4e2ef15d1",
      "parents": [
        "dd9c3fd3badd2d87eed2d65497092427b1475071"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Jan 19 21:19:45 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Jan 19 21:19:45 2016 +0100"
      },
      "message": "send selection change notification only after a short delay of silence\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "dd9c3fd3badd2d87eed2d65497092427b1475071",
      "tree": "5c6fecd98d858073dba27e98a2879e4797596c91",
      "parents": [
        "eb79d6d8070b4e2a20684cd14137aea37abb3164"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Jan 19 20:16:36 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Jan 19 20:16:36 2016 +0100"
      },
      "message": "add a little padding when scrolling up or down\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "eb79d6d8070b4e2a20684cd14137aea37abb3164",
      "tree": "b60d85dde4c9c93ba071ef4d310bcb1ac25ece7d",
      "parents": [
        "5e27af870a1d953b7e93df1c7f68452c64872ac0"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Jan 19 20:16:16 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Jan 19 20:16:16 2016 +0100"
      },
      "message": "move cursor right into the content if there is inline content\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "5e27af870a1d953b7e93df1c7f68452c64872ac0",
      "tree": "48e3c62734b7d92ff05e3c54685de57dff5acc62",
      "parents": [
        "717508417527850551f07cf15ca089960a3763bf"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Jan 19 20:15:55 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Tue Jan 19 20:15:55 2016 +0100"
      },
      "message": "distinguish between structural node and paragraph node when entering it\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "717508417527850551f07cf15ca089960a3763bf",
      "tree": "153472b3a36f0c5a87829e7ea36e8e03ccb55975",
      "parents": [
        "7e862ff0f59e7b04dd5e4e0a8debc795862358a5"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jan 16 20:14:56 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jan 16 20:14:56 2016 +0100"
      },
      "message": "use box boundaries when looking for the first child box\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "7e862ff0f59e7b04dd5e4e0a8debc795862358a5",
      "tree": "95640e9f8d960408f7c132f38a444d6266ca3a36",
      "parents": [
        "a25c156c2fd86db92aadebb481a590182087073f"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jan 16 19:49:56 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jan 16 19:49:56 2016 +0100"
      },
      "message": "rely on movement direction instead of guessing the offset in container\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "a25c156c2fd86db92aadebb481a590182087073f",
      "tree": "974975cb20dc1e64fa57e0e96b95b54b4a9abbbb",
      "parents": [
        "28df78adf8522c244013d04ee5e691bb67ea0ffb"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jan 16 18:53:20 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jan 16 18:53:20 2016 +0100"
      },
      "message": "handle comment outside of the root element\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "28df78adf8522c244013d04ee5e691bb67ea0ffb",
      "tree": "9ce96ac4cd5377fac8e033cce10effd5100169f6",
      "parents": [
        "15a6e8e84c2f5873b27effaf1c7686696ada9736"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jan 16 18:31:40 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jan 16 18:31:40 2016 +0100"
      },
      "message": "provide a full-featured IStructuredSelection\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "15a6e8e84c2f5873b27effaf1c7686696ada9736",
      "tree": "71294c2f546d88fe62923737e178c8aec9fd7027",
      "parents": [
        "0c6c3118c1ddf8e03713267f5a43a4501d9ce685"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jan 16 16:04:47 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Sat Jan 16 16:04:47 2016 +0100"
      },
      "message": "add proper handling of double-click and right-click\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e"
    },
    {
      "commit": "0c6c3118c1ddf8e03713267f5a43a4501d9ce685",
      "tree": "eca3d4d7208ef4e054d27495b99bca59cd48881f",
      "parents": [
        "e7b9fd21371f9658c8ee47a77f7282702566a1ad"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:37:08 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:58:24 2016 +0100"
      },
      "message": "move cursor to start and end of the current line\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "e7b9fd21371f9658c8ee47a77f7282702566a1ad",
      "tree": "160471e79ed6a2fa271442634afd2384b51cb62d",
      "parents": [
        "191a455702d9517147393f82c7a994fe7978ea9e"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:35:40 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:58:23 2016 +0100"
      },
      "message": "always move to the start of a word\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "191a455702d9517147393f82c7a994fe7978ea9e",
      "tree": "dd1f74b13f5fcf8e5a86b8a1b9562b8d1b080e72",
      "parents": [
        "5929a207a0b29b6d80ec4aa4bde12fabc25c172d"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:34:27 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:34:27 2016 +0100"
      },
      "message": "move cursor page-wise up and down\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "5929a207a0b29b6d80ec4aa4bde12fabc25c172d",
      "tree": "67c90ee700254cb7589ea04dd9a8b7c6c1c8ef97",
      "parents": [
        "4e3826d47797a3ce4cffcaefbee374f7a4311091"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:33:13 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:33:13 2016 +0100"
      },
      "message": "provide view port to the cursor moves\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "4e3826d47797a3ce4cffcaefbee374f7a4311091",
      "tree": "cd36a1e5a5d42672a8cb663a974f968d146a5177",
      "parents": [
        "14d396957d29d130ff7d68f7913aaaeb9714bbfb"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:32:02 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:32:02 2016 +0100"
      },
      "message": "if we have no current node, we use the document as fallback\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "14d396957d29d130ff7d68f7913aaaeb9714bbfb",
      "tree": "c5b1028b5727667bcedec94d59303ab6ce138f4b",
      "parents": [
        "aa3d4efa67143abb46e8220671b86ac2465c39de"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:30:45 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:30:45 2016 +0100"
      },
      "message": "use the SWT clipboard\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "aa3d4efa67143abb46e8220671b86ac2465c39de",
      "tree": "87d3c2a8d1971d387ee0136776afd37fbda886c8",
      "parents": [
        "910e5013246ad3a3d3ac8a4ac07ac656cac53525"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:29:32 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:29:32 2016 +0100"
      },
      "message": "implement support for SWT clipboard\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "910e5013246ad3a3d3ac8a4ac07ac656cac53525",
      "tree": "19ca8605059d1b98f6d2d4c23f5c2e5ccd7488ec",
      "parents": [
        "691fe337ea1384ce77138bfb8fdd53e1042d0818"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:28:00 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:28:00 2016 +0100"
      },
      "message": "provide abstract base test for IClipboard\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "691fe337ea1384ce77138bfb8fdd53e1042d0818",
      "tree": "b8b0fd1facce87257a6780c66e56b47232f4e393",
      "parents": [
        "2d39c8b207b467f4e488fe7e442033f3a212751c"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:26:41 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Fri Jan 15 16:26:41 2016 +0100"
      },
      "message": "implement simple in memory clipboard\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "2d39c8b207b467f4e488fe7e442033f3a212751c",
      "tree": "48b0c462428b6285bff8d5b8d2a1a42c3aa1f1b0",
      "parents": [
        "bec6d6863eb4028c377d024eb0a4b325cd08650b"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 14 20:49:06 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 14 20:49:06 2016 +0100"
      },
      "message": "add support for inserting Tab (\\t) into the textual content\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "bec6d6863eb4028c377d024eb0a4b325cd08650b",
      "tree": "c98c0c5e469279a63735a23f5336dad43b140a56",
      "parents": [
        "f14d17fdb0d7cd20d79e21d3b1f58282359418ca"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 14 20:48:46 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 14 20:48:46 2016 +0100"
      },
      "message": "use the key mapping from VexWidget also in BoxWidget\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "f14d17fdb0d7cd20d79e21d3b1f58282359418ca",
      "tree": "f7f9fd26835060efc086965476148d68dbf3822f",
      "parents": [
        "be7368e1144cbc11149e72b1f3c1b222a7687613"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 14 20:48:22 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 14 20:48:22 2016 +0100"
      },
      "message": "check boundaries and fix NPEs\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "be7368e1144cbc11149e72b1f3c1b222a7687613",
      "tree": "12f0eb976a676a7b3eec98c0465ef20cffe70aad",
      "parents": [
        "17a30b6f55d10a3e05a4c06d12d58caf5508c4b5"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 14 20:47:56 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 14 20:47:56 2016 +0100"
      },
      "message": "remove temporal coupling, current node is calculated on demand now\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    },
    {
      "commit": "17a30b6f55d10a3e05a4c06d12d58caf5508c4b5",
      "tree": "43593fb6f3758f535c3118b4fb50999caca48ece",
      "parents": [
        "58ed6213324c18c1be7d5f6b58e61a094af3da68"
      ],
      "author": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 14 20:47:41 2016 +0100"
      },
      "committer": {
        "name": "Florian Thienel",
        "email": "florian@thienel.org",
        "time": "Thu Jan 14 20:47:41 2016 +0100"
      },
      "message": "show mouse coordinates\n\nSigned-off-by: Florian Thienel \u003cflorian@thienel.org\u003e\n"
    }
  ],
  "next": "58ed6213324c18c1be7d5f6b58e61a094af3da68"
}
