)]}'
{
  "commit": "532c717bccc95aa93bae7af8be0695bee83c32b5",
  "tree": "406d46e209a8a56f176c7afa20f14754800e77d9",
  "parents": [
    "b992d3433974479909e6fd584dd798d4badf27b9"
  ],
  "author": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Fri Nov 04 21:35:26 2011 +0000"
  },
  "committer": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Fri Nov 04 21:35:26 2011 +0000"
  },
  "message": "Add opaque programmer registration infrastructure\n\nAn opaque programmer does not allow direct flash access and only offers\nabstract probe/read/erase/write methods.\nDue to that, opaque programmers need their own infrastructure and\nregistration framework.\n\nCorresponding to flashrom svn r1459.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4a8dc2c754b8251bc5ca7a6e1f372c2e51dccd39",
      "old_mode": 33188,
      "old_path": "Makefile",
      "new_id": "afbdd97fa5672c7fe16f3b718e028b1491992f2b",
      "new_mode": 33188,
      "new_path": "Makefile"
    },
    {
      "type": "modify",
      "old_id": "958c59ade9aa7b442716cb2cdd726a0d98380d16",
      "old_mode": 33188,
      "old_path": "chipdrivers.h",
      "new_id": "2746e52945ae05d0b332f816b3c6011f6408c2a1",
      "new_mode": 33188,
      "new_path": "chipdrivers.h"
    },
    {
      "type": "modify",
      "old_id": "535c1b867a2890d606c301370079f0f2533c2d75",
      "old_mode": 33188,
      "old_path": "flash.h",
      "new_id": "c91e9540388d5a850c5b28489f340965687e97b9",
      "new_mode": 33188,
      "new_path": "flash.h"
    },
    {
      "type": "modify",
      "old_id": "26581a83a43be432d90f3967c3f616db29a330e1",
      "old_mode": 33188,
      "old_path": "flashchips.c",
      "new_id": "7ce4b583bf43b15ba13479dea6acbb10e4de18fb",
      "new_mode": 33188,
      "new_path": "flashchips.c"
    },
    {
      "type": "modify",
      "old_id": "2c939e493a4b52758fd03a62fe3ea32ce92d0406",
      "old_mode": 33188,
      "old_path": "flashchips.h",
      "new_id": "03efb86d967985a793d11be567f34b4e134e6f6a",
      "new_mode": 33188,
      "new_path": "flashchips.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "13c6a095be9a481af581bebdfb4fe12ddf36cce5",
      "new_mode": 33188,
      "new_path": "opaque.c"
    },
    {
      "type": "modify",
      "old_id": "62904c948a94b666c56e3a9674a1db55561d075d",
      "old_mode": 33188,
      "old_path": "print.c",
      "new_id": "1371dcdf8f436a93a91b2325d261627ec2eb6f21",
      "new_mode": 33188,
      "new_path": "print.c"
    },
    {
      "type": "modify",
      "old_id": "3d35a4653ae3c27e7cb237dc3ca5f585eb877c33",
      "old_mode": 33188,
      "old_path": "programmer.h",
      "new_id": "16947f1eb3ef0e54a123f9331a69dc4da3283c6d",
      "new_mode": 33188,
      "new_path": "programmer.h"
    }
  ]
}
