)]}'
{
  "log": [
    {
      "commit": "dea2371e71854bb3212481f39a90a0390bfedc7d",
      "tree": "7f723573754a7e89467ddefaf9dd469d03289a05",
      "parents": [
        "cf07e0d541689da7e75100fb51351c09c4c11c78",
        "b2afa1ede523e54f9eeb93c5e47f5b2f6e8291f5"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 14 06:08:34 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 14 06:08:34 2017 +0000"
      },
      "message": "Merge \"Address some comments on IpManagerTest\"\nam: b2afa1ede5\n\nChange-Id: Ic986c23c693757b8311e0de0c0a94281db67f62d\n"
    },
    {
      "commit": "246bc1f79532a4fb82a17b1678152c6e8fc3d80e",
      "tree": "88ff1559c9634f28d3e4a88e2178bafe8ed54de4",
      "parents": [
        "db4333a2c211802eaf2ee87e5d0b76c93acd84f5"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 14 13:00:27 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 14 13:02:49 2017 +0900"
      },
      "message": "Address some comments on IpManagerTest\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 26991160\nChange-Id: Ib543874188537e31422206d67d1760762a7c85cd\n"
    },
    {
      "commit": "cf07e0d541689da7e75100fb51351c09c4c11c78",
      "tree": "b66383c1b1db8fd60568489dece5428f1751bc38",
      "parents": [
        "921a49f7f8568b9e954fb62007817dbbbdb374be",
        "db4333a2c211802eaf2ee87e5d0b76c93acd84f5"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 14 03:11:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 14 03:11:15 2017 +0000"
      },
      "message": "Merge \"Skeleton of an IpManagerTest\"\nam: db4333a2c2\n\nChange-Id: I5817c2458c222afb85389deaf22b43d245577b2a\n"
    },
    {
      "commit": "aa95ae57ecc5bbc461e42ca44bcc9d78537da4fe",
      "tree": "63059ecf505c13208acbd2d08dc262bd50e4d49e",
      "parents": [
        "7eaa2ad1724997d1a435f2a9dda4fcd0591bf37c"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 14 10:01:58 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 14 10:19:52 2017 +0900"
      },
      "message": "Skeleton of an IpManagerTest\n\nTest: as follows\n    - biult (bullhead)\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 26991160\nChange-Id: Idddddf0c1a7a8d0a8acff8a5526b02a533d5f3ec\n"
    },
    {
      "commit": "260b81aaf2ebd64dff77943ba0870deaf9cfa607",
      "tree": "90eafa3fe5068bec2aa51b48fa8d90ec4aab8bf6",
      "parents": [
        "0501c50040f1ed37391d53825c6bd4e03791b490",
        "33bade08de444d59648bf7b263dca7bf93343607"
      ],
      "author": {
        "name": "Joachim Sauer",
        "email": "jsauer@google.com",
        "time": "Wed Mar 08 17:40:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 08 17:40:13 2017 +0000"
      },
      "message": "Merge \"Renaming Czech Republic to Czechia.\"\nam: 33bade08de\n\nChange-Id: Ie76ebb1bd53eb4993f0d01c7d3b5ba7dae9c6504\n"
    },
    {
      "commit": "33bade08de444d59648bf7b263dca7bf93343607",
      "tree": "3e6147ee15e728be00a3c5a04f43f046e1d0ed08",
      "parents": [
        "769fa0c8811a1471c6d0dc795e40297b9cbe07cd",
        "45ded8f6ba72e3d68fb71a8febafbcee63877017"
      ],
      "author": {
        "name": "Joachim Sauer",
        "email": "jsauer@google.com",
        "time": "Wed Mar 08 17:31:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 08 17:31:27 2017 +0000"
      },
      "message": "Merge \"Renaming Czech Republic to Czechia.\""
    },
    {
      "commit": "b29311bbba54f6bb1de42d7c7914fdd104ca225b",
      "tree": "1a596261ca039613591049fd32fafc67432f7b3c",
      "parents": [
        "12358b4057e9c92003507462fe1d61c33cbe371a",
        "0a11c83016823529c465439f3e25f199dc5cd873"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Mar 08 14:59:26 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 08 14:59:26 2017 +0000"
      },
      "message": "Merge \"Replace usages of littlemock with mockito\"\nam: 0a11c83016\n\nChange-Id: I1456ae3d07d396080a817de01796eefc71230981\n"
    },
    {
      "commit": "9df5d4f715f2ba5670753b78a236ff98eff34cfb",
      "tree": "c96272fef635d0a84b88ee331bd6af0b04fc3b5d",
      "parents": [
        "75dfc5bd910ab5904b0364eacce5ece83ea2c828"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Mar 06 14:56:06 2017 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Mar 07 13:55:52 2017 +0000"
      },
      "message": "Replace usages of littlemock with mockito\n\nLittlemock appears to have been created as an alternative to\nMockito that would work on Android. Given that Mockito does\nnow work on Android and Littlemock has had no activity since\nAug 2012 it seems prudent to switch over to use Mockito instead.\n\nhttps://code.google.com/archive/p/littlemock/\n\nThis is being done as part of the work to upgrade Mockito.\n\nBug: 32912773\nTest: Build and install affected APKs, test using am instrument\nChange-Id: Id0e57880ea66c5681b664bbfb534c96410544665\n"
    },
    {
      "commit": "0f901af9205908a265e774c2a427d8d03373c9f3",
      "tree": "0dcc49e8bce219930c43ae24e4fa02eddfec74bf",
      "parents": [
        "4cf8f7a8cd349821688c7c84339d35448c5bcd67",
        "75dfc5bd910ab5904b0364eacce5ece83ea2c828"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 07 13:33:29 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 07 13:33:29 2017 +0000"
      },
      "message": "Merge \"request{LinkProperties,NetworkCapabilities} no longer needed\"\nam: 75dfc5bd91\n\nChange-Id: I79b9323be242ed5d2bf83962f78c613a465a20b8\n"
    },
    {
      "commit": "465c46d555c867caf40333db197ef97cff75a754",
      "tree": "bc9312faac3b960998e1f797c4e35671ce00d7f2",
      "parents": [
        "ae758b2c7f7fc5e417757d60da1fbe7f38d1316c"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 07 15:25:32 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 07 17:18:06 2017 +0900"
      },
      "message": "request{LinkProperties,NetworkCapabilities} no longer needed\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - manual USB tethering toggling between WiFi and mobile\nBug: 32163131\nChange-Id: I57edf5114b6361f320577c7870e40f8b3cdf74ce\n"
    },
    {
      "commit": "e0a62a4398f7048026548b5f200424d678806fcc",
      "tree": "e2807d5f4b018833b539bf1ba8a587b7c7ab31a3",
      "parents": [
        "dd4bc7c69c57b5e59c262b7d947c30f55048fef0",
        "affbb8b6a9de8fb0839e04786827fad3dc17101f"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 07 06:00:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 07 06:00:09 2017 +0000"
      },
      "message": "Merge \"Always send all available state when calling onAvailable().\"\nam: affbb8b6a9\n\nChange-Id: I81e70fecf060a4103b51084a60a32c78f6219f6b\n"
    },
    {
      "commit": "c75d4fad229899e88f6512636eee9141be4b0951",
      "tree": "d726fb0df9d7836b5a67f8d6c4e51b97f9110ffe",
      "parents": [
        "9324d6513bdc333cc2a05a8f33ba120a322fd566"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Feb 15 19:59:17 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 07 12:57:26 2017 +0900"
      },
      "message": "Always send all available state when calling onAvailable().\n\nThe state that needs to be transferred includes:\n    - NetworkCapabilities\n    - LinkProperties\n    - whether the network is currently suspended\n\nAdditionally:\n    - Rename notifyNetworkCallback() to notifyNetworkAvailable()\n      in order to clarify its real function.\n    - fix previous copy/paste error in unittest\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - USB tethering with mobile and Wi-Fi upstream toggling\nBug: 32163131\nChange-Id: Ib4460bcd5d08863a9feac9e8ab41a238897bb3ea\n"
    },
    {
      "commit": "4cf199383fdd9479aec3b24c37a6b1c88ec58c5d",
      "tree": "cb3a36ffc30cff1a36515e5c8a62a4f7ee61160c",
      "parents": [
        "071dcc02b4dbd58ba043d740b1f053b1c669b112",
        "704520c39290252e2589674afe195affa5c53d94"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Mar 06 12:30:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 06 12:30:05 2017 +0000"
      },
      "message": "Merge \"Revert \"ConnectivityManager: no double NetworkCallback registration\" because oit caused regressions http://b/35955593, http://b/35921499.\"\nam: 704520c392\n\nChange-Id: Ia0ae78f8406b81377491407cf5ef8ca339952def\n"
    },
    {
      "commit": "649e32484e8f29850039565fb4b5be54ef02ed6f",
      "tree": "fb92cfbb220fadbb17e49966d9c915e2c1e177e1",
      "parents": [
        "faa70976b490116323107166f90fdd944c5bdc77"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Mar 06 06:16:51 2017 +0000"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Mar 06 06:16:51 2017 +0000"
      },
      "message": "Revert \"ConnectivityManager: no double NetworkCallback registration\" because oit caused regressions http://b/35955593, http://b/35921499.\n\nThis reverts commit faa70976b490116323107166f90fdd944c5bdc77.\n\nChange-Id: I86c07c113f24753be7c977e6d7f570b99391e1b5\n"
    },
    {
      "commit": "5983a772cbe08441e4eb1337fb3afa7267e9dfa5",
      "tree": "85550e2b2ca0ca6f54ebf6f1143c20263fec05e4",
      "parents": [
        "01cfdb4f3ae025bde7d30b2a1b48ab873187a2d4",
        "06a192fa4929ab46c1cc20ea601cb33bb1deb6ba"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Mar 02 08:04:03 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 02 08:04:03 2017 +0000"
      },
      "message": "Merge \"ConnectivityManager: no double NetworkCallback registration\"\nam: 06a192fa49\n\nChange-Id: I250fa7d3c5e37a66caa41cc898a44bcb18c9a0c4\n"
    },
    {
      "commit": "faa70976b490116323107166f90fdd944c5bdc77",
      "tree": "2132a6cd1009209d4d04cbad213ceea9b672f0db",
      "parents": [
        "2142b14a882c62f442f3442e848c5fb0f85a121f"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Feb 03 15:55:42 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Mar 02 15:19:37 2017 +0900"
      },
      "message": "ConnectivityManager: no double NetworkCallback registration\n\nTest: new test in ConnectivityManagerTest\nBug: 20701525\nChange-Id: I205333d31d43e6e6c7fe704ce63b458065f345ce\n"
    },
    {
      "commit": "47d8385184761631bbd566c3467597538eddd83c",
      "tree": "1c851a537015615f9156254f69749fa64d02ef06",
      "parents": [
        "43fd84a03c38548f8f1c14627f88132e3737edec",
        "dff6c5c30db313fbe4a1b60eea0f5f97ca9c2462"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Mar 01 11:03:08 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 01 11:03:08 2017 +0000"
      },
      "message": "Merge \"Also test for additional NetworkCallback calls\"\nam: dff6c5c30d\n\nChange-Id: I00b3f7be06bde167872d0cdefe940cda5e138846\n"
    },
    {
      "commit": "1d3db327088fc9a17b13892d8e86b6c8e650a8c1",
      "tree": "fa011bcc333dbdedfb231daf2b9c2e46c5456346",
      "parents": [
        "3e64003641c376573f4809aae79febd0187be81e"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Feb 28 16:20:20 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Mar 01 18:24:36 2017 +0900"
      },
      "message": "Also test for additional NetworkCallback calls\n\nSpecifcally:\n    - onCapabilitiesChanged\n    - onLinkPropertiesChanged\n    - onNetworkSuspended\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 32163131\n\nChange-Id: Ie0f7c8ac21313b11980bb335c89ecde6fd8e311c\n"
    },
    {
      "commit": "279a4feb7294bc231e1bfbc662c984c49dbff80e",
      "tree": "7d3dbdd19dbd8f7d914fd3efd946e40864732e8c",
      "parents": [
        "76535e88885881d32016709dbae53e96df238291",
        "35c89886c28eda0d6162c0f8eed217bf0cfa8ed8"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Feb 24 08:15:19 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 24 08:15:19 2017 +0000"
      },
      "message": "Merge \"Update UpstreamNetworkMonitor to use custom Handlers\"\nam: 35c89886c2\n\nChange-Id: I76433822a9b7c124e4b7cfcf2a20cb0e43a60199\n"
    },
    {
      "commit": "b583b03675492280ab87f1eff30c05709cafba23",
      "tree": "a2414a092f2678c379272e624cb20c048564d260",
      "parents": [
        "0743d56e2b291767a33dc0db5a84bd16104ab082"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Feb 22 12:58:24 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Feb 24 13:06:51 2017 +0900"
      },
      "message": "Update UpstreamNetworkMonitor to use custom Handlers\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 32130437\nBug: 32163131\n\nChange-Id: I2bc3f87cdf7fa6392b4750eb8adb4ea33c6a3f43\n"
    },
    {
      "commit": "45ded8f6ba72e3d68fb71a8febafbcee63877017",
      "tree": "d905ca21b45bd7556e8c5c2b8be3f9d2166bb789",
      "parents": [
        "f3f4775a35d0ba972381e2bcc3c4af8d1fb1f857"
      ],
      "author": {
        "name": "Fredrik Roubert",
        "email": "roubert@google.com",
        "time": "Wed Feb 22 22:17:11 2017 +0100"
      },
      "committer": {
        "name": "Fredrik Roubert",
        "email": "roubert@google.com",
        "time": "Thu Feb 23 17:30:14 2017 +0100"
      },
      "message": "Renaming Czech Republic to Czechia.\n\nBug: 34964100\nTest: ?\nChange-Id: Ifbf0a52d15e3d735404be49c6934775589ecdfd6\n"
    },
    {
      "commit": "9355bce0c323632b88620ede174bf023b7381c81",
      "tree": "4c8183db8a19c05388d66a4ca4e14e03e5b52d53",
      "parents": [
        "de021d8162f9c69ce8042da21ce1095a326ef02a",
        "9c2b6afa2fe1429fc5e839ed6349dfffe94057a2"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Feb 17 00:18:35 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 17 00:18:35 2017 +0000"
      },
      "message": "Merge \"IP connectivity metrics: delete obsolete logger service\" am: 37e3f22c2e am: c54962a4bd\nam: 9c2b6afa2f\n\nChange-Id: I5f8cd508812d9532778c2f1f019308a4b8d8ee33\n"
    },
    {
      "commit": "9c2b6afa2fe1429fc5e839ed6349dfffe94057a2",
      "tree": "d0be4f48e4578a871b9c6e2bd6a1f4a85b3f7c23",
      "parents": [
        "7bf598cbd9f7f57742f813ca0b576ffd732d5b3a",
        "c54962a4bdfed6f5e9f47ae74adffa4b5faa6c77"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Feb 17 00:09:11 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 17 00:09:11 2017 +0000"
      },
      "message": "Merge \"IP connectivity metrics: delete obsolete logger service\" am: 37e3f22c2e\nam: c54962a4bd\n\nChange-Id: Iccc3ee97bd2ac267b312c6c7d9269ac02a2bd68e\n"
    },
    {
      "commit": "c54962a4bdfed6f5e9f47ae74adffa4b5faa6c77",
      "tree": "4a612461162b46fbb15e747d3dc61f7964506915",
      "parents": [
        "db0803b4e815f3e4e180c0502912dbbca42e1710",
        "37e3f22c2eae225d360f37cca5e6070faf5dc040"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Feb 17 00:00:14 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 17 00:00:14 2017 +0000"
      },
      "message": "Merge \"IP connectivity metrics: delete obsolete logger service\"\nam: 37e3f22c2e\n\nChange-Id: Ib335bc5e19c2c703d23267bf2835fc89fcf5a957\n"
    },
    {
      "commit": "37e3f22c2eae225d360f37cca5e6070faf5dc040",
      "tree": "8af9eedb0d7c3e56e977c61f30bceb1cf75b0ce5",
      "parents": [
        "05dfd10254741b0a7f66504addf8a0f1d356fd4c",
        "d22edc28f5c8417f591a913c0a97e718ae988a6f"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Feb 16 23:52:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 16 23:52:13 2017 +0000"
      },
      "message": "Merge \"IP connectivity metrics: delete obsolete logger service\""
    },
    {
      "commit": "d22edc28f5c8417f591a913c0a97e718ae988a6f",
      "tree": "4cba4b7bc425e77a13338635c0bfe50abadfdd5a",
      "parents": [
        "ed6d75d5f31dd69d2c91cd82cddd5ee1db49b2c7"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Sat Feb 11 02:15:04 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Feb 15 17:12:58 2017 +0900"
      },
      "message": "IP connectivity metrics: delete obsolete logger service\n\nTest: - runtest frameworks-net\n      - manually verified $ adb shell dumpsys connmetrics\nBug: 32648597\n\nChange-Id: I69f7dee5871508398d7f7209658a00c768e2d18e\n"
    },
    {
      "commit": "d850804723992ce5e6e3e484b49fe8dacaf8e19b",
      "tree": "1b55b74415ace7455a99790f7a2ccefe1b146400",
      "parents": [
        "ea7e8f73522ca2f34350dcfd3c3e064aa16a8e64",
        "8055dafb08c53bc23d4bdf9d43b35e3d89c28c3d"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Feb 14 09:49:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 14 09:49:56 2017 +0000"
      },
      "message": "Merge \"Verify duplicate upstream notifications are ignored\" am: 3d57eb0bdc am: 02e71f6245\nam: 8055dafb08\n\nChange-Id: I1e10adfba2ebb9f52e86d8b35f3d0b87134c0e91\n"
    },
    {
      "commit": "8055dafb08c53bc23d4bdf9d43b35e3d89c28c3d",
      "tree": "75559ff09bd5a3754e1ffe8a22e898e2ee1f409f",
      "parents": [
        "663ec79cb2aea77b4ed4eb19584177f5c699fc52",
        "02e71f62457c18c301306aff3dbe25c3ad82c556"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Feb 14 09:45:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 14 09:45:56 2017 +0000"
      },
      "message": "Merge \"Verify duplicate upstream notifications are ignored\" am: 3d57eb0bdc\nam: 02e71f6245\n\nChange-Id: I0e62e4f6f371aa43eae1a0e5c62787c4e84ddd9a\n"
    },
    {
      "commit": "02e71f62457c18c301306aff3dbe25c3ad82c556",
      "tree": "ca80d5f68b663e6d9c90d9f9727d7f98596463fb",
      "parents": [
        "76e6f790db5972a38529215fdb55e9f86b06c783",
        "3d57eb0bdc94060a046ea5063628ca69ed548b66"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Feb 14 09:41:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 14 09:41:53 2017 +0000"
      },
      "message": "Merge \"Verify duplicate upstream notifications are ignored\"\nam: 3d57eb0bdc\n\nChange-Id: Iff84a1a12714047b20408f03e3bb2252a463b74b\n"
    },
    {
      "commit": "624bf3d7f66e496952c5ae8917dc785676921c99",
      "tree": "c63017f3447819dad1db99e3f663f568a486927b",
      "parents": [
        "ed6d75d5f31dd69d2c91cd82cddd5ee1db49b2c7"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Feb 14 15:55:00 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Feb 14 15:55:57 2017 +0900"
      },
      "message": "Verify duplicate upstream notifications are ignored\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest .../tethering/TetherInterfaceStateMachineTest.java passes\nBug: 32163131\n\nChange-Id: I3c097d766fe4c416a8e3f02640809fe1199c6ef2\n"
    },
    {
      "commit": "ea7e8f73522ca2f34350dcfd3c3e064aa16a8e64",
      "tree": "b9e3a227ad9c62522a7020791666835fc4a60778",
      "parents": [
        "fa207eb889c91bb289e1b3341a910bcb7071b8df",
        "663ec79cb2aea77b4ed4eb19584177f5c699fc52"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Feb 14 06:25:47 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 14 06:25:47 2017 +0000"
      },
      "message": "Merge \"Cleanup in the face of upstream error\" am: ed6d75d5f3 am: 76e6f790db\nam: 663ec79cb2\n\nChange-Id: Ib726fe85b816eccbc0beab555873b77f3454bc64\n"
    },
    {
      "commit": "663ec79cb2aea77b4ed4eb19584177f5c699fc52",
      "tree": "77068881555781618df471db89c8e5fdf4e7f3a3",
      "parents": [
        "9d1be09462d5571c8ce195525805ef928b8204b8",
        "76e6f790db5972a38529215fdb55e9f86b06c783"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Feb 14 06:21:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 14 06:21:44 2017 +0000"
      },
      "message": "Merge \"Cleanup in the face of upstream error\" am: ed6d75d5f3\nam: 76e6f790db\n\nChange-Id: I097318f3edc5257288d582a0f17744e1f984856c\n"
    },
    {
      "commit": "76e6f790db5972a38529215fdb55e9f86b06c783",
      "tree": "0bb470dba7f7c881bd882577a75dced33ee8c365",
      "parents": [
        "18b3a7f586c6e1f2be37792f54ef2d99315121c9",
        "ed6d75d5f31dd69d2c91cd82cddd5ee1db49b2c7"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Feb 14 06:17:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 14 06:17:38 2017 +0000"
      },
      "message": "Merge \"Cleanup in the face of upstream error\"\nam: ed6d75d5f3\n\nChange-Id: If8dbf882bd8c4a8d53ae026d8f83a00a52590830\n"
    },
    {
      "commit": "8ea45483fc59ef63851a64640ed1bb18c09f7ea9",
      "tree": "86307cb74e2023e56019eb0f8b9a219633be6e15",
      "parents": [
        "fb19d8d7c142aae0aaa9782db145fee072071fbf"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Feb 13 17:28:53 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Feb 14 12:20:39 2017 +0900"
      },
      "message": "Cleanup in the face of upstream error\n\nIf either enableNat() or startInterfaceForwarding() fail, be sure\nto cleanup any commands that might have succeeded.\n\nMost of this change is a refactoring of cleanupUpstreamIface() into\ntwo methods, one of which (cleanupUpstreamInterface()) is reused\nin error handling scenarios.\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest -x .../tethering/TetherInterfaceStateMachineTest.java passes\nBug: 32031803\nBug: 32163131\n\nChange-Id: Ia4d56e03beeab1908d8b8c2202e94992f1aa58a4\n"
    },
    {
      "commit": "60d14c429b830431ff57cda509218797728d96e4",
      "tree": "1975b995ac7425e1da18a2900506522f7dc8c4f0",
      "parents": [
        "912a5f054cc4f906c941cfd7a276d356b021d32d",
        "3de5971b406888557860c9f17da2bc268edcc7f0"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Feb 13 12:08:11 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Feb 13 12:08:11 2017 +0000"
      },
      "message": "Merge \"Add test coverage for cleanup bug to be fixed.\" am: 89e6bf0532 am: 0cca15ff88\nam: 3de5971b40\n\nChange-Id: I470c481a0eebc9cadf134c73ece08803927f4ca2\n"
    },
    {
      "commit": "3de5971b406888557860c9f17da2bc268edcc7f0",
      "tree": "17b92d481746c514754b09cd87b7de71a4285590",
      "parents": [
        "8100f549bffa10c8f60e1648b03d621cfc8aae72",
        "0cca15ff88d94a55a703032e2993329f06136c0e"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Feb 13 12:02:48 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Feb 13 12:02:48 2017 +0000"
      },
      "message": "Merge \"Add test coverage for cleanup bug to be fixed.\" am: 89e6bf0532\nam: 0cca15ff88\n\nChange-Id: Ib5d1a6d6616b99a9e4f7cf0286ebc0a11d62bff8\n"
    },
    {
      "commit": "0cca15ff88d94a55a703032e2993329f06136c0e",
      "tree": "4bcb385097093a3cc63132105d3df14067f3f056",
      "parents": [
        "549c3fc0da92a7ad4bace45765558695d49625bb",
        "89e6bf0532d6b8288dea51b6af8bb0856dc3642b"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Feb 13 11:57:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Feb 13 11:57:37 2017 +0000"
      },
      "message": "Merge \"Add test coverage for cleanup bug to be fixed.\"\nam: 89e6bf0532\n\nChange-Id: I33347c8fc2bec5660b8e9c14a316f6d14a6cf8b1\n"
    },
    {
      "commit": "a954be956315e6d25a63e961fc9befe9916e1cbd",
      "tree": "24dc642ec9f2d43b813ccb735129f975c592b0cf",
      "parents": [
        "e690e0178caa4d352694f1b3bab303e67126fb04"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Feb 13 17:12:02 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Feb 13 17:38:34 2017 +0900"
      },
      "message": "Add test coverage for cleanup bug to be fixed.\n\nThe test calls that need to pass but do not currently are commented out.\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest -x .../tethering/TetherInterfaceStateMachineTest.java passes\nBug: 32031803\nBug: 32163131\n\nChange-Id: I68ed476920bef882f353d8e8a54c72120bc27002\n"
    },
    {
      "commit": "c700509ade0e0c59333b4f7f90ee209a9380ada3",
      "tree": "31e6013e2ac932a64aaa110b47780e5b97e28274",
      "parents": [
        "814a59ba829642d09b6d1eaf9bcf06ee44bffad4",
        "7196e935a8eb293cf11e54d052866e3ed500c073"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Feb 02 07:32:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 07:32:09 2017 +0000"
      },
      "message": "Merge \"Add ConnectivityManager.networkCapabilitiesForType()\" am: c313123afe am: 6f32aa0259\nam: 7196e935a8\n\nChange-Id: I2ab05143299f13012dc2a88efca52160e08c6d97\n"
    },
    {
      "commit": "7196e935a8eb293cf11e54d052866e3ed500c073",
      "tree": "c8bb47c1c85b97febba113fd644cf668fb3ee811",
      "parents": [
        "7b39349792b6f32c9349307033d7c11563d86b5f",
        "6f32aa0259c5692ea896018ce98065160549557e"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Feb 02 07:27:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 07:27:13 2017 +0000"
      },
      "message": "Merge \"Add ConnectivityManager.networkCapabilitiesForType()\" am: c313123afe\nam: 6f32aa0259\n\nChange-Id: I6828bc3bb094ca8597ca2d8538045758638c374f\n"
    },
    {
      "commit": "6f32aa0259c5692ea896018ce98065160549557e",
      "tree": "16a26f927f6c33dfda3d8d8d65c9a81bbb3aba7e",
      "parents": [
        "6236f49f0ef8d15ff3fc1d68d2480769ca71ac9f",
        "c313123afe03f9cbc48666e9e3328ff4846a1785"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Feb 02 07:22:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 07:22:05 2017 +0000"
      },
      "message": "Merge \"Add ConnectivityManager.networkCapabilitiesForType()\"\nam: c313123afe\n\nChange-Id: I0ad50fbf38f11b383fd889dc598cfddd47051477\n"
    },
    {
      "commit": "c313123afe03f9cbc48666e9e3328ff4846a1785",
      "tree": "37c27693239bc2cc1aeab5c6803314f40f8e4a73",
      "parents": [
        "05550d9ed876eeae909190728bf6cc3ffdb88dd9",
        "35bf06c968ecbae502efd9cfb13fff9b7ddf9d6a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 02 07:15:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 02 07:15:05 2017 +0000"
      },
      "message": "Merge \"Add ConnectivityManager.networkCapabilitiesForType()\""
    },
    {
      "commit": "2ebea210749dc2f035111266b61bcffd94556f9b",
      "tree": "6174a28b28b6d672c5cd32a4ab065f4dcb4d8175",
      "parents": [
        "a843ab955ced068ff8baded50be0a94f766320c9",
        "d85f448274be6e6ef9e6449371849ad281796686"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Feb 02 05:25:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 05:25:05 2017 +0000"
      },
      "message": "Merge \"Add test for repeated calls to registerMobileUpstreamRequest()\" am: 603eefd5d5 am: 180a3d07a8\nam: d85f448274\n\nChange-Id: Ia629aa5dbdf10566c28525d9a05b096482db3f2d\n"
    },
    {
      "commit": "d85f448274be6e6ef9e6449371849ad281796686",
      "tree": "7f82c96c5de1b8b6ebb4e579e603f8adf6518c87",
      "parents": [
        "3ee26841fdb27cf698f84f8847a1d26d260eb015",
        "180a3d07a8fffa01171e94a7361fee7bda70d9d9"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Feb 02 05:20:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 05:20:05 2017 +0000"
      },
      "message": "Merge \"Add test for repeated calls to registerMobileUpstreamRequest()\" am: 603eefd5d5\nam: 180a3d07a8\n\nChange-Id: I9f80a3ff713b4b00136808051a717509f600bb9a\n"
    },
    {
      "commit": "180a3d07a8fffa01171e94a7361fee7bda70d9d9",
      "tree": "76ef3216dd1ecbdc033f8e035e4ed12a12bd0e5b",
      "parents": [
        "4ede371d80fcf016c6074c95ef1b8d029a5b7c2a",
        "603eefd5d5c1dbb359a65cf8032ecdd94040cef9"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Feb 02 05:15:23 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 05:15:23 2017 +0000"
      },
      "message": "Merge \"Add test for repeated calls to registerMobileUpstreamRequest()\"\nam: 603eefd5d5\n\nChange-Id: I6b2a0d6df70df028ef9b8ff5d689c5a627d8daf8\n"
    },
    {
      "commit": "35bf06c968ecbae502efd9cfb13fff9b7ddf9d6a",
      "tree": "b7ed0126a312db06a3ef901840a4924eee6c605f",
      "parents": [
        "9be24a30404b1ee69140fc22a39e831788fa5947"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jan 26 18:08:28 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Feb 02 11:07:59 2017 +0900"
      },
      "message": "Add ConnectivityManager.networkCapabilitiesForType()\n\nThis static method returns a NetworkCapabilities instance with\ntransports and capabilities set according to the given legacy type.\n\nAlso:\n    - add NetworkRequest.Builder.setCapabilities(), to be able to use\n      the NetworkCapabilities instances returned from the above\n    - update UpstreamNetworkMonitor to make immediate use of this\n\nTest: as follows\n    - build (bullhead)\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - WiFi to DUN upstream tethering works\nBug: 32163131\n\nChange-Id: Idfe1ddd2815c355cbf27cf29eb0e3de177de84e9\n"
    },
    {
      "commit": "7462f467c11536337ea6ab582001551d49f6f06a",
      "tree": "4f9714c1f2165ba744f326c245a9674a82cb1f86",
      "parents": [
        "2ac992fcad6deeee91b46f066cda192a8dded3dc"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jan 23 19:05:28 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Feb 01 21:30:15 2017 +0900"
      },
      "message": "Add test for repeated calls to registerMobileUpstreamRequest()\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest framework-net passes\nBug: 32163131\n\nChange-Id: I6d2519601b7a9dcfda2917118214a7ceb9dbbb7f\n"
    },
    {
      "commit": "6e7f7dc64347de04292b58823846532806371924",
      "tree": "ec3b238b4d1157f06d391d6c7c8fe982a7afa63e",
      "parents": [
        "4fc1296cef53c0c9599d1f3d81f0f65d2a839f44",
        "67d6d4195438ac7b526078226e6f19615af0f103"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 03:01:52 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 03:01:52 2017 +0000"
      },
      "message": "ConnectivityServiceTest: remove remaining poll loops. am: d2706127d0 am: 54e9050710\nam: 67d6d41954\n\nChange-Id: I31681e1248721704a9b792962a2ef5955e375e93\n"
    },
    {
      "commit": "4fc1296cef53c0c9599d1f3d81f0f65d2a839f44",
      "tree": "a0a8d50a3c5e7582358fe808c8b1b545ae55aab9",
      "parents": [
        "d526434f0559684a7089a5486df3c08bcf948b7a",
        "90babed246186401aebe29e3385131938a036f63"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 03:00:41 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 03:00:41 2017 +0000"
      },
      "message": "Remove assertEventuallyTrue as it\u0027s unnecessary. am: 30145d755c am: 90a70cac26\nam: 90babed246\n\nChange-Id: Ib16f54aeaa783a6e26a9d80e61388cbd9ecd9bd3\n"
    },
    {
      "commit": "d526434f0559684a7089a5486df3c08bcf948b7a",
      "tree": "0e82826be65fcee4635a4caf17b19ab5c149b047",
      "parents": [
        "8e3718459bfee99c433a01215170080657defca5",
        "338241de943f614d504f7771b12883494db5d0db"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 02:59:42 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 02:59:42 2017 +0000"
      },
      "message": "Rename AvoidBadWifiTracker to MultinetworkPolicyTracker am: 58ebe1c6f1 am: 0bc8070fce\nam: 338241de94\n\nChange-Id: I91f1338f3488cfc60eef0c2147aa7b1d61107cdd\n"
    },
    {
      "commit": "8e3718459bfee99c433a01215170080657defca5",
      "tree": "a2d9bead5aa98653ee1083907f7a42ed2681d4d3",
      "parents": [
        "28f9de475f5285f08911ed1e41b7c08c29a7391e",
        "943808385af9a9abf28f6c52b5b4ee177f805ece"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 02:58:24 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 02:58:24 2017 +0000"
      },
      "message": "Attempt to make waitForIdleHandler reliable. am: ae3ce81cc3 am: 8780a8afeb\nam: 943808385a\n\nChange-Id: I2369fbd693b467283232f47703fd471c8ff60c1f\n"
    },
    {
      "commit": "67d6d4195438ac7b526078226e6f19615af0f103",
      "tree": "23a36537aaf5adf8f665c1211114c8d480d7690a",
      "parents": [
        "90babed246186401aebe29e3385131938a036f63",
        "54e905071092a8f7c5fafa665e6205d0ad856cc5"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 02:49:23 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 02:49:23 2017 +0000"
      },
      "message": "ConnectivityServiceTest: remove remaining poll loops. am: d2706127d0\nam: 54e9050710\n\nChange-Id: I06815166fe9ab4b7d6ab580a9eda5304067f9f91\n"
    },
    {
      "commit": "90babed246186401aebe29e3385131938a036f63",
      "tree": "2c731655a522f47a42cc234490ca79d147250d75",
      "parents": [
        "338241de943f614d504f7771b12883494db5d0db",
        "90a70cac26b383dc4af40481a6ed688abe616da7"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 02:48:10 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 02:48:10 2017 +0000"
      },
      "message": "Remove assertEventuallyTrue as it\u0027s unnecessary. am: 30145d755c\nam: 90a70cac26\n\nChange-Id: I7f6d543a3d05b0b165adc7a7c3938c7081c3f778\n"
    },
    {
      "commit": "338241de943f614d504f7771b12883494db5d0db",
      "tree": "313f082151a3c5700c83e755d3854f6a9738037e",
      "parents": [
        "943808385af9a9abf28f6c52b5b4ee177f805ece",
        "0bc8070fcea1b9e09271e38e4f4019148693524d"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 02:47:16 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 02:47:16 2017 +0000"
      },
      "message": "Rename AvoidBadWifiTracker to MultinetworkPolicyTracker am: 58ebe1c6f1\nam: 0bc8070fce\n\nChange-Id: I0ff0169ebc5e53cc9f57f224225fb0c93dc241ed\n"
    },
    {
      "commit": "943808385af9a9abf28f6c52b5b4ee177f805ece",
      "tree": "eb8804041f25a1b8fb7a0b720ad4d0a076709891",
      "parents": [
        "31669e892444cd38c7ec4be07dd62792a2e52563",
        "8780a8afebf5969881a92609e7f43323818404f0"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 02:45:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 02:45:55 2017 +0000"
      },
      "message": "Attempt to make waitForIdleHandler reliable. am: ae3ce81cc3\nam: 8780a8afeb\n\nChange-Id: I72c03d3686858631aefdf96e13e8033f27788f8c\n"
    },
    {
      "commit": "54e905071092a8f7c5fafa665e6205d0ad856cc5",
      "tree": "378d1ded9d895316b3b569881e58b23d89776bf7",
      "parents": [
        "90a70cac26b383dc4af40481a6ed688abe616da7",
        "d2706127d019898d0a14dca1ce818ac44ced1bee"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 02:39:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 02:39:30 2017 +0000"
      },
      "message": "ConnectivityServiceTest: remove remaining poll loops.\nam: d2706127d0\n\nChange-Id: I675096683c8ed4bc0e540491c0ff6aa828114313\n"
    },
    {
      "commit": "90a70cac26b383dc4af40481a6ed688abe616da7",
      "tree": "32ac6d99fb28da9cc04075890ece78b2529294d5",
      "parents": [
        "0bc8070fcea1b9e09271e38e4f4019148693524d",
        "30145d755cd32c41b3e4032c89cb556d0719b740"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 02:38:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 02:38:30 2017 +0000"
      },
      "message": "Remove assertEventuallyTrue as it\u0027s unnecessary.\nam: 30145d755c\n\nChange-Id: Id574b27b40e35fbccac49910867e9735c03118d4\n"
    },
    {
      "commit": "0bc8070fcea1b9e09271e38e4f4019148693524d",
      "tree": "9afea5f8612d5188625e19b1a7ac6b664180df02",
      "parents": [
        "8780a8afebf5969881a92609e7f43323818404f0",
        "58ebe1c6f1ef7a686eaa4f3ad3ff991c28e2bc2a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 02:37:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 02:37:31 2017 +0000"
      },
      "message": "Rename AvoidBadWifiTracker to MultinetworkPolicyTracker\nam: 58ebe1c6f1\n\nChange-Id: I7615c9128deed7011eb9ab6f2efdcfe2e237a1a5\n"
    },
    {
      "commit": "8780a8afebf5969881a92609e7f43323818404f0",
      "tree": "41caed2602f2b3edf51e8e9aaf583891e2ceb465",
      "parents": [
        "71a4792147bcf6bf855ab33617f341018ccca9a6",
        "ae3ce81cc350556b923da3d3d759cf204621aa12"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 01 02:36:22 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 01 02:36:22 2017 +0000"
      },
      "message": "Attempt to make waitForIdleHandler reliable.\nam: ae3ce81cc3\n\nChange-Id: Id7e23c3a2c885ff239efa577a8d366d3df6ca9a2\n"
    },
    {
      "commit": "d2706127d019898d0a14dca1ce818ac44ced1bee",
      "tree": "1e939fec882e123cfdd162c4fd6a1e42259c08fc",
      "parents": [
        "30145d755cd32c41b3e4032c89cb556d0719b740"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Jan 30 17:45:49 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 31 15:44:23 2017 +0900"
      },
      "message": "ConnectivityServiceTest: remove remaining poll loops.\n\nAll the tests are now asynchronous. The only remaining uses of\nThread.sleep() are in the tests that check for NetworkRequest\ntimeouts.\n\nTest: ConnectivityServiceTest passes 100 times in a row\nBug: 32561414\nChange-Id: If420bd66c692a90d5031ee06a888a8cc3b4398a8\n"
    },
    {
      "commit": "30145d755cd32c41b3e4032c89cb556d0719b740",
      "tree": "cb17af4aaf6841d7b0f2a39936b8aa01325de8b7",
      "parents": [
        "58ebe1c6f1ef7a686eaa4f3ad3ff991c28e2bc2a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 27 18:46:03 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 31 15:42:58 2017 +0900"
      },
      "message": "Remove assertEventuallyTrue as it\u0027s unnecessary.\n\nThe calls in testAvoidBadWifi are no longer necessary now that\nwaitForIdle is reliable, and the calls in testPacketKeepalives\nare replaced with a wait for the NetworkAgent to disconnect.\n\nTest: ConnectivityServiceTest passes 100 times in a row.\nBug: 32561414\nChange-Id: Icbb161ca6e343bd14764a1c9ccfdd14b6cd6803f\n"
    },
    {
      "commit": "58ebe1c6f1ef7a686eaa4f3ad3ff991c28e2bc2a",
      "tree": "f0386f7bd2d719263f549b8217bd61d092de33f6",
      "parents": [
        "ae3ce81cc350556b923da3d3d759cf204621aa12"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 24 09:41:36 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 31 15:42:57 2017 +0900"
      },
      "message": "Rename AvoidBadWifiTracker to MultinetworkPolicyTracker\n\nRename the class and ensure that all code related to bad wifi\navoidance has names that reflect its purpose.  This will allow us\nto reuse most of the the code for other purposes in future CLs.\n\nTest: runtest frameworks-net passes\nBug: 34630278\nChange-Id: Ida190e5a79e7a12f4eec07e1a3e4d9d138e83bcd\n"
    },
    {
      "commit": "ae3ce81cc350556b923da3d3d759cf204621aa12",
      "tree": "06dcec98b135b1087317b1d2c2a72b322230c9d1",
      "parents": [
        "c2e8588396ef713885f4b903a6e079218a135b3b"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jan 25 23:09:07 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 31 15:42:17 2017 +0900"
      },
      "message": "Attempt to make waitForIdleHandler reliable.\n\nThe current implementation of IdleableHandlerThread is based on\nthe assumption that MessageQueue#isIdle will return true iff the\nmessage loop has finished processing its messages.\n\nUnfortunately, this is incorrect: isIdle returns true iff are no\nmore messages waiting in the queue; thus, it will also return\ntrue while it is processing the last message before going idle.\n\nInstead of using idle handlers, take the simpler approach of\nposting a runnable to the message loop and waiting for it to\nbe processed.\n\nTest: see other CLs in this patch series\nBug: 31479480\nChange-Id: Iae75781f067b762c8653a488a5e4d5ee0c789e01\n"
    },
    {
      "commit": "488ffdc784228d5a5dd3ed0956d6b13746e4db51",
      "tree": "9df162f826ebb920ce83de7e5575ce684be08ab8",
      "parents": [
        "4717b99a9dbf1c24585eb24f807ad180709bce50",
        "811f6c86da7e7864300b5b67507ea5bdd0cde7e4"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jan 31 06:11:35 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 31 06:11:35 2017 +0000"
      },
      "message": "Merge \"ApfTest: fix flaky testApfFilterRa.\" am: c2e8588396 am: 60e1375f79\nam: 811f6c86da\n\nChange-Id: Idd738e1a4c9f0a865f5b84270535a94c492341ce\n"
    },
    {
      "commit": "811f6c86da7e7864300b5b67507ea5bdd0cde7e4",
      "tree": "da8395dee583a7b1cc18ddfbfbeaa6344d8efc5f",
      "parents": [
        "3e8f90a62bc7eb2be57ada8186d3b9c955c61280",
        "60e1375f79845b3e4ef3e4c3a823b670fa7e26da"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jan 31 06:07:08 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 31 06:07:08 2017 +0000"
      },
      "message": "Merge \"ApfTest: fix flaky testApfFilterRa.\" am: c2e8588396\nam: 60e1375f79\n\nChange-Id: Ied249e20ffc80728d20ac1e5442d45f5cb767776\n"
    },
    {
      "commit": "60e1375f79845b3e4ef3e4c3a823b670fa7e26da",
      "tree": "9c4b0c860d1208b07574b06bdeb5c4a7293a1dea",
      "parents": [
        "155d9ba6fcd99f261808ac43d9bba3e00c5d3ec0",
        "c2e8588396ef713885f4b903a6e079218a135b3b"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jan 31 06:01:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 31 06:01:58 2017 +0000"
      },
      "message": "Merge \"ApfTest: fix flaky testApfFilterRa.\"\nam: c2e8588396\n\nChange-Id: I79c3ec0ba35973cc0dd32709447b2cc30e790d08\n"
    },
    {
      "commit": "4456f33a958a7f09e608399da83c4d12b2e7d191",
      "tree": "2b5de933fb70bb8a34ae5d257e6332cc7522db54",
      "parents": [
        "c66327149a8b6666fdfee02a2f0feb48ef7086e3"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Dec 19 14:50:52 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jan 31 11:13:44 2017 +0900"
      },
      "message": "ApfTest: fix flaky testApfFilterRa.\n\ntestApfFilterRa is failing with probabiliy 1/10 ~ 1/15 on the following\nassert: assertDrop(program, packet, lifetime/6), for lifetime values\nthat are multiple of 6, where 6 is the hardcoded fraction of RA lifetime\nto filter in ApfFilter.java.\n\nWhen the lifetime is not a multiple of 6, the remainder of 1 to 5\nseconds gives enough margin so that when the APF program is simulated\nthe faked lifetime of the program is less than lifetime/6 away and the\npacket is dropped.\n\nHowever for lifetimes which are exact multiples of 6, this margin is\nalways 0s and that result in nondeterminism in the result. This is\nconsistent with the obervation that the only failed assert was for a\nlifetime of 300s, the only multiple of 6.\n\nThis can be observed by detecting the age limit at which the filter\nstops dropping packet oscillating between lifetime/6 and lifetime/6 + 1\nfor lifetimes which are multiple of 6.\n\nThis patch fixes the flakyness by freezing the flow of time in tests so\nthat the expected filter age threshold is consistent and stable.\n\nTest: no failure observed in 1000 runs.\nBug: 32561414\nChange-Id: I5251d047039f34b82ce8a5d20ae46563e1e0cce8\n"
    },
    {
      "commit": "8aba32468a64ad8cfdb018f6ace5d1e835e4c695",
      "tree": "c28aa4b205d478b819b190a52c264c1354f34686",
      "parents": [
        "83b3c5994e2b19ea867c548377e0532fcb49f3a0",
        "118c0c9e7dc60c7e7bb83e525c2b2b1c9c021ceb"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Jan 27 19:33:16 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 19:33:16 2017 +0000"
      },
      "message": "Merge \"Switch to listening for all network changes.\" am: 085ffa76fa am: 46f8abd229\nam: 118c0c9e7d\n\nChange-Id: I82ac34a2f846f4ebe164e4190716559186204934\n"
    },
    {
      "commit": "118c0c9e7dc60c7e7bb83e525c2b2b1c9c021ceb",
      "tree": "1f5ac01b7b2f5ded5ef4e130da6048b27ccc8cd6",
      "parents": [
        "221e58fe9561c5f942c029d7ad6466a1a6dc4bc0",
        "46f8abd229dd9b9b795c3e5b30286a530f43fd3d"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Jan 27 19:20:19 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 19:20:19 2017 +0000"
      },
      "message": "Merge \"Switch to listening for all network changes.\" am: 085ffa76fa\nam: 46f8abd229\n\nChange-Id: I28ad47a86ea534c5b675a530ffbaac415fd60b25\n"
    },
    {
      "commit": "46f8abd229dd9b9b795c3e5b30286a530f43fd3d",
      "tree": "30272925467be8a9b05524579a69c10253fb61e6",
      "parents": [
        "b0f03a64ea7e897bd93dc2e4e6b2e211f8004623",
        "085ffa76fa3074e5e3809780c926c2b23c0416af"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Jan 27 19:14:39 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 19:14:39 2017 +0000"
      },
      "message": "Merge \"Switch to listening for all network changes.\"\nam: 085ffa76fa\n\nChange-Id: I87157788c5c2dc1015f9518c1c443256cfd30bae\n"
    },
    {
      "commit": "085ffa76fa3074e5e3809780c926c2b23c0416af",
      "tree": "1d8f48560734a2f7aa0231b585d98c09a21dee40",
      "parents": [
        "e924640c4b82c705e42e766681eff76175e8a3dd",
        "d2ec3919cb87931b2c143d0c1b98caf37039d882"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 27 19:07:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 19:07:08 2017 +0000"
      },
      "message": "Merge \"Switch to listening for all network changes.\""
    },
    {
      "commit": "5bad599e2ebb87616d4f63836fae4dbb1cbdb715",
      "tree": "259d449ee1ddee2cc0dd5d52cd5b69b1866c57bf",
      "parents": [
        "420ad9748a8522e99e4c041fccb629d469cbf6c9",
        "c620e64f614f81abfa4e925b34f4b7d12d4e9fbe"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 27 10:00:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 10:00:06 2017 +0000"
      },
      "message": "Merge \"ConnectivityServiceTest: fix flaky tests\" am: b8bbd30203 am: 8fea8e5bbd\nam: c620e64f61\n\nChange-Id: Iaa1ab50a323133cadfa4f39440fce982cde8d1fe\n"
    },
    {
      "commit": "c620e64f614f81abfa4e925b34f4b7d12d4e9fbe",
      "tree": "4032735d6c53cb7d3166ffe0e01496828fe7a12e",
      "parents": [
        "f8cff961c84ceab7eaab5ddae15d7d4376bd902a",
        "8fea8e5bbd3493b33ca083927dd22c7583221b1a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 27 09:55:39 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 09:55:39 2017 +0000"
      },
      "message": "Merge \"ConnectivityServiceTest: fix flaky tests\" am: b8bbd30203\nam: 8fea8e5bbd\n\nChange-Id: I66f2c2174c2895224724245c1b3d815da1678955\n"
    },
    {
      "commit": "420ad9748a8522e99e4c041fccb629d469cbf6c9",
      "tree": "386504a60a5077e56cede9a5911acf00654a466e",
      "parents": [
        "13df9a8f3b5863b196bf24b4d51073ea4f489684",
        "f8cff961c84ceab7eaab5ddae15d7d4376bd902a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 27 09:55:36 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 09:55:36 2017 +0000"
      },
      "message": "Merge \"ConnectivityServiceTest: remove flaky waitForIdle test.\" am: be80577f5b am: 0c659d2065\nam: f8cff961c8\n\nChange-Id: I1d3707b4bc2ae00ca0fad1c3ec7e6ca859fcdd16\n"
    },
    {
      "commit": "f8cff961c84ceab7eaab5ddae15d7d4376bd902a",
      "tree": "18db84e8cc2a22cf13309256b4327c8785adf60e",
      "parents": [
        "22cd53384c344c2ea53f21f5bb079dff888e4602",
        "0c659d20654c15d97160b7ae14c1cb9c90802f30"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 27 09:51:39 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 09:51:39 2017 +0000"
      },
      "message": "Merge \"ConnectivityServiceTest: remove flaky waitForIdle test.\" am: be80577f5b\nam: 0c659d2065\n\nChange-Id: I7fbf2cb2c9778f5c961335c5b9fd5a138ec140db\n"
    },
    {
      "commit": "8fea8e5bbd3493b33ca083927dd22c7583221b1a",
      "tree": "bd500f9808b99dfe30d63ff6aa39d9235f41abf2",
      "parents": [
        "0c659d20654c15d97160b7ae14c1cb9c90802f30",
        "b8bbd302030253dc860df69406403e4e06e84da5"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 27 09:51:32 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 09:51:32 2017 +0000"
      },
      "message": "Merge \"ConnectivityServiceTest: fix flaky tests\"\nam: b8bbd30203\n\nChange-Id: I0577f6b48de8a95e7d12e58a672fb0374ced9403\n"
    },
    {
      "commit": "0c659d20654c15d97160b7ae14c1cb9c90802f30",
      "tree": "e917e41cb1176f31150efb04779d7aba9ae16c38",
      "parents": [
        "277bd4235efd6ddb85a0078d82a5b283bd84f2e3",
        "be80577f5bcb65234e96d524f116ce3a3f2c5e53"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 27 09:47:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 09:47:05 2017 +0000"
      },
      "message": "Merge \"ConnectivityServiceTest: remove flaky waitForIdle test.\"\nam: be80577f5b\n\nChange-Id: I444746af6adc7be4a3f69243379f65aadf29ea19\n"
    },
    {
      "commit": "b8bbd302030253dc860df69406403e4e06e84da5",
      "tree": "091651379665dceda6c0e52c4a7d837359536ee9",
      "parents": [
        "be80577f5bcb65234e96d524f116ce3a3f2c5e53",
        "dfb559a363de192ea3e3c0a11183c26714e26410"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 27 09:40:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 09:40:47 2017 +0000"
      },
      "message": "Merge \"ConnectivityServiceTest: fix flaky tests\""
    },
    {
      "commit": "6a688ca1add03a888c0e80d358f29455bbdf82c7",
      "tree": "29b09759d8d48191bfe977537588ec37e0696c95",
      "parents": [
        "7bc2aebd5370e90a5a838542a3703d3144be4a21",
        "88932754ffdcbffb3cb43e03991e5eb598c10458"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 06:39:52 2017 +0000"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 06:39:52 2017 +0000"
      },
      "message": "Merge commit \u002788932754ffdcbffb3cb43e03991e5eb598c10458\u0027 into nyc-mr1-dev-plus-aosp\n\n* commit \u002788932754ffdcbffb3cb43e03991e5eb598c10458\u0027:\n  Captive portals: login activity probes like NetworkMonitor\n  Logging improvements in CaptivePortalLoginActivity\n  Captive portal systel log improvements\n  Fix flaky IpPrefixTest.\n  Removing bogus file added by mistake\n  frameworks-test: adding missing @SmallTest\n  Netd events: record connect() success/errno\n  Add missing dependency.\n  Show notification for always-on app VPN\n"
    },
    {
      "commit": "53095bb5bdcb27c6c7a8fc155892a776d1759d5b",
      "tree": "96378ce9973c37621ddc038612c93b76ad165718",
      "parents": [
        "798e1862bd67e7855eeb134d029e45b1aca8a081",
        "a19056c35d16ddb5a6c1d3343729701b8939f1e1"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 06:39:05 2017 +0000"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 27 06:39:05 2017 +0000"
      },
      "message": "Merge commit \u0027a19056c35d16ddb5a6c1d3343729701b8939f1e1\u0027 into nyc-mr1-dev-plus-aosp\n\n* commit \u0027a19056c35d16ddb5a6c1d3343729701b8939f1e1\u0027: (35 commits)\n  NetworkMonitor: send one DNS probe per web probe\n  NetworkMonitor metrics: add first validation information\n  APF: also drop any ICMPv6 RSs\n  ConnectivityServiceTest: fix testAvoidBadWifiSettings\n  Fix ConnectivityServiceTest testRequestBenchmark\n  Switch over to new \"time.android.com\" NTP pool.\n  Define API for metering network stats buckets.\n  Refactored NetworkStatsServiceTest to use Mockito instead of EasyMock.\n  Use @Ignore to explicitly disable a @Test method.\n  Fixed NetworkStatsServiceTest and converted it to JUnit4.\n  VPN network stat accounting changes.\n  ConnectivityThread: use lazy holder idiom\n  ConnectivityManager: use ConnectivityThread looper\n  ConnectivityManager: a simpler CallbackHandler\n  Indicate the NsdServiceInfo attributes are only filled in for a resolved service.\n  Add a null check for the OnStartTetheringCallback.\n  TokenBucket for rate-limiting and throttling\n  IpConnectivityMetrics reads buffer size in settings\n  CaptivePortalLogin: set mixed content policy to compatibility.\n  Add IP conn metrics to dumpsys and bug reports\n  ...\n"
    },
    {
      "commit": "d2ec3919cb87931b2c143d0c1b98caf37039d882",
      "tree": "1b93a34b042f5e7fc6a8af06b99c33848d9b4f91",
      "parents": [
        "0645c211632c017a329d065dab31bf1a6f4273d1"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jan 25 00:53:04 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jan 26 20:50:51 2017 +0900"
      },
      "message": "Switch to listening for all network changes.\n\nThis is for use while preferred upstreams are expressed as legacy types.\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - USB tethering to WiFi and DUN works\nBug: 32163131\nChange-Id: I76e7b6c95eb1b54e926096b2791163617bb0a818\n"
    },
    {
      "commit": "352147a308e4cdc4ccf82af83d37d1505fe1b05d",
      "tree": "cd1e387327fecd0b575f50815631cfdf1759c668",
      "parents": [
        "222ebe48ba33165caead08f19831cb593d5d4db7"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Nov 04 16:06:34 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:52:45 2017 +0900"
      },
      "message": "frameworks-test: adding missing @SmallTest\n\nThis activates all frameworks-test tests in runs of the continuous\nplatform tests.\n\nTest: $ runtest frameworks-net passes (expect Tether\nBug: 32561414\n(cherry picked from commit fa8a6f6220d1a0027ba7969c2d3f72690ddc6495)\n\nChange-Id: I7b0706a7e3368f971d508388e8ad4afc5de9d646\n"
    },
    {
      "commit": "222ebe48ba33165caead08f19831cb593d5d4db7",
      "tree": "4a530acbb4ca55f2a9b69e945def55b40473b4dc",
      "parents": [
        "bea525eff8b74540cce95cf9507cff4f08c57824"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Oct 31 15:04:37 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:52:41 2017 +0900"
      },
      "message": "Netd events: record connect() success/errno\n\nTest: $ runtest frameworks-net pass\nBug: 32198976\n\n(cherry picked from commit 8b06bcdfd24100302818ae0e11ee751dd813d5cf)\n\nChange-Id: Ib3be06d2678c3fcfe4fa9d7b77f50c6e8812db3d\n"
    },
    {
      "commit": "094fbe671927b730a30f4914ddc08f997ffc0114",
      "tree": "318692115f5fd248607817fe5af4e23fa88b8753",
      "parents": [
        "48a1136c8b3000c651e8bcd86325acd1dce6e4ec"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Thu Jun 30 11:19:20 2016 +0100"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:52:35 2017 +0900"
      },
      "message": "Show notification for always-on app VPN\n\nThis is the same notification as the one shown during legacy lockdown\nmode, sans the \u0027reset\u0027 button.\n\nThe notification is only shown during times when VPN has not yet\nestablished or has failed, for example during boot or after a crash.\n\nBug: 29123115\n\n(cherry picked from commit 1a405fe300950d6ceae2166fd074b596d8110dbe)\n\nChange-Id: I929a05c24df01e21415535a333bb14ac4b790a9d\n"
    },
    {
      "commit": "5c2111bc3aa72470e5a88b523389d4be8fc517bf",
      "tree": "4646be459e38be7669b66ccf49f5309cfc60f605",
      "parents": [
        "d49596f479d19b1f2decd1c71fb7abbc85682d55"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Sat Dec 03 02:41:05 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:52:21 2017 +0900"
      },
      "message": "APF: also drop any ICMPv6 RSs\n\nTest: new unit test + $ runtest franeworks-net\nBug: 32833400\n\n(cherry picked from commit f98182ef5e80ede5de7f2c2a5f40fc92a46c9704)\n\nChange-Id: Ifaf6e778c811c7d865c790a293b1fce3f43cad1c\n"
    },
    {
      "commit": "d49596f479d19b1f2decd1c71fb7abbc85682d55",
      "tree": "f456a088341232a75ff11c50f999e4577cd539a8",
      "parents": [
        "b038044758b2699f22b1215fe3a7ac4ed9a7a15a"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Nov 15 13:42:34 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:52:18 2017 +0900"
      },
      "message": "ConnectivityServiceTest: fix testAvoidBadWifiSettings\n\nThis patch introduces an assertEventuallyThat helper function in\nConnectivityServiceTest which given a boolean function retries until the\nfunction returns true or until a maximum retry time is reached.\n\nThis function is used to fix flakyness of testAvoidBadWifiSetting where\nthe Message posted by reevaluate() could reach the Handler\u0027s\nMessageQueue after waitForIdle takes effect, resulting in the test to\nfail.\n\nInstead of fixing the flakyness by introdcing hard sleep times,\nassertEventuallyThat is used to reduce the overall test time.\n\nWith this change the test has been observed to pass with 100% success\nrate over 50000 invocations.\n\nTest: $ runtest frameworks-net\nBug: 32561414\n\n(cherry picked from commit 99c8294ef0c7a720364abb5884063e0a9d1bb5fe)\n\nChange-Id: If41a24989d5f65aeb439f68741f511b5eb53b18d\n"
    },
    {
      "commit": "b038044758b2699f22b1215fe3a7ac4ed9a7a15a",
      "tree": "1ba8c4e0e7b90bff7069d578063db742218ebe6b",
      "parents": [
        "06124cc892091a4f251112c39aba43e05345ac7b"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Nov 15 11:25:52 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:52:14 2017 +0900"
      },
      "message": "Fix ConnectivityServiceTest testRequestBenchmark\n\nThis patch fixes flakyness of testRequestBenchmark by adjusting time\nlimit for callback registration from 100ms to 180ms, and time limits for\nonAvailable and onLost triggers from 30ms to 40ms.\n\nWith these timeouts the test succeeds 100% over 5000 iterations.\n\nWhen using 150ms for registration timeout, running the test 5000 times\nfails 2 times.\n\nWhen using 30ms for onLost timeout, running the test 5000 times fails\n1 times.\n\nIn addition, this patch also cleans testRequestBenchmark and uses the\nmore stable SystemClock.elapsedRealtime() for duration measurements.\n\nTest: $ runtest frameworks-net\nBug: 32561414\n\n(cherry picked from commit 38be57b438a0c1754091f045317db2049304e16f)\n\nChange-Id: I196ab9ef7f5abe456a783eed65db09279d2ecb8c\n"
    },
    {
      "commit": "728842ad4722ff25c810766d71ac43b9a75a6692",
      "tree": "cd371702e5f3d17008b0b29939c937b4e94bf0c2",
      "parents": [
        "26a2dc528490b49c8407f0bddeb4465da94cb148"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Oct 19 11:17:28 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:51:30 2017 +0900"
      },
      "message": "IpConnectivityMetrics reads buffer size in settings\n\nTest: IpConnectivityMetricsTest passes. Also manually changed the new\nsetting and verified the buffer size is as expected after flushing the\nbuffer.\nBug: 32198637\n\n(cherry picked from commit 05686dbb6b965eb1a54591d2ed2334337886c6ee)\n\nChange-Id: Iefbeac3a688b260fb3f92dfe0bfd9db28e26749d\n"
    },
    {
      "commit": "d19752c3d0ad4c3a9dbf8c3cccc168ef2b1dde9b",
      "tree": "0ee6c9e740b8db56f6cbcf36bf45430efea0e72d",
      "parents": [
        "1256590348b1fc2d74eb38048e37f9742cda18ff"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Oct 13 13:16:16 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:51:18 2017 +0900"
      },
      "message": "IpConnectivity metrics: add version number\n\nThis patch adds a version field to ipconnectivity.proto and populates it\nto 2, which is the logical version number for NYC-MR2.\n\nTest: IpConnectivity{EventBuilder,Metrics}Test pass\nBug: 32127906\n\n(cherry picked from commit d680d4c856f54bea0c60dea74ba4204822391e49)\n\nChange-Id: If8f167c0dc4c1abe0e235e2adfd131168a4ddc52\n"
    },
    {
      "commit": "1256590348b1fc2d74eb38048e37f9742cda18ff",
      "tree": "776751323abbf98839b3e9271287531d13598737",
      "parents": [
        "f488ffd3be718682cbd9b41478408b45d9358d84"
      ],
      "author": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Thu Oct 27 15:05:50 2016 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:51:15 2017 +0900"
      },
      "message": "[CS] Remove timeout event after first available\n\nGuarantees that timeouts are only delivered if a network never\nbecomes available. Once a network is available the timeout is\ncanceled.\n\nBug: 31402633\nTest: all timeout related unit tests pass (new one added)\n\n(cherry picked from commit 681fcda5896fd6c94f8a543ef9983c0a0644e87e)\n\nChange-Id: I7cd3086544c881915fc6dbf14b87a24ab0cd8748\n"
    },
    {
      "commit": "f488ffd3be718682cbd9b41478408b45d9358d84",
      "tree": "183ae17d680828a56b763ed87dfce0eceaf1fe36",
      "parents": [
        "f537c5eb74bfdd8942dca986e35d46ab2444491d"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Nov 02 13:43:22 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:51:12 2017 +0900"
      },
      "message": "ApfTest: tag tests with @SmallTest or @MediumTest\n\nTest methods not tagged with @{Small,Medium,Large}Test will not appear\nin the Android Platform Continuous Testing dashboard.\n\nTest methods tagged with @LargeTest will not be run in the Android\nPlatform Continuous Testing dashboard.\n\nTest: ApfTest passes ($runtest frameworks-net)\nBug: 31479480\n\n(cherry picked from commit 4195c28347cc100954f83c3c92b4dde4673f8608)\n\nChange-Id: Ia215fc8e2ccc61f6223c24fdf390e1e759de302f\n"
    },
    {
      "commit": "f537c5eb74bfdd8942dca986e35d46ab2444491d",
      "tree": "bc3c6e7268eb691939d101b5ba4524f8afe0349f",
      "parents": [
        "47a44ba2b1012d611e2a82bcd7e48892d766b050"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 17:45:55 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:51:09 2017 +0900"
      },
      "message": "Unbreak TetherInterfaceStateMachineTest.\n\nThis was broken by the implementation of IPv6 tethering, which\nrelies on various private classes which end up calling unmockable\nfinal classes like NetworkInterface.\n\nMaking everything public like this is almost certainly not the\nbest way of fixing this test, but on the other hand there is\nvalue to the test continuing to pass.\n\nTest: runtest frameworks-net  # Everything passes.\nTest: IPv6 tethering continues to work.\n\n(cherry picked from commit 7e0eeca8ba4063d0d35dda9a8dfcc612e45efb87)\n\nChange-Id: I8a3cf466871c026f4ae0f5cfa73071338cdf5b7e\n"
    },
    {
      "commit": "47a44ba2b1012d611e2a82bcd7e48892d766b050",
      "tree": "c5a78cd4ef87acd81dff379349a1462f05b99451",
      "parents": [
        "adaa65233712507e12dea541cb14aa9b6ed886b9"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 12:48:36 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:50:59 2017 +0900"
      },
      "message": "Move the connectivity tests to frameworks/base/tests/net.\n\nThis will give us a good place to put all the networking tests.\n\nFix: 31479480\nTest: adb  shell am instrument -w -e notClass com.android.server.connectivity.tethering.TetherInterfaceStateMachineTest \u0027com.android.frameworks.tests.net/android.support.test.runner.AndroidJUnitRunner\u0027  # PASS\n\n(cherry picked from commit ecc986d430f4b8158f177ed97d2edb741f11ff71)\n\nChange-Id: I993eeaa5dec001c39389023f355f506129b356e7\n"
    },
    {
      "commit": "adaa65233712507e12dea541cb14aa9b6ed886b9",
      "tree": "7a44ae8a908014235b43bd3166982121d9e078fb",
      "parents": [
        "c869089383481a676223375ee4ad6a9f6673f955"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 12:56:03 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:50:52 2017 +0900"
      },
      "message": "De-guava BroadcastInterceptingContext and move it to testutils.\n\nRemoving the static dependency on guava reduces test compile time\nby about 20 seconds on a Z840, thus substantially speeding up the\ncompile/test cycle.\n\nMake FutureIntent public instead of package-private because it is\nused directly by NetworkPolicyManagementServiceTest, which as of\nthis CL is now in a different package.\n\n(cherry picked from commit 281a17c9580de5c9898be7d9654d428801976511)\n\nTest: runtest frameworks-services -c com.android.server.ConnectivityServiceTest  # PASS\nTest: runtest frameworks-services -c com.android.server.NetworkPolicyManagerServiceTest  # PASS\nTest: runtest frameworks-services -c com.android.server.net.NetworkStatsServiceTest  # PASS\nTest: runtest frameworks-services -c com.android.server.NetworkManagementServiceTest  # Already failing.\nBug: 31479480\nChange-Id: Ifab32c9214e9caab71dbf93b3d3ca88df6f49636\n"
    },
    {
      "commit": "c869089383481a676223375ee4ad6a9f6673f955",
      "tree": "33ce9c9420cd3900ba799ce11d5d58298f98fd41",
      "parents": [
        "a5605c3ede50d2702a3f4d22ffefb10d51171f13"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 12:37:38 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 26 18:50:48 2017 +0900"
      },
      "message": "Move FakeSettingsProvider to a common location.\n\n(cherry picked from commit 7df1a82802cdf842d07a86a80383c7d5ea7ae53a)\n\nTest: runtest frameworks-util -c com.android.internal.util.test.FakeSettingsProviderTest\nTest: runtest frameworks-services -c com.android.server.ConnectivityServiceTest\nTest: runtest frameworks-services -c com.android.server.retaildemo.PreloadAppsInstallerTest\nTest: runtest frameworks-services -c com.android.server.retaildemo.RetailDemoModeServiceTest\nBug: 31479480\nChange-Id: I8d4d4de2937012dd33924f53e68f96241a9b2b4f\n"
    },
    {
      "commit": "141923e5b6236aca8b08452b50a3d2268f1fcac3",
      "tree": "9a686de173bb4b696df7d927b3834a5b7afd121a",
      "parents": [
        "5ef316e34d7afd88dec74205221bf7144a86e866"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Nov 04 16:06:34 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jan 24 15:42:45 2017 +0900"
      },
      "message": "DO NOT MERGE frameworks-test: adding missing @SmallTest\n\nThis activates all frameworks-test tests in runs of the continuous\nplatform tests.\n\nTest: $ runtest frameworks-net passes (expect Tether\nBug: 32561414\n\n(cherry picked from commit fa8a6f6220d1a0027ba7969c2d3f72690ddc6495)\n\nChange-Id: I84f9aecfbf9ebe07c6fcfec26acb2c2cfaae2d60\n"
    },
    {
      "commit": "ad4db4ed58e553a1057ad0b5d5d61de4318e8247",
      "tree": "9d1f4eb97a257546fcef3a0de9d27cecb88a2078",
      "parents": [
        "9fc8d99c768ee1c48591513ccd63af6032b0446b"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Oct 17 15:54:51 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jan 24 15:22:48 2017 +0900"
      },
      "message": "ConnectivityServiceTest: remove flaky waitForIdle test.\n\nThis patch removes testNotWaitingForIdleCausesRaceConditions() from\nConnectivityServiceTest because it is in nature flaky and prevents using\nConnectivityServiceTest as a patch presubmit check. Estimated failure\nrate is 1/15 on Nexus 6p.\n\nThis patch also simplifies how ConnectivityServiceTest waits for\nhandlers to become idle by removing IdleableHandlerThread and turning it\ninto a signle static method.\n\nTest: $ runtest frameworks-net\nBug: 31479480\nChange-Id: I2d78709cbb61d5d01cd59cff326469417f73f1ab\n"
    },
    {
      "commit": "dfb559a363de192ea3e3c0a11183c26714e26410",
      "tree": "bde34d594dbd3460dda01937d47e8b64228f31f8",
      "parents": [
        "9fc8d99c768ee1c48591513ccd63af6032b0446b"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Dec 20 14:57:49 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jan 24 15:21:18 2017 +0900"
      },
      "message": "ConnectivityServiceTest: fix flaky tests\n\nThis patch adjusts timeouts in ConnectivityServiceTest to fix tests\nknown to fail spruriously.\n\nTest: ran the following tests 500 times without observing any failure\n - testBackgroundNetworks()\n - testMultipleLingering()\n - testPacketKeepalives()\n - testSatisfiedNetworkRequestDoesNotTriggerOnUnavailable()\n - testSatisfiedThenLostNetworkRequestDoesNotTriggerOnUnavailable()\nBug: 32561414\nChange-Id: I184fe7189aac768a65b927cc42eefaf8b1b3f930\n"
    },
    {
      "commit": "552f5620d19942dc9844057041e6bab572f08691",
      "tree": "3fadd37d6c07b12b53e25d75c97ac7e9b045defc",
      "parents": [
        "1a816ce119e5bca736f35366b281e9fd8e22c177",
        "503374c0ae9ddebb348778b53396e182de6a1003"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jan 23 11:06:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jan 23 11:06:06 2017 +0000"
      },
      "message": "Merge \"Add test for updateMobileRequiresDun()\" am: 7f018500dc am: 2a3338084a\nam: 503374c0ae\n\nChange-Id: I25751833ed6623ab156156fc76aa23b158a60fb4\n"
    },
    {
      "commit": "503374c0ae9ddebb348778b53396e182de6a1003",
      "tree": "356f0e0e64625496d23c4856ea49247cc89dd7a3",
      "parents": [
        "d0867fb8760ba8aba74213a006c10c54ea7fa648",
        "2a3338084afb669d98d79038b48a9d4f69176742"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jan 23 10:59:41 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jan 23 10:59:41 2017 +0000"
      },
      "message": "Merge \"Add test for updateMobileRequiresDun()\" am: 7f018500dc\nam: 2a3338084a\n\nChange-Id: I3fe2605bba2a8c8ee3284f3c3278258d37fae46b\n"
    }
  ],
  "next": "2a3338084afb669d98d79038b48a9d4f69176742"
}
