{"action":"created","comment":{"url":"https://api.github.com/repos/diffblue/cbmc/pulls/comments/209253968","pull_request_review_id":145232931,"id":209253968,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwOTI1Mzk2OA==","diff_hunk":"@@ -0,0 +1,158 @@\n+/*******************************************************************\\\n+\n+Module: Replace calls\n+\n+Author: Daniel Poetzl\n+\n+\\*******************************************************************/\n+\n+/// \\file\n+/// Replace calls to given functions with calls to other given\n+/// functions\n+\n+#include \"replace_calls.h\"\n+\n+#include <goto-programs/remove_returns.h>\n+\n+#include <util/base_type.h>\n+#include <util/invariant.h>\n+#include <util/irep.h>\n+#include <util/string_utils.h>\n+#include <util/suffix.h>\n+\n+/// Replace function calls with calls to other functions\n+/// \\param goto_model: goto model to modify\n+/// \\param replacement_list: list of strings, with each string f:g denoting a\n+///   mapping between functions names; a mapping f -> g indicates that calls to\n+///   f should be replaced by calls to g\n+void replace_callst::operator()(\n+  goto_modelt &goto_model,\n+  const replacement_listt &replacement_list) const\n+{\n+  replacement_mapt replacement_map = parse_replacement_list(replacement_list);\n+  (*this)(goto_model, replacement_map);\n+}\n+\n+/// Replace function calls with calls to other functions\n+/// \\param goto_model: goto model to modify\n+/// \\param replacement_map: mapping between function names; a mapping f -> g\n+///   indicates that calls to f should be replaced by calls to g\n+void replace_callst::operator()(\n+  goto_modelt &goto_model,\n+  const replacement_mapt &replacement_map) const\n+{\n+  check_replacement_map(replacement_map);\n+\n+  const namespacet ns(goto_model.symbol_table);\n+  goto_functionst &goto_functions = goto_model.goto_functions;\n+\n+  for(auto &p : goto_functions.function_map)\n+  {\n+    goto_functionst::goto_functiont &goto_function = p.second;\n+    goto_programt &goto_program = goto_function.body;\n+\n+    (*this)(goto_program, goto_functions, ns, replacement_map);\n+  }\n+}\n+\n+void replace_callst::operator()(\n+  goto_programt &goto_program,\n+  const goto_functionst &goto_functions,\n+  const namespacet &ns,\n+  const replacement_mapt &replacement_map) const\n+{\n+  Forall_goto_program_instructions(it, goto_program)\n+  {\n+    goto_programt::instructiont &ins = *it;\n+\n+    if(!ins.is_function_call())\n+      continue;\n+\n+    code_function_callt &cfc = to_code_function_call(ins.code);\n+    exprt &function = cfc.function();\n+\n+    PRECONDITION(function.id() == ID_symbol);\n+\n+    symbol_exprt &se = to_symbol_expr(function);\n+    const irep_idt &id = se.get_identifier();\n+\n+    auto f_it1 = goto_functions.function_map.find(id);\n+\n+    INVARIANT(\n+      f_it1 != goto_functions.function_map.end(),\n+      \"Called functions need to be present\");","path":"src/goto-programs/replace_calls.cpp","position":83,"original_position":83,"commit_id":"d6147f521a25735b96404e3222080583b98e3cbe","original_commit_id":"d6147f521a25735b96404e3222080583b98e3cbe","user":{"login":"martin-cs","id":5333188,"node_id":"MDQ6VXNlcjUzMzMxODg=","avatar_url":"https://avatars0.githubusercontent.com/u/5333188?v=4","gravatar_id":"","url":"https://api.github.com/users/martin-cs","html_url":"https://github.com/martin-cs","followers_url":"https://api.github.com/users/martin-cs/followers","following_url":"https://api.github.com/users/martin-cs/following{/other_user}","gists_url":"https://api.github.com/users/martin-cs/gists{/gist_id}","starred_url":"https://api.github.com/users/martin-cs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martin-cs/subscriptions","organizations_url":"https://api.github.com/users/martin-cs/orgs","repos_url":"https://api.github.com/users/martin-cs/repos","events_url":"https://api.github.com/users/martin-cs/events{/privacy}","received_events_url":"https://api.github.com/users/martin-cs/received_events","type":"User","site_admin":false},"body":"This is a post condition of linking, right?","created_at":"2018-08-10T13:13:32Z","updated_at":"2018-08-10T13:18:02Z","html_url":"https://github.com/diffblue/cbmc/pull/2705#discussion_r209253968","pull_request_url":"https://api.github.com/repos/diffblue/cbmc/pulls/2705","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/diffblue/cbmc/pulls/comments/209253968"},"html":{"href":"https://github.com/diffblue/cbmc/pull/2705#discussion_r209253968"},"pull_request":{"href":"https://api.github.com/repos/diffblue/cbmc/pulls/2705"}}},"pull_request":{"url":"https://api.github.com/repos/diffblue/cbmc/pulls/2705","id":207395603,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA3Mzk1NjAz","html_url":"https://github.com/diffblue/cbmc/pull/2705","diff_url":"https://github.com/diffblue/cbmc/pull/2705.diff","patch_url":"https://github.com/diffblue/cbmc/pull/2705.patch","issue_url":"https://api.github.com/repos/diffblue/cbmc/issues/2705","number":2705,"state":"open","locked":false,"title":"Replace function calls with calls to other functions","user":{"login":"danpoe","id":6138051,"node_id":"MDQ6VXNlcjYxMzgwNTE=","avatar_url":"https://avatars1.githubusercontent.com/u/6138051?v=4","gravatar_id":"","url":"https://api.github.com/users/danpoe","html_url":"https://github.com/danpoe","followers_url":"https://api.github.com/users/danpoe/followers","following_url":"https://api.github.com/users/danpoe/following{/other_user}","gists_url":"https://api.github.com/users/danpoe/gists{/gist_id}","starred_url":"https://api.github.com/users/danpoe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danpoe/subscriptions","organizations_url":"https://api.github.com/users/danpoe/orgs","repos_url":"https://api.github.com/users/danpoe/repos","events_url":"https://api.github.com/users/danpoe/events{/privacy}","received_events_url":"https://api.github.com/users/danpoe/received_events","type":"User","site_admin":false},"body":"This adds an option `--replace-calls f:g` (can be repeated) to `cbmc` and `goto-instrument` which replaces calls to function `f` by calls to function `g`. A use case is to replace certain functions by simpler stubs for analysis.","created_at":"2018-08-09T17:55:29Z","updated_at":"2018-08-10T13:18:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9c31113b7f9d77daf06b181b6e53f1af505c66c9","assignee":null,"assignees":[],"requested_reviewers":[{"login":"smowton","id":283483,"node_id":"MDQ6VXNlcjI4MzQ4Mw==","avatar_url":"https://avatars3.githubusercontent.com/u/283483?v=4","gravatar_id":"","url":"https://api.github.com/users/smowton","html_url":"https://github.com/smowton","followers_url":"https://api.github.com/users/smowton/followers","following_url":"https://api.github.com/users/smowton/following{/other_user}","gists_url":"https://api.github.com/users/smowton/gists{/gist_id}","starred_url":"https://api.github.com/users/smowton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smowton/subscriptions","organizations_url":"https://api.github.com/users/smowton/orgs","repos_url":"https://api.github.com/users/smowton/repos","events_url":"https://api.github.com/users/smowton/events{/privacy}","received_events_url":"https://api.github.com/users/smowton/received_events","type":"User","site_admin":false},{"login":"kroening","id":1830565,"node_id":"MDQ6VXNlcjE4MzA1NjU=","avatar_url":"https://avatars0.githubusercontent.com/u/1830565?v=4","gravatar_id":"","url":"https://api.github.com/users/kroening","html_url":"https://github.com/kroening","followers_url":"https://api.github.com/users/kroening/followers","following_url":"https://api.github.com/users/kroening/following{/other_user}","gists_url":"https://api.github.com/users/kroening/gists{/gist_id}","starred_url":"https://api.github.com/users/kroening/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kroening/subscriptions","organizations_url":"https://api.github.com/users/kroening/orgs","repos_url":"https://api.github.com/users/kroening/repos","events_url":"https://api.github.com/users/kroening/events{/privacy}","received_events_url":"https://api.github.com/users/kroening/received_events","type":"User","site_admin":false},{"login":"pkesseli","id":7579289,"node_id":"MDQ6VXNlcjc1NzkyODk=","avatar_url":"https://avatars3.githubusercontent.com/u/7579289?v=4","gravatar_id":"","url":"https://api.github.com/users/pkesseli","html_url":"https://github.com/pkesseli","followers_url":"https://api.github.com/users/pkesseli/followers","following_url":"https://api.github.com/users/pkesseli/following{/other_user}","gists_url":"https://api.github.com/users/pkesseli/gists{/gist_id}","starred_url":"https://api.github.com/users/pkesseli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pkesseli/subscriptions","organizations_url":"https://api.github.com/users/pkesseli/orgs","repos_url":"https://api.github.com/users/pkesseli/repos","events_url":"https://api.github.com/users/pkesseli/events{/privacy}","received_events_url":"https://api.github.com/users/pkesseli/received_events","type":"User","site_admin":false},{"login":"chrisr-diffblue","id":32060010,"node_id":"MDQ6VXNlcjMyMDYwMDEw","avatar_url":"https://avatars2.githubusercontent.com/u/32060010?v=4","gravatar_id":"","url":"https://api.github.com/users/chrisr-diffblue","html_url":"https://github.com/chrisr-diffblue","followers_url":"https://api.github.com/users/chrisr-diffblue/followers","following_url":"https://api.github.com/users/chrisr-diffblue/following{/other_user}","gists_url":"https://api.github.com/users/chrisr-diffblue/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisr-diffblue/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisr-diffblue/subscriptions","organizations_url":"https://api.github.com/users/chrisr-diffblue/orgs","repos_url":"https://api.github.com/users/chrisr-diffblue/repos","events_url":"https://api.github.com/users/chrisr-diffblue/events{/privacy}","received_events_url":"https://api.github.com/users/chrisr-diffblue/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/diffblue/cbmc/pulls/2705/commits","review_comments_url":"https://api.github.com/repos/diffblue/cbmc/pulls/2705/comments","review_comment_url":"https://api.github.com/repos/diffblue/cbmc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/diffblue/cbmc/issues/2705/comments","statuses_url":"https://api.github.com/repos/diffblue/cbmc/statuses/d6147f521a25735b96404e3222080583b98e3cbe","head":{"label":"danpoe:feature/replace-function-calls","ref":"feature/replace-function-calls","sha":"d6147f521a25735b96404e3222080583b98e3cbe","user":{"login":"danpoe","id":6138051,"node_id":"MDQ6VXNlcjYxMzgwNTE=","avatar_url":"https://avatars1.githubusercontent.com/u/6138051?v=4","gravatar_id":"","url":"https://api.github.com/users/danpoe","html_url":"https://github.com/danpoe","followers_url":"https://api.github.com/users/danpoe/followers","following_url":"https://api.github.com/users/danpoe/following{/other_user}","gists_url":"https://api.github.com/users/danpoe/gists{/gist_id}","starred_url":"https://api.github.com/users/danpoe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danpoe/subscriptions","organizations_url":"https://api.github.com/users/danpoe/orgs","repos_url":"https://api.github.com/users/danpoe/repos","events_url":"https://api.github.com/users/danpoe/events{/privacy}","received_events_url":"https://api.github.com/users/danpoe/received_events","type":"User","site_admin":false},"repo":{"id":61132518,"node_id":"MDEwOlJlcG9zaXRvcnk2MTEzMjUxOA==","name":"cbmc","full_name":"danpoe/cbmc","owner":{"login":"danpoe","id":6138051,"node_id":"MDQ6VXNlcjYxMzgwNTE=","avatar_url":"https://avatars1.githubusercontent.com/u/6138051?v=4","gravatar_id":"","url":"https://api.github.com/users/danpoe","html_url":"https://github.com/danpoe","followers_url":"https://api.github.com/users/danpoe/followers","following_url":"https://api.github.com/users/danpoe/following{/other_user}","gists_url":"https://api.github.com/users/danpoe/gists{/gist_id}","starred_url":"https://api.github.com/users/danpoe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danpoe/subscriptions","organizations_url":"https://api.github.com/users/danpoe/orgs","repos_url":"https://api.github.com/users/danpoe/repos","events_url":"https://api.github.com/users/danpoe/events{/privacy}","received_events_url":"https://api.github.com/users/danpoe/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/danpoe/cbmc","description":"C Bounded Model Checker","fork":true,"url":"https://api.github.com/repos/danpoe/cbmc","forks_url":"https://api.github.com/repos/danpoe/cbmc/forks","keys_url":"https://api.github.com/repos/danpoe/cbmc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/danpoe/cbmc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/danpoe/cbmc/teams","hooks_url":"https://api.github.com/repos/danpoe/cbmc/hooks","issue_events_url":"https://api.github.com/repos/danpoe/cbmc/issues/events{/number}","events_url":"https://api.github.com/repos/danpoe/cbmc/events","assignees_url":"https://api.github.com/repos/danpoe/cbmc/assignees{/user}","branches_url":"https://api.github.com/repos/danpoe/cbmc/branches{/branch}","tags_url":"https://api.github.com/repos/danpoe/cbmc/tags","blobs_url":"https://api.github.com/repos/danpoe/cbmc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/danpoe/cbmc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/danpoe/cbmc/git/refs{/sha}","trees_url":"https://api.github.com/repos/danpoe/cbmc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/danpoe/cbmc/statuses/{sha}","languages_url":"https://api.github.com/repos/danpoe/cbmc/languages","stargazers_url":"https://api.github.com/repos/danpoe/cbmc/stargazers","contributors_url":"https://api.github.com/repos/danpoe/cbmc/contributors","subscribers_url":"https://api.github.com/repos/danpoe/cbmc/subscribers","subscription_url":"https://api.github.com/repos/danpoe/cbmc/subscription","commits_url":"https://api.github.com/repos/danpoe/cbmc/commits{/sha}","git_commits_url":"https://api.github.com/repos/danpoe/cbmc/git/commits{/sha}","comments_url":"https://api.github.com/repos/danpoe/cbmc/comments{/number}","issue_comment_url":"https://api.github.com/repos/danpoe/cbmc/issues/comments{/number}","contents_url":"https://api.github.com/repos/danpoe/cbmc/contents/{+path}","compare_url":"https://api.github.com/repos/danpoe/cbmc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/danpoe/cbmc/merges","archive_url":"https://api.github.com/repos/danpoe/cbmc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/danpoe/cbmc/downloads","issues_url":"https://api.github.com/repos/danpoe/cbmc/issues{/number}","pulls_url":"https://api.github.com/repos/danpoe/cbmc/pulls{/number}","milestones_url":"https://api.github.com/repos/danpoe/cbmc/milestones{/number}","notifications_url":"https://api.github.com/repos/danpoe/cbmc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/danpoe/cbmc/labels{/name}","releases_url":"https://api.github.com/repos/danpoe/cbmc/releases{/id}","deployments_url":"https://api.github.com/repos/danpoe/cbmc/deployments","created_at":"2016-06-14T15:05:28Z","updated_at":"2016-06-14T15:05:36Z","pushed_at":"2018-08-10T12:35:27Z","git_url":"git://github.com/danpoe/cbmc.git","ssh_url":"git@github.com:danpoe/cbmc.git","clone_url":"https://github.com/danpoe/cbmc.git","svn_url":"https://github.com/danpoe/cbmc","homepage":"http://www.cprover.org/cbmc","size":33545,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"diffblue:develop","ref":"develop","sha":"e448db6b6c883935de602bc4f54280a4d38f079a","user":{"login":"diffblue","id":17216098,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MjE2MDk4","avatar_url":"https://avatars0.githubusercontent.com/u/17216098?v=4","gravatar_id":"","url":"https://api.github.com/users/diffblue","html_url":"https://github.com/diffblue","followers_url":"https://api.github.com/users/diffblue/followers","following_url":"https://api.github.com/users/diffblue/following{/other_user}","gists_url":"https://api.github.com/users/diffblue/gists{/gist_id}","starred_url":"https://api.github.com/users/diffblue/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diffblue/subscriptions","organizations_url":"https://api.github.com/users/diffblue/orgs","repos_url":"https://api.github.com/users/diffblue/repos","events_url":"https://api.github.com/users/diffblue/events{/privacy}","received_events_url":"https://api.github.com/users/diffblue/received_events","type":"Organization","site_admin":false},"repo":{"id":51877056,"node_id":"MDEwOlJlcG9zaXRvcnk1MTg3NzA1Ng==","name":"cbmc","full_name":"diffblue/cbmc","owner":{"login":"diffblue","id":17216098,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MjE2MDk4","avatar_url":"https://avatars0.githubusercontent.com/u/17216098?v=4","gravatar_id":"","url":"https://api.github.com/users/diffblue","html_url":"https://github.com/diffblue","followers_url":"https://api.github.com/users/diffblue/followers","following_url":"https://api.github.com/users/diffblue/following{/other_user}","gists_url":"https://api.github.com/users/diffblue/gists{/gist_id}","starred_url":"https://api.github.com/users/diffblue/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diffblue/subscriptions","organizations_url":"https://api.github.com/users/diffblue/orgs","repos_url":"https://api.github.com/users/diffblue/repos","events_url":"https://api.github.com/users/diffblue/events{/privacy}","received_events_url":"https://api.github.com/users/diffblue/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/diffblue/cbmc","description":"C Bounded Model Checker","fork":false,"url":"https://api.github.com/repos/diffblue/cbmc","forks_url":"https://api.github.com/repos/diffblue/cbmc/forks","keys_url":"https://api.github.com/repos/diffblue/cbmc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/diffblue/cbmc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/diffblue/cbmc/teams","hooks_url":"https://api.github.com/repos/diffblue/cbmc/hooks","issue_events_url":"https://api.github.com/repos/diffblue/cbmc/issues/events{/number}","events_url":"https://api.github.com/repos/diffblue/cbmc/events","assignees_url":"https://api.github.com/repos/diffblue/cbmc/assignees{/user}","branches_url":"https://api.github.com/repos/diffblue/cbmc/branches{/branch}","tags_url":"https://api.github.com/repos/diffblue/cbmc/tags","blobs_url":"https://api.github.com/repos/diffblue/cbmc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/diffblue/cbmc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/diffblue/cbmc/git/refs{/sha}","trees_url":"https://api.github.com/repos/diffblue/cbmc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/diffblue/cbmc/statuses/{sha}","languages_url":"https://api.github.com/repos/diffblue/cbmc/languages","stargazers_url":"https://api.github.com/repos/diffblue/cbmc/stargazers","contributors_url":"https://api.github.com/repos/diffblue/cbmc/contributors","subscribers_url":"https://api.github.com/repos/diffblue/cbmc/subscribers","subscription_url":"https://api.github.com/repos/diffblue/cbmc/subscription","commits_url":"https://api.github.com/repos/diffblue/cbmc/commits{/sha}","git_commits_url":"https://api.github.com/repos/diffblue/cbmc/git/commits{/sha}","comments_url":"https://api.github.com/repos/diffblue/cbmc/comments{/number}","issue_comment_url":"https://api.github.com/repos/diffblue/cbmc/issues/comments{/number}","contents_url":"https://api.github.com/repos/diffblue/cbmc/contents/{+path}","compare_url":"https://api.github.com/repos/diffblue/cbmc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/diffblue/cbmc/merges","archive_url":"https://api.github.com/repos/diffblue/cbmc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/diffblue/cbmc/downloads","issues_url":"https://api.github.com/repos/diffblue/cbmc/issues{/number}","pulls_url":"https://api.github.com/repos/diffblue/cbmc/pulls{/number}","milestones_url":"https://api.github.com/repos/diffblue/cbmc/milestones{/number}","notifications_url":"https://api.github.com/repos/diffblue/cbmc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/diffblue/cbmc/labels{/name}","releases_url":"https://api.github.com/repos/diffblue/cbmc/releases{/id}","deployments_url":"https://api.github.com/repos/diffblue/cbmc/deployments","created_at":"2016-02-16T23:03:52Z","updated_at":"2018-08-10T10:52:54Z","pushed_at":"2018-08-10T13:01:07Z","git_url":"git://github.com/diffblue/cbmc.git","ssh_url":"git@github.com:diffblue/cbmc.git","clone_url":"https://github.com/diffblue/cbmc.git","svn_url":"https://github.com/diffblue/cbmc","homepage":"http://www.cprover.org/cbmc","size":34197,"stargazers_count":128,"watchers_count":128,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":103,"mirror_url":null,"archived":false,"open_issues_count":421,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":103,"open_issues":421,"watchers":128,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/diffblue/cbmc/pulls/2705"},"html":{"href":"https://github.com/diffblue/cbmc/pull/2705"},"issue":{"href":"https://api.github.com/repos/diffblue/cbmc/issues/2705"},"comments":{"href":"https://api.github.com/repos/diffblue/cbmc/issues/2705/comments"},"review_comments":{"href":"https://api.github.com/repos/diffblue/cbmc/pulls/2705/comments"},"review_comment":{"href":"https://api.github.com/repos/diffblue/cbmc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/diffblue/cbmc/pulls/2705/commits"},"statuses":{"href":"https://api.github.com/repos/diffblue/cbmc/statuses/d6147f521a25735b96404e3222080583b98e3cbe"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"martin-cs"}}