{"url":"https://api.github.com/gists/3916621","forks_url":"https://api.github.com/gists/3916621/forks","commits_url":"https://api.github.com/gists/3916621/commits","id":"3916621","node_id":"MDQ6R2lzdDM5MTY2MjE=","git_pull_url":"https://gist.github.com/3916621.git","git_push_url":"https://gist.github.com/3916621.git","html_url":"https://gist.github.com/mbostock/3916621","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/3916621/raw/703d310b399098a243a76a50bc209167e924cfd2/.block","size":17,"truncated":false,"content":"license: gpl-3.0\n","encoding":"utf-8"},"README.md":{"filename":"README.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/3916621/raw/39f7514aead3cf3eeba4018f0e1817a52f7d0a35/README.md","size":641,"truncated":false,"content":"This example demonstrates path interpolation using SVG's [getPointAtLength](http://www.w3.org/TR/SVG/paths.html#__svg__SVGPathElement__getPointAtLength) feature. The source path and the target path are sampled uniformly using a configurable precision in pixels (here, 4px). During the transition, the path is replaced with a piecewise linear curve, or *polyline*, for easier interpolation. When the transition finishes, the path is restored to the original cubic Bézier. This technique is handy because it works for any path expressible with SVG's path data mini-language.\n\nSee also the [circular shape tweening](/mbostock/3081153) example.","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/3916621/raw/257e96616a5b4f95427be6221912cb26d6b7f860/index.html","size":1480,"truncated":false,"content":"<!DOCTYPE html>\n<svg width=\"960\" height=\"500\">\n  <path transform=\"translate(180,150)scale(2,2)\" fill=\"none\" stroke=\"black\" stroke-width=\"1.5\"></path>\n</svg>\n<script src=\"https://d3js.org/d3.v4.min.js\"></script>\n<script>\n\nvar d0 = \"M0,0c100,0 0,100 100,100c100,0 0,-100 100,-100\",\n    d1 = \"M0,0c100,0 0,100 100,100c100,0 0,-100 100,-100c100,0 0,100 100,100\";\n\nd3.select(\"path\")\n    .attr(\"d\", d0)\n  .transition()\n    .duration(2000)\n    .on(\"start\", function repeat() {\n      d3.active(this)\n          .attrTween(\"d\", pathTween(d1, 4))\n        .transition()\n          .attrTween(\"d\", pathTween(d0, 4))\n        .transition()\n          .on(\"start\", repeat);\n    });\n\nfunction pathTween(d1, precision) {\n  return function() {\n    var path0 = this,\n        path1 = path0.cloneNode(),\n        n0 = path0.getTotalLength(),\n        n1 = (path1.setAttribute(\"d\", d1), path1).getTotalLength();\n\n    // Uniform sampling of distance based on specified precision.\n    var distances = [0], i = 0, dt = precision / Math.max(n0, n1);\n    while ((i += dt) < 1) distances.push(i);\n    distances.push(1);\n\n    // Compute point-interpolators at each distance.\n    var points = distances.map(function(t) {\n      var p0 = path0.getPointAtLength(t * n0),\n          p1 = path1.getPointAtLength(t * n1);\n      return d3.interpolate([p0.x, p0.y], [p1.x, p1.y]);\n    });\n\n    return function(t) {\n      return t < 1 ? \"M\" + points.map(function(p) { return p(t); }).join(\"L\") : d1;\n    };\n  };\n}\n\n</script>\n","encoding":"utf-8"},"thumbnail.png":{"filename":"thumbnail.png","type":"image/png","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/3916621/raw/a4a5d44ee4b1bad8bd5397ca02cf1c646864fdc3/thumbnail.png","size":6016,"truncated":false,"content":"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\nT4sci3qL3imMKSFTCqY0Tnk1VX9q/NR1U9umfrW0s0yz3G15z0rJKsiqwKrZ\n6o21qTXbusr6ug3Vxs9miU2TzWtbM1uu7Tbb23Z0u+l2K+xa7b7YO9iL7A/Y\n9zvoOyQ4bHG45ajsGOZY6njRieDk5bTE6YTTR2d752znw85/uFi4pLrsdXk+\nzWgad9ruaY9ddV1Zrjtde9yYbgluO9x63HXcWe7V7o889Dw4Hns8nnmaeKZ4\n7vN85WXpJfI65vXe29l7kXeLD+bj71Ps0+mr5BvlW+n70E/XL9mv3m/Q385/\noX9LACEgOGBdwK1AzUB2YF3gYJBD0KKgc8GU4IjgyuBHIaYhopDm6ej0oOnr\np9+fYTBDMKMxFIQGhq4PfRBmFJYZ9stM4sywmVUzn4ZbheeHt0XQI+ZF7I14\nF+kVuSbyXpRxlDiqNVo+enZ0XfT7GJ+Yspie2Kmxi2Ivx6nH8eOa4knx0fF7\n4odm+c7aOKtvtt3sotk35xjNyZ3TPld9btrck/Pk57HmHUkgJMQk7E34zApl\nVbOGEgMTtyQOsr3Zm9gvOR6cDZx+riu3jPssyTWpLOl5smvy+uR+njuvnDfA\n9+ZX8l+nBKRsT3mfGppakzqSFpN2MF0mPSH9uEBJkCo4l6GVkZvRLTQTFgl7\nMp0zN2YOioJFe7KQrDlZTdnK8JLbITYW/yDuzXHLqcr5MD96/pFcxVxBbscC\n0wWrFjzL88v7aSG+kL2wNV8nf1l+7yLPRTsXI4sTF7cu0VtSuKRvqf/S2mXk\nZanLfi2wLCgr+HN5zPLmQs3CpYWPf/D/ob6IViQqurXCZcX2lfhK/srOVTar\nNq/6WswpvlRiWVJe8rmUXXrpR6sfK34cWZ20unON/Zpta4lrBWtvrnNfV1um\nWJZX9nj99PUNG5gbijf8uXHexvZy2/Ltm8ibxJt6KkIqmjbrb167+XMlr/JG\nlVfVwS0aW1Zteb+Vs/XqNo9tB7Zrbi/Z/mkHf8ftnf47G6oNq8t3EXfl7Hq6\nO3p320+OP9XtUd9TsudLjaCmpza89lydQ13dXo29a+rRenF9/77Z+7r2++xv\nOmBxYOdBxsGSQ+CQ+NCLnxN+vnk4+HDrEccjB44aHN1yjH6suAFpWNAw2Mhr\n7GmKa+o+HnS8tdml+dgvU36pOaFzouqkysk1p8inCk+NnM47PdQibBk4k3zm\nceu81ntnY89ePzfzXOf54PMXL/hdONvm2Xb6ouvFE+3O7ccvOV5qvGx/uaHD\nruPYr3a/Huu072y44nClqcupq7l7Wvepq+5Xz1zzuXbheuD1yzdm3Oi+GXXz\n9q3Zt3puc24/v5N25/XdnLvD95beJ9wvfqDwoPyhxsPq30x+O9hj33Oy16e3\n41HEo3uP2Y9fPsl68rmv8Cn1afkz7Wd1z62fn+j36+96MetF30vhy+GBot8V\nf9/yyvjV0T88/ugYjB3sey16PfKm9K3a25o/bf9sHQobevgu/d3w++IPah9q\nPzp+bPsU8+nZ8PzPpM8VX0y+NH8N/np/JH1kRMgSsaRXAQxWNCkJgDc1MG+J\ng3eHLgDItNHcSFqQ0XxOSuCfeDR/khZ7AGo8AIhaCkAIvKNsg9UAMgU+Jdf8\nSA+A2thM1LGSlWRjPWqLAjMAwoeRkbeaAJCaAfgiGhkZ3joy8gXmeNgdAFoy\nR3MySSHCe/wOmoTaO0uXfp8b/Qd5SGBft0bY6gAAAAZiS0dEAP8A/wD/oL2n\nkwAAAAlvRkZzAAAAJQAAAD0A56Nq9QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAA\nCxxJREFUeNrt3etvU/UDx/FP157eTm+z3QQX5oB2Ny+wqhGjaMzQqTEYXSLR\noITIHyBGfeRDn2k0PDVGQnQkEkc0huiizogRs8TBpg5WxiZDHY6tbDttz9pz\nevk9sOyH/vDn2Dq+38M+r+fAZx3vXk/PsZVKpRKISCpVogcQ0f9imEQSYphE\nEmKYRBJimEQSYphEEmKYRBJimEQSYphEEmKYRBJimEQSYphEEmKYRBJimEQS\nYphEEmKYRBJimEQSYphEEmKYRBJimEQSYphEEmKYRBJimEQSYphEEmKYRBJi\nmEQSYphEEmKYRBJimEQSYphEEmKYRBJimEQSYphEEmKYRBJyiB6wWIZhoKen\nBzMzM3C5XHC73VBVFYFAAKFQCKFQCIFAAG63W/RUSzIMA5qmYXZ2FrOzs9A0\nDel0GtlsFqZpolAooFQqweFwQFEUeDwe+Hy+hdu/uroafr8fiqKI/lGuC5YJ\n85JcLodMJoNcLgdd15FOp6HrOgzDgN1uxw033ICNGzeitbUVjY2NCAQCoidL\nKZ1OY3R0FENDQzhz5gySySRM04SiKPB6vVBVFV6vF263G4qiwG63w2azQdd1\n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\nuBDP9e7ChQt49913cf78eXR2dmLLli1wu92iZ604hrkIpVIJQ0NDOHToEKam\npnD33XfjvvvuQ319PZxO54r8m/l8Hr/99huOHTuGY8eOwefz4emnn8bmzZtR\nVbW6XoEUCgX09fXh8OHDMAwDW7duxZYtW7B27VpLn0v3/2GYV6FQKOD06dPo\n7e3FyZMnoSgKNm7ciObmZtx8882IRCJQVRVOp3PR57AplUowTROZTAbJZBLn\nzp3D8PAwzpw5g2w2i1gshm3btqG5udnSh9xVgmEY+Omnn9Db24uxsTGoqopY\nLIampiasW7cO4XAYXq8XiqJY/hxCDHOJdF3H2NgYhoaGMDIygqmpKZimCUVR\n4PV6oaoqvF4v3G43FEVZuGcvFAowTRPz8/OYn59HOp2GrusLfzYcDiMajaK1\ntRXRaHRVva66GpqmYWRkBCdPnsTo6CguXry4cHoVVVWhqio8Hg/cbjccDgfW\nrFmDRx55ZMWe4VQaw6wQwzCQSqUwOzuL2dlZaJqGVCqFbDYL0zQX3tm12+1Q\nFAUej2fhGy2hUAjV1dXw+/2WPj2ISLlcDpqm/eX2z2QyyGazMAwDoVAIDz/8\nMMMkoqVbXe8iEFkEwySSEMMkkhDDJJIQwySSEMMkkhDDJJIQwySSEMMkkhDD\nJJIQwySSEMMkkhDDJJIQwySSEMMkkhDDJJIQwySSEMMkkhDDJJIQwySSEMMk\nkhDDJJIQwySSEMMkkhDDJJIQwySSEMMkkhDDJJIQwySSEMMkkhDDJJIQwySS\nEMMkkhDDJJLQfwBKbNrXOWLKygAAAABJRU5ErkJggg==\n","encoding":"base64"}},"public":true,"created_at":"2012-10-19T06:54:11Z","updated_at":"2024-08-10T04:03:27Z","description":"Path Tween","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/3916621/comments","owner":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"forks":[{"url":"https://api.github.com/gists/7133091","user":{"login":"hoschi","id":163128,"node_id":"MDQ6VXNlcjE2MzEyOA==","avatar_url":"https://avatars.githubusercontent.com/u/163128?v=4","gravatar_id":"","url":"https://api.github.com/users/hoschi","html_url":"https://github.com/hoschi","followers_url":"https://api.github.com/users/hoschi/followers","following_url":"https://api.github.com/users/hoschi/following{/other_user}","gists_url":"https://api.github.com/users/hoschi/gists{/gist_id}","starred_url":"https://api.github.com/users/hoschi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hoschi/subscriptions","organizations_url":"https://api.github.com/users/hoschi/orgs","repos_url":"https://api.github.com/users/hoschi/repos","events_url":"https://api.github.com/users/hoschi/events{/privacy}","received_events_url":"https://api.github.com/users/hoschi/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Stefan Gojan","company":null,"blog":"https://stefan-gojan.de","location":null,"email":"vollekannehoschi@gmail.com","hireable":null,"bio":null,"twitter_username":null,"public_repos":81,"public_gists":15,"followers":30,"following":12,"created_at":"2009-12-05T23:27:48Z","updated_at":"2026-04-11T09:28:25Z"},"id":"7133091","created_at":"2013-10-24T08:06:28Z","updated_at":"2015-12-26T09:59:01Z"},{"url":"https://api.github.com/gists/4f3471ed071b15a9631092405b13f4fd","user":{"login":"git-ashish","id":2697421,"node_id":"MDQ6VXNlcjI2OTc0MjE=","avatar_url":"https://avatars.githubusercontent.com/u/2697421?v=4","gravatar_id":"","url":"https://api.github.com/users/git-ashish","html_url":"https://github.com/git-ashish","followers_url":"https://api.github.com/users/git-ashish/followers","following_url":"https://api.github.com/users/git-ashish/following{/other_user}","gists_url":"https://api.github.com/users/git-ashish/gists{/gist_id}","starred_url":"https://api.github.com/users/git-ashish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/git-ashish/subscriptions","organizations_url":"https://api.github.com/users/git-ashish/orgs","repos_url":"https://api.github.com/users/git-ashish/repos","events_url":"https://api.github.com/users/git-ashish/events{/privacy}","received_events_url":"https://api.github.com/users/git-ashish/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Ashish Singh","company":null,"blog":"https://iashishsingh.com","location":"Vadodara, Gujarat, India","email":null,"hireable":true,"bio":"Freelance Data Visualisation Consultant","twitter_username":null,"public_repos":153,"public_gists":157,"followers":21,"following":57,"created_at":"2012-11-01T08:37:06Z","updated_at":"2026-03-27T06:23:39Z"},"id":"4f3471ed071b15a9631092405b13f4fd","created_at":"2018-05-21T06:55:50Z","updated_at":"2018-05-22T11:34:27Z"}],"history":[{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"5bdeb2294d58cb13ef7f52d3345e21a2cef59b74","committed_at":"2017-08-04T17:47:43Z","change_status":{"total":44,"additions":15,"deletions":29},"url":"https://api.github.com/gists/3916621/5bdeb2294d58cb13ef7f52d3345e21a2cef59b74"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"ad0d4c8f9c823e3942fae562cf76a75005a6efff","committed_at":"2016-02-09T01:41:55Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/3916621/ad0d4c8f9c823e3942fae562cf76a75005a6efff"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"048c02ef56f8a90455df7e132037e36f7a9fac52","committed_at":"2015-10-31T01:11:30Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3916621/048c02ef56f8a90455df7e132037e36f7a9fac52"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"f5955d2f6957d0dcd39207f9f929633c779a4aa3","committed_at":"2015-06-11T19:32:36Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3916621/f5955d2f6957d0dcd39207f9f929633c779a4aa3"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"61067055e2755fe04fddf8ccb77b5fceb0cd1c37","committed_at":"2013-05-27T16:29:55Z","change_status":{"total":4,"additions":3,"deletions":1},"url":"https://api.github.com/gists/3916621/61067055e2755fe04fddf8ccb77b5fceb0cd1c37"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"61db2c5e993f48a6fb6a0a86029d198449d56c46","committed_at":"2012-10-25T17:29:32Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/3916621/61db2c5e993f48a6fb6a0a86029d198449d56c46"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"43de9b8eac3caf8e3265f1f8904e0f25822142db","committed_at":"2012-10-19T06:54:11Z","change_status":{"total":64,"additions":64,"deletions":0},"url":"https://api.github.com/gists/3916621/43de9b8eac3caf8e3265f1f8904e0f25822142db"}],"truncated":false}