)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"743ce298f73eac3486e82e7ecaa692ea1cb72a4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d43f1743_c8c02139","updated":"2022-04-22 16:53:29.000000000","message":"The Jenkins check timed out on the installer test. I guess that\u0027s because the disk IO was being contested by tests running in parallel after I submitted a patchset of 4.","commit_id":"7b997f7fd2efd51f2fe53ba6e19ce104162b8e4f"}],"metropolis/test/launch/cli/launch/main.go":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"48c10fba4df0e7a8aa19778efbd6651552a6a913","unresolved":true,"context_lines":[{"line_number":35,"context_line":"\t}"},{"line_number":36,"context_line":"\tdefer os.RemoveAll(ld)"},{"line_number":37,"context_line":"\t// Create the socket directory."},{"line_number":38,"context_line":"\tsd, err :\u003d os.MkdirTemp(\"/tmp\", \"node_sock*\")"},{"line_number":39,"context_line":"\tif err !\u003d nil {"},{"line_number":40,"context_line":"\t\tlog.Fatalf(\"couldn\u0027t create a socket directory: %v\", err)"},{"line_number":41,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":7,"id":"69f2c658_105ce746","line":38,"range":{"start_line":38,"start_character":25,"end_line":38,"end_character":31},"updated":"2022-04-26 11:41:36.000000000","message":"Why is one in TEST_TMPDIR and the other in /tmp? Shouldn\u0027t they both be in TEST_TMPDIR?","commit_id":"c8008267996bb191072159c1ac0d1e4875181614"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f40aaef80eff2f4c54e4425bf1a87ddd1fea63ad","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\t}"},{"line_number":36,"context_line":"\tdefer os.RemoveAll(ld)"},{"line_number":37,"context_line":"\t// Create the socket directory."},{"line_number":38,"context_line":"\tsd, err :\u003d os.MkdirTemp(\"/tmp\", \"node_sock*\")"},{"line_number":39,"context_line":"\tif err !\u003d nil {"},{"line_number":40,"context_line":"\t\tlog.Fatalf(\"couldn\u0027t create a socket directory: %v\", err)"},{"line_number":41,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":7,"id":"3115016c_6be1bb23","line":38,"range":{"start_line":38,"start_character":25,"end_line":38,"end_character":31},"in_reply_to":"31248595_66921cd3","updated":"2022-04-27 13:11:03.000000000","message":"Ack","commit_id":"c8008267996bb191072159c1ac0d1e4875181614"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a7d5138af462ba0b7d3731f5dcd60930232e35a2","unresolved":true,"context_lines":[{"line_number":35,"context_line":"\t}"},{"line_number":36,"context_line":"\tdefer os.RemoveAll(ld)"},{"line_number":37,"context_line":"\t// Create the socket directory."},{"line_number":38,"context_line":"\tsd, err :\u003d os.MkdirTemp(\"/tmp\", \"node_sock*\")"},{"line_number":39,"context_line":"\tif err !\u003d nil {"},{"line_number":40,"context_line":"\t\tlog.Fatalf(\"couldn\u0027t create a socket directory: %v\", err)"},{"line_number":41,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":7,"id":"31248595_66921cd3","line":38,"range":{"start_line":38,"start_character":25,"end_line":38,"end_character":31},"in_reply_to":"69f2c658_105ce746","updated":"2022-04-26 22:04:34.000000000","message":"Using TEST_TMPDIR resulted in paths that were too long to place UNIX sockets at.\n\nHowever, I wouldn\u0027t use \"/tmp\" for all of the temporary files created, since the launch code uses a lot of storage, which I more expect to be found at the path supplied by Bazel rather than the LSB temporary directory.\n\nI\u0027ll put a comment here explaining the reasons for having it this way.","commit_id":"c8008267996bb191072159c1ac0d1e4875181614"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f40aaef80eff2f4c54e4425bf1a87ddd1fea63ad","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\t}"},{"line_number":36,"context_line":"\tdefer os.RemoveAll(ld)"},{"line_number":37,"context_line":"\t// Create the socket directory. Since using TEST_TMPDIR will often result in"},{"line_number":38,"context_line":"  // paths too long to place UNIX sockets at, we\u0027ll use the LSB temporary"},{"line_number":39,"context_line":"  // directory."},{"line_number":40,"context_line":"\tsd, err :\u003d os.MkdirTemp(\"/tmp\", \"node_sock*\")"},{"line_number":41,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":11,"id":"969b0aba_912f9d09","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":2},"updated":"2022-04-27 13:11:03.000000000","message":"CI/gofmt should complain about this :)","commit_id":"358e592e3bfaa27677c434907b536c3e500c77af"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b5db325feb96f864e1bbfcbf4cbb0a13089f8547","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\t}"},{"line_number":36,"context_line":"\tdefer os.RemoveAll(ld)"},{"line_number":37,"context_line":"\t// Create the socket directory. Since using TEST_TMPDIR will often result in"},{"line_number":38,"context_line":"  // paths too long to place UNIX sockets at, we\u0027ll use the LSB temporary"},{"line_number":39,"context_line":"  // directory."},{"line_number":40,"context_line":"\tsd, err :\u003d os.MkdirTemp(\"/tmp\", \"node_sock*\")"},{"line_number":41,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":11,"id":"9a3ea84d_587add2c","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":2},"in_reply_to":"969b0aba_912f9d09","updated":"2022-04-28 13:29:12.000000000","message":"fixed.","commit_id":"358e592e3bfaa27677c434907b536c3e500c77af"}],"metropolis/test/launch/cluster/cluster.go":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"48c10fba4df0e7a8aa19778efbd6651552a6a913","unresolved":true,"context_lines":[{"line_number":213,"context_line":"\t// If the node\u0027s context is nil or signals an error, as it would happen after"},{"line_number":214,"context_line":"\t// cancellation, replace it with a new one."},{"line_number":215,"context_line":"\tr :\u003d options.Runtime"},{"line_number":216,"context_line":"\tif r.ctxT \u003d\u003d nil || r.ctxT.Err() !\u003d nil {"},{"line_number":217,"context_line":"\t\tr.ctxT, r.CtxC \u003d context.WithCancel(ctx)"},{"line_number":218,"context_line":"\t}"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-go","patch_set":7,"id":"7f9e695a_8787a587","line":216,"range":{"start_line":216,"start_character":1,"end_line":216,"end_character":42},"updated":"2022-04-26 11:41:36.000000000","message":"I think the usual pattern here would be to instead always replace it, first calling ctxC if not nil.","commit_id":"c8008267996bb191072159c1ac0d1e4875181614"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a7d5138af462ba0b7d3731f5dcd60930232e35a2","unresolved":false,"context_lines":[{"line_number":213,"context_line":"\t// If the node\u0027s context is nil or signals an error, as it would happen after"},{"line_number":214,"context_line":"\t// cancellation, replace it with a new one."},{"line_number":215,"context_line":"\tr :\u003d options.Runtime"},{"line_number":216,"context_line":"\tif r.ctxT \u003d\u003d nil || r.ctxT.Err() !\u003d nil {"},{"line_number":217,"context_line":"\t\tr.ctxT, r.CtxC \u003d context.WithCancel(ctx)"},{"line_number":218,"context_line":"\t}"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-go","patch_set":7,"id":"ae180059_d85640bc","line":216,"range":{"start_line":216,"start_character":1,"end_line":216,"end_character":42},"in_reply_to":"7f9e695a_8787a587","updated":"2022-04-26 22:04:34.000000000","message":"Done","commit_id":"c8008267996bb191072159c1ac0d1e4875181614"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"48c10fba4df0e7a8aa19778efbd6651552a6a913","unresolved":true,"context_lines":[{"line_number":442,"context_line":"\tNodeIDs []string"},{"line_number":443,"context_line":"\t// nodePubkeys are the approved nodes\u0027 public keys, filled in by"},{"line_number":444,"context_line":"\t// LaunchCluster."},{"line_number":445,"context_line":"\tNodePubkeys [][]byte"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"\t// nodesDone is a list of channels populated with the return codes from all the"},{"line_number":448,"context_line":"\t// nodes\u0027 qemu instances. It\u0027s used by Close to ensure all nodes have"}],"source_content_type":"text/x-go","patch_set":7,"id":"157d0c26_34a6089b","line":445,"range":{"start_line":445,"start_character":1,"end_line":445,"end_character":21},"updated":"2022-04-26 11:41:36.000000000","message":"This seems to only be used for RebootNode, which takes a pubkey. If it were to instead take a node ID, then we wouldn\u0027t need this? And if we do instead want to keep a list of pubkeys, then we should get rid of NodeIDs (as a node ID can be calculated from a node pubkey).","commit_id":"c8008267996bb191072159c1ac0d1e4875181614"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f40aaef80eff2f4c54e4425bf1a87ddd1fea63ad","unresolved":false,"context_lines":[{"line_number":442,"context_line":"\tNodeIDs []string"},{"line_number":443,"context_line":"\t// nodePubkeys are the approved nodes\u0027 public keys, filled in by"},{"line_number":444,"context_line":"\t// LaunchCluster."},{"line_number":445,"context_line":"\tNodePubkeys [][]byte"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"\t// nodesDone is a list of channels populated with the return codes from all the"},{"line_number":448,"context_line":"\t// nodes\u0027 qemu instances. It\u0027s used by Close to ensure all nodes have"}],"source_content_type":"text/x-go","patch_set":7,"id":"f100b8e8_e2c59084","line":445,"range":{"start_line":445,"start_character":1,"end_line":445,"end_character":21},"in_reply_to":"0f753530_c6d2a7b8","updated":"2022-04-27 13:11:03.000000000","message":"Ack","commit_id":"c8008267996bb191072159c1ac0d1e4875181614"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a7d5138af462ba0b7d3731f5dcd60930232e35a2","unresolved":true,"context_lines":[{"line_number":442,"context_line":"\tNodeIDs []string"},{"line_number":443,"context_line":"\t// nodePubkeys are the approved nodes\u0027 public keys, filled in by"},{"line_number":444,"context_line":"\t// LaunchCluster."},{"line_number":445,"context_line":"\tNodePubkeys [][]byte"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"\t// nodesDone is a list of channels populated with the return codes from all the"},{"line_number":448,"context_line":"\t// nodes\u0027 qemu instances. It\u0027s used by Close to ensure all nodes have"}],"source_content_type":"text/x-go","patch_set":7,"id":"0f753530_c6d2a7b8","line":445,"range":{"start_line":445,"start_character":1,"end_line":445,"end_character":21},"in_reply_to":"157d0c26_34a6089b","updated":"2022-04-26 22:04:34.000000000","message":"I went along with having only NodeIDs here. This simplified it a bit.","commit_id":"c8008267996bb191072159c1ac0d1e4875181614"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"48c10fba4df0e7a8aa19778efbd6651552a6a913","unresolved":true,"context_lines":[{"line_number":757,"context_line":"\t\t\t\t}"},{"line_number":758,"context_line":"\t\t\t}"},{"line_number":759,"context_line":"\t\t\tif newNode !\u003d nil {"},{"line_number":760,"context_line":"\t\t\t\tcluster.NodePubkeys[i] \u003d newNode.Pubkey"},{"line_number":761,"context_line":"\t\t\t\tbreak"},{"line_number":762,"context_line":"\t\t\t}"},{"line_number":763,"context_line":"\t\t\ttime.Sleep(1 * time.Second)"}],"source_content_type":"text/x-go","patch_set":7,"id":"e692c0df_584f55e2","line":760,"updated":"2022-04-26 11:41:36.000000000","message":"If we\u0027re going to keep NodePubkeys, I\u0027d put it right next to cluster.NodeIDs \u003d append(...), line 799.","commit_id":"c8008267996bb191072159c1ac0d1e4875181614"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a7d5138af462ba0b7d3731f5dcd60930232e35a2","unresolved":false,"context_lines":[{"line_number":757,"context_line":"\t\t\t\t}"},{"line_number":758,"context_line":"\t\t\t}"},{"line_number":759,"context_line":"\t\t\tif newNode !\u003d nil {"},{"line_number":760,"context_line":"\t\t\t\tcluster.NodePubkeys[i] \u003d newNode.Pubkey"},{"line_number":761,"context_line":"\t\t\t\tbreak"},{"line_number":762,"context_line":"\t\t\t}"},{"line_number":763,"context_line":"\t\t\ttime.Sleep(1 * time.Second)"}],"source_content_type":"text/x-go","patch_set":7,"id":"94ed0cb6_79f94c22","line":760,"in_reply_to":"e692c0df_584f55e2","updated":"2022-04-26 22:04:34.000000000","message":"Done","commit_id":"c8008267996bb191072159c1ac0d1e4875181614"}]}
