{"action":"created","comment":{"url":"https://api.github.com/repos/OpenGamma/Strata/pulls/comments/60059423","id":60059423,"diff_hunk":"@@ -0,0 +1,160 @@\n+/**\n+ * Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies\n+ *\n+ * Please see distribution for license.\n+ */\n+package com.opengamma.strata.pricer.sensitivity;\n+\n+import java.time.LocalDate;\n+import java.util.ArrayList;\n+import java.util.List;\n+\n+import com.google.common.collect.ImmutableList;\n+import com.opengamma.strata.collect.ArgChecker;\n+import com.opengamma.strata.collect.array.DoubleArray;\n+import com.opengamma.strata.market.curve.CurveCurrencyParameterSensitivities;\n+import com.opengamma.strata.market.curve.CurveCurrencyParameterSensitivity;\n+import com.opengamma.strata.market.curve.CurveMetadata;\n+import com.opengamma.strata.market.curve.CurveParameterMetadata;\n+import com.opengamma.strata.market.curve.DatedCurveParameterMetadata;\n+import com.opengamma.strata.market.curve.DefaultCurveMetadata;\n+import com.opengamma.strata.market.curve.meta.SimpleCurveNodeMetadata;\n+import com.opengamma.strata.market.curve.meta.TenorCurveNodeMetadata;\n+\n+/**\n+ * Utilities to transform sensitivities.\n+ */\n+public class CurveSensitivityUtils {\n+\n+  /**\n+   * Re-buckets a {@link CurveCurrencyParameterSensitivities} to a given set of dates. \n+   * <p>\n+   * The list of dates must be sorted in chronological order. All sensitivities are re-bucketed to the same date list.\n+   * The re-bucketing is done by linear weighting on the number of days, i.e. the sensitivities for dates outside the \n+   * extremes are fully bucketed to the extremes and for date between two re-bucketing dates, the weight on the start \n+   * date is the number days between end date and the date re-bucketed divided by the number of days between the \n+   * start and the end.\n+   * The input sensitivity should have a {@link DatedCurveParameterMetadata} for each sensitivity. \n+   * \n+   * @param sensitivities  the input sensitivities\n+   * @param targetDates  the list of dates for the re-bucketing\n+   * @return the sensitivity after the re-bucketing\n+   */\n+  public static CurveCurrencyParameterSensitivities linearRebucketing(\n+      CurveCurrencyParameterSensitivities sensitivities,\n+      List<LocalDate> targetDates) {\n+    int nbBuckets = targetDates.size();\n+    List<CurveParameterMetadata> pmdTarget = new ArrayList<>();\n+    for (int i = 0; i < nbBuckets; i++) {\n+      pmdTarget.add(SimpleCurveNodeMetadata.of(targetDates.get(i), targetDates.get(i).toString()));\n+    }\n+    ImmutableList<CurveCurrencyParameterSensitivity> listSensi = sensitivities.getSensitivities();\n+    List<CurveCurrencyParameterSensitivity> sensitivityTarget = new ArrayList<>();\n+    for (CurveCurrencyParameterSensitivity s : listSensi) {\n+      double[] rebucketedSensitivityAmounts = new double[nbBuckets];\n+      CurveMetadata m = s.getMetadata();\n+      DoubleArray sa = s.getSensitivity();\n+      ArgChecker.isTrue(m.getParameterMetadata().isPresent(), \"parameter metadata must be present\");\n+      List<CurveParameterMetadata> lm = m.getParameterMetadata().get();\n+      for (int loopnode = 0; loopnode < sa.size(); loopnode++) {\n+        ArgChecker.isTrue(lm.get(loopnode) instanceof DatedCurveParameterMetadata,\n+            \"re-bucketing require sensitivity date\");\n+        DatedCurveParameterMetadata dpm = (DatedCurveParameterMetadata) lm.get(loopnode);\n+        LocalDate nodeDate = dpm.getDate();\n+        rebucketingArray(targetDates, nbBuckets, rebucketedSensitivityAmounts, sa.get(loopnode), nodeDate);\n+      }\n+      CurveCurrencyParameterSensitivity rebucketedSensitivity =\n+          CurveCurrencyParameterSensitivity.of(\n+              DefaultCurveMetadata.builder().curveName(s.getCurveName()).parameterMetadata(pmdTarget).build(),\n+              s.getCurrency(), DoubleArray.ofUnsafe(rebucketedSensitivityAmounts));\n+      sensitivityTarget.add(rebucketedSensitivity);\n+    }\n+    return CurveCurrencyParameterSensitivities.of(sensitivityTarget);\n+  }\n+\n+\n+  /**\n+   * Re-buckets a {@link CurveCurrencyParameterSensitivities} to a given set of dates. \n+   * <p>\n+   * The list of dates must be sorted in chronological order. All sensitivities are re-bucketed to the same date list.\n+   * The re-bucketing is done by linear weighting on the number of days, i.e. the sensitivities for dates outside the \n+   * extremes are fully bucketed to the extremes and for date between two re-bucketing dates, the weight on the start \n+   * date is the number days between end date and the date re-bucketed divided by the number of days between the \n+   * start and the end.\n+   * The input sensitivity should have a {@link DatedCurveParameterMetadata} for each sensitivity. \n+   * \n+   * @param sensitivities  the input sensitivities\n+   * @param targetDates  the list of dates for the re-bucketing\n+   * @param sensitivityDate  the date for which the sensitivities are valid\n+   * @return the sensitivity after the re-bucketing\n+   */\n+  public static CurveCurrencyParameterSensitivities linearRebucketing(\n+      CurveCurrencyParameterSensitivities sensitivities,\n+      List<LocalDate> targetDates,\n+      LocalDate sensitivityDate) {\n+    int nbBuckets = targetDates.size();\n+    List<CurveParameterMetadata> pmdTarget = new ArrayList<>();\n+    for (int i = 0; i < nbBuckets; i++) {\n+      pmdTarget.add(SimpleCurveNodeMetadata.of(targetDates.get(i), targetDates.get(i).toString()));\n+    }\n+    ImmutableList<CurveCurrencyParameterSensitivity> listSensi = sensitivities.getSensitivities();\n+    List<CurveCurrencyParameterSensitivity> sensitivityTarget = new ArrayList<>();\n+    for (CurveCurrencyParameterSensitivity s : listSensi) {\n+      double[] rebucketedSensitivityAmounts = new double[nbBuckets];\n+      CurveMetadata m = s.getMetadata();\n+      DoubleArray sa = s.getSensitivity();\n+      ArgChecker.isTrue(m.getParameterMetadata().isPresent(), \"parameter metadata must be present\");","path":"modules/pricer/src/main/java/com/opengamma/strata/pricer/sensitivity/CurveSensitivityUtils.java","position":57,"original_position":106,"commit_id":"f77283d2373617e9b87acc16b5a902c3ffbfb450","original_commit_id":"f77283d2373617e9b87acc16b5a902c3ffbfb450","user":{"login":"cjkent","id":98477,"avatar_url":"https://avatars.githubusercontent.com/u/98477?v=3","gravatar_id":"","url":"https://api.github.com/users/cjkent","html_url":"https://github.com/cjkent","followers_url":"https://api.github.com/users/cjkent/followers","following_url":"https://api.github.com/users/cjkent/following{/other_user}","gists_url":"https://api.github.com/users/cjkent/gists{/gist_id}","starred_url":"https://api.github.com/users/cjkent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjkent/subscriptions","organizations_url":"https://api.github.com/users/cjkent/orgs","repos_url":"https://api.github.com/users/cjkent/repos","events_url":"https://api.github.com/users/cjkent/events{/privacy}","received_events_url":"https://api.github.com/users/cjkent/received_events","type":"User","site_admin":false},"body":"This is more idiomatic:\r\n\r\n          List<CurveParameterMetadata> lm = m.getParameterMetadata().orElseThrow(() -> new IllegalArgumentException(...));\r\n","created_at":"2016-04-18T13:42:28Z","updated_at":"2016-04-18T13:42:28Z","html_url":"https://github.com/OpenGamma/Strata/pull/899#discussion_r60059423","pull_request_url":"https://api.github.com/repos/OpenGamma/Strata/pulls/899","_links":{"self":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/comments/60059423"},"html":{"href":"https://github.com/OpenGamma/Strata/pull/899#discussion_r60059423"},"pull_request":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/899"}}},"pull_request":{"url":"https://api.github.com/repos/OpenGamma/Strata/pulls/899","id":66126319,"html_url":"https://github.com/OpenGamma/Strata/pull/899","diff_url":"https://github.com/OpenGamma/Strata/pull/899.diff","patch_url":"https://github.com/OpenGamma/Strata/pull/899.patch","issue_url":"https://api.github.com/repos/OpenGamma/Strata/issues/899","number":899,"state":"open","locked":false,"title":"Created curve sensitivity re-bucketing util.","user":{"login":"marc-opengamma","id":644983,"avatar_url":"https://avatars.githubusercontent.com/u/644983?v=3","gravatar_id":"","url":"https://api.github.com/users/marc-opengamma","html_url":"https://github.com/marc-opengamma","followers_url":"https://api.github.com/users/marc-opengamma/followers","following_url":"https://api.github.com/users/marc-opengamma/following{/other_user}","gists_url":"https://api.github.com/users/marc-opengamma/gists{/gist_id}","starred_url":"https://api.github.com/users/marc-opengamma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marc-opengamma/subscriptions","organizations_url":"https://api.github.com/users/marc-opengamma/orgs","repos_url":"https://api.github.com/users/marc-opengamma/repos","events_url":"https://api.github.com/users/marc-opengamma/events{/privacy}","received_events_url":"https://api.github.com/users/marc-opengamma/received_events","type":"User","site_admin":false},"body":"Allows to reassign the sensitivity to a a different set of nodes described by dates or tenors. The re-bucketing is done by linear interpolation of the sensitivity based on the number of days between nodes.\r\nThis utility is useful for reducing or standardizing the sensitivity nodes in curve sensitivity.","created_at":"2016-04-12T09:30:00Z","updated_at":"2016-04-18T13:42:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"25d0c0cd53283383ac9ec390860817121088765a","assignee":{"login":"cjkent","id":98477,"avatar_url":"https://avatars.githubusercontent.com/u/98477?v=3","gravatar_id":"","url":"https://api.github.com/users/cjkent","html_url":"https://github.com/cjkent","followers_url":"https://api.github.com/users/cjkent/followers","following_url":"https://api.github.com/users/cjkent/following{/other_user}","gists_url":"https://api.github.com/users/cjkent/gists{/gist_id}","starred_url":"https://api.github.com/users/cjkent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjkent/subscriptions","organizations_url":"https://api.github.com/users/cjkent/orgs","repos_url":"https://api.github.com/users/cjkent/repos","events_url":"https://api.github.com/users/cjkent/events{/privacy}","received_events_url":"https://api.github.com/users/cjkent/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/OpenGamma/Strata/pulls/899/commits","review_comments_url":"https://api.github.com/repos/OpenGamma/Strata/pulls/899/comments","review_comment_url":"https://api.github.com/repos/OpenGamma/Strata/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OpenGamma/Strata/issues/899/comments","statuses_url":"https://api.github.com/repos/OpenGamma/Strata/statuses/f77283d2373617e9b87acc16b5a902c3ffbfb450","head":{"label":"OpenGamma:topic/sensitivity-rebucketing","ref":"topic/sensitivity-rebucketing","sha":"f77283d2373617e9b87acc16b5a902c3ffbfb450","user":{"login":"OpenGamma","id":120064,"avatar_url":"https://avatars.githubusercontent.com/u/120064?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenGamma","html_url":"https://github.com/OpenGamma","followers_url":"https://api.github.com/users/OpenGamma/followers","following_url":"https://api.github.com/users/OpenGamma/following{/other_user}","gists_url":"https://api.github.com/users/OpenGamma/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenGamma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenGamma/subscriptions","organizations_url":"https://api.github.com/users/OpenGamma/orgs","repos_url":"https://api.github.com/users/OpenGamma/repos","events_url":"https://api.github.com/users/OpenGamma/events{/privacy}","received_events_url":"https://api.github.com/users/OpenGamma/received_events","type":"Organization","site_admin":false},"repo":{"id":20882897,"name":"Strata","full_name":"OpenGamma/Strata","owner":{"login":"OpenGamma","id":120064,"avatar_url":"https://avatars.githubusercontent.com/u/120064?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenGamma","html_url":"https://github.com/OpenGamma","followers_url":"https://api.github.com/users/OpenGamma/followers","following_url":"https://api.github.com/users/OpenGamma/following{/other_user}","gists_url":"https://api.github.com/users/OpenGamma/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenGamma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenGamma/subscriptions","organizations_url":"https://api.github.com/users/OpenGamma/orgs","repos_url":"https://api.github.com/users/OpenGamma/repos","events_url":"https://api.github.com/users/OpenGamma/events{/privacy}","received_events_url":"https://api.github.com/users/OpenGamma/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenGamma/Strata","description":"OpenGamma's next-generation market risk toolkit","fork":false,"url":"https://api.github.com/repos/OpenGamma/Strata","forks_url":"https://api.github.com/repos/OpenGamma/Strata/forks","keys_url":"https://api.github.com/repos/OpenGamma/Strata/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenGamma/Strata/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenGamma/Strata/teams","hooks_url":"https://api.github.com/repos/OpenGamma/Strata/hooks","issue_events_url":"https://api.github.com/repos/OpenGamma/Strata/issues/events{/number}","events_url":"https://api.github.com/repos/OpenGamma/Strata/events","assignees_url":"https://api.github.com/repos/OpenGamma/Strata/assignees{/user}","branches_url":"https://api.github.com/repos/OpenGamma/Strata/branches{/branch}","tags_url":"https://api.github.com/repos/OpenGamma/Strata/tags","blobs_url":"https://api.github.com/repos/OpenGamma/Strata/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenGamma/Strata/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenGamma/Strata/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenGamma/Strata/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenGamma/Strata/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenGamma/Strata/languages","stargazers_url":"https://api.github.com/repos/OpenGamma/Strata/stargazers","contributors_url":"https://api.github.com/repos/OpenGamma/Strata/contributors","subscribers_url":"https://api.github.com/repos/OpenGamma/Strata/subscribers","subscription_url":"https://api.github.com/repos/OpenGamma/Strata/subscription","commits_url":"https://api.github.com/repos/OpenGamma/Strata/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenGamma/Strata/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenGamma/Strata/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenGamma/Strata/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenGamma/Strata/contents/{+path}","compare_url":"https://api.github.com/repos/OpenGamma/Strata/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenGamma/Strata/merges","archive_url":"https://api.github.com/repos/OpenGamma/Strata/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenGamma/Strata/downloads","issues_url":"https://api.github.com/repos/OpenGamma/Strata/issues{/number}","pulls_url":"https://api.github.com/repos/OpenGamma/Strata/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenGamma/Strata/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenGamma/Strata/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenGamma/Strata/labels{/name}","releases_url":"https://api.github.com/repos/OpenGamma/Strata/releases{/id}","deployments_url":"https://api.github.com/repos/OpenGamma/Strata/deployments","created_at":"2014-06-16T11:45:55Z","updated_at":"2016-04-12T21:38:27Z","pushed_at":"2016-04-18T11:44:40Z","git_url":"git://github.com/OpenGamma/Strata.git","ssh_url":"git@github.com:OpenGamma/Strata.git","clone_url":"https://github.com/OpenGamma/Strata.git","svn_url":"https://github.com/OpenGamma/Strata","homepage":"http://opengamma.github.io/StrataDocs","size":29468,"stargazers_count":49,"watchers_count":49,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":30,"mirror_url":null,"open_issues_count":75,"forks":30,"open_issues":75,"watchers":49,"default_branch":"master"}},"base":{"label":"OpenGamma:master","ref":"master","sha":"a991f3d6c843ab34302ab8c59bf88b43da1f5dd1","user":{"login":"OpenGamma","id":120064,"avatar_url":"https://avatars.githubusercontent.com/u/120064?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenGamma","html_url":"https://github.com/OpenGamma","followers_url":"https://api.github.com/users/OpenGamma/followers","following_url":"https://api.github.com/users/OpenGamma/following{/other_user}","gists_url":"https://api.github.com/users/OpenGamma/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenGamma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenGamma/subscriptions","organizations_url":"https://api.github.com/users/OpenGamma/orgs","repos_url":"https://api.github.com/users/OpenGamma/repos","events_url":"https://api.github.com/users/OpenGamma/events{/privacy}","received_events_url":"https://api.github.com/users/OpenGamma/received_events","type":"Organization","site_admin":false},"repo":{"id":20882897,"name":"Strata","full_name":"OpenGamma/Strata","owner":{"login":"OpenGamma","id":120064,"avatar_url":"https://avatars.githubusercontent.com/u/120064?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenGamma","html_url":"https://github.com/OpenGamma","followers_url":"https://api.github.com/users/OpenGamma/followers","following_url":"https://api.github.com/users/OpenGamma/following{/other_user}","gists_url":"https://api.github.com/users/OpenGamma/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenGamma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenGamma/subscriptions","organizations_url":"https://api.github.com/users/OpenGamma/orgs","repos_url":"https://api.github.com/users/OpenGamma/repos","events_url":"https://api.github.com/users/OpenGamma/events{/privacy}","received_events_url":"https://api.github.com/users/OpenGamma/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenGamma/Strata","description":"OpenGamma's next-generation market risk toolkit","fork":false,"url":"https://api.github.com/repos/OpenGamma/Strata","forks_url":"https://api.github.com/repos/OpenGamma/Strata/forks","keys_url":"https://api.github.com/repos/OpenGamma/Strata/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenGamma/Strata/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenGamma/Strata/teams","hooks_url":"https://api.github.com/repos/OpenGamma/Strata/hooks","issue_events_url":"https://api.github.com/repos/OpenGamma/Strata/issues/events{/number}","events_url":"https://api.github.com/repos/OpenGamma/Strata/events","assignees_url":"https://api.github.com/repos/OpenGamma/Strata/assignees{/user}","branches_url":"https://api.github.com/repos/OpenGamma/Strata/branches{/branch}","tags_url":"https://api.github.com/repos/OpenGamma/Strata/tags","blobs_url":"https://api.github.com/repos/OpenGamma/Strata/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenGamma/Strata/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenGamma/Strata/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenGamma/Strata/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenGamma/Strata/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenGamma/Strata/languages","stargazers_url":"https://api.github.com/repos/OpenGamma/Strata/stargazers","contributors_url":"https://api.github.com/repos/OpenGamma/Strata/contributors","subscribers_url":"https://api.github.com/repos/OpenGamma/Strata/subscribers","subscription_url":"https://api.github.com/repos/OpenGamma/Strata/subscription","commits_url":"https://api.github.com/repos/OpenGamma/Strata/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenGamma/Strata/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenGamma/Strata/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenGamma/Strata/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenGamma/Strata/contents/{+path}","compare_url":"https://api.github.com/repos/OpenGamma/Strata/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenGamma/Strata/merges","archive_url":"https://api.github.com/repos/OpenGamma/Strata/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenGamma/Strata/downloads","issues_url":"https://api.github.com/repos/OpenGamma/Strata/issues{/number}","pulls_url":"https://api.github.com/repos/OpenGamma/Strata/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenGamma/Strata/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenGamma/Strata/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenGamma/Strata/labels{/name}","releases_url":"https://api.github.com/repos/OpenGamma/Strata/releases{/id}","deployments_url":"https://api.github.com/repos/OpenGamma/Strata/deployments","created_at":"2014-06-16T11:45:55Z","updated_at":"2016-04-12T21:38:27Z","pushed_at":"2016-04-18T11:44:40Z","git_url":"git://github.com/OpenGamma/Strata.git","ssh_url":"git@github.com:OpenGamma/Strata.git","clone_url":"https://github.com/OpenGamma/Strata.git","svn_url":"https://github.com/OpenGamma/Strata","homepage":"http://opengamma.github.io/StrataDocs","size":29468,"stargazers_count":49,"watchers_count":49,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":30,"mirror_url":null,"open_issues_count":75,"forks":30,"open_issues":75,"watchers":49,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/899"},"html":{"href":"https://github.com/OpenGamma/Strata/pull/899"},"issue":{"href":"https://api.github.com/repos/OpenGamma/Strata/issues/899"},"comments":{"href":"https://api.github.com/repos/OpenGamma/Strata/issues/899/comments"},"review_comments":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/899/comments"},"review_comment":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/899/commits"},"statuses":{"href":"https://api.github.com/repos/OpenGamma/Strata/statuses/f77283d2373617e9b87acc16b5a902c3ffbfb450"}}}}