)]}'
{
  "commit": "2480acb6d974a2cfc1da5b1ea8cc14f2415e6dfe",
  "tree": "3e95be3eae1e7d0ff8dce89951b167843127fb94",
  "parents": [
    "9ab11c6561abd5fe997a999f21799d160b0d14cf"
  ],
  "author": {
    "name": "Thomas Van Lenten",
    "email": "thomasvl@google.com",
    "time": "Mon Nov 30 14:38:04 2015 -0500"
  },
  "committer": {
    "name": "Thomas Van Lenten",
    "email": "thomasvl@google.com",
    "time": "Thu Feb 18 13:55:59 2016 -0500"
  },
  "message": "Support ObjC Generic Collections\n\n- Extend GPB*ObjectDictionary to support generic syntax.\n- Update the generator to output generics so the enclosed type is exposed for compiler checks.\n- Use generics in a the public interfaces.\n- Update the generated sources that are checked in.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a5aef1706aac89c962b1e5e7a942273aba3de9e3",
      "old_mode": 33188,
      "old_path": "objectivec/GPBCodedOutputStream.h",
      "new_id": "0a47f1c95a4012238f615c8421248b025b001de2",
      "new_mode": 33188,
      "new_path": "objectivec/GPBCodedOutputStream.h"
    },
    {
      "type": "modify",
      "old_id": "360afe96a08e72d887fd9b33f6d9abbac0b8ab6c",
      "old_mode": 33188,
      "old_path": "objectivec/GPBDescriptor.h",
      "new_id": "8d8e97540ce5849b5f246e1b2b5c7a77737c30b4",
      "new_mode": 33188,
      "new_path": "objectivec/GPBDescriptor.h"
    },
    {
      "type": "modify",
      "old_id": "6961cfc361d9829440a68f83a9a33f87769e7e99",
      "old_mode": 33188,
      "old_path": "objectivec/GPBDictionary.h",
      "new_id": "3120814a633a58fa87958c69efbbb53cf62cc8a0",
      "new_mode": 33188,
      "new_path": "objectivec/GPBDictionary.h"
    },
    {
      "type": "modify",
      "old_id": "12d72a9acd5cc0b2de0b9d99c430c5363a872a5b",
      "old_mode": 33188,
      "old_path": "objectivec/GPBUnknownField.h",
      "new_id": "43709ee57079707b3f6ca2f0f773f6a6bcdd8838",
      "new_mode": 33188,
      "new_path": "objectivec/GPBUnknownField.h"
    },
    {
      "type": "modify",
      "old_id": "c49c0dfc700f3091f262649c1d75945e08ae430d",
      "old_mode": 33188,
      "old_path": "objectivec/GPBUnknownField.m",
      "new_id": "22ed66a43381ea0a3f4e9c6593cdbe070600d148",
      "new_mode": 33188,
      "new_path": "objectivec/GPBUnknownField.m"
    },
    {
      "type": "modify",
      "old_id": "d785ca16e74cb68f5d5a842b1bdcef94dd8ca15d",
      "old_mode": 33188,
      "old_path": "objectivec/GPBUnknownFieldSet.h",
      "new_id": "8db0132a7a81d0d489b843c0c7172eb970d57a85",
      "new_mode": 33188,
      "new_path": "objectivec/GPBUnknownFieldSet.h"
    },
    {
      "type": "modify",
      "old_id": "8b1900fef59f3e6edeb2de35c668f277803b4469",
      "old_mode": 33188,
      "old_path": "objectivec/Tests/GPBDictionaryTests+Bool.m",
      "new_id": "afa3d11cf82e0775c049fc25a060a9f70bf4f7a0",
      "new_mode": 33188,
      "new_path": "objectivec/Tests/GPBDictionaryTests+Bool.m"
    },
    {
      "type": "modify",
      "old_id": "21d3f07d18608b0cf794ef042d618f58ab17cdcb",
      "old_mode": 33188,
      "old_path": "objectivec/Tests/GPBDictionaryTests+Int32.m",
      "new_id": "54dd2ed7c2382e5d15c41551cae78df18494f0c1",
      "new_mode": 33188,
      "new_path": "objectivec/Tests/GPBDictionaryTests+Int32.m"
    },
    {
      "type": "modify",
      "old_id": "27f77f282f29c5817241623aee6f4af39276eb89",
      "old_mode": 33188,
      "old_path": "objectivec/Tests/GPBDictionaryTests+Int64.m",
      "new_id": "66bc64879df57273ec5708ac9141b5e998a9cdf2",
      "new_mode": 33188,
      "new_path": "objectivec/Tests/GPBDictionaryTests+Int64.m"
    },
    {
      "type": "modify",
      "old_id": "c7c5765257ffe741b8a3ac17848ddf4145f19b38",
      "old_mode": 33188,
      "old_path": "objectivec/Tests/GPBDictionaryTests+UInt32.m",
      "new_id": "499f2adb248ca16ab6765a707b31bb5b703fd4ed",
      "new_mode": 33188,
      "new_path": "objectivec/Tests/GPBDictionaryTests+UInt32.m"
    },
    {
      "type": "modify",
      "old_id": "b64d3a96c0375ee5851a18813eaf11d40eefd6af",
      "old_mode": 33188,
      "old_path": "objectivec/Tests/GPBDictionaryTests+UInt64.m",
      "new_id": "327e1548906b652e9b2d2703a7e8920f2a698211",
      "new_mode": 33188,
      "new_path": "objectivec/Tests/GPBDictionaryTests+UInt64.m"
    },
    {
      "type": "modify",
      "old_id": "ada93c643fa6598ebe4ae67ca7f87a85d5bed3a4",
      "old_mode": 33188,
      "old_path": "objectivec/Tests/GPBDictionaryTests.pddm",
      "new_id": "09512940821117d43b40586468182dae706d0b28",
      "new_mode": 33188,
      "new_path": "objectivec/Tests/GPBDictionaryTests.pddm"
    },
    {
      "type": "modify",
      "old_id": "c3cf8e94b57f88f7e3537b78a4562e8b54c9a364",
      "old_mode": 33188,
      "old_path": "objectivec/google/protobuf/Api.pbobjc.h",
      "new_id": "8d82b15f897ac09e8f8b9e6b7525e0562e713801",
      "new_mode": 33188,
      "new_path": "objectivec/google/protobuf/Api.pbobjc.h"
    },
    {
      "type": "modify",
      "old_id": "9c43cfd2e0cea024729447f52935963f96f37298",
      "old_mode": 33188,
      "old_path": "objectivec/google/protobuf/Descriptor.pbobjc.h",
      "new_id": "2ab20243d89fa6290ca5a6d085f1351f0339bebe",
      "new_mode": 33188,
      "new_path": "objectivec/google/protobuf/Descriptor.pbobjc.h"
    },
    {
      "type": "modify",
      "old_id": "4e4ec38756ac8e69d5243ac5f9c94095d324a5d0",
      "old_mode": 33188,
      "old_path": "objectivec/google/protobuf/FieldMask.pbobjc.h",
      "new_id": "f4bc2653bcf0dd85f893d2766616ff7e5d5f9073",
      "new_mode": 33188,
      "new_path": "objectivec/google/protobuf/FieldMask.pbobjc.h"
    },
    {
      "type": "modify",
      "old_id": "f40414fa863f21eec0f510c69ebce309572d61bf",
      "old_mode": 33188,
      "old_path": "objectivec/google/protobuf/Struct.pbobjc.h",
      "new_id": "293dea40207022f8cc7104779e3ed922a79ca20b",
      "new_mode": 33188,
      "new_path": "objectivec/google/protobuf/Struct.pbobjc.h"
    },
    {
      "type": "modify",
      "old_id": "e4c7a251d81755deba06c718247a616dd28c0929",
      "old_mode": 33188,
      "old_path": "objectivec/google/protobuf/Type.pbobjc.h",
      "new_id": "a7d03a2ac33d943b8e2719a9f6800fc61a0d3952",
      "new_mode": 33188,
      "new_path": "objectivec/google/protobuf/Type.pbobjc.h"
    },
    {
      "type": "modify",
      "old_id": "97df536e05368b2bead8c6b2be104dcb857ad73c",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/main.cc",
      "new_id": "66ad13b749c8c2eeb2c7d7e51d9a49cc3671912f",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/main.cc"
    },
    {
      "type": "modify",
      "old_id": "30a13ddb9032677a5a522720bf6e2b295216ba2c",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
      "new_id": "ecc77f6b6d14631ced1205544a7381815c9462f6",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc"
    },
    {
      "type": "modify",
      "old_id": "b629eae81aefdf92333d2a456b0b42bb7b6198f8",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_enum_field.h",
      "new_id": "ae2f57e3ccd2607f7b7255ca8412cddd79925f2f",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_enum_field.h"
    },
    {
      "type": "modify",
      "old_id": "cf5d8cfb234555d80cd721d798890460f091cf4c",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_field.cc",
      "new_id": "093418209c98da3ac71566c02d72d267b745b077",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_field.cc"
    },
    {
      "type": "modify",
      "old_id": "130a52dd76f5a4696f46fb9d7c8337445b8ce39c",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_field.h",
      "new_id": "e8a20a72d082d1d24980611ae0df7527d4105564",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_field.h"
    },
    {
      "type": "modify",
      "old_id": "228c66f0b4b77162fa73d25570c0b95b35e81cb3",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_file.cc",
      "new_id": "cdf9ebbcd6bdcd7be4f10e3e4f4622762784c1f2",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_file.cc"
    },
    {
      "type": "modify",
      "old_id": "1bb4f0ea41298ab6d5a2caf4e62155842c7e7421",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_file.h",
      "new_id": "4c0fcd3f4151174456ef487a04c43bc53043559f",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_file.h"
    },
    {
      "type": "modify",
      "old_id": "375b4e0f548b4b05db2996c0faebf0cab9e72009",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
      "new_id": "72e295de4977a0cab826708a591d6f8e2285dfaa",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "8527b74b8c8399f3498c2f831e59c78381407b12",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
      "new_id": "77a378c8f0be6eba89ea1417e97c3fa146eb00ae",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_helpers.cc"
    },
    {
      "type": "modify",
      "old_id": "857448629b065eb99ca5bab4dbc7098963c19810",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_helpers.h",
      "new_id": "5b2dd1903a48c8e454af3dfe68a1a62ee2af69ff",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_helpers.h"
    },
    {
      "type": "modify",
      "old_id": "2987f3db88d01b02c51907d69dd5a89ff2863a8a",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
      "new_id": "2751e9369489bd637cc5d6ffa42f47e1f4d4e332",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_map_field.cc"
    },
    {
      "type": "modify",
      "old_id": "173541f2073b55d8ebe7bb376fca6acec244a8f1",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_map_field.h",
      "new_id": "7351ea05f642ac56fd92523eca9602acf4e3f2ab",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_map_field.h"
    },
    {
      "type": "modify",
      "old_id": "32671d42013dffc73eae1df58ba80551668e3ba2",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_message.cc",
      "new_id": "e0ea8bd27583ea4a8af9336543e729e7b7193b03",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_message.cc"
    },
    {
      "type": "modify",
      "old_id": "06b536ff8387deb56675d3ed80627c394a79dc35",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_message.h",
      "new_id": "8565e76ff6e4a268e8ab19c1b4b4b81295941a39",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_message.h"
    },
    {
      "type": "modify",
      "old_id": "f2ce4e5b54d1347b48f9ad16153c2a7386045ca7",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
      "new_id": "d6ccd6d1e7b62970ff53b444223e7c4d2cf7df24",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_message_field.cc"
    },
    {
      "type": "modify",
      "old_id": "708ea5668f9c15b6a545cf9e6e73c333dc42cbc4",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_message_field.h",
      "new_id": "d2dba1533442d4dcf66ae44fe0053cacde81dffb",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_message_field.h"
    },
    {
      "type": "modify",
      "old_id": "c185b66dbe8437c01accb64ae65655d4ee250a24",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
      "new_id": "ea7f1b918940177386be31b1406e6f9f64d3a8a2",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc"
    },
    {
      "type": "modify",
      "old_id": "9bb793434c0b6e5708901da562013806cc9b544d",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h",
      "new_id": "87139afb7420999bb4bf31740058249350d2b13c",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h"
    }
  ]
}
