)]}'
{
  "log": [
    {
      "commit": "fd020c4f0c02098f35a454f44efde310c5f79d07",
      "tree": "f46225d59fa52629f6ed9f354c35f9b04e7f724c",
      "parents": [
        "7bfda9a3f012b9329ba9e51b1241d6e442f1a276",
        "c52075ee2bcfde4cf9b091e404517a74ff7cec60"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 20 20:14:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 20 20:14:55 2017 +0000"
      },
      "message": "Merge \"Update FontStyle location in minikin.\""
    },
    {
      "commit": "c52075ee2bcfde4cf9b091e404517a74ff7cec60",
      "tree": "fdfdf38d647c4e669ddc5ee70c91b69de8ea4394",
      "parents": [
        "9d30e6cf03bead8f07ba1211325bd6a3120d3cc6"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Nov 17 15:40:06 2017 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Nov 17 16:05:22 2017 -0800"
      },
      "message": "Update FontStyle location in minikin.\n\nBug: 65024629\nTest: hwui_unit_tests\nChange-Id: I54d701945dfb0792f08a4c26cc1f8b6a6ab9e67e\n"
    },
    {
      "commit": "c6efc3f2f9afc099c57004bc4217c2c751a3b653",
      "tree": "ff8fa776c6195ca3d0602bef5a03f00c3a04c52b",
      "parents": [
        "13378dd01acefebfb872d0cdff123b98253ee43d",
        "0dfd4be9ae2a4bd049c964591b90b611aaa4023f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 17 20:24:41 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 20:24:41 2017 +0000"
      },
      "message": "Merge \"Apply PGO for all modules in hwui\""
    },
    {
      "commit": "adc0aecad36b50d30aaf6f0e9f813649838835fc",
      "tree": "d9edaeff645118d5fb3ec0151166de879f5c8549",
      "parents": [
        "87c58f95e9485e24660f645216ac7d8b924741e7",
        "0abdfb0889a4957faaba8a95903e529fced7316c"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Nov 17 18:44:15 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 18:44:15 2017 +0000"
      },
      "message": "Merge \"Expose how many bytes are written in ProtoOutputStream\""
    },
    {
      "commit": "0dfd4be9ae2a4bd049c964591b90b611aaa4023f",
      "tree": "aeced6abf2933e251fd5a7dfdc97e89471ef3245",
      "parents": [
        "58180b0282f20e569e3c66b573ec94464a06f19b"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Nov 16 22:40:00 2017 -0800"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Nov 17 10:31:48 2017 -0800"
      },
      "message": "Apply PGO for all modules in hwui\n\nBug: http://b/65598278\n\nSince hwui source files get statically linked into hwuimicro and\nhwuimacro, we need to enable PGO for them (to instrument and collect\nprofiles).  For consistency, apply PGO to all hwui modules (including\nthe unit tests) so we test the actual build configuration for libhwui.\n\nFor now, we don\u0027t use any profile so this CL affects the build only when\ninstrumentation is turned on using \u0027ANDROID_PGO_INSTRUMENT\u003dhwui\u0027.\n\nTest: Build with ANDROID_PGO_INSTRUMENT\u003dhwui, run hwuimacro and\nhwuimicro and verify profile generation\n\nChange-Id: I9d35953d544e0ccc180eb164ff53466239194c0f\n"
    },
    {
      "commit": "0abdfb0889a4957faaba8a95903e529fced7316c",
      "tree": "79310a183c151a542be3d609299f40c06f158238",
      "parents": [
        "e1c20603a4ddd0df58629c206debd947cf1a8e3a"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Nov 16 15:32:27 2017 -0800"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Nov 16 15:32:27 2017 -0800"
      },
      "message": "Expose how many bytes are written in ProtoOutputStream\n\nBug: 69428467\nTest: N/A\nChange-Id: If1405885949635cebd1c6d89e220c210ef9fa210\n"
    },
    {
      "commit": "b0f49a602131a8c2d4674ae0039d2eb69f1eb98f",
      "tree": "e9c4f9d5aa5be5dd88e4ebff10954bad72b335c6",
      "parents": [
        "fcd996cc36cd45ad45b0fb634308d776f9647c03",
        "3c0369bf0263b1b172932fdbc6a53efb01c965fc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 15 20:11:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 15 20:11:31 2017 +0000"
      },
      "message": "Merge \"Create colored shadows demo\""
    },
    {
      "commit": "01b439475ccd965c37f4ae194c0dc284628c7635",
      "tree": "132c977762ac401f17573a272d40bd68cb1ea0cc",
      "parents": [
        "da701967e8470890bd801215c6c311249bb85a46"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Tue Nov 14 13:42:42 2017 -0500"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Tue Nov 14 13:42:42 2017 -0500"
      },
      "message": "Disable skia shader cache\n\nDisable skia shader cache, which is causing image rendering\nissues.\n\nTest: Ran CNN app and images are OK.\nBug: 69264347\nChange-Id: Ie81f3398074f28ac1670333f1fd3c95267b2beb3\n"
    },
    {
      "commit": "3c0369bf0263b1b172932fdbc6a53efb01c965fc",
      "tree": "c95bab7d9c6bc49104b7ca30a2344ae4faeab2e7",
      "parents": [
        "ae5eb83a32a2005bd2c872bdf7b0621190ddb062"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 13 16:47:35 2017 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 13 16:53:48 2017 -0800"
      },
      "message": "Create colored shadows demo\n\nTest: HwAccelerationTest demo\nBug: 68211332\nChange-Id: Ia53a6ac2854570d0495b355bbebee1dcec2f47ba\n"
    },
    {
      "commit": "f559685b3a2347baef71586a08bff5479cfd1e76",
      "tree": "71d55b5c48428aab04c067719eb90a80da0d25db",
      "parents": [
        "cfec35e99a069c68c45bbb362a3edb38e9aa380a",
        "47f5c3a234c5c201ef640489af3ff25b5eec6652"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 13 22:11:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 13 22:11:49 2017 +0000"
      },
      "message": "Merge \"Fix leak of FILE* in dumping\""
    },
    {
      "commit": "47f5c3a234c5c201ef640489af3ff25b5eec6652",
      "tree": "95308e88c2e4c19dd16030a4afe07603112ed8bc",
      "parents": [
        "ae5eb83a32a2005bd2c872bdf7b0621190ddb062"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 13 11:32:39 2017 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 13 11:32:39 2017 -0800"
      },
      "message": "Fix leak of FILE* in dumping\n\nAvoid fdopen as fclose, which frees the FILE*, will close\nthe FD which we don\u0027t want. Just normalize on dprintf instead,\nand we can add buffering if it turns out to matter at some point\n\nTest: ran \u0027dumpsys gfxinfo framestats\u0027 in a loop while observing PSS\nChange-Id: I7808753641aa1055cfdf570c3e017017f11f1dee\n"
    },
    {
      "commit": "1c4ab704d14c047775b3e42f87ea4081fa204e37",
      "tree": "01848cd468c8e2a96798de4f4d426c0781f994d9",
      "parents": [
        "ae5eb83a32a2005bd2c872bdf7b0621190ddb062"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Sat Nov 11 00:02:17 2017 +0000"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Nov 13 11:01:34 2017 -0800"
      },
      "message": "Revert \"Store FontCollection in MinikinPaint\"\n\nThis regresses the performance.\n\nBug: 69165958\n\nThis reverts commit c0a35e7b0ecbd35c9c39205fec6ef2555e86db8b.\n\nChange-Id: I86f0b55dc83fdde4ca04659ec0f7bb3589f571fa\n"
    },
    {
      "commit": "67e1f2e2c99a5c9ea3d9ffbdb8423575625fe6e6",
      "tree": "3f0c44c819aae27660f2709acb94ac781d7272ae",
      "parents": [
        "f8df155e89235508b5688acbce99315944f361e6",
        "ed024d218825042ae933e019810d267454a5eb8a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 11 01:22:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 11 01:22:55 2017 +0000"
      },
      "message": "Merge \"Create magnifier bench scene\""
    },
    {
      "commit": "ed024d218825042ae933e019810d267454a5eb8a",
      "tree": "39c4382f08ee1f5331cbdfa1792437f7dcbf07a7",
      "parents": [
        "3b382900a81a10498fc35e927086982bc8e18437"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 10 15:06:32 2017 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 10 15:06:43 2017 -0800"
      },
      "message": "Create magnifier bench scene\n\nTest: this\nChange-Id: Iea1033fda55ff0946b5cd8d28ecba29453b937ca\n"
    },
    {
      "commit": "c061b4384744c3e7227bfe13a04a0c13c0e5121b",
      "tree": "9a337e10a1c6b2054f564b2d048e0854ce15b1fc",
      "parents": [
        "885738ffbe7a10fa8fe195730b110aaaf7ad4a59",
        "4eb214459f418122f3f6711c53174ef057b60d98"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Nov 10 19:44:42 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 19:44:42 2017 +0000"
      },
      "message": "Merge \"Fix bug in View system recording where Skia dropped the colorFilter.\""
    },
    {
      "commit": "917bdb1b8fbb7df6f60ee5ff03c94af1c0827964",
      "tree": "3f2d1dedbb607a624458996c14ce03a5ff477db6",
      "parents": [
        "b01aaa015a90f0e72e26e4a53b12223d6b25bf44",
        "3d35a0ea307693a97583a61973e729a5e7db2687"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 10 19:00:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 19:00:10 2017 +0000"
      },
      "message": "Merge \"Check for null-terminator in ResStringPool::string8At\""
    },
    {
      "commit": "b01aaa015a90f0e72e26e4a53b12223d6b25bf44",
      "tree": "51d16d8f7e10b95870114e4a537db89db4a8f1be",
      "parents": [
        "51f29ce476ad4546b005b19645155a21c588aa51",
        "74ea201548ed4f662d9e282c6c739cc0945ba476"
      ],
      "author": {
        "name": "Greg Daniel",
        "email": "egdaniel@google.com",
        "time": "Fri Nov 10 18:38:50 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 18:38:50 2017 +0000"
      },
      "message": "Merge \"Initialize pointer members in VulkanManager to null\""
    },
    {
      "commit": "a9e3b8c5dd459633a1db3a4333d30fa88fb8a3fb",
      "tree": "fa26d90f8efa43e656b6e6e36ed73f91d246e97e",
      "parents": [
        "75925928b39060914e60366caa5719c57e1a6d27",
        "113ddd9ef5a05e340d476e05edc971b5c2f80c26"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 10 17:56:38 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 17:56:38 2017 +0000"
      },
      "message": "Merge \"Allow hwuimacro to choose a renderer\""
    },
    {
      "commit": "74ea201548ed4f662d9e282c6c739cc0945ba476",
      "tree": "41f5784fa1bb7e51f10f9becf847981a59c1037c",
      "parents": [
        "a3e562cd8f0abdeabe05942400dae9e0d8a4e308"
      ],
      "author": {
        "name": "Greg Daniel",
        "email": "egdaniel@google.com",
        "time": "Fri Nov 10 11:32:58 2017 -0500"
      },
      "committer": {
        "name": "Greg Daniel",
        "email": "egdaniel@google.com",
        "time": "Fri Nov 10 11:34:22 2017 -0500"
      },
      "message": "Initialize pointer members in VulkanManager to null\n\nTest: manual local testing\n\nChange-Id: If81db17858354844b96677137cf67449dd91854b\n"
    },
    {
      "commit": "5e22f57bc80e8447ce5a8cd8fe2ea9dce2ef8dba",
      "tree": "38a8511a249fc050f074458d77721318f330a2f2",
      "parents": [
        "bb1c884939829242ac244596db2febbb0f08d56e",
        "c0a35e7b0ecbd35c9c39205fec6ef2555e86db8b"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Nov 10 03:23:25 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 03:23:25 2017 +0000"
      },
      "message": "Merge \"Store FontCollection in MinikinPaint\""
    },
    {
      "commit": "3d35a0ea307693a97583a61973e729a5e7db2687",
      "tree": "69d65ac6b326a42843338700f87111a80998842a",
      "parents": [
        "2dd3953ae00068a71da9f0a0d4e2fb9d8517424c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 09 17:12:17 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 09 17:13:40 2017 -0800"
      },
      "message": "Check for null-terminator in ResStringPool::string8At\n\nAll other stringAt methods check for null termination. Be consistent\nso that upper levels don\u0027t end up with huge corrupt strings.\n\nBug: 62537081\nTest: none\nChange-Id: I17bdfb0c1e34507b66c6cad651bbdb12c5d4c417\n"
    },
    {
      "commit": "c0a35e7b0ecbd35c9c39205fec6ef2555e86db8b",
      "tree": "3099883e3c0a32ccbc36ff9840aecde463c8f15f",
      "parents": [
        "45a9600e68f3e356c5dbc34d7e9812a4e99279e7"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Nov 09 12:13:17 2017 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Nov 09 16:52:13 2017 -0800"
      },
      "message": "Store FontCollection in MinikinPaint\n\nBug: 65024629\nTest: hwui_unit_tests\nChange-Id: Ibe9b20f782702e0536997727f1cc788789c47552\n"
    },
    {
      "commit": "113ddd9ef5a05e340d476e05edc971b5c2f80c26",
      "tree": "8067e7eb28e6133c1296d624e125b551e131deb3",
      "parents": [
        "3b382900a81a10498fc35e927086982bc8e18437"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 09 16:21:21 2017 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 09 16:21:21 2017 -0800"
      },
      "message": "Allow hwuimacro to choose a renderer\n\nTest: this\nChange-Id: I500b033257f317f8a3124e8072dc8d39d666b01b\n"
    },
    {
      "commit": "fd1c507884d9aa7d43e58de5814136dba16da6a9",
      "tree": "f42a1391234c00badfa4dfa1fe79276d38adb9a5",
      "parents": [
        "b074a9230361c5cf53fef0e056ac31672900f894",
        "02828740da7481a48e7872b22213047025894525"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Nov 09 23:40:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 09 23:40:37 2017 +0000"
      },
      "message": "Merge \"Disable sanitizer entirely in ResourceTypes.cpp\""
    },
    {
      "commit": "4eb214459f418122f3f6711c53174ef057b60d98",
      "tree": "3ef4a911dfc3edd926539e3aea687783ad5143de",
      "parents": [
        "17da6d2a3fe3445fcae641fef556597c9349a084"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Nov 09 12:31:36 2017 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Nov 09 16:35:56 2017 -0500"
      },
      "message": "Fix bug in View system recording where Skia dropped the colorFilter.\n\nTest: CtsUiRenderingTestCases added ColorFilterTests::testColorMatrix\nBug: 69071705\nChange-Id: I45268c9a40e47d44045d795ccb772ea93c3e699d\n"
    },
    {
      "commit": "f1f3c38908f7951745b5c16427e3f50dce6cb662",
      "tree": "4a53a1e7078e68d4f5d2ed13838d607efb028095",
      "parents": [
        "a3e562cd8f0abdeabe05942400dae9e0d8a4e308"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Thu Nov 09 12:17:35 2017 -0500"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Thu Nov 09 12:56:34 2017 -0500"
      },
      "message": "Use Skia API to detect if FP16 render buffer is supported\n\nUse Skia GrCaps to detect if we can render into a FP16 buffer.\nExclude Extension class initialization from SkiaGL pipeline.\n\nBug: 68383159\nTest: Passed testWindowProducerCopyToRGBA16F on gce_x86_phone emu\nChange-Id: I3355bad891ed5403fbd94d18bb8ba110a3b77325\n"
    },
    {
      "commit": "d495f43992c98d04cb5a4b1a7bf7917154072fb8",
      "tree": "fdd0854be6917e8a7cb5d29ebab89897ff50058e",
      "parents": [
        "2b267dfbe967661879b54c638e1f72ab85c5b2f5"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Mon Oct 09 15:49:32 2017 -0400"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Wed Nov 08 18:55:41 2017 +0000"
      },
      "message": "Implement SkSL cache\n\nImplement SkSL cache by reusing code and logic from egl_cache_t.\n\nTest: Improves startup times for gmail by 15ms and 10ms for calc app.\nBug: 66740665\nChange-Id: I9ba479c649ba97a2c29a48d40579ba001264c957\n"
    },
    {
      "commit": "d5b3536e720f09cd11faa38473e0f3aedfa7ef47",
      "tree": "8a2737982c33303067a424acc3d60d0d4f182977",
      "parents": [
        "483e54ae15f1347b6e94a810dbc86435b9ce010c",
        "20866c140438a9aca3e1ad09fe646308678e9383"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 08 02:21:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 08 02:21:56 2017 +0000"
      },
      "message": "Merge \"Use enum class for FontVariation and update MinikinUtils\""
    },
    {
      "commit": "20866c140438a9aca3e1ad09fe646308678e9383",
      "tree": "13cfb8a0d73c19a5422e6ad4013a5b8a0dc75d19",
      "parents": [
        "b10dd4158875d6fe967a0fca687f8b305a69c480"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Oct 26 16:02:01 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Nov 07 14:13:41 2017 -0800"
      },
      "message": "Use enum class for FontVariation and update MinikinUtils\n\nThis CL contains followins:\n- Use enum class FontVariation instead of legacy enum.\n- Store FontStyle in MinikinPaint.\n\nBug: 65024629\nTest: minikin_tests\nChange-Id: I86bf64fd5d9a8c08eff47db851fa4655da84b1e4\n"
    },
    {
      "commit": "02828740da7481a48e7872b22213047025894525",
      "tree": "c5860f9ad3460b56ed451146adb626902c36d60c",
      "parents": [
        "d37f28b8ca8dd4b9290e6451fddbc9d7a254fcb8"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Nov 07 13:26:27 2017 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Nov 07 14:07:17 2017 -0800"
      },
      "message": "Disable sanitizer entirely in ResourceTypes.cpp\n\nThe unsigned integer overflow sanitizer catches an overflow on\nRes_GETPACKAGE usages. This is used in a number of places in\nResourceTypes.cpp in a number of large functions. For now, lets disable\nthe sanitizer in this source file.\n\nTest: Compiles and device boots without runtime errors.\nBug: 30969751\nChange-Id: Id9e0776ef819c895a3194a32da5c85459f1af431\n"
    },
    {
      "commit": "7811c6b89a31c6ce6bdc628adab8d9365eeb88d4",
      "tree": "fac5899644a821b76c414a82b50717c735020028",
      "parents": [
        "b64fad915126b0c9616ee0a6030844514bccfb11",
        "ef3b2187354bd648bf9e1ab1d0757f5de22a42ce"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 06 21:38:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 06 21:38:49 2017 +0000"
      },
      "message": "Merge \"If the absolute value of a sweep angle \u003e\u003d 360 then draw it as an oval.\""
    },
    {
      "commit": "2089f3ad9405da0a35f1b911f0d2315c17ba3f99",
      "tree": "3496c140c09eb00fb1ee7daf7b9db8801c739a1c",
      "parents": [
        "b10dd4158875d6fe967a0fca687f8b305a69c480",
        "f7340ee1cbfe80b33f5609a076c06da8c0c4b869"
      ],
      "author": {
        "name": "Bo Liu",
        "email": "boliu@google.com",
        "time": "Mon Nov 06 19:48:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 06 19:48:54 2017 +0000"
      },
      "message": "Merge \"Export getRenderPipelineType\""
    },
    {
      "commit": "ef3b2187354bd648bf9e1ab1d0757f5de22a42ce",
      "tree": "814afe712067e06084a5542c9e2789df4b6ba0dd",
      "parents": [
        "622597fbc5651cc2ddf68c94fefe79fffdde19ff"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Nov 06 13:55:59 2017 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Nov 06 13:55:59 2017 -0500"
      },
      "message": "If the absolute value of a sweep angle \u003e\u003d 360 then draw it as an oval.\n\nSkia\u0027s drawArc API is defined to keep winding when drawing an arc\nwith a sweep angle \u003e 360.  This allows for special path effects\nand for points on the arc to potentially be double drawn. This is\nnot the case for the HWUI implementation that optimistically turns\nthe call into a drawOval.  This CL updates Skia\u0027s pipeline to be\nin line with the HWUI implemenation.\n\nTest: CtsGraphicsTestCases were added to cover this\nBug: 68764873\nChange-Id: I22cd15a53cd2df44421518256d45a2b5d0525a86\n"
    },
    {
      "commit": "0b1b62d27f7a96af7eca739cb4e08e7caf8b6b3c",
      "tree": "a5581fc1031604d4df46bcc6ec8c361319d45a90",
      "parents": [
        "f9ba65ac52062c9719c78b3a8503f77e84b756ce",
        "1bcacfdcab0eaa0cee92bd7f5a1b5e271dd68e52"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 03 21:57:24 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 21:57:24 2017 +0000"
      },
      "message": "Merge changes Id23aa4ec,Ieb6c8b51\n\n* changes:\n  Format the world (or just HWUI)\n  Add .clang-format file\n"
    },
    {
      "commit": "9ba4101878c5326996d02d88697051acff8cefb9",
      "tree": "b45383793ecf902ca8dafd9777d2738a9d66e610",
      "parents": [
        "d906cc0901685d59345b207b96fc6e940bfba4f5",
        "599fed4bfc394aa5f5735a06ccd2415e1ab4706f"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Nov 03 21:28:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 21:28:55 2017 +0000"
      },
      "message": "Merge \"Fix libandroidfw in integer sanitized builds.\""
    },
    {
      "commit": "1bcacfdcab0eaa0cee92bd7f5a1b5e271dd68e52",
      "tree": "4a1366cf2d1cf50b5ec4ed1a8cf0f437053cd0d7",
      "parents": [
        "30ec71c0fe194a551d2e4abaff2159e0730488e0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 03 10:12:19 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 03 10:57:44 2017 -0700"
      },
      "message": "Format the world (or just HWUI)\n\nTest: No code changes, just ran through clang-format\nChange-Id: Id23aa4ec7eebc0446fe3a30260f33e7fd455bb8c\n"
    },
    {
      "commit": "30ec71c0fe194a551d2e4abaff2159e0730488e0",
      "tree": "c5b8fe08a9d512dbac90e60bfb4a2f5dd25666c8",
      "parents": [
        "4a76a3f32ad3cedb5bad5353f4c69ece9e83b4a4"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 03 10:11:34 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 03 10:11:34 2017 -0700"
      },
      "message": "Add .clang-format file\n\nTest: No code changes, just ran through clang-format\n\nChange-Id: Ieb6c8b51e8a824fea03c6999dc4e0704e918d396\n"
    },
    {
      "commit": "599fed4bfc394aa5f5735a06ccd2415e1ab4706f",
      "tree": "922e1dcd418f183d689a1c5785727c680b59af2e",
      "parents": [
        "1e189360cbb0bbed740f0949f904d64e4ed13fd2"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Nov 01 11:05:45 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Nov 03 10:02:54 2017 -0700"
      },
      "message": "Fix libandroidfw in integer sanitized builds.\n\nRefactors compare functions to avoid unsigned integer overflows in\nResourceTypes.cpp which were causing errors on integer sanitized builds.\n\nBug: 30969751\nTest: Compiled and booted an integer sanitized build.\n\nChange-Id: I0190aca2cee0689f7f5d142097917afbeae7dda9\n"
    },
    {
      "commit": "4c7db0543e062a5fb98c2e104379554a52fd7342",
      "tree": "e85604407cf4aed1f41410e493ab601e26cdf250",
      "parents": [
        "416a66cd6ca58c583f5e8e2c713821a6a509729f",
        "498c409dec36a197b1afea1db4c74bd427f25c01"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Nov 03 10:32:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 03 10:32:30 2017 +0000"
      },
      "message": "Merge \"ZipUtils: Rewrite in terms of zip_archive::Inflate.\" am: f941215d56 am: 1bed4d4880\nam: 498c409dec\n\nChange-Id: I3c0f754ee0fdea0373293f06081b4a3230b87e09\n"
    },
    {
      "commit": "498c409dec36a197b1afea1db4c74bd427f25c01",
      "tree": "34c1b9ad79bcf9f11fb9dea848c5b050e71f5d0b",
      "parents": [
        "88dc91afb1993363cff0a65fee814f7268c08630",
        "1bed4d48801bc9d4ee4317bc838e6bccaea51c7d"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Nov 03 10:23:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 03 10:23:15 2017 +0000"
      },
      "message": "Merge \"ZipUtils: Rewrite in terms of zip_archive::Inflate.\" am: f941215d56\nam: 1bed4d4880\n\nChange-Id: I61cee0ba3cd640e914583daae64d522cc250603e\n"
    },
    {
      "commit": "285ec31b20ad9486eb9217f1e1fd7bae4e6fda4b",
      "tree": "3940da23063744c7423ca47fa285b49ad2c883d8",
      "parents": [
        "48cfe03c68217c53b6b9c2f974cc386556a8a134",
        "30bc95d7f9269eeb13ccb374bfef2986579e5da5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 03 04:36:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 04:36:06 2017 +0000"
      },
      "message": "Merge \"Add FontFakery argument to minikin callbacks\""
    },
    {
      "commit": "f7340ee1cbfe80b33f5609a076c06da8c0c4b869",
      "tree": "eaece8307c896a8032e0122a69f8b4f877f8c4ce",
      "parents": [
        "b60ce367411bec734e13a91c7140f192d8fade11"
      ],
      "author": {
        "name": "Bo Liu",
        "email": "boliu@google.com",
        "time": "Thu Nov 02 16:09:03 2017 -0700"
      },
      "committer": {
        "name": "Bo Liu",
        "email": "boliu@google.com",
        "time": "Thu Nov 02 16:10:37 2017 -0700"
      },
      "message": "Export getRenderPipelineType\n\nSo it can be called from libwebviewchromium_plat_support\n\nBug: 67718981\nTest: Locally built new webview and ensure state restore is skipped.\nChange-Id: I2bd5a2a2ef35eb1a81c72e43756ce4f182b7e673\n"
    },
    {
      "commit": "0d16870b691611b983c49f68fb293b7082f0b5d8",
      "tree": "620b99a12174b77fea36d42ea6739b06e0f84667",
      "parents": [
        "01378479badbb119db2ae73dffafd6eab01104fa",
        "f9ed04b3d938b06329fcd14d4f2b461000d028da"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Nov 02 17:55:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 02 17:55:40 2017 +0000"
      },
      "message": "Merge \"Remove the extra mapping of field types in ProtoOutputStream\""
    },
    {
      "commit": "36e94d071c5c590d70a552dd4daed1d39a0e83f9",
      "tree": "4ced6764dae1293d93a0bbc3b4d14d4d08f3c45b",
      "parents": [
        "0d1acc4b90b7f9a66c8905a62c7451b31e810253",
        "4fbbcb7ef76669e9d1170122a10d8b3d7f74a95f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 02 17:01:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 02 17:01:06 2017 +0000"
      },
      "message": "Merge \"Add prep_taieye\""
    },
    {
      "commit": "a07e12251d5b246d2d7188df998a6f0487b09ed1",
      "tree": "a8893da58c8725d48067e59b10705d0cd1aee40e",
      "parents": [
        "80c3c7093040a6c66a2fa7c634451694d2bb5ee8"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 30 12:57:24 2017 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 02 12:01:17 2017 +0000"
      },
      "message": "ZipUtils: Rewrite in terms of zip_archive::Inflate.\n\nRemoves duplicated zlib related code.\n\nBug: 35246701\nTest: make\nTest: run cts-dev -m CtsContentTestCases -t android.content.res.cts\nChange-Id: Ie93cab4eb442b02ee171203a043ef02edbc35f2b\n"
    },
    {
      "commit": "44aa5871a4b66f5e6452d3733013c81829e6abe9",
      "tree": "ffab75d7f0e8bd070d3ef9efd45748da5c7ed686",
      "parents": [
        "99f2e84d47a42e240d75d9bb4b67fd61b51fb019",
        "8472ac67fd1d815022874f5addace0c4334ae9f6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 01 22:09:36 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 01 22:09:36 2017 +0000"
      },
      "message": "Merge \"Fix PixelCopyTest failure in CTS\""
    },
    {
      "commit": "4fbbcb7ef76669e9d1170122a10d8b3d7f74a95f",
      "tree": "b8b97475de6c7bfb5c8ade787a5ee88979db0260",
      "parents": [
        "c19d96c828d0a8d68896816055d0bad385e9b851"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 01 14:28:02 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 01 21:44:15 2017 +0000"
      },
      "message": "Add prep_taieye\n\nTest: ran script\nChange-Id: I39a859e6eddea9d81241bbbbb931d1ddf4e14c53\n"
    },
    {
      "commit": "8472ac67fd1d815022874f5addace0c4334ae9f6",
      "tree": "503ec19f102ea6781fcf56ddee2166166e1a216b",
      "parents": [
        "c19d96c828d0a8d68896816055d0bad385e9b851"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 01 09:50:28 2017 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 01 13:06:54 2017 -0700"
      },
      "message": "Fix PixelCopyTest failure in CTS\n\nThis feature needs support for renderable float textures, but the checks\nwere only guaranteeing support for float texture reads.\n\nBug: 68754504\nTest: CtsViewTestCases\n\nChange-Id: I0ce4a81cb8e09c10a5f1e65234685767a24ef8c4\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": "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": "a89c2a31601ecbe19aca3751315674e2706bbfbf",
      "tree": "c61949d64ce3911c9e9eb5cf77b1cf7b1c9370fb",
      "parents": [
        "d23881e29c012ed217f240972edd35f0e1f97522",
        "7475d0f8dba8040dfeaf5278dbf83d4f964f8a65"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 31 21:07:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 31 21:07:55 2017 +0000"
      },
      "message": "Merge \"Fix testWindowProducerCopyToRGBA16F test on x86 emulator\""
    },
    {
      "commit": "ad5570f58d40b7997afeba337f83dda4ae9a5476",
      "tree": "ca1554d5bbe6466c6b0f3d0383c73bbed6515b78",
      "parents": [
        "81c671da60a1d27407846039308642e71ab16c13",
        "ca3872ce36c94090ae18519dc7fe0cf39d834c4a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 31 19:55:42 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 31 19:55:42 2017 +0000"
      },
      "message": "Merge \"Fully implement \"install\" and \"install-write\" in PackageManagerShellCommand.\""
    },
    {
      "commit": "bb9965612c0f5f5739645e209f3294ac6ee19168",
      "tree": "d82ea106aee861443eadada67b7ddb859ea7a5c2",
      "parents": [
        "ad5379bd308adc0b1e765faa5425c4dfd749f9f9",
        "e7bc60a954cfed8b4377a9f9b8601208781d5393"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Tue Oct 31 18:28:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 31 18:28:32 2017 +0000"
      },
      "message": "Merge \"Parse BCP 47 locale names with Unicode extensions\""
    },
    {
      "commit": "ca3872ce36c94090ae18519dc7fe0cf39d834c4a",
      "tree": "26361b8a308121902da16e035851489e11af38c9",
      "parents": [
        "362e983accb269b07a95ef563fe37ed325145035"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 30 14:19:32 2017 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 31 10:54:31 2017 -0700"
      },
      "message": "Fully implement \"install\" and \"install-write\" in PackageManagerShellCommand.\n\nWe can use the new mechanism to ask the calling shell to open\na file in order to implement the rest of these commands, allowing\nyou to give the path to an apk to install.  That API is thus\nextended to allow you to open readable files, not just opening\nfile for writing.\n\nDoing this however means we no longer can pass a file path to\nAssetManager for the apk to parse, we only have an already open\nfd for that.  Extending AssetManager to allow adding apks from\nfds is not that hard, however, since the underlying zip library\nalready supports this.\n\nThis main thing this changes is in AssetManager.cpp where we\nretrieve the open zip file for a particular apk that has been\nadded.  This used to look up the zip file by path every time\nit was needed, but that won\u0027t work anymore now that we can have\nthings added by fd.  Instead, we keep track of each opened zip\nin the AssetManager, so we can just directly retrieve it from\nthe asset_path representing the item that was added.  As a\nside-effect, this means for normal paths we no longer need to\nlook up by name, but just have the opened zip file directly\naccessible.  (This is probably good, but it does mean that we\nno longer run the logic of seeing if the zip file\u0027s timestamp\nhas changed and re-opening it if it has.  We probably shouldn\u0027t\nbe relying on that for an active AssetManager anyway, and maybe\nit is even good that we don\u0027t allow the zip file to change\nunder it?)\n\nA follow-up change will finally remove the Pm.java implementation\nand turn the pm \"command\" into a simple shell script that runs\ncmd package.\n\nTest: manual\n\nChange-Id: Ie103e3bdaa5b706796cc329254f2638151a3924f\n"
    },
    {
      "commit": "418413769d1360b6cf3c25b5caf115c22fb94fd2",
      "tree": "9a9c65231b81aec002ebaf35a861f5dac2f242e4",
      "parents": [
        "473b3345a763d45ee93214322f8d984ed4dd60af",
        "8ad193870b2f8d6f8478d591ced2100e22b23229"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Oct 31 17:33:13 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 31 17:33:13 2017 +0000"
      },
      "message": "Merge \"Create a new API allowing callers to concat a serialized message field.\""
    },
    {
      "commit": "7475d0f8dba8040dfeaf5278dbf83d4f964f8a65",
      "tree": "19bee9db12d4fcf6cc18bec4c69a179315e40c9a",
      "parents": [
        "1eb19a3b87836af92fc989c1afa56ad4febd716b"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Tue Oct 31 11:47:54 2017 -0400"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Tue Oct 31 11:47:54 2017 -0400"
      },
      "message": "Fix testWindowProducerCopyToRGBA16F test on x86 emulator\n\nFix readback to return correct error code on X86 emulator, when\nhalf float pixel format is not supported.\n\nTest: Ran and passed all CtsViewTestCases tests on x86 emulator\nBug: 68383159\nChange-Id: Id66484b73488e2c8d29fbecbd45a97af285a0710\n"
    },
    {
      "commit": "0437f02354efd9e37e0ecdb9170380276b9815a9",
      "tree": "2743a5466f9b2d1b190eb46b789e9d1292587c32",
      "parents": [
        "687b37cd52145de2e6b448cdc2814614c4000585",
        "cf91788ec6575b6771241da928c8d44c1ad82946"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 31 13:24:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 31 13:24:59 2017 +0000"
      },
      "message": "Merge \"Fix PixelCopy readback\""
    },
    {
      "commit": "8ad193870b2f8d6f8478d591ced2100e22b23229",
      "tree": "7b9c03d0c754aa928543927d57e7dd0cd64a7686",
      "parents": [
        "7d3fcb4361753387f4834fb3fe94fbe085d0abab"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Oct 30 16:07:20 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Oct 30 17:54:00 2017 -0700"
      },
      "message": "Create a new API allowing callers to concat a serialized message field.\n\nTest: N/A\nChange-Id: I90570ea62e6c406d40c399cee6cbb8dcb5172e21\n"
    },
    {
      "commit": "cf91788ec6575b6771241da928c8d44c1ad82946",
      "tree": "6a62c26f40a400b688846dd38c350a4fa4efb647",
      "parents": [
        "1eb19a3b87836af92fc989c1afa56ad4febd716b"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Fri Oct 27 19:29:44 2017 -0400"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Mon Oct 30 13:46:20 2017 -0400"
      },
      "message": "Fix PixelCopy readback\n\nApply correct texture transform and use filter if source and dest\nhave different size.\n\nTest: Ran and passed CtsUiRenderingTestCases,\nTest: CtsGraphicsTestCases, CtsViewTestCases tests and the\nTest: DecodeAccuracyTest.\nBug:68051015\nChange-Id: Iee885e243e43497c9294f7475c0c5b9c1a783754\n"
    },
    {
      "commit": "9e5f228a6f71b16bf04cb0d354ed7a3ca2555430",
      "tree": "ab2081e8c06c72f5f2c801b0a5ea6c6abfe2e8d3",
      "parents": [
        "2991cb9944a50406fa928bce2f40a7008a0ffbaa",
        "f8441e65526cd1721f1ad77dad21b1a1e2743d76"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 27 22:21:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 27 22:21:48 2017 +0000"
      },
      "message": "Merge \"Switch to a fancy new queue\""
    },
    {
      "commit": "f8441e65526cd1721f1ad77dad21b1a1e2743d76",
      "tree": "a783f7ce274943c1fc919ba746662b962738af42",
      "parents": [
        "68533018e748ae7fa881cdb933ec18f9273cfc1e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 23 13:10:41 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 27 13:39:55 2017 -0700"
      },
      "message": "Switch to a fancy new queue\n\nTest: unit tests \u0026 benchmarks pass/faster\n\nChange-Id: I9521432172d6dd6039c5280b1265479a36a86247\n"
    },
    {
      "commit": "30bc95d7f9269eeb13ccb374bfef2986579e5da5",
      "tree": "5be95d1f99d0f06f783d0f8e6d619670d9d57a97",
      "parents": [
        "a81627388fd4fe3cabef642615feec298300925e"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Oct 26 11:35:57 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Oct 27 19:40:43 2017 +0000"
      },
      "message": "Add FontFakery argument to minikin callbacks\n\nBug: 65024629\nTest: N/A\nChange-Id: I46e2c85f04a28a1d48f7f5869112b7277f86bc85\n"
    },
    {
      "commit": "e7bc60a954cfed8b4377a9f9b8601208781d5393",
      "tree": "7fbc5173f367d79ee6e6099164e8c956a6d0c38d",
      "parents": [
        "4749fdcf04b13eba24a7034f95dac50ca18bc0dd"
      ],
      "author": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Fri Oct 20 15:09:13 2017 -0700"
      },
      "committer": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Thu Oct 26 18:04:43 2017 -0700"
      },
      "message": "Parse BCP 47 locale names with Unicode extensions\n\nLocale parser is modified to handle BCP 47 locale extensions and\nrecognize numbering system specifications. This fixes incorrect\ninterpretation of an extension key as a region code.\n\nNumbering system specification is stored in the configuration data,\nhowever it\u0027s not used for best configuration selection yet.\n\nBug: 67508876\nTest: build and run libandroidfw_tests\n\nChange-Id: If4072b9f39e80f60d4567841afe9ce7a92979574\n"
    },
    {
      "commit": "7c93e868825225a270c993ac058687adde682626",
      "tree": "5f1bd52cde85f745b1114a626246f43e6594141a",
      "parents": [
        "38b93486093d01374371bbaf62dfdd17c4b47236"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Oct 25 16:34:48 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Oct 26 11:43:15 2017 -0700"
      },
      "message": "Make casting to bidi flags explicit\n\nBug: 65024629\nTest: checkbuild\nChange-Id: I0771036359cc1ee5471e9fd4da304598a2f8bf98\n"
    },
    {
      "commit": "a042a303e18aa60a2b6439293825746f17f18eee",
      "tree": "9ebbbda90b4599607161a975b7a9225edce8ac6e",
      "parents": [
        "d14711f3b96eaf3bae6cf3ce65161ea57e037529",
        "7a4216bb7380fe463f8fb79bca37a70676000427"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 25 15:40:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 25 15:40:06 2017 +0000"
      },
      "message": "Merge \"Don\u0027t clear a layerPool that is never initialized.\""
    },
    {
      "commit": "7a4216bb7380fe463f8fb79bca37a70676000427",
      "tree": "7fe1af9108bf98f469f4ed8aefa57125dc589575",
      "parents": [
        "6ecde93dd5320fce9e3b01e372a1c0e758584835"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Oct 25 09:52:23 2017 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Oct 25 09:52:23 2017 -0400"
      },
      "message": "Don\u0027t clear a layerPool that is never initialized.\n\nTest: device now boots in Vulkan without crash\nChange-Id: Ib0a3d8253a49fbcdb75e9f4edda0c32d06903669\n"
    },
    {
      "commit": "4d3b424caea30a2e82211bdf7db73a7926034cb0",
      "tree": "f4195f9f31b4dabb40f3bfdf9852639d4da329cc",
      "parents": [
        "3a3ff7deeb200aa3757c8863f4eee7be044d2931",
        "e08333067a9f4ce9176dff490c4b163f71f56e1e"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Oct 24 17:26:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 24 17:26:51 2017 +0000"
      },
      "message": "Merge \"Fix several nits\""
    },
    {
      "commit": "e08333067a9f4ce9176dff490c4b163f71f56e1e",
      "tree": "09d88398f208cf4abde6feb17e82441c4e9f4c45",
      "parents": [
        "c35ca6de375a1a17a3e070f85e7cf15272d92181"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Oct 23 15:42:44 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Oct 23 16:36:06 2017 -0700"
      },
      "message": "Fix several nits\n\n1. Change the APIs of ProtoOutputStream to be able to write bytes\n2. Fix the tests in incidentd, stdout is closed so can\u0027t capture the\nvalue, use temporaryFile instead.\n\nTest: N/A\nChange-Id: Ibc31f2efd068afc6c06188d92f57ca5a754c3683\n"
    },
    {
      "commit": "b3d66a3ccd90ae52c37e72ba545220ec792c8d22",
      "tree": "c38651d4f3e15a79cadbc4ee3717c0189985017b",
      "parents": [
        "85be5b826d2822559cd866f2060c1cf7ee606538",
        "1481fe142d36d5f0b36eeebc358d5a8aef7bf28a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 21 01:21:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 21 01:21:39 2017 +0000"
      },
      "message": "Merge \"Changes pulled data to use Parcel objects.\""
    },
    {
      "commit": "30dfc68a9ff17da03431fb4da2ae43366b22e965",
      "tree": "385afb5bb8ba902402c56e3afcbcce648f6ebfcc",
      "parents": [
        "8f34e0b231b6ce3ea416f91a0f1b04ea8fccf75d",
        "e9d0012bbf8077c1b7e09e44ae30e7873eb7ac31"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 20 23:57:03 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 20 23:57:03 2017 +0000"
      },
      "message": "Merge \"Convert skpCaptureEnabled compile time flag into a property\""
    },
    {
      "commit": "1481fe142d36d5f0b36eeebc358d5a8aef7bf28a",
      "tree": "368875377232437bd13d8c3e856b75b640afee08",
      "parents": [
        "708f1b8cdca593155e4c572ebe2ebc3ee257c84c"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Mon Oct 16 13:16:34 2017 -0700"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Fri Oct 20 16:29:59 2017 -0700"
      },
      "message": "Changes pulled data to use Parcel objects.\n\nPreviously, pulled data was returned as a string. We instead\nreturn the data as an array of StatsLogEventWrapper, which encodes\nusing the binary-encoded format liblog uses. StatsD uses the same\nparsing as for pushed events to convert these. This CL also fixes\nthe parsing of log_msg since the strings were previously emptied\nbefore we had a chance to read the values.\n\nNote that the cpp-aidl can\u0027t support List of Parcelable, so we\nhave to return the results as an array.\n\nTest: Manual using the new command in StatsService to print results.\nAlso created a new unit-test by creating a dummy pull code of -1,\nbut this test is deleted since it required creating a fake output in\nStatsCompanionService.\n\nChange-Id: I1cfb9ea081a59292a60e934e8527adc40982ed80\n"
    },
    {
      "commit": "59dc558e89ec20f1df49f28ed75ad48e2ab6ced3",
      "tree": "0cc7f57365fc6d3aa33f35b52e2ad05600337570",
      "parents": [
        "31a7867bf84065f42a3a3d5a1b2f86fb612f15c6",
        "47fed6ba6ab8a68267a9b3ac6cb9decd4ba122ed"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 20 22:20:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 20 22:20:57 2017 +0000"
      },
      "message": "Merge \"Fix crash in \"Tree::updateBitmapCache\"\""
    },
    {
      "commit": "e9d0012bbf8077c1b7e09e44ae30e7873eb7ac31",
      "tree": "e3d7ef79b963359a547ce96b290b3f861446e044",
      "parents": [
        "e059b0f5851bb334a3d07d6b17365052d42d2761"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Tue Sep 19 12:07:10 2017 -0400"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Fri Oct 20 17:49:12 2017 -0400"
      },
      "message": "Convert skpCaptureEnabled compile time flag into a property\n\nConvert SkiaPipeline::skpCaptureEnabled into a system property.\nAdd ability to capture drawing in layers. Add ability to capture\nanimations/sequence of frames. Fix crash when recording a\nTextureView.\n\nTest: Ran capture script.\nChange-Id: I463eecf6ec90a601a6cc172ad1901bd4bcc86ac8\n"
    },
    {
      "commit": "a0f2109438d93c115cce5fd5a31e18d2b16ef05c",
      "tree": "b4b6eded965c34d7ec67ca418540907b5a33adf6",
      "parents": [
        "ef511a871643b4c3f45c163e5f5e4c73b209536b",
        "d56d2188fc7fbc646516a5d3da99bc95b2480319"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 20 20:26:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 20 20:26:53 2017 +0000"
      },
      "message": "Merge \"Fix crash in Vulkan pipeline at boot time\""
    },
    {
      "commit": "47fed6ba6ab8a68267a9b3ac6cb9decd4ba122ed",
      "tree": "956d3c65b24d3fdf94f30c6f6b4031903aae2ae5",
      "parents": [
        "e059b0f5851bb334a3d07d6b17365052d42d2761"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Wed Oct 18 17:56:43 2017 -0400"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Fri Oct 20 16:03:25 2017 -0400"
      },
      "message": "Fix crash in \"Tree::updateBitmapCache\"\n\nFix crash caused by updating vectordrawable cache for objects\nfrom previous frames, which may have been deleted.\n\nBug: 67940327\nTest: Ran CtsUiRenderingTestCases test\nChange-Id: I4466235e78e9b7937a0d4428240574d9e3d0989f\n"
    },
    {
      "commit": "fe882930dfd1c95dff50adc62d3d6c93fdadeb4d",
      "tree": "5a7e93fc962bfbf69f7c6d1b910765f29ee2585e",
      "parents": [
        "7fd74b5ad1df53b92f08a9aa2f3d445bf7b786fe",
        "1a1e9c272459f05c846a03fc15989ff7e492517e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 20 19:19:27 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 20 19:19:27 2017 +0000"
      },
      "message": "Merge \"AssetManager2: Run ApkAssets that have failed verification\""
    },
    {
      "commit": "1311c1c4d26fae1b7672ec306258b604d1fc9037",
      "tree": "1d94f7c663aab17f0d35c8aea74935e7325a606e",
      "parents": [
        "5e66a4f5978d03c92b2c9cb59223d3fa538c93ab",
        "30080e2f282f40222bd9cc617e0c11d63c82f829"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 20 17:58:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 20 17:58:47 2017 +0000"
      },
      "message": "Merge \"AssetManager2: Improve Theme performance\""
    },
    {
      "commit": "d56d2188fc7fbc646516a5d3da99bc95b2480319",
      "tree": "7b2d68b77209e57a013260b68ed9b9ca3d735ee9",
      "parents": [
        "3cf1a9452457f5e2165d18eba4daf9fab57af746"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Wed Oct 18 13:12:32 2017 -0400"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Wed Oct 18 13:12:32 2017 -0400"
      },
      "message": "Fix crash in Vulkan pipeline at boot time\n\nFix a crash caused by calling OpenGL APIs with Vulkan pipeline\n(likely a regression from ag/2706458).\n\nTest: Ran CtsViewTestCases tests with SkiaGL pipeline.\nChange-Id: Ibabeb4229ef88de57c99f2961a10a68ca71b25ab\n"
    },
    {
      "commit": "1a1e9c272459f05c846a03fc15989ff7e492517e",
      "tree": "9d5f5c28c08de8be785e66d849975959982d778f",
      "parents": [
        "30080e2f282f40222bd9cc617e0c11d63c82f829"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 13 15:45:34 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 17 16:03:30 2017 -0700"
      },
      "message": "AssetManager2: Run ApkAssets that have failed verification\n\nApkAssets who have failed verification should still run for\ncompatibility. Not all resources are accessed, and therefore\nerrors in the APK are not necessarily fatal. However, this means\nwe must do bounds checks when retrieving resources, which is\nslower.\n\nTest: make libandroidfw_tests \u0026\u0026 $ANDROID_BUILD_TOP/out/host/\u003chost\u003e/nativetest64/libandroidfw_tests/libandroidfw_tests\nTest: make libandroidfw_benchmarks \u0026\u0026 adb sync system \u0026\u0026 adb sync data \u0026\u0026 /data/benchmarktest64/libandroidfw_benchmarks/libandroidfw_benchmarks\nChange-Id: I4cc926c064bca0491785d82cdac0419d74d7d9b0\n"
    },
    {
      "commit": "ded6035da8bf23bb5b5b5315f757ea7f4c1a011b",
      "tree": "ac635a4d129b20f4f4632b658d85c922c7b789a7",
      "parents": [
        "532cd509a118462450dc83ac700196d4bd4c2d5e"
      ],
      "author": {
        "name": "Zhizhou Yang",
        "email": "zhizhouy@google.com",
        "time": "Tue Oct 17 13:37:00 2017 -0700"
      },
      "committer": {
        "name": "Zhizhou Yang",
        "email": "zhizhouy@google.com",
        "time": "Tue Oct 17 13:37:00 2017 -0700"
      },
      "message": "Turn off PGO temporarily\n\nBug: http://b/67862169\n\nTurn off PGO for hwui since it caused a performance regression in\ntesetBitmapDrawPerf.\n\nTest: Built successfully and tested the performance with benchmarks.\nChange-Id: I7be1ff919cc03eb72e2464867a417cc3dad7a260\n"
    },
    {
      "commit": "30080e2f282f40222bd9cc617e0c11d63c82f829",
      "tree": "d7cd37fc9a3dbd3369e53db221623f3fdf8b0c4d",
      "parents": [
        "8a0f0ed4d84573a2f9eec0753404b5cf44f51827"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Oct 16 16:18:09 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 17 11:37:49 2017 -0700"
      },
      "message": "AssetManager2: Improve Theme performance\n\nThis change brings Theme ApplyStyle down to 2x the original performance\nand Theme attribute retrieval to less than the original performance.\nYay!\n\nBenchmarks ran on marlin-eng\n----------------------------------------------------------------------\nBenchmark                               Time           CPU Iterations\n----------------------------------------------------------------------\nBM_ThemeApplyStyleFramework          8540 ns       8500 ns      82105\nBM_ThemeApplyStyleFrameworkOld       5280 ns       5258 ns     148849\nBM_ThemeGetAttribute                    8 ns          8 ns   88388549\nBM_ThemeGetAttributeOld                11 ns         11 ns   63394463\n\nApplyStyle still takes some time, and the weird thing is that if I\nswitch the data structure of ThemeType to use an\nstd::vector\u003cThemeEntry\u003e, the performance becomes better than the\noriginal implementation! The issue is that std::vector\u003cT\u003e takes up 24\nbytes, which would make Themes take up 8 more bytes per ThemeType, which\nis unacceptable. Still trying to isolate where the performance gain is\ncoming from.\n\nTest: make libandroidfw_tests \u0026\u0026 $ANDROID_BUILD_TOP/out/host/\u003chost\u003e/nativetest64/libandroidfw_tests/libandroidfw_tests\nTest: make libandroidfw_benchmarks \u0026\u0026 adb sync system \u0026\u0026 adb sync data \u0026\u0026 adb shell /data/benchmarktest64/libandroidfw_benchmarks/libandroidfw_benchmarks\nChange-Id: I0e7a756afd44b6aac1521e69c2b907258c262d3e\n"
    },
    {
      "commit": "7215f944016d58e69ce4f4dda1c70b9609b6faf9",
      "tree": "c7ac5319ce56c59e84a5d5d36375ec15367c0fcd",
      "parents": [
        "78a9d153685871ff5ba36e00202c601d34ee1094",
        "42711a0b4fffd0dc670ec7bc38cc7f954c60e530"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Oct 16 20:22:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 16 20:22:34 2017 +0000"
      },
      "message": "Merge \"Use ProtoOutputStream to strip Pii sensetive fields in incidentd\""
    },
    {
      "commit": "990735ee4cceb941638cb19c3ae4781723c34d0d",
      "tree": "bd65441cf95dbad782caf11086b0c24f02ca0552",
      "parents": [
        "13dccdbb7a46d3f97043faaabd88f7cfb6e348b0",
        "17371ecffc30fec2d0b3cc8afdf366ff65d2db6d"
      ],
      "author": {
        "name": "Zhizhou Yang",
        "email": "zhizhouy@google.com",
        "time": "Sat Oct 14 01:13:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 14 01:13:55 2017 +0000"
      },
      "message": "Merge \"Enable PGO for hwui\""
    },
    {
      "commit": "42711a0b4fffd0dc670ec7bc38cc7f954c60e530",
      "tree": "2e4b9a91caffb1098c823af806ee956a0ba207d2",
      "parents": [
        "fcf52c6f5e2276c9cf2ca245757a2f0f4b1d7e4e"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Oct 11 18:20:24 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Oct 13 15:44:26 2017 -0700"
      },
      "message": "Use ProtoOutputStream to strip Pii sensetive fields in incidentd\n\nThe in-place algorithm in ProtoOutputStream will have at most 2 copies\nof possible nested message values incidentd is getting which makes it\nmore ram-efficient, and minimize allocations.\n\nBug: 65641021\nTest: the units pass\nChange-Id: Ic3fe99b7e27895bd613a129ba0f12ccfca4af317\n"
    },
    {
      "commit": "17371ecffc30fec2d0b3cc8afdf366ff65d2db6d",
      "tree": "abc2ca8fed2fca64eb63b2c52bfecb916d0ef12e",
      "parents": [
        "df043ee75cffd64017fd5a571b1e79ee763ea62e"
      ],
      "author": {
        "name": "Zhizhou Yang",
        "email": "zhizhouy@google.com",
        "time": "Fri Oct 13 11:42:13 2017 -0700"
      },
      "committer": {
        "name": "Zhizhou Yang",
        "email": "zhizhouy@google.com",
        "time": "Fri Oct 13 11:42:13 2017 -0700"
      },
      "message": "Enable PGO for hwui\n\nThis patch is trying to apply PGO for hwui. According to some research\non PGO before, we got a 5% to 10% performance improvement with PGO on\nhwui and we hope to enable it.\n\nThe patch specified a hwui.profdata file, which locates in internal\ngoogle_data/pgo_profile directory, to work as the profile to feed PGO.\nThis profdata can be re-collected through the PGO collecting script in\nthe benchmark directory, and it was based on hwuimicro/hwuimacro\nbenchmark for now.\n\nPGO can be turned of by setting ANDROID_PGO_NO_PROFILE_USE environment\nvariable.\n\nTest: Build hwui successfully and verified the performance improvement\non device through benchmark.\nBug: http://b/63768402\n\nChange-Id: Ib63e5504be34bdfe49f6bc2c52964c30c81f1416\n"
    },
    {
      "commit": "d480f7ba8c0ded581686596bf45c3c6d5255e5a1",
      "tree": "49f2fafdb2540dd9b1d52f1be0ac40150de486b3",
      "parents": [
        "970bd8d2835b05237c4561bd6c12329e26f136b3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 11 10:36:44 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 13 10:23:35 2017 -0700"
      },
      "message": "AssetManager2: Provide a method for iterating over packages\n\nTest: none\nChange-Id: Ia6c335db1ed7d09cd444d387a29f18dc342a697f\n"
    },
    {
      "commit": "970bd8d2835b05237c4561bd6c12329e26f136b3",
      "tree": "76004870f6957072dd24267a7a00d9ae6b237aba",
      "parents": [
        "fcf52c6f5e2276c9cf2ca245757a2f0f4b1d7e4e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Sep 25 13:21:55 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 13 10:23:34 2017 -0700"
      },
      "message": "AssetManager2: Implement IDMAP support\n\nThis enables RRO (runtime resource overlays) with AssetManager2\n\nTest: make libandroidfw_tests\nTest: out/host/\u003cplatform\u003e/nativetest64/libandroidfw_tests/libandroidfw_tests --testdata\u003dframeworks/base/libs/androidfw/tests/data\nChange-Id: Id8079104faefbfaa3f4017d8f7ee1a8968f151a2\n"
    },
    {
      "commit": "fcf52c6f5e2276c9cf2ca245757a2f0f4b1d7e4e",
      "tree": "46718a7c4f8ea2b172402dcf8295772734f0faf9",
      "parents": [
        "c3c2b28cb70d0935e2dfaa806ec9a43e12e35ccb",
        "873ef0e2302a1581dbcb83b49cefc95dcc41f5a0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 13 01:14:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 13 01:14:34 2017 +0000"
      },
      "message": "Merge \"libandroidfw_tests: package test data correctly\""
    },
    {
      "commit": "873ef0e2302a1581dbcb83b49cefc95dcc41f5a0",
      "tree": "ef00b0878f81644c2cbb37d7f4e5b5a2fc0a5c0c",
      "parents": [
        "df043ee75cffd64017fd5a571b1e79ee763ea62e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 11 16:50:37 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 12 16:02:00 2017 -0700"
      },
      "message": "libandroidfw_tests: package test data correctly\n\n- Convert to use soong, which allows bundling test data with benchmarks.\n- Also separate libandroidfw_benchmarks so that it doesn\u0027t depend\non gtest.\n\nTest: manual\nChange-Id: I45bd222fafa87172c77b7f5bb2a7a89ddca72361\n"
    },
    {
      "commit": "b762f56e6b0ca4b162a964e618ea8e10645b9fb0",
      "tree": "5a08937e365ebfaeb7878a201cdbcc97b725329d",
      "parents": [
        "b43d18baf7f1fe5359d5d47c6e94995cec9b827b",
        "55a3ec923ef6fd1e77df6c607734c10c8ca3fb99"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 12 22:19:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 12 22:19:48 2017 +0000"
      },
      "message": "Merge \"Add missing includes.\""
    },
    {
      "commit": "53966760d7271fd975a73ffa2d2a4d54cfe3e377",
      "tree": "b713cac2bbd6caa1ee0896eed7b2fdece48b2fbd",
      "parents": [
        "60d548786e5521d819c9eadeaa34fcffe36c45ff",
        "e13b58e15b561b1b85788800e0c3af48fa80463e"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Thu Oct 12 22:08:03 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 12 22:08:03 2017 +0000"
      },
      "message": "Merge \"Use new SurfaceFlinger transaction API.\""
    },
    {
      "commit": "55a3ec923ef6fd1e77df6c607734c10c8ca3fb99",
      "tree": "569654ebd10040a4a61ba6597ad8ad8d46d811ab",
      "parents": [
        "1174802b4ce71e414b2e7f4bdc68a78acaa9e14f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 12 13:27:26 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 12 13:27:26 2017 -0700"
      },
      "message": "Add missing includes.\n\nChange-Id: I652b42aa8355e66405d3207e61d577b5ddf9ae17\nExempt-From-Owner-Approval: trivial cleanup\nTest: mma\nBug: None\n"
    },
    {
      "commit": "cd4e159bbf95069a32e51f769a63276bdf324c4d",
      "tree": "f5209bcdb2c1bb340abfbacf84db94e3b8f39b4c",
      "parents": [
        "ff40949f5baee5d5b5e87622256e2bcfa97b29d8",
        "caebafaf94b887c98e75c8bb2fdc5cd5a1c2abcf"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 11 22:56:45 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 11 22:56:45 2017 +0000"
      },
      "message": "Merge \"Add missing includes.\" am: 4be4bb3db7 am: 41c08f49b4 am: e9aaf3c546\nam: caebafaf94\n\nChange-Id: I5ec663813ede4bb794691ecb5e9afc0140accb84\n"
    },
    {
      "commit": "caebafaf94b887c98e75c8bb2fdc5cd5a1c2abcf",
      "tree": "4dd87d885012a384d50c5da939167ebb994e1c40",
      "parents": [
        "54bfe3acddef1c15ed662afa90c2d0791a122d23",
        "e9aaf3c546029b69ff1ca2a5683e5afd60a29a6c"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 11 22:22:04 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 11 22:22:04 2017 +0000"
      },
      "message": "Merge \"Add missing includes.\" am: 4be4bb3db7 am: 41c08f49b4\nam: e9aaf3c546\n\nChange-Id: I41e4375d053ad5aa64bd4ca3a78b23644b2c725b\n"
    },
    {
      "commit": "41c08f49b467e5e8aa291ec4a704a301bd27a6dc",
      "tree": "8391b3c41fd15f13ca3a77b65abe4e68ad72ab1f",
      "parents": [
        "2fbccabbca8b8b21f7fa2ce3e090a82305c3c1c5",
        "4be4bb3db7bf6f0ba39ac88328a7d535a1318944"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 11 21:52:41 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 11 21:52:41 2017 +0000"
      },
      "message": "Merge \"Add missing includes.\"\nam: 4be4bb3db7\n\nChange-Id: Icdae2b63df8e5d61e6acabb6fb85efa28026d535\n"
    },
    {
      "commit": "110e007fb86a0093b339b14b534570cfe7cc5297",
      "tree": "6b9cb53171e67272aa6ff4b132662646aaf5c71b",
      "parents": [
        "7d1789867b989ebcc17c8e1ba2fcf6d0824c5148"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 11 12:41:26 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 11 12:41:33 2017 -0700"
      },
      "message": "Add missing includes.\n\nTest: mma\nBug: None\nChange-Id: Iec8b0a7854091946a4bb6e804c5f4cce39a52b47\n"
    },
    {
      "commit": "974a9c28853d24ff94f000ae9f5c816d9538897b",
      "tree": "5bdd131934bf9febd9b0acffa5a9b18541609145",
      "parents": [
        "af60534c97fd91d283a8171aa82e5cef78f757d8"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Oct 02 18:37:08 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Oct 10 17:16:34 2017 -0700"
      },
      "message": "Implement go/streaming-proto native libs, part 2\n\nImplement ProtoOutputStream.h to write protobuf format data.\n\nUsage of dumping proto:\nProtoOutputStream proto(fd);\n\nproto.write(fieldId, value1); // dump a single value\n\n// start to dump a message:\nlong long token \u003d proto.start(messageFieldId);\nproto.write(nestedField1, nestedValue1);\n...\nproto.end(token);\n\nfieldId will be generated by protoc-cpp plugin(TBD). It is an encoded uint64_t\nvalue, with 0 - 32 bits as its proto number, 33 - 40 bits reserved for\nfield type, int32, bool, string, message, etc. and 41 - 43 bits for\nsingle, repeated or packed type. Currently packed field is not\nsupported.\n\nBug: 65641021\nTest: N/A, need to wait for protoc-cpp plugin and will test in\nincident_helper\nChange-Id: Ic188615b950235aae0edeee4876b78d31feb5619\n"
    },
    {
      "commit": "e13b58e15b561b1b85788800e0c3af48fa80463e",
      "tree": "eef8b2e786148143625a85685057099ec270bd1b",
      "parents": [
        "34e83d28f03432f2447928241886c9c668299061"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Aug 31 14:50:44 2017 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Oct 09 16:52:48 2017 -0700"
      },
      "message": "Use new SurfaceFlinger transaction API.\n\nFor now we reimplement global transactions in the Java side\nJNI layer.\n\nBug: 64815723\nBug: 64816140\nBug: 64815766\nTest: Existing tests pass. go/wm-smoke\nChange-Id: I6c0a7b5e65b1b6cc844ac61f3269629af60a4244\n"
    },
    {
      "commit": "dfa33071066847db5fa8b45ac2e38f99f2f05579",
      "tree": "d29f7e453b61ea3b094f1e1079a818b7b906f477",
      "parents": [
        "4f99ad1e7b192af27da2ddd99b92fd9651dbecb5",
        "2763fb726b1dfdf6b9a0685794ca9fa538322776"
      ],
      "author": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Mon Oct 09 20:56:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 09 20:56:43 2017 +0000"
      },
      "message": "Merge \"Use own enum instead of SkTypeface::Style.\""
    },
    {
      "commit": "2763fb726b1dfdf6b9a0685794ca9fa538322776",
      "tree": "161c21ca7a592c681fe72b0d2598f82bde46bc0e",
      "parents": [
        "34e83d28f03432f2447928241886c9c668299061"
      ],
      "author": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Fri Oct 06 17:36:23 2017 -0400"
      },
      "committer": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Mon Oct 09 18:26:39 2017 +0000"
      },
      "message": "Use own enum instead of SkTypeface::Style.\n\nThe current use of SkTypeface::Style and the naming of\nTypeface::fSkiaStyle are misleading. Neither is used to actually\ninteract with Skia (which no longer uses the type in its API). Instead,\nthis type and field are used to track the values which will be exposed\nthrough the jni layer which match the Android SDK values for the\nconstants on the android.graphics.Typeface type.\n\nThis change allows Skia to hide and eventually remove SkTypeface::Style,\nas this is the last known external user. Additionally this allows\nAndroid an easier path when updating the Typeface API in the future.\n\nTest: refactoring CL. Existing unit tests still pass.\nChange-Id: Ic820105a5b0d98727586fdc4a9a1c45e8ad40ff3\n"
    }
  ],
  "next": "a73b0be1eadd52ad80f8d06b5d5238bffdc67410"
}
