[ {
  "key" : "primary",
  "components" : [ {
    "name" : "autodispose-interop",
    "filesCount" : 2,
    "linesOfCode" : 95,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kt",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kt",
      "value" : 78,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 17,
      "description" : [ ]
    } ]
  }, {
    "name" : "test-utils",
    "filesCount" : 1,
    "linesOfCode" : 6,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kts",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kts",
      "value" : 6,
      "description" : [ ]
    } ]
  }, {
    "name" : "autodispose-lifecycle",
    "filesCount" : 8,
    "linesOfCode" : 196,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.java",
      "value" : 7,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.java",
      "value" : 180,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 16,
      "description" : [ ]
    } ]
  }, {
    "name" : "ROOT",
    "filesCount" : 3,
    "linesOfCode" : 329,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kts",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "  *.yml",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kts",
      "value" : 279,
      "description" : [ ]
    }, {
      "name" : "  *.yml",
      "value" : 50,
      "description" : [ ]
    } ]
  }, {
    "name" : "spotless",
    "filesCount" : 2,
    "linesOfCode" : 2,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.java",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.kt",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.java",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.kt",
      "value" : 1,
      "description" : [ ]
    } ]
  }, {
    "name" : "gradle",
    "filesCount" : 1,
    "linesOfCode" : 87,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.toml",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.toml",
      "value" : 87,
      "description" : [ ]
    } ]
  }, {
    "name" : "android",
    "filesCount" : 16,
    "linesOfCode" : 561,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.java",
      "value" : 9,
      "description" : [ ]
    }, {
      "name" : "  *.kt",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 3,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.pro",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.java",
      "value" : 338,
      "description" : [ ]
    }, {
      "name" : "  *.kt",
      "value" : 158,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 57,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 6,
      "description" : [ ]
    }, {
      "name" : "  *.pro",
      "value" : 2,
      "description" : [ ]
    } ]
  }, {
    "name" : "sample",
    "filesCount" : 36,
    "linesOfCode" : 1596,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kt",
      "value" : 16,
      "description" : [ ]
    }, {
      "name" : "  *.java",
      "value" : 11,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 8,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kt",
      "value" : 754,
      "description" : [ ]
    }, {
      "name" : "  *.java",
      "value" : 531,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 229,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 82,
      "description" : [ ]
    } ]
  }, {
    "name" : "static-analysis",
    "filesCount" : 6,
    "linesOfCode" : 777,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.java",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "  *.kt",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 2,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.java",
      "value" : 375,
      "description" : [ ]
    }, {
      "name" : "  *.kt",
      "value" : 344,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 58,
      "description" : [ ]
    } ]
  }, {
    "name" : "autodispose",
    "filesCount" : 42,
    "linesOfCode" : 1586,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.java",
      "value" : 39,
      "description" : [ ]
    }, {
      "name" : "  *.kt",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.pro",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.java",
      "value" : 1485,
      "description" : [ ]
    }, {
      "name" : "  *.kt",
      "value" : 77,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 22,
      "description" : [ ]
    }, {
      "name" : "  *.pro",
      "value" : 2,
      "description" : [ ]
    } ]
  } ],
  "componentDependencies" : [ {
    "fromComponent" : "autodispose-lifecycle",
    "locFrom" : 119,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "autodispose-lifecycle/src/main/java/autodispose2/lifecycle/LifecycleNotStartedException.java",
      "evidence" : "import autodispose2.OutsideScopeException;"
    }, {
      "pathFrom" : "autodispose-lifecycle/src/main/java/autodispose2/lifecycle/LifecycleScopes.java",
      "evidence" : "import autodispose2.AutoDisposePlugins;"
    }, {
      "pathFrom" : "autodispose-lifecycle/src/main/java/autodispose2/lifecycle/CorrespondingEventsFunction.java",
      "evidence" : "import autodispose2.OutsideScopeException;"
    }, {
      "pathFrom" : "autodispose-lifecycle/src/main/java/autodispose2/lifecycle/LifecycleScopeProvider.java",
      "evidence" : "import autodispose2.ScopeProvider;"
    }, {
      "pathFrom" : "autodispose-lifecycle/src/main/java/autodispose2/lifecycle/LifecycleEndedException.java",
      "evidence" : "import autodispose2.OutsideScopeException;"
    } ],
    "toComponent" : "autodispose",
    "count" : 5,
    "text" : null,
    "color" : "",
    "dependencyString" : "autodispose-lifecycle -> autodispose"
  }, {
    "fromComponent" : "android",
    "locFrom" : 86,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "android/autodispose-androidx-lifecycle/src/main/java/autodispose2/androidx/lifecycle/AndroidLifecycleScopeProvider.java",
      "evidence" : "import autodispose2.lifecycle.CorrespondingEventsFunction;"
    } ],
    "toComponent" : "autodispose-lifecycle",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "android -> autodispose-lifecycle"
  }, {
    "fromComponent" : "android",
    "locFrom" : 323,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "android/autodispose-androidx-lifecycle/src/main/java/autodispose2/androidx/lifecycle/AndroidLifecycleScopeProvider.java",
      "evidence" : "import autodispose2.OutsideScopeException;"
    }, {
      "pathFrom" : "android/autodispose-android/src/main/java/autodispose2/android/ViewScopeProvider.java",
      "evidence" : "import autodispose2.ScopeProvider;"
    }, {
      "pathFrom" : "android/autodispose-android/src/main/java/autodispose2/android/DetachEventCompletable.java",
      "evidence" : "import autodispose2.OutsideScopeException;"
    }, {
      "pathFrom" : "android/autodispose-androidx-lifecycle/src/main/java/autodispose2/androidx/lifecycle/KotlinExtensions.kt",
      "evidence" : "import autodispose2.AutoDispose"
    }, {
      "pathFrom" : "android/autodispose-android/src/main/java/autodispose2/android/KotlinExtensions.kt",
      "evidence" : "import autodispose2.AutoDispose"
    } ],
    "toComponent" : "autodispose",
    "count" : 5,
    "text" : null,
    "color" : "",
    "dependencyString" : "android -> autodispose"
  }, {
    "fromComponent" : "sample",
    "locFrom" : 326,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "sample/src/main/java/autodispose2/recipes/AutoDisposeFragment.java",
      "evidence" : "import autodispose2.lifecycle.CorrespondingEventsFunction;"
    }, {
      "pathFrom" : "sample/src/main/java/autodispose2/recipes/AutoDisposeViewHolder.java",
      "evidence" : "import autodispose2.lifecycle.CorrespondingEventsFunction;"
    }, {
      "pathFrom" : "sample/src/main/java/autodispose2/recipes/AutoDisposeView.java",
      "evidence" : "import autodispose2.lifecycle.CorrespondingEventsFunction;"
    }, {
      "pathFrom" : "sample/src/main/java/autodispose2/recipes/AutoDisposeActivity.java",
      "evidence" : "import autodispose2.lifecycle.CorrespondingEventsFunction;"
    } ],
    "toComponent" : "autodispose-lifecycle",
    "count" : 4,
    "text" : null,
    "color" : "",
    "dependencyString" : "sample -> autodispose-lifecycle"
  }, {
    "fromComponent" : "sample",
    "locFrom" : 544,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "sample/src/main/java/autodispose2/recipes/AutoDisposeView.java",
      "evidence" : "import autodispose2.android.ViewScopeProvider;"
    }, {
      "pathFrom" : "sample/src/main/java/autodispose2/sample/JavaFragment.java",
      "evidence" : "import autodispose2.androidx.lifecycle.AndroidLifecycleScopeProvider;"
    }, {
      "pathFrom" : "sample/src/main/java/autodispose2/sample/JavaActivity.java",
      "evidence" : "import autodispose2.androidx.lifecycle.AndroidLifecycleScopeProvider;"
    }, {
      "pathFrom" : "sample/src/main/kotlin/autodispose2/recipes/AutoDisposeViewKotlin.kt",
      "evidence" : "import autodispose2.android.ViewScopeProvider"
    }, {
      "pathFrom" : "sample/src/main/kotlin/autodispose2/sample/DisposingViewModelActivity.kt",
      "evidence" : "import autodispose2.androidx.lifecycle.AndroidLifecycleScopeProvider"
    }, {
      "pathFrom" : "sample/src/main/kotlin/autodispose2/sample/KotlinActivity.kt",
      "evidence" : "import autodispose2.androidx.lifecycle.AndroidLifecycleScopeProvider"
    }, {
      "pathFrom" : "sample/src/main/kotlin/autodispose2/sample/KotlinFragment.kt",
      "evidence" : "import autodispose2.androidx.lifecycle.AndroidLifecycleScopeProvider"
    }, {
      "pathFrom" : "sample/src/main/kotlin/autodispose2/sample/ArchComponentActivity.kt",
      "evidence" : "import autodispose2.androidx.lifecycle.AndroidLifecycleScopeProvider"
    } ],
    "toComponent" : "android",
    "count" : 8,
    "text" : null,
    "color" : "",
    "dependencyString" : "sample -> android"
  }, {
    "fromComponent" : "sample",
    "locFrom" : 277,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "sample/src/main/java/autodispose2/sample/ClassWithCustomScope.java",
      "evidence" : "import static autodispose2.AutoDispose.autoDisposable;"
    }, {
      "pathFrom" : "sample/src/main/java/autodispose2/sample/JavaFragment.java",
      "evidence" : "import static autodispose2.AutoDispose.autoDisposable;"
    }, {
      "pathFrom" : "sample/src/main/java/autodispose2/sample/JavaActivity.java",
      "evidence" : "import static autodispose2.AutoDispose.autoDisposable;"
    }, {
      "pathFrom" : "sample/src/main/kotlin/autodispose2/recipes/subscriberproxies.kt",
      "evidence" : "import autodispose2.CompletableSubscribeProxy"
    }, {
      "pathFrom" : "sample/src/main/kotlin/autodispose2/sample/DisposingViewModelActivity.kt",
      "evidence" : "import autodispose2.ScopeProvider"
    } ],
    "toComponent" : "autodispose",
    "count" : 5,
    "text" : null,
    "color" : "",
    "dependencyString" : "sample -> autodispose"
  }, {
    "fromComponent" : "autodispose-interop",
    "locFrom" : 78,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "autodispose-interop/coroutines/src/main/kotlin/autodispose2/interop/coroutines/AutoDisposeCoroutinesInterop.kt",
      "evidence" : "import autodispose2.CompletableSubscribeProxy"
    } ],
    "toComponent" : "autodispose",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "autodispose-interop -> autodispose"
  } ],
  "componentDependenciesErrors" : [ ],
  "logicalDecomposition" : {
    "name" : "primary",
    "scope" : "main",
    "filters" : [ ],
    "componentsFolderDepth" : 1,
    "minComponentsCount" : 0,
    "components" : [ {
      "name" : "autodispose-interop",
      "sourceFileFilters" : [ {
        "pathPattern" : "./autodispose-interop/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "test-utils",
      "sourceFileFilters" : [ {
        "pathPattern" : "./test-utils/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "autodispose-lifecycle",
      "sourceFileFilters" : [ {
        "pathPattern" : "./autodispose-lifecycle/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "ROOT",
      "sourceFileFilters" : [ {
        "pathPattern" : "./.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      }, {
        "pathPattern" : "./autodispose-interop/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./test-utils/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./autodispose-lifecycle/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./spotless/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./gradle/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./android/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./sample/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./static-analysis/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./autodispose/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "spotless",
      "sourceFileFilters" : [ {
        "pathPattern" : "./spotless/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "gradle",
      "sourceFileFilters" : [ {
        "pathPattern" : "./gradle/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "android",
      "sourceFileFilters" : [ {
        "pathPattern" : "./android/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "sample",
      "sourceFileFilters" : [ {
        "pathPattern" : "./sample/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "static-analysis",
      "sourceFileFilters" : [ {
        "pathPattern" : "./static-analysis/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "autodispose",
      "sourceFileFilters" : [ {
        "pathPattern" : "./autodispose/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      }, {
        "pathPattern" : "./autodispose-interop/.*",
        "contentPattern" : "",
        "exception" : true,
        "note" : ""
      }, {
        "pathPattern" : "./autodispose-lifecycle/.*",
        "contentPattern" : "",
        "exception" : true,
        "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
  },
  "fileCountPerComponent" : [ {
    "name" : "autodispose-interop",
    "value" : 2,
    "description" : [ ]
  }, {
    "name" : "test-utils",
    "value" : 1,
    "description" : [ ]
  }, {
    "name" : "autodispose-lifecycle",
    "value" : 8,
    "description" : [ ]
  }, {
    "name" : "ROOT",
    "value" : 3,
    "description" : [ ]
  }, {
    "name" : "spotless",
    "value" : 2,
    "description" : [ ]
  }, {
    "name" : "gradle",
    "value" : 1,
    "description" : [ ]
  }, {
    "name" : "android",
    "value" : 16,
    "description" : [ ]
  }, {
    "name" : "sample",
    "value" : 36,
    "description" : [ ]
  }, {
    "name" : "static-analysis",
    "value" : 6,
    "description" : [ ]
  }, {
    "name" : "autodispose",
    "value" : 42,
    "description" : [ ]
  } ],
  "linesOfCodePerComponent" : [ {
    "name" : "autodispose-interop",
    "value" : 95,
    "description" : [ ]
  }, {
    "name" : "test-utils",
    "value" : 6,
    "description" : [ ]
  }, {
    "name" : "autodispose-lifecycle",
    "value" : 196,
    "description" : [ ]
  }, {
    "name" : "ROOT",
    "value" : 329,
    "description" : [ ]
  }, {
    "name" : "spotless",
    "value" : 2,
    "description" : [ ]
  }, {
    "name" : "gradle",
    "value" : 87,
    "description" : [ ]
  }, {
    "name" : "android",
    "value" : 561,
    "description" : [ ]
  }, {
    "name" : "sample",
    "value" : 1596,
    "description" : [ ]
  }, {
    "name" : "static-analysis",
    "value" : 777,
    "description" : [ ]
  }, {
    "name" : "autodispose",
    "value" : 1586,
    "description" : [ ]
  } ]
} ]