{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.00008281072,
        "rte": "az",
        "prob": 0.00008281072
      },
      {
        "cls": 0,
        "raw": 0.00038261214,
        "rte": "az/tar",
        "prob": 0.00038261214
      }
    ],
    "prob": 0.00008281072,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00008281072223326191,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001284480094909668,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001694758793746587,
        "type": "ruby"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001329183578491211,
        "type": "ruby"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013689200386579614,
        "type": "registry"
      },
      {
        "id": 9,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013401110663835425,
        "type": "registry"
      },
      {
        "id": 10,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013689200386579614,
        "type": "registry"
      },
      {
        "id": 11,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013401110663835425,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-06T08:22:48Z"
  },
  "path": "dpl-gcs-1.10.4.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "zdN/$wmoN*e[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmg=d2?fFCgmfFA",
            "ln": 0
          }
        ],
        "mol": "H₂(CmF)",
        "sha": "264feaefd3ca0b09aa3fe163f1d2778a21fb5eb51d7ddc36bf84382fdc777504",
        "path": "dpl-gcs-1.10.4.gem",
        "refs": [
          {
            "to": "pkg:gem/dpl",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/gstore",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/mime-types",
            "off": 0,
            "kind": "dependency"
          }
        ],
        "risk": 3,
        "size": 6144,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 12,
              "runtime_dependency_count": 3,
              "development_dependency_count": 9
            },
            "file": {
              "size": 6144,
              "entropy": 4.57
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 7.79
            },
            "archive": {
              "file_count": 3,
              "member_count": 3,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 2563,
              "max_filename_length": 17,
              "rtlo_filename_count": 0,
              "format.regular_count": 3,
              "nested_archive_count": 3,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "timing.mtime_unique_count": 1,
              "misplaced_executable_count": 0,
              "timing.mtime_spread_seconds": 0,
              "security.world_writable_count": 0
            },
            "references": {
              "declared_count": 3,
              "unresolved_count": 0,
              "security_hold_count": 0,
              "unresolved_extension_count": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "dpl-gcs",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/travis-ci/dpl",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Konstantin Haase",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "1.10.4",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name",
            "from": [
              {
                "file": 1
              },
              {
                "file": 3
              }
            ],
            "uses": [
              3
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/cwd::ruby-dir-chdir",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby changes the working directory"
          },
          {
            "id": "metadata/package/testing/presence/harness::spec-path-basename",
            "conf": 1.0,
            "crit": 1,
            "desc": "Spec path basename"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "micro-behaviors/communications/http/services/aws-s3::s3-put-object",
            "conf": 0.9,
            "crit": 3,
            "desc": "S3 put_object operation"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 1558,
              "entropy": 7.85
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 1558,
              "peak_region_entropy": 7.79
            }
          }
        },
        "id": 1,
        "mol": "H₂(CmF)",
        "path": "dpl-gcs-1.10.4.gem!!data.tar.gz",
        "pid": 0,
        "risk": 3,
        "sha": "31a11670ed5d2a637076253670a0a1c5d646df2917b18eed3054ebe87938fd23",
        "size": 1558,
        "traits": [
          {
            "id": "metadata/package/testing/presence/harness::spec-path-basename",
            "conf": 1.0,
            "crit": 1,
            "desc": "Spec path basename"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "micro-behaviors/communications/http/services/aws-s3::s3-put-object",
            "conf": 0.9,
            "crit": 3,
            "desc": "S3 put_object operation"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name",
            "from": [
              {
                "file": 3
              }
            ],
            "uses": [
              1
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/cwd::ruby-dir-chdir",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby changes the working directory"
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "A+flkx(W=ccU)jgzGWxmA+flkx(W=ccUEHxz/Pzp3uxY$B.L(casz2uzdLqvD2NtocKHh$z!a0bwGTxqoBq)+v@bN{B0aq1z*2\u00269wPwb2arR!py*?yaav!^$auQ=yA=lbnwmY=*arR^HarUiaw/$#5wN]\u003c?yH}=Q3lQDlarR^Hazb4#B7CX3arR^Haz2C33jm)#arR^HwmYu}v@b\u003c\u003czGDjdarR^HarR^(v@b\u003c\u003czGE1GD{5Pxq/(}#wJz\u003ety?WD#Bs}DxCpi!varR^HarR^HauA}vv}x.5uU:j#au.[hz/x/jz/c%:vpJ!UB8$Y7wQdS%wgo5parR^HarR^HarSZ^wN/:(Bye/{C{2mlaA8jvx(v(qi=!\u003exA+fu1vpJ!UB8$Y7wQbZiarR^HarR^HdgdguarR^HwO#2=3lQDlarR!qwO95{xK$W?uTX80xBk\u003e8arR^HarUGsxcnx(z!AY%zF78azxKdqBz8^.v}f7\u003eB0aa!C@^5)DV9\u003eBx(v(qi:(JdwPI{1yH}=#x\u003eeU%eI]7jeIQJ-A+Y-rBsn)#efDq\u0026cN\u003cD/3lQDlarR!rzE:7YarR^HarUiaw/#kny\u0026r-)uVoB}xEEFby?mG)zdLd6arR^HarR^Htw[F5x(v)gtrl[Cy\u0026r-)uU0\u003e\u003et}vagx(4u#vqPNYe[n*pAa9l#e]2rszyuXZa$i\u003cwarR^Haz2C33jm)#arR^HwmYu}AclknuTW[)3lQDlarR^HazkIevQAL:xlbgUax{3tdLAm}t).X%arR^HarUrkz^)6ZA+xCojuK-Qx(4uwiZ#\u003esuQNW?o*I-CnfzRUaA8jvx(v)gtrlqkBye([ByO#\u00263lQDlarR^HavG{:e[nN9x(URuAcb/jzGvBxwPRA}c]#f.v{%gXwnc6navG{:e]V2BdjDxIzWEQfarR^HarR^Hl${V]xkzG}c[n\u003eCz^)6ZA+xCxay]ykD$E8ewO${[wQB?carR^HarR^HarR!AwQ5qtx\u003ewFSx(4ukwnc6}v@#TfC%rY?x(4u#vqPN83lQDlarR^HarR^Hay/tcBy/uiuVZNjwGTbUo?w5FiYZk=AaK8yBA}?puUjj%c$WgfwO${[wHPlzx(Xope{82sA%:3jarR^HarR^HarUPwBAnMEarR^HarR^HarR^HarR^HjS]7]iWc}fzGGDcBs*EqAaHjojW6##z/fVdzGGlcD2NsqEj/wFA+w@iwO#0@wnb{]uVf[9x(v(@w]zYrw[=6)zEEx[djCPDarR^HarR^HarR!BAcce9b12^GxK@+.z/fVqz!{R6auZ\u0026=Acb/jzGx2yv{@\u003eXwNw}=zGG]qy*we$w/#2hBzkVhB6yXnvpJ$ZuT[1(BAhqot).X%arR^HarR^HarUPwBApUgCR9MDz!yUgv@9t{arR^HjS[VZBzkVhB6yXlv@bA[x\u003ewGaAcb/jzGx2yvpKaV3jm)#arR^HarR^HarUfgx\u003eqg7e]U@PuVfy*wN/*g3lQDlarR^HarR^HarR!BAcb/jzyvLPBZ]h#Bsw:FarR^HarR^HarR^HarU/Cy\u0026r-)uVoB}xEEFby?mG)zdLdE3lQDlarR^HarR^HarR!NauB4wByupPj%isey?kktwNP9$w[=6)zEEx[dj=P5xK$Q.wPz\u0026mjW70bAccdzEf}8tarR^HarR^HarS9uarR^HarR^HarUlkwc%C4arR^HarUlkwc%C4arR^HwO#2=3lQDlarR!CA+PY9By+!4arR^Hay]4}az2C2z!9N1xj2N@BzkVhuUjj%c#-QpxEKoharR^HarR!vw/$R}By!%7uUaa+z!9N1xfNH=clM(qv@C)(zF9r*z/NmBvrufi3lQDlarR^HarR!Nb13o^By/uieK:L!z!9N1xcFDYj%jAOv@C)(zF9r*z/NmBvrufiEf}8tarR^HarUliB7CX3arR^HarR^HaBwIzarR^HarR^HwO#2=arR^HarUlkwc@U^arR!rzE:7%az2C33t19=3i",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "option"
            ],
            [
              "",
              "option"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "rjust"
            ],
            [
              "",
              "option"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "compact"
            ],
            [
              "",
              "chdir"
            ],
            [
              "",
              "fetch"
            ],
            [
              "",
              "pwd"
            ],
            [
              "",
              "glob"
            ],
            [
              "",
              "directory?"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "first"
            ],
            [
              "",
              "type_for"
            ],
            [
              "",
              "merge"
            ],
            [
              "",
              "encoding_option_for"
            ],
            [
              "",
              "put_object"
            ],
            [
              "",
              "option"
            ],
            [
              "",
              "upload_path"
            ],
            [
              "",
              "read"
            ],
            [
              "",
              "detect_encoding?"
            ],
            [
              "",
              "encoding_for"
            ],
            [
              "",
              "encoding_for"
            ],
            [
              "",
              "gstore"
            ],
            [
              "",
              "kconv"
            ],
            [
              "",
              "mime-types"
            ]
          ],
          "mbr": [
            "Dir.chdir",
            "Dir.glob",
            "Dir.pwd",
            "File.directory?",
            "File.read",
            "client.put_object",
            "options.fetch"
          ],
          "tgt": [
            "chdir",
            "compact",
            "detect_encoding?",
            "directory?",
            "encoding_for",
            "encoding_option_for",
            "fetch",
            "first",
            "glob",
            "join",
            "log",
            "merge",
            "new",
            "option",
            "put_object",
            "pwd",
            "read",
            "require",
            "rjust",
            "to_s",
            "type_for",
            "upload_path"
          ],
          "funcs": [
            [
              "needs_key?",
              114
            ],
            [
              "client",
              160
            ],
            [
              "check_auth",
              339
            ],
            [
              "upload_path",
              462
            ],
            [
              "push_app",
              564
            ],
            [
              "encoding_option_for",
              1385
            ]
          ],
          "metrics": {
            "ast": {
              "op.shl": 1,
              "op.sub": 2,
              "op.land": 1,
              "max_depth": 21,
              "op.concat": 15,
              "call_count": 28,
              "node_count": 415,
              "member_count": 7,
              "op_density.shl": 0,
              "op_density.sub": 0,
              "op_density.land": 0,
              "max_array_length": 2,
              "max_member_depth": 2,
              "op_density.concat": 0.04
            },
            "file": {
              "size": 1585,
              "entropy": 4.5
            },
            "text": {
              "lines": 58,
              "top_char": 101,
              "digit_ratio": 0,
              "space_count": 460,
              "char_entropy": 4.5,
              "unique_chars": 70,
              "top_char_null": 0,
              "import_density": 5.17,
              "string_density": 0.16,
              "top_char_ratio": 0.07,
              "avg_line_length": 26.33,
              "max_line_length": 108,
              "empty_line_ratio": 0.14,
              "last_line_length": 3,
              "whitespace_ratio": 0.33,
              "identifier_density": 1.36,
              "line_length_stddev": 25.25,
              "max_whitespace_run": 18,
              "normalized_import_count": 0.39,
              "normalized_string_count": 1.18,
              "repeated_char_sequences": 17,
              "normalized_unique_identifiers": 7.51
            },
            "binds": {
              "count": 4
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 4.67
            },
            "source": {
              "class_count": 3,
              "function_count": 6
            },
            "imports": {
              "count": 3,
              "third_party_count": 3,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 141,
              "count": 9,
              "avg_length": 15.67,
              "max_length": 76,
              "avg_entropy": 2.56,
              "entropy_stddev": 1.38,
              "high_entropy_count": 1
            },
            "functions": {
              "count": 9
            },
            "identifiers": {
              "count": 79,
              "unique": 44,
              "avg_length": 6.86,
              "max_length": 19,
              "min_length": 3,
              "avg_entropy": 2.42,
              "reuse_ratio": 0.56,
              "length_stddev": 3.55,
              "all_lowercase_ratio": 0.68,
              "all_uppercase_ratio": 0.09
            }
          }
        },
        "id": 2,
        "mol": "O(As)H(F)",
        "path": "dpl-gcs-1.10.4.gem!!data.tar.gz!!lib/dpl/provider/gcs.rb",
        "pid": 1,
        "risk": 3,
        "sha": "3507aa2046820d40b4dba50c8e3a97ac9fb76f456305463d556a6ea9c326a939",
        "size": 1585,
        "traits": [
          {
            "id": "micro-behaviors/fs/directory/cwd::ruby-dir-chdir",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby changes the working directory",
            "spans": [
              [
                677,
                10
              ]
            ]
          },
          {
            "id": "objectives/anti-static/obfuscation/payload/encrypted::aes-key-field-token",
            "atk": "T1573.001,T1027",
            "mbc": "C0027",
            "conf": 0.8,
            "crit": 3,
            "desc": "AES or generic key field name",
            "spans": [
              [
                271,
                10
              ]
            ]
          },
          {
            "id": "objectives/supply-chain/install-hook/package/rubygems::file-imports",
            "atk": "T1195.002",
            "conf": 0.5,
            "crit": 3,
            "desc": "File operation imports",
            "uses": [
              6
            ],
            "spans": [
              [
                1274,
                9
              ]
            ]
          },
          {
            "id": "metadata/import/ruby/gstore::gstore",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports gstore",
            "spans": [
              [
                25,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/ruby/kconv::kconv",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports kconv",
            "spans": [
              [
                9,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/ruby/mime-types::mime-types",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports mime-types",
            "spans": [
              [
                42,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file/full::ruby-file-read-content",
            "atk": "T1083",
            "conf": 0.5,
            "crit": 2,
            "desc": "Reads file content with Ruby File.read",
            "spans": [
              [
                1274,
                0
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "A+flkx(W=ccV:lrv{-[Xy\u0026A%acKK)9ADL#owGSvhAbmgDA=lbnwmY^mxjD0g3jprPB7ol8vR3VIp!S]hp\u0026ZF$x\u003eg^}iYY+#qY]Q?3jm)#B9g@bwN/*8i=GaTC4\u003eF#AV![h3lQDlay]58v@=o)wN]dTy*?yae]ClAc}5h{zfXG!zGGDmBs}DxCpT\u003c$vpJ!UB8$Y7wQdS%wfs30aszeMwPz)rB.L=kvrk%\u003exj#3}y\u003cEDWauBNPv@=d5uTWCOwPI{1yH}=ljW6#oAD+#mBA@1yz/xcawm/E/yhmTiAD+#m",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "AaJK3c#:iBC4\u003eF#AW-R.zY\u003c7iv}xv$wHGPQz!yHKCwhejc)zu6xj\u003e{@xcp]aaA}KwxDPPJv}x.5awlo\u003eiV][4dK([$dK([$dK([$dK]gGy\u003cEoO3lQDlarR!CA=lbn",
            "ln": 337,
            "col": 9,
            "line": 12
          },
          {
            "b": "zWEQfarR^HwQ5f9v@%a!x(UTPBz\u0026pxwN/p=C4A6.xkzG}dk24Dwm6Q@wO+)9uTDn]oHSq}dgdguarR^HwQ5f9v@#6^zH2P6zGx]dzEWl+z!py/q/(}#wJz\u003ety?WD#Bsw?:zY\u003c7iv}xv$wHGPUB-Z#evRPE:Bsw?^x([2p3lQDlarR^HayPekBzbxaxdbhW3lQDlarR^HayPekBzbxaxdbhW3lQDlarR^Hazth8xKtE\u003ev@co#x(mMii+S8kwmY!5au.[hDPAurz/fVdzGEEfD2Nssau.[hcT*$ky?Wx/BzkVhfl/6?BZ/RzEjkHCao",
            "ln": 1309,
            "col": 32,
            "line": 51
          },
          {
            "b": "dk2*UBz96farR^HarR^Hi:(JdwPI{1yH}=ljW6#oAD+#mBA@1yz/xcawm/E/yhmTicObPEarR^HarR^/B7F\u003c4wPRo{wQbyYj%hj)Cv+/pD39?tAa9/#w[L^(yIXrpCv+/pD39?tAa9/#w[L^(yIXqA3lQDlarR^Q3lQDlarR!CA=lbnwmY^lv@b\u003c\u003czGDjdarR!rzE:7%az2C33t19=3i",
            "ln": 3231,
            "col": 45,
            "line": 108
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "subject"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "check_auth"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "needs_key?"
            ],
            [
              "",
              "eq"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "upload_path"
            ],
            [
              "",
              "eq"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "update"
            ],
            [
              "",
              "options"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "upload_path"
            ],
            [
              "",
              "eq"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "pwd"
            ],
            [
              "",
              "push_app"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "update"
            ],
            [
              "",
              "options"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "push_app"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "and_yield"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect_any_instance_of"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "anything"
            ],
            [
              "",
              "anything"
            ],
            [
              "",
              "hash_including"
            ],
            [
              "",
              "push_app"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "update"
            ],
            [
              "",
              "options"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "and_yield"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect_any_instance_of"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "anything"
            ],
            [
              "",
              "anything"
            ],
            [
              "",
              "hash_including"
            ],
            [
              "",
              "hash_including"
            ],
            [
              "",
              "push_app"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "update"
            ],
            [
              "",
              "options"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "and_yield"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect_any_instance_of"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "anything"
            ],
            [
              "",
              "anything"
            ],
            [
              "",
              "hash_including"
            ],
            [
              "",
              "hash_including"
            ],
            [
              "",
              "push_app"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "update"
            ],
            [
              "",
              "options"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "and_yield"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "and_return"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "times"
            ],
            [
              "",
              "at_least"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "and_return"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect_any_instance_of"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "anything"
            ],
            [
              "",
              "anything"
            ],
            [
              "",
              "hash_including"
            ],
            [
              "",
              "hash_including"
            ],
            [
              "",
              "push_app"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "update"
            ],
            [
              "",
              "options"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "push_app"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "example"
            ],
            [
              "",
              "to"
            ],
            [
              "",
              "expect"
            ],
            [
              "",
              "with"
            ],
            [
              "",
              "receive"
            ],
            [
              "",
              "client"
            ],
            [
              "",
              "dpl/provider/gcs"
            ],
            [
              "",
              "spec_helper"
            ]
          ],
          "mbr": [
            "Dir.pwd",
            "DummyContext.new",
            "described_class.new",
            "provider.check_auth",
            "provider.client",
            "provider.needs_key?",
            "provider.options",
            "provider.options.update",
            "provider.push_app",
            "provider.upload_path"
          ],
          "tgt": [
            "and_return",
            "and_yield",
            "anything",
            "at_least",
            "check_auth",
            "client",
            "describe",
            "eq",
            "example",
            "expect",
            "expect_any_instance_of",
            "hash_including",
            "needs_key?",
            "new",
            "options",
            "push_app",
            "pwd",
            "receive",
            "require",
            "subject",
            "times",
            "to",
            "update",
            "upload_path",
            "with"
          ],
          "metrics": {
            "ast": {
              "max_depth": 21,
              "op.concat": 64,
              "call_count": 136,
              "node_count": 1030,
              "member_count": 10,
              "max_member_depth": 3,
              "op_density.concat": 0.06
            },
            "file": {
              "size": 3400,
              "entropy": 4.87
            },
            "text": {
              "lines": 115,
              "top_char": 101,
              "digit_ratio": 0.01,
              "space_count": 604,
              "char_entropy": 4.87,
              "unique_chars": 68,
              "top_char_null": 0,
              "import_density": 1.74,
              "string_density": 0.37,
              "top_char_ratio": 0.09,
              "avg_line_length": 28.57,
              "max_line_length": 173,
              "empty_line_ratio": 0.17,
              "last_line_length": 3,
              "whitespace_ratio": 0.21,
              "identifier_density": 1.68,
              "line_length_stddev": 29.13,
              "max_whitespace_run": 1,
              "normalized_import_count": 0.19,
              "normalized_string_count": 4.01,
              "repeated_char_sequences": 1,
              "normalized_unique_identifiers": 5.7
            },
            "binds": {
              "count": 3
            },
            "binary": {
              "peak_region_bytes": 3400,
              "peak_region_entropy": 4.88
            },
            "imports": {
              "count": 2,
              "third_party_count": 2,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 624,
              "count": 43,
              "avg_length": 14.51,
              "max_length": 48,
              "avg_entropy": 3.16,
              "empty_count": 1,
              "entropy_stddev": 0.7
            },
            "identifiers": {
              "count": 193,
              "unique": 39,
              "avg_length": 7.44,
              "max_length": 22,
              "min_length": 2,
              "avg_entropy": 2.44,
              "reuse_ratio": 0.2,
              "length_stddev": 3.93,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.03,
              "all_lowercase_ratio": 0.72,
              "all_uppercase_ratio": 0.1,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 3,
        "mol": "O(As)H(Cm)",
        "path": "dpl-gcs-1.10.4.gem!!data.tar.gz!!spec/provider/gcs_spec.rb",
        "pid": 1,
        "risk": 2,
        "sha": "60b1edfafe5223299fe5df2242b083aa59abfc0f500b0171252cf21644e814e7",
        "size": 3400,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/services/aws-s3::s3-put-object",
            "conf": 0.9,
            "crit": 3,
            "desc": "S3 put_object operation",
            "spans": [
              [
                1424,
                10
              ]
            ]
          },
          {
            "id": "objectives/anti-static/obfuscation/payload/encrypted::aes-key-field-token",
            "atk": "T1573.001,T1027",
            "mbc": "C0027",
            "conf": 0.8,
            "crit": 3,
            "desc": "AES or generic key field name",
            "spans": [
              [
                3295,
                10
              ]
            ]
          },
          {
            "id": "metadata/import/ruby/dpl/provider/gcs::dpl/provider/gcs",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports dpl/provider/gcs",
            "spans": [
              [
                31,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/ruby/spec_helper::spec_helper",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports spec_helper",
            "spans": [
              [
                9,
                0
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeiFz6yIPzEEx[b03]UAblZHb6EKrB7]Mgb03]6e?![ne\u0026j+6b5?Wly?W%7wN]dRBrS+2h-9rEgbp\u003cFhy{4XxjUBXvr(]riYeVGefX[sBy/JnuJ",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 930,
              "entropy": 4.78
            },
            "binary": {
              "peak_region_bytes": 930,
              "peak_region_entropy": 4.78
            },
            "registry": {
              "age_days": 523,
              "published_at": 1743422966,
              "is_deprecated": 0,
              "downloads_total": 46042372,
              "downloads_recent": 786365
            }
          }
        },
        "id": 8,
        "path": "dpl@2.0.5.4.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "35f704c57240527fbc339094cfcc3f552400c6322aa811070e2089d812661c8a",
        "size": 930,
        "traits": [
          {
            "id": "metadata/registry::widely-installed",
            "conf": 1.0,
            "crit": 1,
            "desc": "Large registry install base (10k+ downloads)",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "registry"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeiFz6yIPzEEx[b03]XB98tvwG\u0026VHC4CYnx(v(kiWcmgga\u003ep9efY4QvR/+1xK$ZYvrrXOf!$WFh8ElGhz=%evp%dUwmo+8b04OviwJcfy*?A%A@",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 841,
              "entropy": 4.69
            },
            "binary": {
              "peak_region_bytes": 841,
              "peak_region_entropy": 4.69
            },
            "registry": {
              "age_days": 5892,
              "published_at": 1279547464,
              "is_deprecated": 0,
              "downloads_total": 434209,
              "downloads_recent": 425569
            }
          }
        },
        "id": 9,
        "path": "gstore@0.2.1.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "389191eee56d1251822e1332c666ae4e8cc71729f840bf5f34fdd757c0c92302",
        "size": 841,
        "traits": [
          {
            "id": "metadata/registry::widely-installed",
            "conf": 1.0,
            "crit": 1,
            "desc": "Large registry install base (10k+ downloads)",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "registry"
      },
      {
        "id": 10,
        "sha": "f4dc996fad777b0d78ac9e02db008511079c75db899f3667ee737f52af864205",
        "path": "mime-types@3.7.0.registry.json",
        "size": 1580,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 11,
        "sha": "1fb94258c1462a45c888bdaa3691ce087d612663f9b8821254cf2a290d4eb2b6",
        "path": "dpl-gcs@1.10.4.registry.json",
        "size": 819,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 2,
    "rev": "479f3",
    "v": "8"
  }
}