[ {
  "key" : "primary",
  "components" : [ {
    "name" : "metrics",
    "filesCount" : 5,
    "linesOfCode" : 158,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 5,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 158,
      "description" : [ ]
    } ]
  }, {
    "name" : "tools",
    "filesCount" : 2,
    "linesOfCode" : 94,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 2,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 94,
      "description" : [ ]
    } ]
  }, {
    "name" : "ROOT",
    "filesCount" : 1,
    "linesOfCode" : 11,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.yml",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.yml",
      "value" : 11,
      "description" : [ ]
    } ]
  }, {
    "name" : "core",
    "filesCount" : 10,
    "linesOfCode" : 542,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 10,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 542,
      "description" : [ ]
    } ]
  }, {
    "name" : "proxy",
    "filesCount" : 8,
    "linesOfCode" : 436,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 8,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 436,
      "description" : [ ]
    } ]
  }, {
    "name" : "proto",
    "filesCount" : 1,
    "linesOfCode" : 82,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.proto",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.proto",
      "value" : 82,
      "description" : [ ]
    } ]
  }, {
    "name" : "config",
    "filesCount" : 5,
    "linesOfCode" : 235,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.yaml",
      "value" : 5,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.yaml",
      "value" : 235,
      "description" : [ ]
    } ]
  }, {
    "name" : "build-index",
    "filesCount" : 14,
    "linesOfCode" : 1268,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 14,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 1268,
      "description" : [ ]
    } ]
  }, {
    "name" : "localdb",
    "filesCount" : 5,
    "linesOfCode" : 108,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 5,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 108,
      "description" : [ ]
    } ]
  }, {
    "name" : "utils",
    "filesCount" : 33,
    "linesOfCode" : 2120,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 33,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 2120,
      "description" : [ ]
    } ]
  }, {
    "name" : "tracker",
    "filesCount" : 24,
    "linesOfCode" : 1257,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 24,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 1257,
      "description" : [ ]
    } ]
  }, {
    "name" : "agent",
    "filesCount" : 5,
    "linesOfCode" : 465,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 5,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 465,
      "description" : [ ]
    } ]
  }, {
    "name" : "nginx",
    "filesCount" : 8,
    "linesOfCode" : 503,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 8,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 503,
      "description" : [ ]
    } ]
  }, {
    "name" : "lib",
    "filesCount" : 160,
    "linesOfCode" : 12780,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 160,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 12780,
      "description" : [ ]
    } ]
  }, {
    "name" : "origin",
    "filesCount" : 12,
    "linesOfCode" : 1659,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.go",
      "value" : 12,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.go",
      "value" : 1659,
      "description" : [ ]
    } ]
  }, {
    "name" : "helm",
    "filesCount" : 15,
    "linesOfCode" : 503,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.yaml",
      "value" : 14,
      "description" : [ ]
    }, {
      "name" : "  *.tpl",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.yaml",
      "value" : 471,
      "description" : [ ]
    }, {
      "name" : "  *.tpl",
      "value" : 32,
      "description" : [ ]
    } ]
  } ],
  "componentDependencies" : [ {
    "fromComponent" : "metrics",
    "locFrom" : 58,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "metrics/metrics.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    } ],
    "toComponent" : "utils",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "metrics -> utils"
  }, {
    "fromComponent" : "tools",
    "locFrom" : 26,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tools/lib/tlsutil.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    } ],
    "toComponent" : "utils",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "tools -> utils"
  }, {
    "fromComponent" : "core",
    "locFrom" : 92,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "core/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/utils/randutil\""
    } ],
    "toComponent" : "utils",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "core -> utils"
  }, {
    "fromComponent" : "proxy",
    "locFrom" : 166,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "proxy/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/metrics\""
    }, {
      "pathFrom" : "proxy/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/metrics\""
    } ],
    "toComponent" : "metrics",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "proxy -> metrics"
  }, {
    "fromComponent" : "build-index",
    "locFrom" : 220,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "build-index/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/metrics\""
    }, {
      "pathFrom" : "build-index/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/metrics\""
    } ],
    "toComponent" : "metrics",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "build-index -> metrics"
  }, {
    "fromComponent" : "tracker",
    "locFrom" : 142,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tracker/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/metrics\""
    }, {
      "pathFrom" : "tracker/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/metrics\""
    } ],
    "toComponent" : "metrics",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "tracker -> metrics"
  }, {
    "fromComponent" : "agent",
    "locFrom" : 228,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "agent/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/metrics\""
    }, {
      "pathFrom" : "agent/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/metrics\""
    } ],
    "toComponent" : "metrics",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "agent -> metrics"
  }, {
    "fromComponent" : "origin",
    "locFrom" : 286,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "origin/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/metrics\""
    }, {
      "pathFrom" : "origin/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/metrics\""
    } ],
    "toComponent" : "metrics",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "origin -> metrics"
  }, {
    "fromComponent" : "agent",
    "locFrom" : 460,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "agent/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "agent/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "agent/agentserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "agent/agentclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    } ],
    "toComponent" : "core",
    "count" : 4,
    "text" : null,
    "color" : "",
    "dependencyString" : "agent -> core"
  }, {
    "fromComponent" : "origin",
    "locFrom" : 1596,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "origin/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "origin/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "origin/blobserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "origin/blobserver/uploader.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "origin/blobserver/utils.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "origin/blobclient/cluster_client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "origin/blobclient/uploader.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "origin/blobclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    } ],
    "toComponent" : "core",
    "count" : 8,
    "text" : null,
    "color" : "",
    "dependencyString" : "origin -> core"
  }, {
    "fromComponent" : "build-index",
    "locFrom" : 220,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "build-index/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/localdb\""
    }, {
      "pathFrom" : "build-index/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/localdb\""
    } ],
    "toComponent" : "localdb",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "build-index -> localdb"
  }, {
    "fromComponent" : "origin",
    "locFrom" : 286,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "origin/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/localdb\""
    }, {
      "pathFrom" : "origin/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/localdb\""
    } ],
    "toComponent" : "localdb",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "origin -> localdb"
  }, {
    "fromComponent" : "origin",
    "locFrom" : 1611,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "origin/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "origin/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "origin/blobserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "origin/blobserver/uploader.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "origin/blobserver/utils.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "origin/blobserver/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/listener\""
    }, {
      "pathFrom" : "origin/blobclient/cluster_client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "origin/blobclient/uploader.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "origin/blobclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    } ],
    "toComponent" : "utils",
    "count" : 9,
    "text" : null,
    "color" : "",
    "dependencyString" : "origin -> utils"
  }, {
    "fromComponent" : "proxy",
    "locFrom" : 408,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "proxy/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "proxy/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/utils/configutil\""
    }, {
      "pathFrom" : "proxy/proxyserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "proxy/proxyserver/preheat.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "proxy/registryoverride/server.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    } ],
    "toComponent" : "utils",
    "count" : 5,
    "text" : null,
    "color" : "",
    "dependencyString" : "proxy -> utils"
  }, {
    "fromComponent" : "build-index",
    "locFrom" : 996,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "build-index/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "build-index/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/utils/configutil\""
    }, {
      "pathFrom" : "build-index/tagclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "build-index/tagtype/docker_resolver.go",
      "evidence" : "    \"github.com/uber/kraken/utils/dockerutil\""
    }, {
      "pathFrom" : "build-index/tagserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "build-index/tagserver/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/listener\""
    } ],
    "toComponent" : "utils",
    "count" : 6,
    "text" : null,
    "color" : "",
    "dependencyString" : "build-index -> utils"
  }, {
    "fromComponent" : "tracker",
    "locFrom" : 787,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tracker/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "tracker/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/utils/configutil\""
    }, {
      "pathFrom" : "tracker/originstore/store.go",
      "evidence" : "    \"github.com/uber/kraken/utils/errutil\""
    }, {
      "pathFrom" : "tracker/peerstore/redis.go",
      "evidence" : "    \"github.com/uber/kraken/utils/randutil\""
    }, {
      "pathFrom" : "tracker/peerstore/store.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "tracker/trackerserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "tracker/trackerserver/metainfo.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "tracker/trackerserver/announce.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "tracker/trackerserver/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/listener\""
    }, {
      "pathFrom" : "tracker/announceclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "tracker/metainfoclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    } ],
    "toComponent" : "utils",
    "count" : 11,
    "text" : null,
    "color" : "",
    "dependencyString" : "tracker -> utils"
  }, {
    "fromComponent" : "agent",
    "locFrom" : 460,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "agent/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "agent/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/utils/configutil\""
    }, {
      "pathFrom" : "agent/agentserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "agent/agentclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    } ],
    "toComponent" : "utils",
    "count" : 4,
    "text" : null,
    "color" : "",
    "dependencyString" : "agent -> utils"
  }, {
    "fromComponent" : "proxy",
    "locFrom" : 166,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "proxy/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/nginx\""
    }, {
      "pathFrom" : "proxy/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/nginx\""
    } ],
    "toComponent" : "nginx",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "proxy -> nginx"
  }, {
    "fromComponent" : "build-index",
    "locFrom" : 220,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "build-index/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/nginx\""
    }, {
      "pathFrom" : "build-index/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/nginx\""
    } ],
    "toComponent" : "nginx",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "build-index -> nginx"
  }, {
    "fromComponent" : "tracker",
    "locFrom" : 142,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tracker/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/nginx\""
    }, {
      "pathFrom" : "tracker/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/nginx\""
    } ],
    "toComponent" : "nginx",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "tracker -> nginx"
  }, {
    "fromComponent" : "agent",
    "locFrom" : 228,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "agent/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/nginx\""
    }, {
      "pathFrom" : "agent/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/nginx\""
    } ],
    "toComponent" : "nginx",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "agent -> nginx"
  }, {
    "fromComponent" : "origin",
    "locFrom" : 286,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "origin/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/nginx\""
    }, {
      "pathFrom" : "origin/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/nginx\""
    } ],
    "toComponent" : "nginx",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "origin -> nginx"
  }, {
    "fromComponent" : "origin",
    "locFrom" : 1270,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "origin/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/lib/metainfogen\""
    }, {
      "pathFrom" : "origin/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/lib/metainfogen\""
    }, {
      "pathFrom" : "origin/blobserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/lib/middleware\""
    }, {
      "pathFrom" : "origin/blobserver/uploader.go",
      "evidence" : "    \"github.com/uber/kraken/lib/store\""
    }, {
      "pathFrom" : "origin/blobserver/utils.go",
      "evidence" : "    \"github.com/uber/kraken/lib/store\""
    }, {
      "pathFrom" : "origin/blobclient/provider.go",
      "evidence" : "    \"github.com/uber/kraken/lib/hostlist\""
    }, {
      "pathFrom" : "origin/blobclient/cluster_client.go",
      "evidence" : "    \"github.com/uber/kraken/lib/hostlist\""
    } ],
    "toComponent" : "lib",
    "count" : 7,
    "text" : null,
    "color" : "",
    "dependencyString" : "origin -> lib"
  }, {
    "fromComponent" : "agent",
    "locFrom" : 408,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "agent/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/lib/containerruntime\""
    }, {
      "pathFrom" : "agent/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/lib/containerruntime\""
    }, {
      "pathFrom" : "agent/agentserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/lib/middleware\""
    } ],
    "toComponent" : "lib",
    "count" : 3,
    "text" : null,
    "color" : "",
    "dependencyString" : "agent -> lib"
  }, {
    "fromComponent" : "proxy",
    "locFrom" : 201,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "proxy/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/lib/healthcheck\""
    }, {
      "pathFrom" : "proxy/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/lib/dockerregistry\""
    }, {
      "pathFrom" : "proxy/proxyserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/lib/middleware\""
    } ],
    "toComponent" : "lib",
    "count" : 3,
    "text" : null,
    "color" : "",
    "dependencyString" : "proxy -> lib"
  }, {
    "fromComponent" : "build-index",
    "locFrom" : 1070,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "build-index/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/lib/healthcheck\""
    }, {
      "pathFrom" : "build-index/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/lib/backend\""
    }, {
      "pathFrom" : "build-index/tagclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/lib/healthcheck\""
    }, {
      "pathFrom" : "build-index/tagstore/store.go",
      "evidence" : "    \"github.com/uber/kraken/lib/backend\""
    }, {
      "pathFrom" : "build-index/tagserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/lib/middleware\""
    } ],
    "toComponent" : "lib",
    "count" : 5,
    "text" : null,
    "color" : "",
    "dependencyString" : "build-index -> lib"
  }, {
    "fromComponent" : "tracker",
    "locFrom" : 469,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tracker/cmd/cmd.go",
      "evidence" : "    \"github.com/uber/kraken/lib/healthcheck\""
    }, {
      "pathFrom" : "tracker/cmd/config.go",
      "evidence" : "    \"github.com/uber/kraken/lib/upstream\""
    }, {
      "pathFrom" : "tracker/originstore/store.go",
      "evidence" : "    \"github.com/uber/kraken/lib/hostlist\""
    }, {
      "pathFrom" : "tracker/trackerserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/lib/middleware\""
    }, {
      "pathFrom" : "tracker/announceclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/lib/hashring\""
    }, {
      "pathFrom" : "tracker/metainfoclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/lib/hashring\""
    } ],
    "toComponent" : "lib",
    "count" : 6,
    "text" : null,
    "color" : "",
    "dependencyString" : "tracker -> lib"
  }, {
    "fromComponent" : "proxy",
    "locFrom" : 105,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "proxy/proxyserver/preheat.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    } ],
    "toComponent" : "core",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "proxy -> core"
  }, {
    "fromComponent" : "proxy",
    "locFrom" : 140,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "proxy/proxyserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/origin/blobclient\""
    }, {
      "pathFrom" : "proxy/proxyserver/preheat.go",
      "evidence" : "    \"github.com/uber/kraken/origin/blobclient\""
    } ],
    "toComponent" : "origin",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "proxy -> origin"
  }, {
    "fromComponent" : "proxy",
    "locFrom" : 102,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "proxy/registryoverride/server.go",
      "evidence" : "    \"github.com/uber/kraken/build-index/tagclient\""
    } ],
    "toComponent" : "build-index",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "proxy -> build-index"
  }, {
    "fromComponent" : "build-index",
    "locFrom" : 938,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "build-index/tagclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "build-index/tagtype/docker_resolver.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "build-index/tagtype/map.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "build-index/tagstore/store.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "build-index/tagserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    } ],
    "toComponent" : "core",
    "count" : 5,
    "text" : null,
    "color" : "",
    "dependencyString" : "build-index -> core"
  }, {
    "fromComponent" : "build-index",
    "locFrom" : 495,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "build-index/tagtype/docker_resolver.go",
      "evidence" : "    \"github.com/uber/kraken/origin/blobclient\""
    }, {
      "pathFrom" : "build-index/tagtype/map.go",
      "evidence" : "    \"github.com/uber/kraken/origin/blobclient\""
    }, {
      "pathFrom" : "build-index/tagserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/origin/blobclient\""
    } ],
    "toComponent" : "origin",
    "count" : 3,
    "text" : null,
    "color" : "",
    "dependencyString" : "build-index -> origin"
  }, {
    "fromComponent" : "localdb",
    "locFrom" : 49,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "localdb/database.go",
      "evidence" : "    \"github.com/uber/kraken/utils/osutil\""
    }, {
      "pathFrom" : "localdb/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/utils/testutil\""
    } ],
    "toComponent" : "utils",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "localdb -> utils"
  }, {
    "fromComponent" : "utils",
    "locFrom" : 441,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "utils/httputil/httputil.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "utils/dockerutil/dockerutil.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "utils/dockerutil/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    } ],
    "toComponent" : "core",
    "count" : 3,
    "text" : null,
    "color" : "",
    "dependencyString" : "utils -> core"
  }, {
    "fromComponent" : "tracker",
    "locFrom" : 849,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tracker/originstore/store.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "tracker/peerstore/store.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "tracker/peerstore/local.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "tracker/peerstore/redis.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "tracker/peerstore/testing.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "tracker/peerhandoutpolicy/peerhandoutpolicy.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "tracker/trackerserver/announce.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "tracker/announceclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "tracker/metainfoclient/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "tracker/metainfoclient/testing.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    } ],
    "toComponent" : "core",
    "count" : 10,
    "text" : null,
    "color" : "",
    "dependencyString" : "tracker -> core"
  }, {
    "fromComponent" : "tracker",
    "locFrom" : 153,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tracker/originstore/store.go",
      "evidence" : "    \"github.com/uber/kraken/origin/blobclient\""
    }, {
      "pathFrom" : "tracker/trackerserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/origin/blobclient\""
    } ],
    "toComponent" : "origin",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "tracker -> origin"
  }, {
    "fromComponent" : "agent",
    "locFrom" : 180,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "agent/agentserver/server.go",
      "evidence" : "    \"github.com/uber/kraken/build-index/tagclient\""
    } ],
    "toComponent" : "build-index",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "agent -> build-index"
  }, {
    "fromComponent" : "nginx",
    "locFrom" : 194,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "nginx/nginx.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    } ],
    "toComponent" : "utils",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "nginx -> utils"
  }, {
    "fromComponent" : "lib",
    "locFrom" : 6330,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "lib/metainfogen/generator.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/noop.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/registrybackend/blobclient.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/registrybackend/tagclient.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/httpbackend/http.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/shadowbackend/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/hdfsbackend/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/gcsbackend/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/testfs/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/s3backend/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/backend/sqlbackend/client.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/blobrefresh/refresher.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/events.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/state.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/constructors.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/scheduler.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/announcer/announcer.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/connstate/state.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/dispatch/dispatcher.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/dispatch/peer.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/dispatch/piecerequest/manager.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/torrentlog/logger.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/announcequeue/queue.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/conn/fake_peer.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/conn/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/conn/handshaker.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/conn/conn.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/storage/storage.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/storage/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/storage/torrent_info.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/storage/agentstorage/torrent.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/storage/agentstorage/torrent_archive.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/storage/agentstorage/pieces.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/storage/agentstorage/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/storage/originstorage/torrent.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/storage/originstorage/torrent_archive.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/torrent/networkevent/events.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/hashring/ring.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/persistedretry/writeback/task.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/persistedretry/writeback/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/persistedretry/tagreplication/task.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/persistedretry/tagreplication/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/dockerregistry/paths.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/dockerregistry/manifests.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/dockerregistry/transfer/transferer.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/dockerregistry/transfer/rw_transferer.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/dockerregistry/transfer/testing.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/dockerregistry/transfer/ro_transferer.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/store/ca_store.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/store/testing.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/store/metadata/torrentmeta.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    }, {
      "pathFrom" : "lib/store/base/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/core\""
    } ],
    "toComponent" : "core",
    "count" : 53,
    "text" : null,
    "color" : "",
    "dependencyString" : "lib -> core"
  }, {
    "fromComponent" : "lib",
    "locFrom" : 7696,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "lib/healthcheck/checker.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "lib/healthcheck/passive_filter.go",
      "evidence" : "    \"github.com/uber/kraken/utils/stringset\""
    }, {
      "pathFrom" : "lib/healthcheck/monitor.go",
      "evidence" : "    \"github.com/uber/kraken/utils/stringset\""
    }, {
      "pathFrom" : "lib/healthcheck/filter.go",
      "evidence" : "    \"github.com/uber/kraken/utils/stringset\""
    }, {
      "pathFrom" : "lib/healthcheck/passive.go",
      "evidence" : "    \"github.com/uber/kraken/utils/stringset\""
    }, {
      "pathFrom" : "lib/healthcheck/state.go",
      "evidence" : "    \"github.com/uber/kraken/utils/stringset\""
    }, {
      "pathFrom" : "lib/backend/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/bandwidth\""
    }, {
      "pathFrom" : "lib/backend/manager.go",
      "evidence" : "    \"github.com/uber/kraken/utils/bandwidth\""
    }, {
      "pathFrom" : "lib/backend/throttle.go",
      "evidence" : "    \"github.com/uber/kraken/utils/bandwidth\""
    }, {
      "pathFrom" : "lib/backend/constants.go",
      "evidence" : "    \"github.com/uber/kraken/utils/memsize\""
    }, {
      "pathFrom" : "lib/backend/registrybackend/blobclient.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "lib/backend/registrybackend/tagclient.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "lib/backend/registrybackend/security/security.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "lib/backend/httpbackend/http.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "lib/backend/shadowbackend/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/backend/hdfsbackend/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "lib/backend/hdfsbackend/webhdfs/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "lib/backend/gcsbackend/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/backend/testfs/server.go",
      "evidence" : "    \"github.com/uber/kraken/utils/handler\""
    }, {
      "pathFrom" : "lib/backend/testfs/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/httputil\""
    }, {
      "pathFrom" : "lib/backend/s3backend/client.go",
      "evidence" : "    \"github.com/uber/kraken/utils/rwutil\""
    }, {
      "pathFrom" : "lib/blobrefresh/refresher.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/events.go",
      "evidence" : "    \"github.com/uber/kraken/utils/timeutil\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/buckets.go",
      "evidence" : "    \"github.com/uber/kraken/utils/memsize\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/reload.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/scheduler.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/dispatch/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/timeutil\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/dispatch/dispatcher.go",
      "evidence" : "    \"github.com/uber/kraken/utils/syncutil\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/dispatch/piecerequest/rarest_first_policy.go",
      "evidence" : "    \"github.com/uber/kraken/utils/heap\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/dispatch/piecerequest/policy.go",
      "evidence" : "    \"github.com/uber/kraken/utils/syncutil\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/dispatch/piecerequest/manager.go",
      "evidence" : "    \"github.com/uber/kraken/utils/syncutil\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/dispatch/piecerequest/default_policy.go",
      "evidence" : "    \"github.com/uber/kraken/utils/syncutil\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/torrentlog/logger.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/conn/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/bandwidth\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/conn/handshaker.go",
      "evidence" : "    \"github.com/uber/kraken/utils/bandwidth\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/conn/conn.go",
      "evidence" : "    \"github.com/uber/kraken/utils/bandwidth\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/conn/fake_peer.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/conn/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/utils/testutil\""
    }, {
      "pathFrom" : "lib/torrent/storage/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/utils/randutil\""
    }, {
      "pathFrom" : "lib/torrent/storage/agentstorage/torrent.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/torrent/storage/agentstorage/pieces.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/torrent/storage/agentstorage/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/utils/testutil\""
    }, {
      "pathFrom" : "lib/torrent/networkevent/util.go",
      "evidence" : "    \"github.com/uber/kraken/utils/stringset\""
    }, {
      "pathFrom" : "lib/torrent/networkevent/producer.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/torrent/networkevent/events.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/hashring/ring.go",
      "evidence" : "    \"github.com/uber/kraken/utils/stringset\""
    }, {
      "pathFrom" : "lib/persistedretry/manager.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/persistedretry/writeback/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/utils/randutil\""
    }, {
      "pathFrom" : "lib/persistedretry/writeback/executor.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/persistedretry/tagreplication/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/utils/randutil\""
    }, {
      "pathFrom" : "lib/dockerregistry/manifests.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/dockerregistry/storage_driver.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/dockerregistry/transfer/rw_transferer.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/hostlist/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/stringset\""
    }, {
      "pathFrom" : "lib/hostlist/list.go",
      "evidence" : "    \"github.com/uber/kraken/utils/stringset\""
    }, {
      "pathFrom" : "lib/upstream/config.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/store/cleanup.go",
      "evidence" : "    \"github.com/uber/kraken/utils/diskspaceutil\""
    }, {
      "pathFrom" : "lib/store/utils.go",
      "evidence" : "    \"github.com/uber/kraken/utils/osutil\""
    }, {
      "pathFrom" : "lib/store/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/utils/testutil\""
    }, {
      "pathFrom" : "lib/store/testing.go",
      "evidence" : "    \"github.com/uber/kraken/utils/testutil\""
    }, {
      "pathFrom" : "lib/store/base/file_entry.go",
      "evidence" : "    \"github.com/uber/kraken/utils/stringset\""
    }, {
      "pathFrom" : "lib/store/base/file_map.go",
      "evidence" : "    \"github.com/uber/kraken/utils/log\""
    }, {
      "pathFrom" : "lib/store/base/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/utils/testutil\""
    } ],
    "toComponent" : "utils",
    "count" : 64,
    "text" : null,
    "color" : "",
    "dependencyString" : "lib -> utils"
  }, {
    "fromComponent" : "lib",
    "locFrom" : 575,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "lib/torrent/scheduler/constructors.go",
      "evidence" : "    \"github.com/uber/kraken/tracker/announceclient\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/scheduler.go",
      "evidence" : "    \"github.com/uber/kraken/tracker/announceclient\""
    }, {
      "pathFrom" : "lib/torrent/scheduler/announcer/announcer.go",
      "evidence" : "    \"github.com/uber/kraken/tracker/announceclient\""
    }, {
      "pathFrom" : "lib/torrent/storage/agentstorage/torrent_archive.go",
      "evidence" : "    \"github.com/uber/kraken/tracker/metainfoclient\""
    }, {
      "pathFrom" : "lib/torrent/storage/agentstorage/fixtures.go",
      "evidence" : "    \"github.com/uber/kraken/tracker/metainfoclient\""
    } ],
    "toComponent" : "tracker",
    "count" : 5,
    "text" : null,
    "color" : "",
    "dependencyString" : "lib -> tracker"
  }, {
    "fromComponent" : "lib",
    "locFrom" : 235,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "lib/persistedretry/tagreplication/executor.go",
      "evidence" : "    \"github.com/uber/kraken/build-index/tagclient\""
    }, {
      "pathFrom" : "lib/dockerregistry/transfer/rw_transferer.go",
      "evidence" : "    \"github.com/uber/kraken/build-index/tagclient\""
    }, {
      "pathFrom" : "lib/dockerregistry/transfer/ro_transferer.go",
      "evidence" : "    \"github.com/uber/kraken/build-index/tagclient\""
    } ],
    "toComponent" : "build-index",
    "count" : 3,
    "text" : null,
    "color" : "",
    "dependencyString" : "lib -> build-index"
  }, {
    "fromComponent" : "lib",
    "locFrom" : 156,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "lib/persistedretry/tagreplication/executor.go",
      "evidence" : "    \"github.com/uber/kraken/origin/blobclient\""
    }, {
      "pathFrom" : "lib/dockerregistry/transfer/rw_transferer.go",
      "evidence" : "    \"github.com/uber/kraken/origin/blobclient\""
    } ],
    "toComponent" : "origin",
    "count" : 2,
    "text" : null,
    "color" : "",
    "dependencyString" : "lib -> origin"
  } ],
  "componentDependenciesErrors" : [ ],
  "logicalDecomposition" : {
    "name" : "primary",
    "scope" : "main",
    "filters" : [ ],
    "componentsFolderDepth" : 1,
    "minComponentsCount" : 0,
    "components" : [ {
      "name" : "metrics",
      "sourceFileFilters" : [ {
        "pathPattern" : "./metrics/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "tools",
      "sourceFileFilters" : [ {
        "pathPattern" : "./tools/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "ROOT",
      "sourceFileFilters" : [ {
        "pathPattern" : "./.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      }, {
        "pathPattern" : "./metrics/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./tools/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./core/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./proxy/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./proto/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./config/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./build-index/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./localdb/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./utils/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./tracker/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./agent/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./nginx/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./lib/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./origin/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./helm/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "core",
      "sourceFileFilters" : [ {
        "pathPattern" : "./core/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "proxy",
      "sourceFileFilters" : [ {
        "pathPattern" : "./proxy/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "proto",
      "sourceFileFilters" : [ {
        "pathPattern" : "./proto/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "config",
      "sourceFileFilters" : [ {
        "pathPattern" : "./config/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "build-index",
      "sourceFileFilters" : [ {
        "pathPattern" : "./build-index/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "localdb",
      "sourceFileFilters" : [ {
        "pathPattern" : "./localdb/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "utils",
      "sourceFileFilters" : [ {
        "pathPattern" : "./utils/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "tracker",
      "sourceFileFilters" : [ {
        "pathPattern" : "./tracker/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "agent",
      "sourceFileFilters" : [ {
        "pathPattern" : "./agent/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "nginx",
      "sourceFileFilters" : [ {
        "pathPattern" : "./nginx/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "lib",
      "sourceFileFilters" : [ {
        "pathPattern" : "./lib/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "origin",
      "sourceFileFilters" : [ {
        "pathPattern" : "./origin/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "helm",
      "sourceFileFilters" : [ {
        "pathPattern" : "./helm/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    } ],
    "metaComponents" : [ ],
    "groups" : [ ],
    "includeRemainingFiles" : true,
    "dependenciesFinder" : {
      "useBuiltInDependencyFinders" : true,
      "rules" : [ ],
      "metaRules" : [ ]
    },
    "renderingOptions" : {
      "orientation" : "TB",
      "maxNumberOfDependencies" : 100,
      "renderComponentsWithoutDependencies" : true,
      "renderIndirectDependencies" : false,
      "renderInternalIndirectDependencies" : false,
      "reverseDirection" : false
    },
    "includeExternalComponents" : true,
    "dependencyLinkThreshold" : 1,
    "duplicationLinkThreshold" : 50,
    "temporalLinkThreshold" : 1,
    "maxSearchDepthLines" : 200
  },
  "linesOfCodePerComponent" : [ {
    "name" : "metrics",
    "value" : 158,
    "description" : [ ]
  }, {
    "name" : "tools",
    "value" : 94,
    "description" : [ ]
  }, {
    "name" : "ROOT",
    "value" : 11,
    "description" : [ ]
  }, {
    "name" : "core",
    "value" : 542,
    "description" : [ ]
  }, {
    "name" : "proxy",
    "value" : 436,
    "description" : [ ]
  }, {
    "name" : "proto",
    "value" : 82,
    "description" : [ ]
  }, {
    "name" : "config",
    "value" : 235,
    "description" : [ ]
  }, {
    "name" : "build-index",
    "value" : 1268,
    "description" : [ ]
  }, {
    "name" : "localdb",
    "value" : 108,
    "description" : [ ]
  }, {
    "name" : "utils",
    "value" : 2120,
    "description" : [ ]
  }, {
    "name" : "tracker",
    "value" : 1257,
    "description" : [ ]
  }, {
    "name" : "agent",
    "value" : 465,
    "description" : [ ]
  }, {
    "name" : "nginx",
    "value" : 503,
    "description" : [ ]
  }, {
    "name" : "lib",
    "value" : 12780,
    "description" : [ ]
  }, {
    "name" : "origin",
    "value" : 1659,
    "description" : [ ]
  }, {
    "name" : "helm",
    "value" : 503,
    "description" : [ ]
  } ],
  "fileCountPerComponent" : [ {
    "name" : "metrics",
    "value" : 5,
    "description" : [ ]
  }, {
    "name" : "tools",
    "value" : 2,
    "description" : [ ]
  }, {
    "name" : "ROOT",
    "value" : 1,
    "description" : [ ]
  }, {
    "name" : "core",
    "value" : 10,
    "description" : [ ]
  }, {
    "name" : "proxy",
    "value" : 8,
    "description" : [ ]
  }, {
    "name" : "proto",
    "value" : 1,
    "description" : [ ]
  }, {
    "name" : "config",
    "value" : 5,
    "description" : [ ]
  }, {
    "name" : "build-index",
    "value" : 14,
    "description" : [ ]
  }, {
    "name" : "localdb",
    "value" : 5,
    "description" : [ ]
  }, {
    "name" : "utils",
    "value" : 33,
    "description" : [ ]
  }, {
    "name" : "tracker",
    "value" : 24,
    "description" : [ ]
  }, {
    "name" : "agent",
    "value" : 5,
    "description" : [ ]
  }, {
    "name" : "nginx",
    "value" : 8,
    "description" : [ ]
  }, {
    "name" : "lib",
    "value" : 160,
    "description" : [ ]
  }, {
    "name" : "origin",
    "value" : 12,
    "description" : [ ]
  }, {
    "name" : "helm",
    "value" : 15,
    "description" : [ ]
  } ]
} ]