)]}'
{
  "log": [
    {
      "commit": "81d33e9b6ed158d979951f56daf9fd46742be7fd",
      "tree": "5162296b4cfe69d7bc21632c5c5d1752d525d3c4",
      "parents": [
        "e19dc30bd3046b62f1b6c3d9062066eecbfdded9",
        "f85eec8403226be8cb7584b95ea185616d2e017b"
      ],
      "author": {
        "name": "Adam Koski",
        "email": "adamkoski@google.com",
        "time": "Wed Nov 22 13:21:25 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 13:21:25 2017 +0000"
      },
      "message": "Merge \"Fix conditional keep rules for new semantics\""
    },
    {
      "commit": "8cfd3d03de5d96797d00b0a4dbdce46be6d8dde1",
      "tree": "faf906385067db5b40f6f4ec4b0e24a48b0964f6",
      "parents": [
        "f1f708f186cd8383f7cdd90ca6c277611245c1cb",
        "99a7b60e51748e77657eb62aba58605062b06260"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 21 01:40:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 21 01:40:34 2017 +0000"
      },
      "message": "Merge \"Use serif fonts for serif fallback.\""
    },
    {
      "commit": "f85eec8403226be8cb7584b95ea185616d2e017b",
      "tree": "7bdb41112e8a2d97dd9f1e64e690385dcf823e6a",
      "parents": [
        "de3766e95d880ea6c9f3e9280a8ac921effe47a8"
      ],
      "author": {
        "name": "Adam Koski",
        "email": "adamkoski@google.com",
        "time": "Wed Nov 15 12:48:49 2017 -0800"
      },
      "committer": {
        "name": "Adam Koski",
        "email": "adamkoski@google.com",
        "time": "Mon Nov 20 14:54:28 2017 -0800"
      },
      "message": "Fix conditional keep rules for new semantics\n\nNew conditional syntax is a logical AND, not OR. This means if a\nresource should be conditionally kept by multiple ids, we need to\ngenerate a separate rule for each condition (which will be interpreted\nas OR).\n\nTest: unit tests\nBug: 69341430\nChange-Id: I0786c65561d36fbf43d181a2dfd0c7eaf1d96b8c\n"
    },
    {
      "commit": "99a7b60e51748e77657eb62aba58605062b06260",
      "tree": "a223ab2309021295abd18335ff6fc4ef9a575cd5",
      "parents": [
        "28306600e6769ce708897d2a2c6b852228e2a9de"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Jul 05 16:06:23 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Nov 20 14:46:31 2017 -0800"
      },
      "message": "Use serif fonts for serif fallback.\n\nBug: 31491668\nTest: m -j1024 fontchain_lint\nChange-Id: Ic1d356aa684f2284b0b0fc8de5d0e36380eb44bc\n"
    },
    {
      "commit": "c6c6c349f94638c81b0a3c2fc99b37266f6633ae",
      "tree": "7b1d676c79cabd758125edfe99788662293b694e",
      "parents": [
        "43699661dd43337939b6c682659b7e5beb0d6709"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Nov 13 09:13:37 2017 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Nov 20 13:48:45 2017 -0700"
      },
      "message": "Collect set of \"changed\" classes.\n\nGenerate hash of each class to quickly identify which classes have\nbeen touched between two API files.\n\nTest: manually verified\nBug: 69115817\nChange-Id: I0be92ec8a4e9ef6ca603e70c8164e10a2eaf4161\n"
    },
    {
      "commit": "24c992479799c8330f6b837d504bac7970310947",
      "tree": "4d8c4df0319c7930dcc9dcb96a589f0f8af014fc",
      "parents": [
        "344072e2f678cf02b597e16a078c05ef270a4b5d",
        "67695d3aff7553f80bbcda88e6a2c1c0cb9f7632"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Fri Nov 17 22:30:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 17 22:30:37 2017 +0000"
      },
      "message": "Merge \"Build fontchain_lint using python_binary_host\" am: 7ecac139ea am: 7ade558ad2\nam: 67695d3aff\n\nChange-Id: I850304f79c1c35bfeb6951307b8ca2365da0330b\n"
    },
    {
      "commit": "67695d3aff7553f80bbcda88e6a2c1c0cb9f7632",
      "tree": "04574e0ab3879b0ed9360f80c2a9f51b7693765a",
      "parents": [
        "847acf2b9a08fff3b26fe1c0f7c62e7aa91fd572",
        "7ade558ad210c2374c0c9b1c773e012255156c7b"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Fri Nov 17 22:20:57 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 17 22:20:57 2017 +0000"
      },
      "message": "Merge \"Build fontchain_lint using python_binary_host\" am: 7ecac139ea\nam: 7ade558ad2\n\nChange-Id: Ie920005b39a476b281333b12fbed9e586a2ce3e7\n"
    },
    {
      "commit": "7ade558ad210c2374c0c9b1c773e012255156c7b",
      "tree": "f20814d46daaf5a8172ed17b146aca428c1bc1d6",
      "parents": [
        "80bfc216ca9969cab2dbd839f849d83d23be18df",
        "7ecac139eabd690d4bfb5b62e85f8966969c4969"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Fri Nov 17 22:12:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 17 22:12:58 2017 +0000"
      },
      "message": "Merge \"Build fontchain_lint using python_binary_host\"\nam: 7ecac139ea\n\nChange-Id: I4fef971c8fc8837f73644667988ddc3e7f4305ec\n"
    },
    {
      "commit": "80235403d2a80eee1c23dbe856d18194b1b93843",
      "tree": "5014d19013bcaabe27d990e8e2e11dc5e6e4724f",
      "parents": [
        "efe5f129ad2f0c8dbdbadf68a219169e423413cf"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 13 20:42:25 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Nov 17 11:53:15 2017 -0800"
      },
      "message": "statsd: parse the new format of stats log\n\n+ Changed how we construct LogEvent, now it\u0027s based on the context from log_msg\n  without making a copy of the list.\n\n+ All stats logs now have the same event tag, the atom id is the first elem in the log.\n\nTest: statsd_test\nChange-Id: I4419380f2ee1c2b2155d427b9f2adb78883b337f\n"
    },
    {
      "commit": "f7b3a7e908ec612abe33f14c51c7b9693e4d70c5",
      "tree": "e216d7a552798b91807d515b3e6681da6a0f99e8",
      "parents": [
        "ff3a8080f69a95787ce24e2218b8f091a1d38a19",
        "5a217b052d360d998ea809d894ebb164e436e5e4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 17 19:25:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 19:25:28 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix debugging output\""
    },
    {
      "commit": "ff3a8080f69a95787ce24e2218b8f091a1d38a19",
      "tree": "68b5daab26e34e8af96d4d6fb598d2c97ede9753",
      "parents": [
        "719c227c69ecd96be957f2ace5cbbf188dea9c03",
        "a693c4a32ebed4e96dcc1cf6a706e8ebbb004db2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 17 19:24:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 19:24:06 2017 +0000"
      },
      "message": "Merge \"AAPT2: Move all file output to FileOutputStream\""
    },
    {
      "commit": "2db709de30688a5761b45116639bada335aae3b7",
      "tree": "4f9bdfe3880a94ec8ee0af39dd67e67b38d2d002",
      "parents": [
        "413a30812669dd34f73b748a9574308fc6a16d45"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Wed Nov 08 20:48:46 2017 -0800"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Fri Nov 17 09:22:12 2017 -0800"
      },
      "message": "Build fontchain_lint using python_binary_host\n\nTest: out/host/linux-x86/bin/fontchain_lint\nout/target/product/generic/system true external/unicode\nBug: b/27727331\n\nChange-Id: Ib9353d2338c3b939027069f49e3e847c65526581\n"
    },
    {
      "commit": "5a217b052d360d998ea809d894ebb164e436e5e4",
      "tree": "e0f81d930a0967c1e85962b3da4f337086bd3f70",
      "parents": [
        "9352e47db471dcbe659e6396797f09cebd455728"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 16 16:58:02 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 16 16:58:02 2017 -0800"
      },
      "message": "AAPT2: Fix debugging output\n\nTest: manual\nChange-Id: I3a362caf7bd691df399db00c6280e0a208a406da\n"
    },
    {
      "commit": "a693c4a32ebed4e96dcc1cf6a706e8ebbb004db2",
      "tree": "902f4d5abd493ccb8087b941676e2562c8db128b",
      "parents": [
        "60303333dc8ad61e640992cee2b5c601be73faf8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 09 11:29:39 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 16 12:06:17 2017 -0800"
      },
      "message": "AAPT2: Move all file output to FileOutputStream\n\nFileOutputStream is safe to use on Windows, as it opens\nfiles using our compatibility API.\n\nBug: 68262818\nTest: make aapt2_tests\nChange-Id: Ib0b27e93edd609b49b1327db7d9867a002198ebb\n"
    },
    {
      "commit": "5209abad9b72623131cc4619d9eab01b386d7c01",
      "tree": "cad56dfc03776519769c40fc25727ffe9fb101fb",
      "parents": [
        "f8c2bdfe68a33273db364f868c14bc72764bcabb",
        "ca189f4db6e1ee01b477c683a2ba9f4ef82ebf51"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 16 19:09:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 16 19:09:45 2017 +0000"
      },
      "message": "Merge \"Use -Werror in frameworks/base/tools/stats_log_api_gen\""
    },
    {
      "commit": "b1d9bd9c5d28413432cd071aa814ad9482764572",
      "tree": "851770cf7bb98e058afec9a3426a3962d7cc1c8f",
      "parents": [
        "a834309bd5c8ae276ae7b5e3aedffd47bb517b10",
        "0dfa752e67116940f04a988ca4a264f7140dd81f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 15 03:05:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 15 03:05:18 2017 +0000"
      },
      "message": "Merge \"Implement System Properties Section\""
    },
    {
      "commit": "220871a697290529278ed16db508eda8e12f3fc7",
      "tree": "bc13101b63c6fe39a9d92706ecb7ded7f98f5a9c",
      "parents": [
        "802f191b2b84a1b1b82c7f6f3268846084b35dfb",
        "98e12851336b7db16e583f9afac63ecc97465980"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Nov 14 12:31:11 2017 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Nov 14 12:31:11 2017 -0800"
      },
      "message": "Merge commit \u002798e12851336b7db16e583f9afac63ecc97465980\u0027 from\noc-mr1-dev-plus-aosp-without-vendor into stage-aosp-master.\n\nChange-Id: Ia7b8da4a00d215160e4a4fa40f6044208d1297b7\nMerged-In: I19846d2a3ee27aecbae2367a74ee49082eea154d\n"
    },
    {
      "commit": "ae2df01aae2ee7076af875c04e991140f685f733",
      "tree": "1c7d34d21d60444344cb8c1b153863702d9ae029",
      "parents": [
        "0253dd036468246b95161ae6ec1a87c7751d00a3"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Nov 14 09:17:21 2017 -0800"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Nov 14 11:56:05 2017 -0800"
      },
      "message": "Rename \"stats_events\" as \"atom\".\n\nAlso make atom WakelockStateChanged use the \"Type\" enum instead of int32.\n\nTest: Unittests are passing. Statsd is working.\n\nChange-Id: I0909e2d97297f78996a81366d66aae62d5bf5ce1\n"
    },
    {
      "commit": "0dfa752e67116940f04a988ca4a264f7140dd81f",
      "tree": "3aa662e1d9da3143bc0c3a05bf5711d346c58601",
      "parents": [
        "a379f499c8e27d2c18b7089feb18c7f0a44e0433"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Nov 06 17:43:47 2017 -0800"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Nov 14 10:54:24 2017 -0800"
      },
      "message": "Implement System Properties Section\n\nBug: 68774852\nTest: unit tested and on device tests\nChange-Id: I0d4aadf8d4203fe56e35bbfb77e5c532116fd27e\n"
    },
    {
      "commit": "d8b4beaae90dd342b34396f2fe94f88b6cd5dbdd",
      "tree": "d59174241c00213df85d7ad155cdb746cb00edb4",
      "parents": [
        "9bdd372e27e0d46b6a350bb4a21c94fdd3e5db81"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Nov 10 23:50:17 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Tue Nov 14 09:05:27 2017 +0000"
      },
      "message": "AAPT2 - Add ProtoApkSerializer implementation to convert from Binary to Proto.\n\nAlso new flag to choose the conversion direction:\n  --output_format [binary|proto].\n\nTest: Manual\n\nChange-Id: I61d381aa49869b0fd6bd9f017dda0cac5ca998bb\n"
    },
    {
      "commit": "514971a39ca961c9fc748f9fb9a97e34a1067b3f",
      "tree": "833087829e7d7b2a8086c8fe5ac242dcb4827fb4",
      "parents": [
        "8d6eb1fdf857272c4f94a35d172ccf33ba58fd2c",
        "d55bef78a5f2a0fe8068b26b463b161bd0398791"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Mon Nov 13 23:52:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 13 23:52:28 2017 +0000"
      },
      "message": "Merge \"AAPT2 - Convert command to copy all the files.\""
    },
    {
      "commit": "d55bef78a5f2a0fe8068b26b463b161bd0398791",
      "tree": "05a154606f720ac82bf85797faee537d0edc4fde",
      "parents": [
        "a591149cbce49306a6a5e127f077b3551873d490"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Nov 10 22:31:01 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Mon Nov 13 21:07:34 2017 +0000"
      },
      "message": "AAPT2 - Convert command to copy all the files.\n\nTest: Manual\n\nChange-Id: I8705966cb34ff41eb362126a35956720147fae91\n"
    },
    {
      "commit": "53ef795e28dd3e0bc2a9b7a289673591f1f2adaf",
      "tree": "dca1f9c5d9fb98f432d5b5544c45fa2c9c8a2d76",
      "parents": [
        "7246736167b6347ae86e311ff0ecd039a3d8b700",
        "53b2a73c375abcb20c0c8ec404720513555c5365"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 13 20:30:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 13 20:30:58 2017 +0000"
      },
      "message": "Merge \"Add api lint to upload checks\""
    },
    {
      "commit": "3f89bd678334a1cfd24e387a3be6c2c395ff2856",
      "tree": "7d1d81a4f801f86d1e9602d3a56cd96bcc4ee76e",
      "parents": [
        "1c4ab704d14c047775b3e42f87ea4081fa204e37",
        "09ef94e918870a55907b20f35348cc7b77bdc148"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 13 20:02:41 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 13 20:02:41 2017 +0000"
      },
      "message": "Merge \"Change conditional keep rule syntax\""
    },
    {
      "commit": "53b2a73c375abcb20c0c8ec404720513555c5365",
      "tree": "137a22ad3ce569fb8b48c8090202c98d021b6cd7",
      "parents": [
        "ae5eb83a32a2005bd2c872bdf7b0621190ddb062"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Nov 10 15:43:17 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Nov 13 13:25:05 2017 -0500"
      },
      "message": "Add api lint to upload checks\n\nCurrently will never block upload, only considered a warning, but\nwill print out any lint issues discovered.\n\nTest: do an upload\nBug: 69115822\nChange-Id: I69b8e5a3f92ac28ee3c954408e88a1056c33af65\n"
    },
    {
      "commit": "e2f7f79d023f0b3ba2fee374492dde61f525ece6",
      "tree": "8ea7efe3b552f1cb23c2f4c2ef379be6fb02f19b",
      "parents": [
        "9a753af26b2ce27c10ad215aa70cf1bcd44d7915"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Nov 01 17:08:27 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Nov 10 17:34:07 2017 -0800"
      },
      "message": "Implement Cpu Info Section\n\nSupport carriage return in Read class, and add a new way to parse lines\nwhich is not able to split purly by delimiters\n\nBug: 65642861\nTest: unit test and on device test\nChange-Id: Ib82dd4e458bb7d2fa33462b23fbe11b828325916\n"
    },
    {
      "commit": "ca189f4db6e1ee01b477c683a2ba9f4ef82ebf51",
      "tree": "d603b842278ce97f4118b53dde2a9a728688d14e",
      "parents": [
        "efcd7687147b3f59f2f8d599e6b72d75c5c1f2a4"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Nov 10 15:06:53 2017 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Nov 10 15:10:34 2017 -0800"
      },
      "message": "Use -Werror in frameworks/base/tools/stats_log_api_gen\n\n* Remove unused local variables.\n\nBug: 66996870\nTest: build with WITH_TIDY\u003d1\nChange-Id: I24b33facec0bfd73eb5c2a9759b42f9c98ee285f\n"
    },
    {
      "commit": "288536b6bd230ab216b2d19f3a6eff8099cde0cf",
      "tree": "a41eae51327a1fd6097c4e69630b614fceecc246",
      "parents": [
        "c061b4384744c3e7227bfe13a04a0c13c0e5121b",
        "7e8549dd57c28bc797049109e82cda245d33df15"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Nov 10 20:09:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 20:09:47 2017 +0000"
      },
      "message": "Merge \"Refactor Convert command to use a ISerializer interface.\""
    },
    {
      "commit": "09ef94e918870a55907b20f35348cc7b77bdc148",
      "tree": "f1078d6bf7c7d1200c5c0981a16477576d0b6461",
      "parents": [
        "5d8150092ddd0e33849664d9b5f9abd260c3d408"
      ],
      "author": {
        "name": "Adam Koski",
        "email": "adamkoski@google.com",
        "time": "Fri Nov 10 11:15:55 2017 -0800"
      },
      "committer": {
        "name": "Adam Koski",
        "email": "adamkoski@google.com",
        "time": "Fri Nov 10 11:30:56 2017 -0800"
      },
      "message": "Change conditional keep rule syntax\n\nGoogle\u0027s ProGuard fork is migrating to a new syntax that upstream\nProGuard 6.0 will also support.\n\nTest: unit tests\nBug: 69162105\nChange-Id: I3b6d7e82eb99c2e2af6c4d851a4f97ec3e471b55\n"
    },
    {
      "commit": "cc8aa11f6c08ed621776dffc91bbbd6b21c6b6de",
      "tree": "d4489d7d4606485988653bebbd8d8f39ac2b2061",
      "parents": [
        "24f9ac4ecf1d0497d8175ba61b62d7fcfd9036b6",
        "07d8249c4bc1ac50ba1e81d99b39ce87ef4ed62c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 10 17:50:49 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 10 17:50:49 2017 +0000"
      },
      "message": "Merge \"AAPT2: Differentiate between Android and Java package names\" into oc-mr1-dev\nam: 07d8249c4b\n\nChange-Id: I0a3235052cea9041cf6c944f71879d304bce5a56\n"
    },
    {
      "commit": "07d8249c4bc1ac50ba1e81d99b39ce87ef4ed62c",
      "tree": "41ba55f3fe3c94fed1e517d26bc6bfbe50c4e54f",
      "parents": [
        "430ed075960430030270f55fa33fcdf6e0952b5f",
        "81e9ecfc0049883871ba72ecaf0908834e6ae3d5"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 10 17:32:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 17:32:52 2017 +0000"
      },
      "message": "Merge \"AAPT2: Differentiate between Android and Java package names\" into oc-mr1-dev"
    },
    {
      "commit": "6385bbd860b8837da6f307658cb7516790823250",
      "tree": "10299b8684dd65f244b93466404dc8ec425504d0",
      "parents": [
        "222f4a2c81d512a53e27fd012d6c549d9deccf81",
        "751e69b38b19398c221e9ef364e21d812763b3e2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 10 10:13:26 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 10 10:13:26 2017 +0000"
      },
      "message": "Merge \"AAPT2: Workaround for feature splits without namespacing\" into oc-mr1-dev\nam: 751e69b38b\n\nChange-Id: I8791a0cbfb32c25a0c73552c47509cce1d5f06e2\n"
    },
    {
      "commit": "414e48a54143d78498dff381518c81e0c64ad56e",
      "tree": "e3e341036686ff730c146af7bf8062f155e26ffd",
      "parents": [
        "7cd3fa6fa2d0862e1ff2b8117a1d48238ad0a579"
      ],
      "author": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Thu Nov 09 21:06:52 2017 -0800"
      },
      "committer": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Thu Nov 09 21:47:20 2017 -0800"
      },
      "message": "AAPT2: whitelist alphanums instead of blacklisting hyphens in package names.\n\nBCP 47 uses plus signs for name mangling, and future qualifiers may\nstart using other reserved characters as well, so we might as well\nfutureproof the sanitizer.\n\nChange-Id: I1be7ee4234f8e30bb0ea832372b4dc932d30550c\nFixes: 69134786\nTest: UtilTest.SplitNamesAreSanitized\n"
    },
    {
      "commit": "7e8549dd57c28bc797049109e82cda245d33df15",
      "tree": "29f7f4c0bce99f0514c25564c0db3a729a705c9a",
      "parents": [
        "3b382900a81a10498fc35e927086982bc8e18437"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Nov 10 01:22:12 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Nov 10 05:04:48 2017 +0000"
      },
      "message": "Refactor Convert command to use a ISerializer interface.\n\nThis will allow for other implementations.\n\nTest: Manual\n\nChange-Id: Ibf9cf8f5ac2b5b8e51a5fb684b434a0f59a3cbee\n"
    },
    {
      "commit": "c8e3c7c816a4d9de42579df11d9302e117070ea1",
      "tree": "b6e4fd42be8b5a0cd6a9a43294906f37f1d6be10",
      "parents": [
        "600c006cde00dcd14bc6ee85dc576148ad5bd5c9",
        "490595a5fc1c3618dbbc2da5d421d10c025fabac"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 10 01:27:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 01:27:34 2017 +0000"
      },
      "message": "Merge \"AAPT2: Workaround for feature splits without namespacing\""
    },
    {
      "commit": "1210e8c81bc3fafd49a18dee0ca26ae63d713c71",
      "tree": "85a6e65280f1b217641df617fe5fbd1f3e48cfbc",
      "parents": [
        "97ff9f9d27277b4d94eef0caf1afaae691e0ba6d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 07 17:08:07 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 09 23:00:56 2017 +0000"
      },
      "message": "AAPT2: Workaround for feature splits without namespacing\n\nAndroid Instant Apps in its current iteration does not use namespaces,\nbut due to limitations on the Android resource runtime, needs to make\nit look like it does.\n\nThis is due to a bug that treats any package ID that\u0027s not 0x01 or 0x7F\nas a shared library. Shared libraries require unique package names.\n\nAs a workaround, and since Android Instant Apps can not have a feature\ndepend on another feature, we can alter the resource package name of a\nfeature split just before writing it out to disk. This avoids using a\nunique package name while linking, thereby avoiding namespace issues.\n\nBug: 68820737\nTest: manual\nMerged-In: Ic553ed42656436bbb949393d0248ee7bb9d37860\nChange-Id: Ic553ed42656436bbb949393d0248ee7bb9d37860\n"
    },
    {
      "commit": "490595a5fc1c3618dbbc2da5d421d10c025fabac",
      "tree": "95b9f4a854da15241e2acc4b379693a9320c63f5",
      "parents": [
        "2dd3953ae00068a71da9f0a0d4e2fb9d8517424c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 07 17:08:07 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 09 14:57:49 2017 -0800"
      },
      "message": "AAPT2: Workaround for feature splits without namespacing\n\nAndroid Instant Apps in its current iteration does not use namespaces,\nbut due to limitations on the Android resource runtime, needs to make\nit look like it does.\n\nThis is due to a bug that treats any package ID that\u0027s not 0x01 or 0x7F\nas a shared library. Shared libraries require unique package names.\n\nAs a workaround, and since Android Instant Apps can not have a feature\ndepend on another feature, we can alter the resource package name of a\nfeature split just before writing it out to disk. This avoids using a\nunique package name while linking, thereby avoiding namespace issues.\n\nBug: 68820737\nTest: manual\nChange-Id: Ic553ed42656436bbb949393d0248ee7bb9d37860\n"
    },
    {
      "commit": "81e9ecfc0049883871ba72ecaf0908834e6ae3d5",
      "tree": "7c30097ed6ffce65efd3dc09e82deca3a335b198",
      "parents": [
        "97ff9f9d27277b4d94eef0caf1afaae691e0ba6d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 06 10:44:46 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 09 01:49:58 2017 +0000"
      },
      "message": "AAPT2: Differentiate between Android and Java package names\n\nAndroid package names are more strict (ASCII only) than Java package names.\nAlso fixed an issue where trailing underscores were disallowed in Android\npackage names.\n\nBug: 68468089\nTest: make aapt2_tests\nMerged-In: I1052e9e82b6617db6065ce448d9bf7972bb68d59\nChange-Id: I1052e9e82b6617db6065ce448d9bf7972bb68d59\n"
    },
    {
      "commit": "903ed1b6f9947ac919e9d110d4b82d25a3ff0de0",
      "tree": "157c6ed9b61fad7612d5b47b8437fc33715cae5c",
      "parents": [
        "6bd2b53f46b4ab786ab1f7b95fe836debdf446df",
        "96ea08f1e737e0d19e274e9a29f71c387d81b09a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 08 21:08:26 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 08 21:08:26 2017 +0000"
      },
      "message": "Merge \"AAPT2: Differentiate between Android and Java package names\""
    },
    {
      "commit": "96ea08f1e737e0d19e274e9a29f71c387d81b09a",
      "tree": "1e8f202dfd7f1dd1e46af2cebb1afb548fbd6890",
      "parents": [
        "b54be8de65b09c85992b30dbb1d52032f0498b6d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 06 10:44:46 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 07 11:31:17 2017 -0800"
      },
      "message": "AAPT2: Differentiate between Android and Java package names\n\nAndroid package names are more strict (ASCII only) than Java package names.\nAlso fixed an issue where trailing underscores were disallowed in Android\npackage names.\n\nBug: 68468089\nTest: make aapt2_tests\nChange-Id: I1052e9e82b6617db6065ce448d9bf7972bb68d59\n"
    },
    {
      "commit": "93190b79d11d874199cfe7258526a48cfc8399fc",
      "tree": "3a7ae2b44c7f9693d54cdb0849e21338398de3d3",
      "parents": [
        "b54be8de65b09c85992b30dbb1d52032f0498b6d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 03 15:20:17 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 07 11:21:10 2017 -0800"
      },
      "message": "AAPT2: Better debugging output\n\nTest: make aapt2_tests\nChange-Id: I7778b773201381538dc1f2e376abee4eb33e44c0\n"
    },
    {
      "commit": "4ee829a707e15aca85793ef65d588be51ac58d40",
      "tree": "7515318e3c0af975cf87a3382b98084de8c978a7",
      "parents": [
        "c7b5f787654a604fa43b35c2ad0e0c3fffa4eaa7",
        "8780eb6e4918ae24fb1ae74d631042c32e41dc3d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 07 19:05:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 07 19:05:22 2017 +0000"
      },
      "message": "Merge \"AAPT2: Add convert command\""
    },
    {
      "commit": "2475c68edf36431aab487c8f188f2549dab8ce7a",
      "tree": "0a0e6775c4c884899854e2eec6f04ab360566aef",
      "parents": [
        "0b1b62d27f7a96af7eca739cb4e08e7caf8b6b3c",
        "3a725dc11f54cb68745ebdf3aa20908c58dc94f2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 03 22:10:35 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 22:10:35 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix GetFileType for unicode and long paths on Windows\""
    },
    {
      "commit": "3a725dc11f54cb68745ebdf3aa20908c58dc94f2",
      "tree": "daa2299531d22d1a5b26ab534fff54a2524ce099",
      "parents": [
        "d46f87a9e2b444b6f9999d7ec86d347e2fe1b596"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 02 16:14:59 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 03 11:19:36 2017 -0700"
      },
      "message": "AAPT2: Fix GetFileType for unicode and long paths on Windows\n\nBug: 68262818\nTest: manual\nChange-Id: I4f02e544e45865984ff4e021a7d1e83f8baf24c3\n"
    },
    {
      "commit": "a544f25b1aa4f89389496decfdbacd11a0567d39",
      "tree": "bd0597b579da3c8a7f10b32cbebb1e2003156a8f",
      "parents": [
        "4c7db0543e062a5fb98c2e104379554a52fd7342",
        "ed37f4842ad838792b16bf19768ed9b2519b0194"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 03 11:13:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 11:13:33 2017 +0000"
      },
      "message": "Merge \"AAPT2: Better error messages for ManifestFixer\""
    },
    {
      "commit": "e20e09d184309ae442e8b1e63048f1e9126c8ca9",
      "tree": "04de33413d9abdce7a2c03e88cf88d07c3f0c67f",
      "parents": [
        "b7eac6f0a5a544e0027bef08c967025faf2711c2",
        "04465e7f252eb1531c9387bbb4bc5170e685087d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 03 01:18:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 01:18:16 2017 +0000"
      },
      "message": "Merge \"AAPT2: Introduce command to run unit tests\""
    },
    {
      "commit": "181799bc53c45282ffa50669430a5cb41f5c194d",
      "tree": "65018b2a6bffde3a249dd8c797a6861e6d782dd3",
      "parents": [
        "bd1bb1d9067ec32b3fd0914e7eb1ccd629ef25dc",
        "178e67835a954511a6567064f3081ecd7796f737"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 02 23:28:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 02 23:28:32 2017 +0000"
      },
      "message": "Merge \"AAPT2: Update tests to reflect new development API \u0027P\u0027\""
    },
    {
      "commit": "04465e7f252eb1531c9387bbb4bc5170e685087d",
      "tree": "cc28831dc1b4ed80f4a30df8fd2d09d26f226599",
      "parents": [
        "178e67835a954511a6567064f3081ecd7796f737"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 02 15:23:36 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 02 15:33:26 2017 -0700"
      },
      "message": "AAPT2: Introduce command to run unit tests\n\nThis command will execute the aapt2_tests with a parameter\nto emit XML test results into the out/dist directory.\n\nTest: manual\nChange-Id: I10cf119bb47b7698ddd91b1adf7323e51d169970\n"
    },
    {
      "commit": "178e67835a954511a6567064f3081ecd7796f737",
      "tree": "7c8d8ddd2161377d0aeab138001baefdbcacb5ec",
      "parents": [
        "4f340a4f8b50b29b562407e39563ee78a90bea3f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 02 14:12:38 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 02 14:12:38 2017 -0700"
      },
      "message": "AAPT2: Update tests to reflect new development API \u0027P\u0027\n\nBug: 68346913\nTest: make aapt2_tests\nChange-Id: Ic1435c529b6c80206d2326ac0da076777dffcc9a\n"
    },
    {
      "commit": "ed37f4842ad838792b16bf19768ed9b2519b0194",
      "tree": "8356e6a292ac53a5d7aebdab88576d771b4bbf9e",
      "parents": [
        "4f340a4f8b50b29b562407e39563ee78a90bea3f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 02 12:07:08 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 02 12:07:55 2017 -0700"
      },
      "message": "AAPT2: Better error messages for ManifestFixer\n\nAAPT2 will now print the XML hierarchy where it found an unexpected\nelement.\n\nTest: make aapt2_tests\nChange-Id: Iac7918b2f344fab874f0a3e7aa9c6936ecde8913\n"
    },
    {
      "commit": "9cc9ad632b25e7ebbb680654dcc4561b02f088cb",
      "tree": "46ffc3c1982a143915035dadab5b5775f9a9d485",
      "parents": [
        "0d16870b691611b983c49f68fb293b7082f0b5d8",
        "be6de3017b2045926424dcbc8b65ce63376963a2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 02 18:19:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 02 18:19:37 2017 +0000"
      },
      "message": "Merge \"Enable Window Dumpsys Section\""
    },
    {
      "commit": "be6de3017b2045926424dcbc8b65ce63376963a2",
      "tree": "c4d89ef04122743902ff5b64cc7825cb466c7584",
      "parents": [
        "6b0ea8ae9334f2aab85fe470690133844dc0e8ee"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Oct 24 12:30:24 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Nov 01 18:24:57 2017 -0700"
      },
      "message": "Enable Window Dumpsys Section\n\nProtobuf defines classes, which can have self recursive message\ndefinitions and cause a bug in generating privacy flags.\nSolve the problem here. The details is in incident_section_gen/main.cpp.\nThe logic is a bit complicated to address more than one level of self\nrecursion proto message definition.\n\nAlso solve a bug when PrivacyBuffer strips fields.\nModify PRIVACY_POLICY_LIST to be type Privacy** in order to allow\ninitialization by a method.\n\nBug: 68162512\nTest: unit tested and on device tests\nChange-Id: I1d0b79f6813e5fd66c4cf5823d0fa17efc57bb1d\n"
    },
    {
      "commit": "8780eb6e4918ae24fb1ae74d631042c32e41dc3d",
      "tree": "938e18951a562fcd043ac779c7e758444b4bf0a8",
      "parents": [
        "4f340a4f8b50b29b562407e39563ee78a90bea3f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 31 17:44:39 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 01 10:58:28 2017 -0700"
      },
      "message": "AAPT2: Add convert command\n\nThis command allows a developer to convert their proto APK\n(generated from the link phase using --proto-format) into\na binary APK suitable for use on device.\n\n  aapt2 convert -o output.apk input.apk\n\nTest: manual + make aapt2_tests\nChange-Id: I10a7c33bb4b57006d01fe00a8bf92f78e04e7e50\n"
    },
    {
      "commit": "f9ed04b3d938b06329fcd14d4f2b461000d028da",
      "tree": "2a660ca1ce48c4e9deaea14524393a63ba98d1c1",
      "parents": [
        "f8a9169949c589755d300530f7b2390e687a9f8b"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Oct 20 16:17:58 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Nov 01 17:49:42 2017 +0000"
      },
      "message": "Remove the extra mapping of field types in ProtoOutputStream\n\nIt is very unlikely the protobuf changes the value in descriptor.h,\nand if defines an extra mapping, there are several places to maintain:\n1. java-stream,\n2. cpp-stream,\n3. ProtoOutputStream.java\n4. ProtoOutputStream.cpp\n5. Privacy.h (GetFieldId)\n6. StatsLog to generate field id (type \u003c\u003c 32 + field number)\n\nTherefore use the current value in descriptor.h seems reasonable unless\nthey change that, very very unlikely, they probably will just add new\ntypes, and deprect the existing ones like Group.\n\nTest: test output of dumpsys proto\nChange-Id: I6e150ab427851dd3b5dd55d3b273deeed7a0963c\n"
    },
    {
      "commit": "6b0ea8ae9334f2aab85fe470690133844dc0e8ee",
      "tree": "10b9ea22c99c8f6a97b64f0614fcfc310056ca71",
      "parents": [
        "acff9042978d4ca8a63e9cf76bf77905ec87f156",
        "04625ad4886a478bf74bbfc13937c10fa63eb272"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 01 17:31:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 01 17:31:06 2017 +0000"
      },
      "message": "Merge \"Refactor incident_helper to use protoutil and cppstream plugin.\""
    },
    {
      "commit": "114616b27dd4f3da313e933a51980e68f5c5cce7",
      "tree": "11897358ca90d547a6f32872e9cfedc764545b1a",
      "parents": [
        "42884cf71da00b54ce86a6f2ca5f3eb61e2e7e09",
        "c8f5fc284cc635f7056307e55121e439b21ac83a"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Wed Nov 01 15:49:39 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 01 15:49:39 2017 +0000"
      },
      "message": "AAPT2: Allow for nested inline xmls\nam: c8f5fc284c\n\nChange-Id: Ie80ba078d893d1b894d289645dae84fa2af58c40\n"
    },
    {
      "commit": "38a3f5e24527927efe048ab4daea33dcad7bb39a",
      "tree": "a01243b224b3850df36b7f56e3626916860d693b",
      "parents": [
        "ae74e89ec5bf3f9260da27d6465d5c3a8394d7d3",
        "9478f3515b2e0ccc8320b1911e6f911e3a3ffde0"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Wed Nov 01 02:44:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 01 02:44:58 2017 +0000"
      },
      "message": "Merge \"Generate constants for enum values.\""
    },
    {
      "commit": "04625ad4886a478bf74bbfc13937c10fa63eb272",
      "tree": "ba39988adb170b2e6e744ab304de7f8846a4d444",
      "parents": [
        "eb7d335641ec1b9c91c1609a94cb1cbdba1d3987"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Oct 17 18:29:33 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Oct 31 16:54:38 2017 -0700"
      },
      "message": "Refactor incident_helper to use protoutil and cppstream plugin.\n\n1. Split the parsers to its own file to prevent all the parsers in one\ngaint file.\n\n2. Completely get rid of protobuf-cpp-full in incident_helper, use\nProtoOutputStream and cppstream instead, the incident_helper binary is\nreduced from ~500K to ~113K.\n\n3. Write data to protobuf even its values are zero/default, the reason\nis for example we have a repeated int32 orders \u003d 1; and people\nexplicitly append 0 so the total repeated field has 10 values, if zero\nis not written to serialized data, this repeated field will only have 9\nvalues which is not what we want at first place. This also aligns with\nthe default protobuf serialization behavior in incident_helper_test.\n\n4. Use Android.bp for protoutil lib since it is not able to depend on\nlibs compiled by .mk file, it works the other way.\n\n5. Add a new custom message option for streaming_proto, if specified,\nthe cppstream will create extra metadata to get field ids by field name.\nA Table class is created in incident_helper to use it.\n\nBug: 67860303\nTest: unit tested as well as on device test\nChange-Id: I8e136fd15f343a4a623d20910ec64b622b478a3e\n"
    },
    {
      "commit": "c8f5fc284cc635f7056307e55121e439b21ac83a",
      "tree": "5076d7cc590aa4cb8d7bada63302642d49acc421",
      "parents": [
        "49767aa7f70462cf4b6a1bcdf3832eb6e74f9d65"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Mon Oct 30 19:06:23 2017 -0700"
      },
      "committer": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Tue Oct 31 23:13:03 2017 +0000"
      },
      "message": "AAPT2: Allow for nested inline xmls\n\nAdd recursion to InlineXmlFormatParser::Consume for handling nested\naapt:attr\n\nChange-Id: Iabf98945b4f5ef22a3b8fdc4ca2bac092a377629\nFixes: 64385167\nTest: make aapt2_tests\n(cherry picked from commit 7b6b02bd13aea90b938c3ab3b1eaa3fb5043f931)\n"
    },
    {
      "commit": "9478f3515b2e0ccc8320b1911e6f911e3a3ffde0",
      "tree": "d6f3b618e3854b1037852e8a6d56970b495a6822",
      "parents": [
        "941dcba6e310e0bafcc1459422e7db01c5b70bb0"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Mon Oct 30 21:20:20 2017 -0700"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Oct 31 11:23:09 2017 -0700"
      },
      "message": "Generate constants for enum values.\n\nTest: Builds successfully, tests pass and statsd works (it seems).\n\nThis will allow us to use those constants instead of literals.\nThe generated code only augmentes the java constant file.\nIf needed, the same can be done for the C++ file.\nSome of the constant names are very long, but this is due to enum value names that are unnecessarily redundant with the enum names, i.e.\nenum ENUM_NAME {\n  ENUM_NAME_UNKNOWN \u003d 0;\n  ENUM_NAME_VALUE1 \u003d 1;\n  ENUM_NAME_VALUE2 \u003d 2;\n  ...\n}\nwhich can be fixed by avoiding the \u0027ENUM_NAME_\u0027 part in the value names above.\nSo, when possible, we should use shorter value names in stats_events.proto.\n\nChange-Id: I1ad19b86e28d0df0f8c15d4c995d101423cff4c2\n"
    },
    {
      "commit": "7b6b02bd13aea90b938c3ab3b1eaa3fb5043f931",
      "tree": "4bb3d2bd08947ef3ff84b084564a8073657ac29a",
      "parents": [
        "b235036e0a57b984503f3f74f5d772f141109f66"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Mon Oct 30 19:06:23 2017 -0700"
      },
      "committer": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Tue Oct 31 11:02:48 2017 -0700"
      },
      "message": "AAPT2: Allow for nested inline xmls\n\nAdd recursion to InlineXmlFormatParser::Consume for handling nested\naapt:attr\n\nChange-Id: Iabf98945b4f5ef22a3b8fdc4ca2bac092a377629\nFixes: 64385167\nTest: make aapt2_tests\n"
    },
    {
      "commit": "65d74c771f9f2fe1c389c12ab045c4c98788dc7b",
      "tree": "3a48227aec13ad4f97a82efdf67c02e12a4d0aab",
      "parents": [
        "c98b189f434414b7e3e54058a56dd44d7fc38ad3",
        "dc21dea9b8b1157a4a9347b68301da4307c51168"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 27 20:44:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 27 20:44:48 2017 +0000"
      },
      "message": "Merge \"AAPT2: Produce Conditional Proguard Keep Rules\""
    },
    {
      "commit": "461c80573b0ef0447f8757f1c32ae9e9be85c9b8",
      "tree": "8b582c8ce33280f1e1e0457b2bdce80e77b7a6f1",
      "parents": [
        "4f340a4f8b50b29b562407e39563ee78a90bea3f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 26 17:18:19 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 26 17:18:19 2017 -0700"
      },
      "message": "AAPT2: Fix issue where generated XML would be tagged with UNKNOWN type\n\nCompiledFiles with UNKNOWN type are copied through, leading to protobuf\noutputs in the final APK.\n\nTest: make aapt2_tests\nChange-Id: Ia0c464caa3951ff27436d1d50c2a8555bc89302b\n"
    },
    {
      "commit": "2db5d3d3a816e84532cb2a091e2c7ecc233faa54",
      "tree": "30124bb5cd0f34b86cf64ad499307de055388d2e",
      "parents": [
        "0d53970f3a1e1283a51f2e14d48701a8da1cecb0",
        "2461194985fac8b2933e4bd3e75f4006341aecf1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Oct 25 05:57:34 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 25 05:57:34 2017 +0000"
      },
      "message": "Merge changes from topic \"keystorebp\" am: a12eab69d1 am: 315bbfc213\nam: 2461194985\n\nChange-Id: Ibb0723012dd3a2e1a5b12810acd77c0a24292208\n"
    },
    {
      "commit": "2461194985fac8b2933e4bd3e75f4006341aecf1",
      "tree": "357176f155712254ee3f9165e3434cd8180031a4",
      "parents": [
        "b5154d71b2689e6d47177b6a6a53533388d58b12",
        "315bbfc21316f24925c64079ee34b24063929a07"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Oct 25 05:39:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 25 05:39:06 2017 +0000"
      },
      "message": "Merge changes from topic \"keystorebp\" am: a12eab69d1\nam: 315bbfc213\n\nChange-Id: I5ac8aa1079a4fdb23a8745e9998d947c85c98e7f\n"
    },
    {
      "commit": "ec4dbd4d401b1c9a3b0a9ca24cfa98e9800ccb95",
      "tree": "c41e524f1a9654546ad061dada4075e3c1556181",
      "parents": [
        "d303f80780be4eedc0c1b6d12a7de7a35481d4ca",
        "d476e2902f4c96578b59a7c7d2853a1acc2b3973"
      ],
      "author": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Tue Oct 24 23:27:27 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 23:27:27 2017 +0000"
      },
      "message": "Merge \"AAPT: treat \"-I\" with lower precedence than main APK for dumping.\" into oc-mr1-dev\nam: d476e2902f\n\nChange-Id: I3ee9ce17439f2a4378c890b954c57a7049fbe036\n"
    },
    {
      "commit": "d476e2902f4c96578b59a7c7d2853a1acc2b3973",
      "tree": "ed13d9492a44a9093364901763d8a7458270ac89",
      "parents": [
        "81831f89ce65ee275652f95322cc167f54da7c85",
        "94251fac62b12f030c404132a395fdef73e7ab29"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 24 23:17:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 24 23:17:34 2017 +0000"
      },
      "message": "Merge \"AAPT: treat \"-I\" with lower precedence than main APK for dumping.\" into oc-mr1-dev"
    },
    {
      "commit": "a218b561e82a1df82987ecc672bb559bc056766f",
      "tree": "4df7fdd3bdc2506a4e30c7fc6016096d0f046e24",
      "parents": [
        "01478ec1839e89e72c7367f678171a9afa53d5db"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 20 13:00:58 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 24 16:09:01 2017 -0700"
      },
      "message": "Convert lockregioncodeinjection to Android.bp\n\nSee build/soong/README.md for more information\n\nTest: m checkbuild\nChange-Id: I78e91a70e786df8e6722c6ec3fe762371e8f475a\n"
    },
    {
      "commit": "fa1d67a6f88fcbfdb3d91e59a2ceac1f9003cda6",
      "tree": "c87c3554cfac0ca44484cdf78f81e16820698789",
      "parents": [
        "b08aa082a400274606093a4b163560cf31914b1c",
        "81831f89ce65ee275652f95322cc167f54da7c85"
      ],
      "author": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Tue Oct 24 16:36:28 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 16:36:28 2017 +0000"
      },
      "message": "Merge \"AAPT leave \u003cgradient\u003e alone for VDC\" into oc-mr1-dev\nam: 81831f89ce\n\nChange-Id: I0ee4801c31a63b8e617adb053a773456814b65ff\n"
    },
    {
      "commit": "81831f89ce65ee275652f95322cc167f54da7c85",
      "tree": "d4e1c6aaca7b0e8da4cd6baf1b860fb6ec6030fc",
      "parents": [
        "72b3d46794cf1630f5938bd6c50568d96037abe9",
        "f49cce3aa6f625cfc7288886c044992e1580dbbc"
      ],
      "author": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Tue Oct 24 16:22:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 24 16:22:49 2017 +0000"
      },
      "message": "Merge \"AAPT leave \u003cgradient\u003e alone for VDC\" into oc-mr1-dev"
    },
    {
      "commit": "b08aa082a400274606093a4b163560cf31914b1c",
      "tree": "7e103839fd2146c92f118c1b443b4408bbf99fb2",
      "parents": [
        "bbb2eb3f59e05bdb3d5a01afd8c44bcf41aacb5b",
        "72b3d46794cf1630f5938bd6c50568d96037abe9"
      ],
      "author": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Tue Oct 24 11:31:04 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 11:31:04 2017 +0000"
      },
      "message": "Merge \"AAPT2: Sanitize resource qualifiers before using in split names.\" into oc-mr1-dev\nam: 72b3d46794\n\nChange-Id: I1f87fce18c665433ad916ac47cd3f78ae007c776\n"
    },
    {
      "commit": "72b3d46794cf1630f5938bd6c50568d96037abe9",
      "tree": "1d69e62e629a3b057ca3420414d2f4c8ee88d246",
      "parents": [
        "6575d483cc12747e8f6790e369ed59c15e3ff91a",
        "50bae79111afcdb8d36d73cac15155cb61df2dc0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 24 11:16:03 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 24 11:16:03 2017 +0000"
      },
      "message": "Merge \"AAPT2: Sanitize resource qualifiers before using in split names.\" into oc-mr1-dev"
    },
    {
      "commit": "3d2ca39dcadde4fcd209fd66bf169583541f5a31",
      "tree": "0885077da6cdd4a59f6e61b6df902cf5228ed81f",
      "parents": [
        "439b62c182f603b3b107b4153cd51e3e430be4f1",
        "bbb2eb3f59e05bdb3d5a01afd8c44bcf41aacb5b"
      ],
      "author": {
        "name": "Benoit Lamarche",
        "email": "benoitlamarche@google.com",
        "time": "Tue Oct 24 10:31:11 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 10:31:11 2017 +0000"
      },
      "message": "Merge \"Use ASM6 Opcodes everywhere in locked_region_code_injection\" am: 5aa4dafa58 am: 4927808d39\nam: bbb2eb3f59\n\nChange-Id: Ic33dffeeac6445773de09ec9c1cb4bc3b79ae5ea\n"
    },
    {
      "commit": "bbb2eb3f59e05bdb3d5a01afd8c44bcf41aacb5b",
      "tree": "c8ff043d55d838c20adb799f0ff367cf0e08e349",
      "parents": [
        "46080df91155ead6635e61a2cf95772013643cc2",
        "4927808d39d3dd78a36cde8a9134546ba8316728"
      ],
      "author": {
        "name": "Benoit Lamarche",
        "email": "benoitlamarche@google.com",
        "time": "Tue Oct 24 10:13:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 10:13:58 2017 +0000"
      },
      "message": "Merge \"Use ASM6 Opcodes everywhere in locked_region_code_injection\" am: 5aa4dafa58\nam: 4927808d39\n\nChange-Id: I718efd7536331508531bb7c30dfab3638ef60d0e\n"
    },
    {
      "commit": "4927808d39d3dd78a36cde8a9134546ba8316728",
      "tree": "350e481d868202567d16f30702fc7e8691548b5b",
      "parents": [
        "e74db7c7e26d93827acf7841f530babffdd5d7de",
        "5aa4dafa5847f6e7866ad81f73a69217fa1449b2"
      ],
      "author": {
        "name": "Benoit Lamarche",
        "email": "benoitlamarche@google.com",
        "time": "Tue Oct 24 08:54:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 08:54:09 2017 +0000"
      },
      "message": "Merge \"Use ASM6 Opcodes everywhere in locked_region_code_injection\"\nam: 5aa4dafa58\n\nChange-Id: Ic8f892399cdfa746a2fab4a841469f41f0fe98f5\n"
    },
    {
      "commit": "a7eb610b15c7a2eea8b5bb2015d749ede33a1857",
      "tree": "51fb816199988d4579255116a9ac47aa9092da22",
      "parents": [
        "d5d697b023a02a81de8add89556596d4b3587034"
      ],
      "author": {
        "name": "Benoit Lamarche",
        "email": "benoitlamarche@google.com",
        "time": "Mon Oct 23 11:21:01 2017 +0200"
      },
      "committer": {
        "name": "Benoit Lamarche",
        "email": "benoitlamarche@google.com",
        "time": "Mon Oct 23 11:39:03 2017 +0200"
      },
      "message": "Use ASM6 Opcodes everywhere in locked_region_code_injection\n\nAnd use the same constant everywhere.\n\nTest: treehugger\nBug: 67676752\nChange-Id: I5735aba76266118471677f962fab50dbb0be187b\n"
    },
    {
      "commit": "9b874662672b4fccdcdb82c963bcc0c7028806f8",
      "tree": "e2189a58b4bbf8f31771a312305ea28856e617a6",
      "parents": [
        "de7c2e88ad43eae7c9060ec21178e50aebb318f2",
        "710fac6ab7f146ea074061d6bdce68e53a3845ca"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sun Oct 22 02:28:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Oct 22 02:28:50 2017 +0000"
      },
      "message": "Merge \"Use final release of ASM 6.0\" am: d5d697b023 am: a74b04cd70 am: baa428031a\nam: 710fac6ab7\n\nChange-Id: Ic726773fd17365d4821b63bcfc6d3d36330122a1\n"
    },
    {
      "commit": "710fac6ab7f146ea074061d6bdce68e53a3845ca",
      "tree": "0420b99e62f4c8dbb0b6e063a461a9b8c77c0f3e",
      "parents": [
        "465554861752f7742d783c53e65b4427af9f0e82",
        "baa428031abdf83d51244e14ad0c7cb36001ba31"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sun Oct 22 02:16:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Oct 22 02:16:44 2017 +0000"
      },
      "message": "Merge \"Use final release of ASM 6.0\" am: d5d697b023 am: a74b04cd70\nam: baa428031a\n\nChange-Id: I439fa4aa9f2fb22f372a6a76ab07676c0c51e429\n"
    },
    {
      "commit": "a74b04cd70218040b831cff6d8ed3410d0a8676b",
      "tree": "e32dac7d4a077ded85b6fa9defdf4cff467f755f",
      "parents": [
        "d870cd33f5af81e299b574ebda7c4b4dab59bc78",
        "d5d697b023a02a81de8add89556596d4b3587034"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sun Oct 22 01:46:39 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Oct 22 01:46:39 2017 +0000"
      },
      "message": "Merge \"Use final release of ASM 6.0\"\nam: d5d697b023\n\nChange-Id: I94524349eaa38c020d932f301fe36f99952862bc\n"
    },
    {
      "commit": "d5d697b023a02a81de8add89556596d4b3587034",
      "tree": "d24b80621ce74c990907733777f62965cfd146c3",
      "parents": [
        "5964b55654ecc7b6e597b05fb9f309ba8e92b144",
        "8aa184a395ba4d7084060c028567e49ae3b349e4"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sun Oct 22 01:37:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Oct 22 01:37:11 2017 +0000"
      },
      "message": "Merge \"Use final release of ASM 6.0\""
    },
    {
      "commit": "dc21dea9b8b1157a4a9347b68301da4307c51168",
      "tree": "e5a861fbec159776bebc37296753ca21c7916593",
      "parents": [
        "0d769d80a9a871cd4f0e5dc24e63c86d97fb3ad8"
      ],
      "author": {
        "name": "Adam Koski",
        "email": "adamkoski@google.com",
        "time": "Fri Jul 21 10:55:27 2017 -0700"
      },
      "committer": {
        "name": "Adam Koski",
        "email": "adamkoski@google.com",
        "time": "Fri Oct 20 16:25:18 2017 -0700"
      },
      "message": "AAPT2: Produce Conditional Proguard Keep Rules\n\nAdd the option to produce keep rules that conditional keep based on\nusage of R identifiers. This allows Proguard to potentially shrink more\ncode if resources are not used.\n\nCurrently only produces conditional rules for classes referenced in\nlayout resources because they are the most common and has the easiest\ntransitive usage chain to analyze.\n\nBug: 63628451\nTest: make aapt2_tests and manual testing\nChange-Id: I6c1af7affd64af40c80e004d8506a9463444b2c3\n"
    },
    {
      "commit": "8aa184a395ba4d7084060c028567e49ae3b349e4",
      "tree": "48fff7ed8131e9f9b1512564b62cd22b7395d53b",
      "parents": [
        "e994b4b584a23be4574b725f6b5e654535f8e1d0"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 20 12:57:56 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 20 12:57:56 2017 -0700"
      },
      "message": "Use final release of ASM 6.0\n\nTest: m checkbuild\nChange-Id: I8b39c7887763a1a5efce2622421906f9b2e1994a\n"
    },
    {
      "commit": "7fd74b5ad1df53b92f08a9aa2f3d445bf7b786fe",
      "tree": "03bbf941ec0fead1ad64ba2acd06113486a612c1",
      "parents": [
        "4bf7416a062af25574f548846e60e88df332cc55",
        "e59f0d80ec19249f72c07ae191ad673d040443e3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 20 19:15:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 20 19:15:54 2017 +0000"
      },
      "message": "Merge changes I1a4b3ce5,Id7216e5b\n\n* changes:\n  AAPT2: Enable building proto artifacts\n  AAPT2: Define and Implement AAPT Container Format\n"
    },
    {
      "commit": "a2adda41dac8342a1eb319eee2340ad2c30088b7",
      "tree": "79a521875a0553739493375b6d673fd4a6cd760c",
      "parents": [
        "eaf4d18bdf230b4a446d876178841aebdfd1a84e"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Oct 19 22:48:53 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Oct 19 22:50:51 2017 -0700"
      },
      "message": "Add link_type for temp_layoutlib\n\nSo that it can be used by java libraries when we turn on dep\nverification for host java libraries.\n\nTest: m nothing\nChange-Id: Iaa2acfb585db0a67b449e866883f71691395971e\nMerged-In: I69a1a826d0bac8ede1f9a337c9c1d930bbcd04f3\n"
    },
    {
      "commit": "c2e67f4b5ca13a847689a6b36fc40efa9c0c5301",
      "tree": "d67e689da858981c284971ae27036a49073a586b",
      "parents": [
        "0f56a1014a794e06caf38b1d84a7bd6931e50853",
        "5fae742a1e5ff0dcfa870b4521a9db796d9db4f9"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 19 22:23:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 19 22:23:58 2017 +0000"
      },
      "message": "Merge \"AAPT2: Ensure strings are sorted by configuration\" into oc-mr1-dev am: 8da74b1bfd\nam: 5fae742a1e\n\nChange-Id: I7dfb1a020b1c3da9e0af5a7096fda0775751eab3\n"
    },
    {
      "commit": "5fae742a1e5ff0dcfa870b4521a9db796d9db4f9",
      "tree": "bcf8bf8daa9104dac52ab956e837820327c18239",
      "parents": [
        "2cd25cfceea22ba221d137d8f3e8494778a4c8f6",
        "8da74b1bfdf4568788223e91c161591235b4ad42"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 19 21:43:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 19 21:43:31 2017 +0000"
      },
      "message": "Merge \"AAPT2: Ensure strings are sorted by configuration\" into oc-mr1-dev\nam: 8da74b1bfd\n\nChange-Id: Ifd3555db424136fe8a8057504df414f41fb020a1\n"
    },
    {
      "commit": "8da74b1bfdf4568788223e91c161591235b4ad42",
      "tree": "81577dcae70709165a6b148f8729c9b710169695",
      "parents": [
        "4b7f43bcae20e5fe0f452098c70359e6d54885c5",
        "8a0b238b1344dae0042bbb17b71c0c3b9b881f22"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 19 21:31:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 19 21:31:10 2017 +0000"
      },
      "message": "Merge \"AAPT2: Ensure strings are sorted by configuration\" into oc-mr1-dev"
    },
    {
      "commit": "e59f0d80ec19249f72c07ae191ad673d040443e3",
      "tree": "8abc84d8e3739cab881a34a64d6459d9d187b48b",
      "parents": [
        "004511660671511ae88e0e837a6f92db28eadaef"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 13 09:36:53 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 19 13:22:48 2017 -0700"
      },
      "message": "AAPT2: Enable building proto artifacts\n\n- This will allow the bundle tool to ingest the outputs of the aapt2 link\n  phase.\n\nBug: 64143208\nTest: manual\nChange-Id: I1a4b3ce5c2ffbbdc4bc642c3371a9ef2e7e9ad71\n"
    },
    {
      "commit": "004511660671511ae88e0e837a6f92db28eadaef",
      "tree": "f8999414faa4488e165a3f86b51c73f58609212b",
      "parents": [
        "d6912500c34506b0bfd1c0e472cefc60195a15eb"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 03 07:44:08 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 19 12:50:53 2017 -0700"
      },
      "message": "AAPT2: Define and Implement AAPT Container Format\n\nAAPT Container Format (.apc) is a simple container that\nenumerates the various intermediate files that AAPT2 generates\nduring the compile phase.\n\nThe format is defined in formats.md.\n\nFor now, continue using the .flat extension for the container file,\nand keep making use of the .flata zip for storing multiple files.\nThis will allow easier integration with existing build systems and allow\nthe evolution of the APC format to better handle arbitrarily large\nfiles.\n\nTest: make aapt2_tests\nChange-Id: Id7216e5b76316bdd683f0fa4eaf2d2da273ba815\n"
    },
    {
      "commit": "50bae79111afcdb8d36d73cac15155cb61df2dc0",
      "tree": "6a3553b683236880a512e72575887b4746b830a2",
      "parents": [
        "db768d45e0f9d3fb9928257324249a9cdad7b539"
      ],
      "author": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Wed Oct 18 23:51:18 2017 -0700"
      },
      "committer": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Thu Oct 19 19:49:01 2017 +0000"
      },
      "message": "AAPT2: Sanitize resource qualifiers before using in split names.\n\nFixes: 67960909\nTest: UtilTest.SplitNamesAreSanitized\nChange-Id: I9ba1b8430a00cc7ce981075a60388f275c41dbea\n(cherry picked from commit b8f078c9a0c9f32ad84c475c26299ecb00962ffa)\n"
    },
    {
      "commit": "d6912500c34506b0bfd1c0e472cefc60195a15eb",
      "tree": "fb8f88559e09aeef2b1a2649744293854c45af3a",
      "parents": [
        "9a164691d7b3cd644b1b3692e01703c75977fb95",
        "b8f078c9a0c9f32ad84c475c26299ecb00962ffa"
      ],
      "author": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Thu Oct 19 19:33:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 19 19:33:56 2017 +0000"
      },
      "message": "Merge \"AAPT2: Sanitize resource qualifiers before using in split names.\""
    },
    {
      "commit": "b8f078c9a0c9f32ad84c475c26299ecb00962ffa",
      "tree": "bc803682529c864d2475150920207e77c565ac27",
      "parents": [
        "96a30ab84c9e856cd7152d66d603205c3daff36e"
      ],
      "author": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Wed Oct 18 23:51:18 2017 -0700"
      },
      "committer": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Wed Oct 18 23:58:42 2017 -0700"
      },
      "message": "AAPT2: Sanitize resource qualifiers before using in split names.\n\nFixes: 67960909\nTest: UtilTest.SplitNamesAreSanitized\nChange-Id: I9ba1b8430a00cc7ce981075a60388f275c41dbea\n"
    },
    {
      "commit": "6e66a2cf34a90da745ac4dc5e93a1e082432fefb",
      "tree": "0282f251f42a497d1e2e28d1139b53b09926bda8",
      "parents": [
        "f40e381988977f2e361c07f84fdd034a4dffe823",
        "22769e0123340f49370ea4748aff71a1b84dc863"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Oct 19 00:16:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 19 00:16:54 2017 +0000"
      },
      "message": "Merge \"Fixed several bugs found for incidentd\""
    },
    {
      "commit": "8a0b238b1344dae0042bbb17b71c0c3b9b881f22",
      "tree": "08e3b0916bdee1b41d98a58e9049b9938ee6b10b",
      "parents": [
        "85e7dbc93ee35d134a75a352093baf29127715ea"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 18 15:07:33 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 18 15:12:42 2017 -0700"
      },
      "message": "AAPT2: Ensure strings are sorted by configuration\n\nKeep strings sorted by configuration so that strings likely\nto be selected (all match the same locale, for instance) are\nclose together.\n\nBug: 67958501\nTest: make aapt2_tests\nChange-Id: Id17d93bf2e03ce408a6f619d3ea6dc313e393b76\n"
    },
    {
      "commit": "22769e0123340f49370ea4748aff71a1b84dc863",
      "tree": "a047713fb7035d3e393246465ccc0e7bc7c6f5c2",
      "parents": [
        "05d0f4c1a364f50e01ee3d10b6520596c57d2037"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Oct 16 14:42:50 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Oct 18 13:17:32 2017 -0700"
      },
      "message": "Fixed several bugs found for incidentd\n\n1. Add logging for proto can\u0027t be parsed by incident_report\n2. Close opened file descriptor of incident report request!\n3. Fix invalid syntax of auto-gen section_list.cpp\n\nBug: 67849582\nTest: manually run incident and checks /proc/\u003cits pid\u003e/fd\nChange-Id: I38e6ac28de09aca6243ad536ed41d8059e08ba24\n"
    },
    {
      "commit": "aeff5b880b095e148e0243907d384d6f1d0a4c20",
      "tree": "9160a56f4005b21303fcc85dbc8ecdc6566a5e3c",
      "parents": [
        "7fb9a4d538b3691328f2f703a0bacbe2fd1f70bb",
        "bfc9e71e0d851204d9f0f380b7f2def51875b657"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Oct 18 06:33:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 18 06:33:44 2017 +0000"
      },
      "message": "Merge \"Use soong_ui directly, instead of make\" am: e994b4b584 am: 0531e5c647 am: 98fc198f1f\nam: bfc9e71e0d\n\nChange-Id: I5ef2f58b01632438702ac3bebb19b61000016dfe\n"
    },
    {
      "commit": "bfc9e71e0d851204d9f0f380b7f2def51875b657",
      "tree": "bbf5e93eba810ecde5f2c0cdd2303de3baf03549",
      "parents": [
        "f60d30b6829b84223c680b7b6f9669975c708a27",
        "98fc198f1fe4236f8b9fd159636c4386ead0dc35"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Oct 18 06:24:45 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 18 06:24:45 2017 +0000"
      },
      "message": "Merge \"Use soong_ui directly, instead of make\" am: e994b4b584 am: 0531e5c647\nam: 98fc198f1f\n\nChange-Id: Id17adee4b02cc499261f88c3faed15d889f5b6c3\n"
    },
    {
      "commit": "0531e5c6474265698841f07d40f2e84f5f13d547",
      "tree": "ebec742dff5c2f0e2d1037c390a1fb8fc4e12d00",
      "parents": [
        "a0df3496d33ed6ead766d99f68587379856bd8e9",
        "e994b4b584a23be4574b725f6b5e654535f8e1d0"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Oct 18 06:10:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 18 06:10:06 2017 +0000"
      },
      "message": "Merge \"Use soong_ui directly, instead of make\"\nam: e994b4b584\n\nChange-Id: I406a02af2d5fd1accf5c53609af00f416669e18f\n"
    },
    {
      "commit": "f60d30b6829b84223c680b7b6f9669975c708a27",
      "tree": "6f814f8c62c11a128af5b1c28c53a0bf1d247ed9",
      "parents": [
        "a3edc551c0b7873f5843b3b1dda89b20ae74f950",
        "3bdfe1a2517c4e2b6e9c7b7fe6b91eff77e4bd00"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 18 00:57:26 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 18 00:57:26 2017 +0000"
      },
      "message": "Merge \"AAPT2: Flatten AndroidManifest.xml stringpool in UTF16\" into oc-mr1-dev\nam: 3bdfe1a251\n\nChange-Id: I3295e61dcf29a7cb242b4ee0017f2fd94a0cfd65\n"
    },
    {
      "commit": "a40118d7b6f70f44eaf4a47a32808088fd039f71",
      "tree": "7d72e2f4756a4182d4bf68643ced4800e3bcaeea",
      "parents": [
        "154535317eaa84a50d70cb3af8697ab4e2c89a25"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 17 17:46:41 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 17 17:53:36 2017 -0700"
      },
      "message": "Use soong_ui directly, instead of make\n\nThis will use ckati instead of make for dumping variables, for\nconsistent makefile parsing. It may also sandbox executions, etc.\n\nAlso skip the legacy make wrapper to build, and use soong_ui instead.\nThe command line arguments are equivalent, but -j is no longer\nnecessary, we\u0027ll default to a sane value.\n\nTest: bit -b framework\nChange-Id: Idc2c9d1abe84b6b783b8702925de5493d47a4509\n"
    }
  ],
  "next": "37ed703d6b55fe12132142a14eabc1ab47a76843"
}
