{
  "ml": {
    "v": "7",
    "eng": "2.12.1",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.000038295984,
        "rte": "az",
        "prob": 0.000038295984
      },
      {
        "cls": 0,
        "raw": 0.00017173092,
        "rte": "az/tar",
        "prob": 0.00017173092
      }
    ],
    "prob": 0.000038295984,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000038295984268188477,
        "type": "tar.gz"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000021855035811313428,
        "type": "perl"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001694758793746587,
        "type": "javascript"
      },
      {
        "id": 12,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002171595951949712,
        "type": "perl"
      },
      {
        "id": 13,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0000216066837310791,
        "type": "perl"
      },
      {
        "id": 22,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000019321838408359326,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-10-23T19:46:47Z"
  },
  "path": "Text-Fab-0.07.tar.gz",
  "raw": {
    "files": [
      {
        "id": 0,
        "mol": "H(F)Md",
        "sha": "90a58a5a7d8cf25447cc64f5c95b9f7f9037dbcd6a6b4cab50922327924ebf21",
        "path": "Text-Fab-0.07.tar.gz",
        "risk": 3,
        "size": 65940,
        "type": "tar.gz",
        "facts": {
          "metrics": {
            "file": {
              "size": 65940,
              "entropy": 7.99
            },
            "binary": {
              "peak_region_bytes": 65536,
              "peak_region_entropy": 7.86
            }
          }
        },
        "ident": {
          "name": {
            "value": "Text-Fab",
            "source": "file.basename",
            "verified": false
          },
          "trust": "unsigned",
          "version": {
            "value": "0.07",
            "source": "file.basename",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/file/extension/identity::script-content-extension-mismatch",
            "conf": 0.9,
            "crit": 3,
            "desc": "Extension/content classifier disagreement",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/file/profile/identifier-population::low-identifier-reuse",
            "conf": 0.7,
            "crit": 3,
            "desc": "Low identifier reuse ratio",
            "from": [
              {
                "file": 12
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file/full::perl-slurp-local-record-separator",
            "conf": 0.94,
            "crit": 3,
            "desc": "Perl slurps a filehandle",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/perl/file/spec::file/spec",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports File::Spec",
            "from": [
              {
                "file": 12
              }
            ]
          },
          {
            "id": "metadata/import/perl/file/temp::file/temp",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports File::Temp",
            "from": [
              {
                "file": 12
              }
            ]
          },
          {
            "id": "metadata/import/perl/freezethaw::freezethaw",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports FreezeThaw",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/perl/lib::lib",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports lib",
            "from": [
              {
                "file": 17
              }
            ]
          },
          {
            "id": "metadata/import/perl/strict::strict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports strict",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/perl/test/exception::test/exception",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Test::Exception",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/import/perl/test/more::test/more",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Test::More",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/import/perl/text/fab::text/fab",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Text::Fab",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/import/perl/warnings::warnings",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports warnings",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/scripted::sigil-variable-decl",
            "conf": 0.8,
            "crit": 2,
            "desc": "Perl sigil variable declaration",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/scripted::subroutine-definition",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl subroutine definition",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/scripted::use-module",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl module import statement",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "from": [
              {
                "file": 1
              }
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "Aa9l(vp%c]raQq@iYY-svMK]7B-Raph7*Nrgck?=B7DFnBAh89Buo?LB7DFrvrcm1zFa2L3jpY]AV=Sdmn^5QpFJ2}asw\u0026}fGgvv3jn12mSJ6KDsZ5?vrS\u0026dB0bHmADL#owN(])wN/d\u003eB7DE)Bz(hdvR/Qpi+h-pz/fbev{%m)z/^aywPzG[y?Xibavw{)miDRZw[u0]zEWm03l{WmBz(hhwftP7aARpday/tcw[+[2A::67z/cXhvrl98d06JvxDQ-8ay/LnBz(1sB8M8vwPz\u0026yaAg+fB7GxkefFwswftw\u003cy\u00260M?v@3cme^=-xwGTD.wO3g0ra]Y:aAqPNB75V(mSJ6KDsXjvxKM9li%{aKwGTD.wO3g0ra]Y:atCG5fGPNE2{QMVB.q?vx([2hA+fi3vru6\u003eavw{)miB0%AV^\u003eCpElGMA+e\u0026]A+fb#wPFg=B9g}mwmGB]zE\u003c}sbQ\u003c\u003c.asItBvrS\u0026nvp\u003c7uA+e*dwGV5cx\u003ezDotqft9Ef{raavZ6YwI4zdz/YQ",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "fGPRWB-FPIp/o\u003eXqB%?\u003cuQ^QXmpezQpG6X?pGx[ZmODPVauZ\u00260gb7yoe?/u]3uHu0aAhvnz/PMlD0+f4A:JA)y?l%-y\u0026sxaaBsCrarR!zC{1HXB7Gf1efDiGx(!x6w].*buUaa=diH+@kWMOWarR^HbXgRgByeT2z/5\u0026)zE:\u003eMats{XzFS)9B0b18w[=c]wfrddx(!x6w].*buUaa=i%)8MarQ",
            "ln": 612,
            "col": 43,
            "line": 20
          },
          {
            "b": "x(mG)as7(AByf9hAV=XQaz+Rbxlm/fbYvTzuVQsfdiJ%AarR^HarR^HarR^Hw]zYjzfWlHAa9E3asIqIy?W#lfdZvHdLAs}bYvTzuVQsfdiJ%AarR^HarR^HarR^HarR^HzfWlLbX[}NbZ7QVjS[/+y?W#lffH%tas7]mx(U:Egck*=arR^HarR^",
            "ln": 2374,
            "col": 16,
            "line": 68
          },
          {
            "b": "v@@\u00264A+PSvay/7@v@1ajarR^HarR^HarR^HboOY-Bz\u003e@azxHI{azbt7wO${[wEoL5arR^HarR^HarR)Kw[=6)zEEx[at2=1wQ4S[BzMjBf^6[Bxlw65zGDjdarR^Hao",
            "ln": 5166,
            "col": 19,
            "line": 139
          },
          {
            "b": "wPRG[By!#9w]zYjw[=6)aswBBvrt{9tY7-E3lQDlarR^HaBKO7arR^HarR^Hz/xo9az(xDbXyZvasxo0efDiGvrt]+arR^HarR^HarR^Hz/M$hx\u003enzhmpeIQoHSq^ml%sGmn^2VqAt{/vqY$3BrCQnvpQG{zEWH9wmV(}x(4u6cNrkhByuKTas5anzx.dHarR^HarR^HzfWlHv@DmbwO#PjjS[oNaBtkEz!0i(as5Q4auQ]YxG^L!i%)8MarR^HarUfgz/YFjbXyZK3jm)#arR^HarUSCB7=WYDN9Vzy?tm.DUEwcy\u0026%o1uVQr$v@3HvefDiGvrt{t3lQDlarR^Has82ty?tm.DT*#iw[+[aDNA-JwO#6\u0026uUKy/y\u0026%o1B0(wUjS)@KkZK+$wO+%gk6)",
            "ln": 14658,
            "col": 56,
            "line": 382
          },
          {
            "b": "zxK4mwGV5ovpK6}woz{bzF78mzG//jwnb{]aAIDzwmY.4xDO#KByxi5wPR#oBzbxfay/kaB7]J8azk.kB-mWgarR!zC{1wOz/u*Zas82ty?tm.DUmwqB-pYeBywV{EjWS!eIQJ)3jm)#arUxgasH=iw[=c]wfrdfy*?H9AW-bT3lQDlarR^HazCBg",
            "ln": 33238,
            "col": 18,
            "line": 874
          },
          {
            "b": "jV$}\u003ejV$}\u003ejV$}n3l{V(wPR#oAa9=#zGG}xw]zYjbYmVOaA?gfx\u003egT]x(mMaBzb98az#9uwnc6}v@#o)ay/Xby?j-6B0bgmBAhqgBZ[#[e^=VxvJXAAuTE\u003e=Bye#}A+fcgB0b/parR^HzfWlLbY^Kkw?k5IzGvuKkYydLwO#QhdiH+@kWMOW3lQDl",
            "ln": 39458,
            "col": 65,
            "line": 1042
          },
          {
            "b": "wPRp2wN/*@z/cXfz/o-eAV/7lavoHTwLuJTz/{dearR^HarR^Hjz5IIBy/FRlVl{?A+Pf1BrAs)gbRfEw]zQfwPx%warR^Hbv$+6uVP^*BzkVh3jn}fwNPa7avFT%lScGLr7P\u003eX3joc.raQq@iYY-svM\u003e]GB0bvsBrC0mBy/rdy*?B1zF786zF9W3wJI2GBn",
            "ln": 52060,
            "col": 10,
            "line": 1387
          },
          {
            "b": "z/fVqx)a5#diJhDvqP$1wGU]6ay]z2B.$YcBrCKywPh6#vruj4zz04Os-nB9xKM6}ayLQ@A+fh#A+e=7B8Mhwv}u^3w/$I8wn+$2zdNQbj0nlVaz\u003eLjay/tcB7]YqB0bykaAIaqwPzi}azbt7wPF#rxLy%\u0026aAIjmB.\u003eOhvR3V%z!T92wftubay!#6",
            "ln": 55624,
            "col": 76,
            "line": 1421
          },
          {
            "b": "BZ]8cxLy%^B-qyACw7M9aAhvtv}x.5x(mMaBzbkdx(m)jBrz#yx([31AV!?pazth3wnC%$xcqqfwGVbmwmoN\u003eaA7\u003cmx([zsv@Dl%x\u003eF$tz/M$fB.\u003e\u0026czF78gB-X:Ix([1",
            "ln": 97248,
            "col": 314,
            "line": 2165
          },
          {
            "b": "aAz48zGGDgwN%!JOGIuMBy/FnxKL^?y?W^1aAIWnxDQ.awnc6}v@#BdwJ{Ies7#+\u0026aARpdayYnhBz(3QHluW#ayPkdA=kw@xDOZExK#67BzbkdAb]JeA=kD0B8#nuaz\u003eLjaMv{wv{%g\u0026aAIErwGTonn-Cn\u003eaARJAxKL^?y?j-hxK@q%x(W={Bzk]fdiJ.Cx(+zhB0b45B9P!?x(\u003eFiB0b45B9O)IzY\u0026[9yH[SfB-I4oBzb98aAIWnxDQ.av{%g\u0026az\u003eLjaA.Tlvru66\u0026^^LvxK@q@z/ff3xlwl6BzkVh\u0026^^Nxz!pblxK@r9A+figz!0v1B8M7wCw7YbwGU=1wPhv3xcuh:OoeBQazC.nwPzV%y-)+fAb]JhwO#P#BzkVhaA7\u003cmBzbkdvqG%}vpTTnA+eV\u0026eOP9wB-YiSz.k{GwPhWdv}x.5\u0026^^Nxw{4{aC{3*sBywW3e*9Y6Cv+@eAX5tSxK#67BzbkdAb]JeA=kD0B8#nuazC)tv@DmbA=k=gwN(]}A=k!qviw3FvK@TCxKM09xKL\u003e0wO#Mix(n0lwNP9(z!pcKFsHaTy\u00260*6xcqqfwGTonn-Cn\u003eazC)TaMv{wwQ4{haARpdaAhvjAb](bwPI{hA]IRuefG4FwO@Siz/65{z!abowO=B0asItBwGTDJvJ^fyv{%g\u0026x(mMaBzbkdk#pc7aARpdzxN}?On@gLzGGDgaARpdaAhvjAb](bwPI{hAV!!6vqfSsFsOqnra]\u0026-wOb\u003e3wGVhgwO@SjxK@r9A+figz!0v1B8M7wv{%l$B7F]9Bzb98aARpday/8czFHweBrCHhByw)3wN(]$",
            "ln": 97906,
            "col": 247,
            "line": 2167
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "thaw"
            ],
            [
              "",
              "safeFreeze"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "substr"
            ],
            [
              "",
              "index"
            ],
            [
              "",
              "index"
            ],
            [
              "",
              "substr"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab.out__target_section"
            ],
            [
              "",
              "$fab.out__create_section"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "$fab.cfg__set"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "$fab.cfg__append"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "$fab.cfg__prepend"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "$fab.cfg__pop"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "$fab.NS__set_parents"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$fab.out__embed"
            ],
            [
              "",
              "$fab.group__start"
            ],
            [
              "",
              "$fab.group__end"
            ],
            [
              "",
              "$fab.include__text"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$fab.include__text"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$fab.include__text"
            ],
            [
              "",
              "$fab.include__text"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$fab.group__start"
            ],
            [
              "",
              "$fab.include__text"
            ],
            [
              "",
              "$fab.include__text"
            ],
            [
              "",
              "$fab.group__end"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$fab.group__end"
            ],
            [
              "",
              "$fab._handle_error"
            ],
            [
              "",
              "$fab._handle_error"
            ],
            [
              "",
              "index"
            ],
            [
              "",
              "substr"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "bless"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$self.cfg__get_prefixed_scan"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$self._get_active_callbacks"
            ],
            [
              "",
              "substr"
            ],
            [
              "",
              "substr"
            ],
            [
              "",
              "$self._process_chunk"
            ],
            [
              "",
              "$self._process_chunk"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$self._get_active_callbacks"
            ],
            [
              "",
              "_default_error_handler"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$self.process_string"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$self.process_string"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$self.out__get_joined"
            ],
            [
              "",
              "$self.process_string"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$self._get_key_type"
            ],
            [
              "",
              "$self.process_string"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$self.cfg__get_joined"
            ],
            [
              "",
              "$self.process_string"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "$self._join_list"
            ],
            [
              "",
              "$self._get_key_type"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$self._get_key_type"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "$self._get_key_type"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "unshift"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "$self._get_key_type"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "$self._get_key_type"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "splice"
            ],
            [
              "",
              "$self._get_key_type"
            ],
            [
              "",
              "splice"
            ],
            [
              "",
              "$self._get_key_type"
            ],
            [
              "",
              "$self._join_list"
            ],
            [
              "",
              "$self._get_sorted_hash_keys"
            ],
            [
              "",
              "$self._join_list"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "reverse"
            ],
            [
              "",
              "reverse"
            ],
            [
              "",
              "$self.cfg__set"
            ],
            [
              "",
              "$self.cfg__set"
            ],
            [
              "",
              "$self.cfg__set"
            ],
            [
              "",
              "dclone"
            ],
            [
              "",
              "$self.cfg__set"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "dclone"
            ],
            [
              "",
              "dclone"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "$self.cfg__set_prefixed"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$self._execute_postponed"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "unshift"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "unshift"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "unshift"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "$self.cfg__set"
            ],
            [
              "",
              "reverse"
            ],
            [
              "",
              "_fmt_lens_join"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "$self._expand_section"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "$self._resolve_section"
            ],
            [
              "",
              "$self._massage_lens"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$self.cfg__get_prefixed"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "$self.cfg__set_prefixed"
            ],
            [
              "",
              "$self._expand_section"
            ],
            [
              "",
              "$self.cfg__set_prefixed"
            ],
            [
              "",
              "$self.cfg__set_prefixed"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "$self._resolve_section"
            ],
            [
              "",
              "$self.cfg__get"
            ],
            [
              "",
              "$self._resolve_section"
            ],
            [
              "",
              "FreezeThaw"
            ],
            [
              "",
              "strict"
            ],
            [
              "",
              "warnings"
            ]
          ],
          "mbr": [
            "$fab.NS__set_parents",
            "$fab._handle_error",
            "$fab.cfg__append",
            "$fab.cfg__pop",
            "$fab.cfg__prepend",
            "$fab.cfg__set",
            "$fab.group__end",
            "$fab.group__start",
            "$fab.include__text",
            "$fab.out__create_section",
            "$fab.out__embed",
            "$fab.out__target_section",
            "$self._execute_postponed",
            "$self._expand_section",
            "$self._get_active_callbacks",
            "$self._get_key_type",
            "$self._get_sorted_hash_keys",
            "$self._join_list",
            "$self._massage_lens",
            "$self._process_chunk",
            "$self._resolve_section",
            "$self.cfg__get",
            "$self.cfg__get_joined",
            "$self.cfg__get_prefixed",
            "$self.cfg__get_prefixed_scan",
            "$self.cfg__set",
            "$self.cfg__set_prefixed",
            "$self.out__get_joined",
            "$self.process_string"
          ],
          "tgt": [
            "$fab.NS__set_parents",
            "$fab._handle_error",
            "$fab.cfg__append",
            "$fab.cfg__pop",
            "$fab.cfg__prepend",
            "$fab.cfg__set",
            "$fab.group__end",
            "$fab.group__start",
            "$fab.include__text",
            "$fab.out__create_section",
            "$fab.out__embed",
            "$fab.out__target_section",
            "$self._execute_postponed",
            "$self._expand_section",
            "$self._get_active_callbacks",
            "$self._get_key_type",
            "$self._get_sorted_hash_keys",
            "$self._join_list",
            "$self._massage_lens",
            "$self._process_chunk",
            "$self._resolve_section",
            "$self.cfg__get",
            "$self.cfg__get_joined",
            "$self.cfg__get_prefixed",
            "$self.cfg__get_prefixed_scan",
            "$self.cfg__set",
            "$self.cfg__set_prefixed",
            "$self.out__get_joined",
            "$self.process_string",
            "_default_error_handler",
            "_fmt_lens_join",
            "bless",
            "dclone",
            "die",
            "index",
            "join",
            "open",
            "push",
            "reverse",
            "safeFreeze",
            "splice",
            "split",
            "substr",
            "thaw",
            "unshift"
          ],
          "metrics": {
            "ast": {
              "op.eq": 18,
              "op.ge": 6,
              "op.gt": 10,
              "op.le": 1,
              "op.lt": 6,
              "op.ne": 1,
              "op.add": 5,
              "op.lor": 19,
              "op.mod": 4,
              "op.sub": 29,
              "op.land": 25,
              "op.lnot": 18,
              "max_depth": 31,
              "op.concat": 37,
              "call_count": 202,
              "node_count": 15317,
              "op.floordiv": 63,
              "member_count": 29,
              "op_density.eq": 0,
              "op_density.ge": 0,
              "op_density.gt": 0,
              "op_density.le": 0,
              "op_density.lt": 0,
              "op_density.ne": 0,
              "op_density.add": 0,
              "op_density.lor": 0,
              "op_density.mod": 0,
              "op_density.sub": 0,
              "op_density.land": 0,
              "op_density.lnot": 0,
              "max_array_length": 1,
              "max_concat_chain": 2,
              "max_member_depth": 2,
              "op_density.concat": 0,
              "self_compare_count": 5,
              "op_density.floordiv": 0
            },
            "file": {
              "size": 117027,
              "entropy": 4.98
            },
            "text": {
              "lines": 2553,
              "top_char": 101,
              "tab_count": 17,
              "digit_ratio": 0.01,
              "space_count": 22142,
              "char_entropy": 4.98,
              "mixed_indent": 1,
              "unique_chars": 113,
              "top_char_null": 0,
              "import_density": 0.12,
              "lines_over_200": 51,
              "lines_over_500": 16,
              "string_density": 0.1,
              "top_char_ratio": 0.08,
              "ascii_art_lines": 18,
              "avg_line_length": 44.84,
              "max_line_length": 903,
              "non_ascii_ratio": 0.01,
              "empty_line_ratio": 0.26,
              "last_line_length": 4,
              "long_token_count": 5,
              "whitespace_ratio": 0.21,
              "identifier_density": 0.02,
              "line_length_stddev": 68.98,
              "max_whitespace_run": 15,
              "unusual_whitespace": 44,
              "normalized_import_count": 0.06,
              "normalized_string_count": 5.21,
              "repeated_char_sequences": 367,
              "suspicious_comment_ratio": 0.02,
              "trailing_whitespace_lines": 1,
              "normalized_unique_identifiers": 3.98
            },
            "binds": {
              "count": 44
            },
            "binary": {
              "peak_region_bytes": 57635,
              "peak_region_entropy": 5.2
            },
            "source": {
              "class_count": 1,
              "function_count": 45
            },
            "imports": {
              "count": 3,
              "third_party_count": 3,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 6113,
              "count": 263,
              "avg_length": 23.24,
              "max_length": 103,
              "avg_entropy": 3.06,
              "empty_count": 18,
              "entropy_stddev": 1.3
            },
            "comments": {
              "chars": 8487,
              "count": 145,
              "lines": 145,
              "high_entropy": 3,
              "to_code_ratio": 0.06
            },
            "functions": {
              "count": 46
            },
            "identifiers": {
              "count": 45,
              "unique": 45,
              "avg_length": 15.84,
              "max_length": 31,
              "min_length": 3,
              "avg_entropy": 3.18,
              "reuse_ratio": 1,
              "length_stddev": 5.98,
              "high_entropy_count": 7,
              "high_entropy_ratio": 0.16,
              "all_lowercase_ratio": 0.98,
              "underscore_prefix_count": 16
            }
          }
        },
        "id": 1,
        "mol": "H(F)",
        "path": "Text-Fab-0.07.tar.gz!!Text-Fab-0.07/lib/Text/Fab.pm",
        "pid": 0,
        "risk": 2,
        "sha": "95b8b37f6f9032212509229b73bb9125b57881eff8625cd37df75c9b6f326ffa",
        "size": 117027,
        "traits": [
          {
            "id": "micro-behaviors/fs/read/file/full::perl-slurp-local-record-separator",
            "conf": 0.94,
            "crit": 3,
            "desc": "Perl slurps a filehandle",
            "spans": [
              [
                14837,
                15
              ]
            ]
          },
          {
            "id": "metadata/import/perl/freezethaw::freezethaw",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports FreezeThaw",
            "spans": [
              [
                254,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/strict::strict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports strict",
            "spans": [
              [
                35,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/warnings::warnings",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports warnings",
            "spans": [
              [
                47,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::sigil-variable-decl",
            "conf": 0.8,
            "crit": 2,
            "desc": "Perl sigil variable declaration",
            "spans": [
              [
                57,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::subroutine-definition",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl subroutine definition",
            "spans": [
              [
                660,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::use-module",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl module import statement",
            "spans": [
              [
                31,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                177,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                234,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                39506,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "spans": [
              [
                55672,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                2422,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                315,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                33286,
                0
              ]
            ]
          }
        ],
        "type": "perl"
      },
      {
        "ctx": [
          {
            "b": "B-Raph7*Nrgb7yoi$hKtB7DE.CYV@cx(4\u0026Ki.:3#wLDPGwPx\u003cw3l{V(wO002x\u003c@.:CYV@cx(4\u0026zo\u003c}*Go\u003c}*GAXqrFazbLjay]59vqfL0aA7\u003cmxM58qBz\u0026pozF0ZcwO#0?4gjs5Bzbkdv@DmbwO#QhaA7\u003cmBzbkdo\u003c}*Gw[=6)aARp9BrCpsaA}\u003cuBAz8ie!5d?A+PSbo\u003c}*Gw[=6)c\u003ecIaarR!4k$%=\u003carR^HarR^HarR^Hau.[hcSBV4BuhDLvpyPn4gjj2arTYNqD3d.pg3E*pFz@OarR^HjW6#oy?WuiraQq@fgGwVe]UUPefDeWw[=c[B08-emn^5QpFIuaarR^Hp/o.WmnWz*o=$M3arR^HarS*haBuN#wO3g0ra]Y:au.[hfNUF{boQLIxd+.To(BM+y?kT*pgn0Jau.[hf!Lf\u00263lQDlasFHvau?}hh7*Nph6taaarR^Hbo[r%wmM*8xK#l@az$+mazULlCw?IjB0bKDAbY-oBy!#9B7]J4wGS\u0026.fFCu[3lQDlarR^Pk%!HHqB9VHuQ^{?o=$Mwj%hj?x\u003c@.{wQ5qImQY:UAbu%Nar@1HwPR%bwP?ScvpBq1A:-E1azbUjz6iXlwozZ14gjj2arR^Hawtu]mnu=IarR^HarR^HjW6#oAaK6auO%hZ4gjj2arTSLq=Ea4mnW5RqBKIbjW70n4gjj2arR^HarS4hwPI@OiZ[p6wPh:9z/c{BjW6#xed0KCaw^8\u0026B7GlhasGD6aAImmv}u=VwPzPfh7*QyasICEx\u003e7*0vS=N0y?mVgo\u003c}*Go\u003c}*GAV^m)iwqNtjS(Tnhz=\u0026(3lQDlaBL^I3lQDlarR^Hk#*(PpF@qTarR^HarR^\u0026j%hjAy\u003cxCit48hWvrb}5x\u003e7*0jzwRSvr$gGAa9Spv@DiFcN*f0asFV/edz}ni$hI",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "written.WriteMakefile"
            ],
            [
              "",
              "keywords"
            ],
            [
              "",
              "Present"
            ]
          ],
          "mbr": [
            "MakeMaker.pm",
            "e.g",
            "written.WriteMakefile"
          ],
          "tgt": [
            "Present",
            "keywords",
            "written.WriteMakefile"
          ],
          "funcs": [
            [
              "NAME",
              175
            ],
            [
              "VERSION_FROM",
              214
            ],
            [
              "PREREQ_PM",
              276
            ],
            [
              "FreezeThaw",
              298
            ],
            [
              "Name",
              332
            ],
            [
              "ABSTRACT_FROM",
              424
            ],
            [
              "LICENSE",
              501
            ],
            [
              "TEST_REQUIRES",
              534
            ],
            [
              "AUTHOR",
              672
            ]
          ],
          "metrics": {
            "ast": {
              "op.ge": 2,
              "op.gt": 1,
              "op.div": 2,
              "max_depth": 19,
              "call_count": 5,
              "node_count": 205,
              "member_count": 3,
              "op_density.ge": 0.01,
              "op_density.gt": 0,
              "op_density.div": 0.01,
              "sequence_count": 1,
              "max_member_depth": 2,
              "string_return_function_count": 5,
              "string_return_function_ratio": 0.56
            },
            "file": {
              "size": 739,
              "entropy": 5.12
            },
            "text": {
              "lines": 16,
              "top_char": 101,
              "tab_count": 1,
              "digit_ratio": 0.07,
              "space_count": 173,
              "char_entropy": 5.12,
              "unique_chars": 75,
              "top_char_null": 0,
              "string_density": 0.38,
              "top_char_ratio": 0.07,
              "avg_line_length": 44.19,
              "max_line_length": 101,
              "last_line_length": 2,
              "whitespace_ratio": 0.28,
              "identifier_density": 3.19,
              "line_length_stddev": 28.41,
              "max_whitespace_run": 14,
              "normalized_string_count": 1.5,
              "repeated_char_sequences": 1,
              "anonymous_function_ratio": 1,
              "normalized_function_count": 2.25,
              "strings_to_functions_ratio": 0.67,
              "suspicious_identifier_ratio": 0.04,
              "normalized_unique_identifiers": 11.5,
              "identifiers_to_functions_ratio": 5.11
            },
            "binary": {
              "peak_region_bytes": 739,
              "peak_region_entropy": 5.12
            },
            "strings": {
              "bytes": 93,
              "count": 6,
              "avg_length": 15.5,
              "max_length": 33,
              "avg_entropy": 3.43,
              "email_count": 1,
              "entropy_stddev": 0.53
            },
            "functions": {
              "nested": 2,
              "density": 56.25,
              "anonymous": 9,
              "code_ratio": 1.13,
              "one_liners": 7,
              "length_stddev": 2.21,
              "no_params_count": 9,
              "avg_length_lines": 2,
              "max_length_lines": 8,
              "min_length_lines": 1,
              "avg_nesting_depth": 0.56,
              "max_nesting_depth": 1
            },
            "consistency": {
              "extension_content_mismatch": 1,
              "extension_content_mismatch.script_as_script": 1
            },
            "identifiers": {
              "count": 51,
              "unique": 46,
              "avg_length": 6,
              "max_length": 13,
              "min_length": 1,
              "avg_entropy": 2.09,
              "reuse_ratio": 0.9,
              "length_stddev": 3.22,
              "sequential_names": 2,
              "single_char_count": 3,
              "single_char_ratio": 0.07,
              "all_lowercase_ratio": 0.57,
              "all_uppercase_ratio": 0.15
            }
          }
        },
        "id": 2,
        "mol": "Md",
        "path": "Text-Fab-0.07.tar.gz!!Text-Fab-0.07/Makefile.PL",
        "pid": 0,
        "risk": 1,
        "sha": "b9dedd013b014a67df8ad24ac5a26aa38f818cbec77361c487f44a9e62003dc4",
        "size": 739,
        "traits": [
          {
            "id": "metadata/file/extension/identity::script-content-extension-mismatch",
            "conf": 0.9,
            "crit": 3,
            "desc": "Extension/content classifier disagreement"
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                108,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                137,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                73,
                0
              ]
            ]
          }
        ],
        "type": "javascript"
      },
      {
        "ctx": [
          {
            "b": "B-RapB98Cpv@%^tB-RapCvtJfx(mN8i%{aKwGT@-B96D7o(C5-i%{aKwGT@-B96D7mr\u0026rNAcb/jzAwhFB7DE-x(4uwi-GWcA3fdAd0f3qAaAW6dlv(VB7DE-x(4uwi-y0ev(\u003e3uB7DE[wQ5qTi.0K!i%(sqB7FY%yByMfwQ5qTi.0K!cN?a:3t\u003e5hbW$!5v@2T$uVp3%Ab](bwPI{hAV^H/B9g}mDKp(rarUJDasFHEvpy=gbX7IgzFHWzjS)0%i%)8MarUYoBAIRwar\u003e2nv}Z15yH5bC3vK#y3t\u003e5hbXyE]uT[1\u003ezdNQbauZ\u0026DwQ5qTi.0K!eK15-Ck",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "asyJkvqfQbdlv\u003eZw)]dQw{5faeK1b]z!0v1B6\u003c0gA+PA7c)zF@A=:3vzx*wGBzbxfazC)tvix5#zeA\u003c4Bx\u0026YWvrcDBa$kOXx(+WFw)]dQw{5faeK0P:B7Gh$y?k1xuU%j=zAqlBwo/KKefDcvp*[x^f\u003cFP)vrcDBt{p*barR^Ov@Dj3wO#Pjwnc6}v@#BdwPF#aB-RapAb]J1wN]H)xcpS2wft@ov}f7Ywnb{]ay/8czFKqovpKs@B8@Elz/6u5zGE1gz/]@dvrcSvdlv\u003ezzfWlHw)]dQx(mA6jS)ZnCYU#cmQY:Tk5K}Qc[dj+bXyE]uUKy/eK0(^v@co#wD",
            "ln": 991,
            "col": 39,
            "line": 36
          },
          {
            "b": "wNw)?jS)jdy?kT*q/DqTeK0VMBy]l6wHF*mx(U:EcUv7ewNw[0w)]c@dlv\u003ezz/xo9az(xDbXyZ%vK@SHj%})7bXy+bwNw)?z/M$hx\u003enzjaV*3IA+PAkas7MjuT+c4bxEBrazC.2vM/0FB6JPIz/fVdzGE0/tY7-E3s^)\u003cB7DEtw[UKXi%(skAaJ]f",
            "ln": 1511,
            "col": 8,
            "line": 47
          },
          {
            "b": "k$26GqC{p*fdWCMarR^Ox(mA%B.2i7xcq8gzE[6bB97#hBrCgfy?j-1x\u003equdCwhejavPTbnLzMWqBJ(tuQW\u003c\u003cpF@M43jpS}as7Mky?l%-D1gV4f^5R4mRMWIiYZhUwN^qQv{%E\u003ex(4uebXgRfefDrID1gV4f!N6DvKAP^3t\u003e5hbXy+bwNw})v@bZi",
            "ln": 2051,
            "col": 74,
            "line": 62
          },
          {
            "b": "wN({7z!%lhayX+?yANb9zF0P}B-H]jx(v(iv}Yp*xjVcbzdc%^aA}KwxLzubBzbkdx(mA%B.25]azbt7wHw]*3jp(*A=leyuVfZ5DMTOCvpAO+v@Dr$wgY#:A=kD0B8$YfBAh8kxda@Gx(mA%B.25\u003cB7occwN({4zFTP9z/fb[vrc08diK3YADiY",
            "ln": 2950,
            "col": 18,
            "line": 88
          },
          {
            "b": "pF@M43jp\u0026%vSVg5Brz@fBAh89BrC1jx([RyvqYP#v@DmbvqfQ\u003cAV/jqwmY*8w]zYjbwz49y\u0026%o1cM\u003eMoaAIWmaBsCrarR!zC{1wAvpAONauZ\u0026DwQ5qTi.0K!eK15-Cpl%tzF0P}au.[hDKp(rarR^HarS43vpy)ax(!x6yH}^jcM\u003eMoaBtjUyhW!",
            "ln": 3184,
            "col": 71,
            "line": 91
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "use_ok"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "Text::Fab.new.cfg__get"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_comment.out__create_section"
            ],
            [
              "",
              "$fab_comment.out__target_section"
            ],
            [
              "",
              "$fab_comment.process_string"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_comment.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "Text::Fab.new.cfg__get"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_fuse.out__create_section"
            ],
            [
              "",
              "$fab_fuse.out__target_section"
            ],
            [
              "",
              "$fab_fuse.process_string"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_fuse.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_inc.include__text"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_inc.cfg__get"
            ],
            [
              "",
              "tempdir"
            ],
            [
              "",
              "File::Spec.catfile"
            ],
            [
              "",
              "File::Spec.catfile"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_file.include__text"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_file.cfg__get"
            ],
            [
              "",
              "File::Spec.catfile"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_file.include__text"
            ],
            [
              "",
              "File::Spec.catfile"
            ],
            [
              "",
              "File::Spec.catfile"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_file.include__text"
            ],
            [
              "",
              "File::Spec.catfile"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "die"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_scoped.cfg__set"
            ],
            [
              "",
              "$fab_scoped.process_string"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_scoped.cfg__get"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_scoped.process_string"
            ],
            [
              "",
              "subtest"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_c.cfg__set"
            ],
            [
              "",
              "$fab_c.cfg__set"
            ],
            [
              "",
              "$fab_c.out__create_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_c.out__create_section"
            ],
            [
              "",
              "$fab_c.out__target_section"
            ],
            [
              "",
              "$fab_c.process_string"
            ],
            [
              "",
              "$fab_c.process_string"
            ],
            [
              "",
              "$fab_c.assemble"
            ],
            [
              "",
              "like"
            ],
            [
              "",
              "like"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_c.process_string"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_c.process_string"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_c.include__text"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_c.include__text"
            ],
            [
              "",
              "done_testing"
            ],
            [
              "",
              "File::Spec"
            ],
            [
              "",
              "File::Temp"
            ],
            [
              "",
              "Test::Exception"
            ],
            [
              "",
              "Test::More"
            ],
            [
              "",
              "Text::Fab"
            ],
            [
              "",
              "strict"
            ],
            [
              "",
              "warnings"
            ]
          ],
          "mbr": [
            "$fab_c.assemble",
            "$fab_c.cfg__set",
            "$fab_c.include__text",
            "$fab_c.out__create_section",
            "$fab_c.out__target_section",
            "$fab_c.process_string",
            "$fab_comment.assemble",
            "$fab_comment.out__create_section",
            "$fab_comment.out__target_section",
            "$fab_comment.process_string",
            "$fab_file.cfg__get",
            "$fab_file.include__text",
            "$fab_fuse.assemble",
            "$fab_fuse.out__create_section",
            "$fab_fuse.out__target_section",
            "$fab_fuse.process_string",
            "$fab_inc.cfg__get",
            "$fab_inc.include__text",
            "$fab_scoped.cfg__get",
            "$fab_scoped.cfg__set",
            "$fab_scoped.process_string",
            "File::Spec.catfile",
            "Text::Fab.new",
            "Text::Fab.new.cfg__get"
          ],
          "tgt": [
            "$fab_c.assemble",
            "$fab_c.cfg__set",
            "$fab_c.include__text",
            "$fab_c.out__create_section",
            "$fab_c.out__target_section",
            "$fab_c.process_string",
            "$fab_comment.assemble",
            "$fab_comment.out__create_section",
            "$fab_comment.out__target_section",
            "$fab_comment.process_string",
            "$fab_file.cfg__get",
            "$fab_file.include__text",
            "$fab_fuse.assemble",
            "$fab_fuse.out__create_section",
            "$fab_fuse.out__target_section",
            "$fab_fuse.process_string",
            "$fab_inc.cfg__get",
            "$fab_inc.include__text",
            "$fab_scoped.cfg__get",
            "$fab_scoped.cfg__set",
            "$fab_scoped.process_string",
            "File::Spec.catfile",
            "Text::Fab.new",
            "Text::Fab.new.cfg__get",
            "die",
            "done_testing",
            "is",
            "like",
            "open",
            "print",
            "push",
            "subtest",
            "tempdir",
            "throws_ok",
            "use_ok"
          ],
          "metrics": {
            "ast": {
              "op.lor": 5,
              "max_depth": 17,
              "call_count": 80,
              "node_count": 1587,
              "member_count": 24,
              "op_density.lor": 0,
              "max_array_length": 1,
              "max_member_depth": 3
            },
            "file": {
              "size": 4809,
              "entropy": 5.23
            },
            "text": {
              "lines": 126,
              "top_char": 101,
              "digit_ratio": 0.01,
              "space_count": 515,
              "char_entropy": 5.23,
              "unique_chars": 71,
              "top_char_null": 0,
              "import_density": 5.56,
              "string_density": 0.75,
              "top_char_ratio": 0.07,
              "avg_line_length": 37.17,
              "max_line_length": 94,
              "empty_line_ratio": 0.22,
              "last_line_length": 15,
              "whitespace_ratio": 0.13,
              "identifier_density": 0.11,
              "line_length_stddev": 30.23,
              "max_whitespace_run": 1,
              "normalized_import_count": 0.62,
              "normalized_string_count": 8.46,
              "normalized_unique_identifiers": 0.29
            },
            "binary": {
              "peak_region_bytes": 4809,
              "peak_region_entropy": 5.16
            },
            "imports": {
              "count": 7,
              "third_party_count": 7,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 1763,
              "count": 95,
              "avg_length": 18.56,
              "max_length": 79,
              "avg_entropy": 2.89,
              "entropy_stddev": 1.09
            },
            "identifiers": {
              "count": 14,
              "unique": 2,
              "avg_length": 9.5,
              "max_length": 10,
              "min_length": 9,
              "avg_entropy": 2.93,
              "reuse_ratio": 0.14,
              "length_stddev": 0.5
            }
          }
        },
        "id": 12,
        "mol": "Md",
        "path": "Text-Fab-0.07.tar.gz!!Text-Fab-0.07/t/08-include-and-pipeline.t",
        "pid": 0,
        "risk": 2,
        "sha": "162fb52fce708735725669ce08f030b7045eeb884736fe0d1dbdcbe93068f110",
        "size": 4809,
        "traits": [
          {
            "id": "metadata/file/profile/identifier-population::low-identifier-reuse",
            "conf": 0.7,
            "crit": 3,
            "desc": "Low identifier reuse ratio"
          },
          {
            "id": "metadata/import/perl/file/spec::file/spec",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports File::Spec",
            "spans": [
              [
                95,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/file/temp::file/temp",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports File::Temp",
            "spans": [
              [
                67,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/strict::strict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports strict",
            "spans": [
              [
                4,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/test/exception::test/exception",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Test::Exception",
            "spans": [
              [
                46,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/test/more::test/more",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Test::More",
            "spans": [
              [
                30,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/text/fab::text/fab",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Text::Fab",
            "spans": [
              [
                111,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/warnings::warnings",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports warnings",
            "spans": [
              [
                16,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::sigil-variable-decl",
            "conf": 0.8,
            "crit": 2,
            "desc": "Perl sigil variable declaration",
            "spans": [
              [
                144,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::use-module",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl module import statement",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                2998,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                1161,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                3232,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                2099,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                1039,
                0
              ]
            ]
          }
        ],
        "type": "perl"
      },
      {
        "ctx": [
          {
            "b": "B-RapB98Cpv@%^tB-RapCvtJfx(mN8i%{aKwGT@-B96D7o(C5-i%{aKwGT@-B96D7mr\u0026rNAcb/jzAwhFB7DE[wQ5qTi.0K!i%(sqB7FY%yByMfwQ5qTi.0K!cN?a:3t\u003e5hbXyE]uU0OTauZ\u0026DwQ5qTi.0K!eK15-Cpj[43m6j(vQAUOxdVqxq^S)MwPRo#vrb{%BAn\u0026TlUHgIwg5]JcS1k(wO#Pqdlv\u003eZw)]dQwmoa5k2b3-uVP!2uVoB]wO#Qhc)}\u00261",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "lS(=InKD\u0026RpdN/KnMm#JlQ-TV3lQDlaszkwy?tnkzFiQ4x()^3v}u=[x\u003equdCwhejavPT8sWL\u003eOlTJzWnjuAFr6:nDmjge73uP%4z*cnfz!*Fxas7McvQAUOxdVqxq^S)MwPRo#vrb{%BAn\u0026Tm@\u00263QwkDYPwO#PqefDrcxLzo[cN*f^aAqAPmpez+",
            "ln": 293,
            "col": 62,
            "line": 13
          },
          {
            "b": "Byf92v@#B6zyu(CwNPaXAWJyXcRN@]z/{d/cN?a:Aclknav7o0w)]dQzfoVpx!qI}B7F\u003c6x(v)gEs1T@D2E?El4a8[wNPaXA^-u!ax{jnwQ5qAefDrhwNPaXAV!$m",
            "ln": 596,
            "col": 23,
            "line": 20
          },
          {
            "b": "cR^O}cOcw/pe-}@t}us9arS3RB7GD2Aa9=#zGG}xwnc6}v@#BdwGV59BAnNszFiQ4x()^3v}u=}A:-{2cN?a:3t\u003e5hbXyE]uV6B@BrAZ?raQq@iYY-svL6=YwP]KKi%(ruw=",
            "ln": 3718,
            "col": 75,
            "line": 94
          },
          {
            "b": "wPw]mBZ[])B8$@oy\u00261wtB76nnwO#0]z/YSgxcpV1x(mD)A:J:cBz#wAaA8cuBzbkdB97\u00262yBpL)3jp\u0026%vSVg5Brz@cvrb^[wPRH7x)Ku3aAz46x(ET8aA}KwxDRwcv@#B6zxJ\u003epwPzi%woe\u003ewbTCr#rXMcUe?5d\u003cjW70fBZ=Fu3lQDlaz(xDbXyD",
            "ln": 4689,
            "col": 16,
            "line": 123
          },
          {
            "b": "cRN@]z/{dHefDq=k#HiNfEFy]tu@^5DWPfJ3lQDlarR^Hax{jnwQ5qAefDq.vqYP#cTwngarR^HarR^Htpj00vR66$efDrlvr(^lBseQZcNp#Qm]?t(efFe5efGp/t}us9arR^HarR!hcV\u0026{ABseQZcTw99i%(rqarR^Lw)]dQA4Km(B-Z$$Byxg",
            "ln": 5007,
            "col": 19,
            "line": 131
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "use_ok"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_dag.NS__set_parents"
            ],
            [
              "",
              "$fab_dag.NS__set_parents"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_dag.NS__set_parents"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_dag.NS__set_parents"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_multi.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_multi.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_multi.out__target_section"
            ],
            [
              "",
              "$fab_multi.out__embed"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_multi.out__embed"
            ],
            [
              "",
              "$fab_multi.NS__set_parents"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_multi.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_missing.out__target_section"
            ],
            [
              "",
              "$fab_missing.out__embed"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_missing.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_loop.out__target_section"
            ],
            [
              "",
              "$fab_loop.out__embed"
            ],
            [
              "",
              "$fab_loop.out__target_section"
            ],
            [
              "",
              "$fab_loop.out__embed"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_loop.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_asif.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_asif.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_asif.NS__set_parents"
            ],
            [
              "",
              "$fab_asif.NS__set_parents"
            ],
            [
              "",
              "$fab_asif.out__target_section"
            ],
            [
              "",
              "$fab_asif.out__embed"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_asif.assemble"
            ],
            [
              "",
              "$fab_asif.out__target_section"
            ],
            [
              "",
              "$fab_asif.out__embed"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_asif.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_blind.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_blind.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_blind.NS__set_parents"
            ],
            [
              "",
              "$fab_blind.NS__set_parents"
            ],
            [
              "",
              "$fab_blind.cfg__set"
            ],
            [
              "",
              "$fab_blind.out__target_section"
            ],
            [
              "",
              "$fab_blind.out__embed"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_blind.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_directive.process_string"
            ],
            [
              "",
              "is_deeply"
            ],
            [
              "",
              "$fab_directive.cfg__get"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_nest.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_nest.out__target_section"
            ],
            [
              "",
              "$fab_nest.out__embed"
            ],
            [
              "",
              "$fab_nest.out__target_section"
            ],
            [
              "",
              "$fab_nest.out__embed"
            ],
            [
              "",
              "$fab_nest.cfg__set"
            ],
            [
              "",
              "$fab_nest.cfg__set"
            ],
            [
              "",
              "$fab_nest.assemble"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "is_deeply"
            ],
            [
              "",
              "subtest"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_p.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_p.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_p.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_p.out__target_section"
            ],
            [
              "",
              "$fab_p.process_string"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_p.assemble"
            ],
            [
              "",
              "subtest"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_lens.cfg__set"
            ],
            [
              "",
              "$fab_lens.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_lens.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_lens.NS__set_parents"
            ],
            [
              "",
              "$fab_lens.out__target_section"
            ],
            [
              "",
              "$fab_lens.process_string"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_lens.assemble"
            ],
            [
              "",
              "done_testing"
            ],
            [
              "",
              "Test::Exception"
            ],
            [
              "",
              "Test::More"
            ],
            [
              "",
              "Text::Fab"
            ],
            [
              "",
              "strict"
            ],
            [
              "",
              "warnings"
            ]
          ],
          "mbr": [
            "$fab_asif.NS__set_parents",
            "$fab_asif.assemble",
            "$fab_asif.out__embed",
            "$fab_asif.out__target_section",
            "$fab_blind.NS__set_parents",
            "$fab_blind.assemble",
            "$fab_blind.cfg__set",
            "$fab_blind.out__embed",
            "$fab_blind.out__target_section",
            "$fab_dag.NS__set_parents",
            "$fab_directive.cfg__get",
            "$fab_directive.process_string",
            "$fab_lens.NS__set_parents",
            "$fab_lens.assemble",
            "$fab_lens.cfg__set",
            "$fab_lens.out__target_section",
            "$fab_lens.process_string",
            "$fab_loop.assemble",
            "$fab_loop.out__embed",
            "$fab_loop.out__target_section",
            "$fab_missing.assemble",
            "$fab_missing.out__embed",
            "$fab_missing.out__target_section",
            "$fab_multi.NS__set_parents",
            "$fab_multi.assemble",
            "$fab_multi.out__embed",
            "$fab_multi.out__target_section",
            "$fab_nest.assemble",
            "$fab_nest.cfg__set",
            "$fab_nest.out__embed",
            "$fab_nest.out__target_section",
            "$fab_p.assemble",
            "$fab_p.out__target_section",
            "$fab_p.process_string",
            "Text::Fab.new"
          ],
          "tgt": [
            "$fab_asif.NS__set_parents",
            "$fab_asif.assemble",
            "$fab_asif.out__embed",
            "$fab_asif.out__target_section",
            "$fab_blind.NS__set_parents",
            "$fab_blind.assemble",
            "$fab_blind.cfg__set",
            "$fab_blind.out__embed",
            "$fab_blind.out__target_section",
            "$fab_dag.NS__set_parents",
            "$fab_directive.cfg__get",
            "$fab_directive.process_string",
            "$fab_lens.NS__set_parents",
            "$fab_lens.assemble",
            "$fab_lens.cfg__set",
            "$fab_lens.out__target_section",
            "$fab_lens.process_string",
            "$fab_loop.assemble",
            "$fab_loop.out__embed",
            "$fab_loop.out__target_section",
            "$fab_missing.assemble",
            "$fab_missing.out__embed",
            "$fab_missing.out__target_section",
            "$fab_multi.NS__set_parents",
            "$fab_multi.assemble",
            "$fab_multi.out__embed",
            "$fab_multi.out__target_section",
            "$fab_nest.assemble",
            "$fab_nest.cfg__set",
            "$fab_nest.out__embed",
            "$fab_nest.out__target_section",
            "$fab_p.assemble",
            "$fab_p.out__target_section",
            "$fab_p.process_string",
            "Text::Fab.new",
            "done_testing",
            "is",
            "is_deeply",
            "push",
            "subtest",
            "throws_ok",
            "use_ok"
          ],
          "metrics": {
            "ast": {
              "max_depth": 17,
              "call_count": 100,
              "node_count": 2461,
              "member_count": 35,
              "max_array_length": 1,
              "max_member_depth": 2
            },
            "file": {
              "size": 6552,
              "entropy": 5.23
            },
            "text": {
              "lines": 173,
              "top_char": 101,
              "digit_ratio": 0.01,
              "space_count": 572,
              "char_entropy": 5.23,
              "unique_chars": 75,
              "top_char_null": 0,
              "import_density": 2.89,
              "string_density": 1.01,
              "top_char_ratio": 0.07,
              "avg_line_length": 36.87,
              "max_line_length": 94,
              "empty_line_ratio": 0.27,
              "last_line_length": 15,
              "whitespace_ratio": 0.11,
              "identifier_density": 0.06,
              "line_length_stddev": 29.31,
              "max_whitespace_run": 1,
              "normalized_import_count": 0.38,
              "normalized_string_count": 13.31,
              "normalized_unique_identifiers": 0.13
            },
            "binary": {
              "peak_region_bytes": 6552,
              "peak_region_entropy": 5.34
            },
            "imports": {
              "count": 5,
              "third_party_count": 5,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 2221,
              "count": 175,
              "avg_length": 12.69,
              "max_length": 83,
              "avg_entropy": 2.63,
              "entropy_stddev": 0.88
            },
            "identifiers": {
              "count": 10,
              "unique": 1,
              "avg_length": 9,
              "max_length": 9,
              "min_length": 9,
              "avg_entropy": 2.95,
              "reuse_ratio": 0.1
            }
          }
        },
        "id": 13,
        "mol": "Md",
        "path": "Text-Fab-0.07.tar.gz!!Text-Fab-0.07/t/09-inheritance-and-embed.t",
        "pid": 0,
        "risk": 2,
        "sha": "0c110eb6df395ad83b49f0e8eb0daeed149fa336b885e657ae033e5fd4caa4bb",
        "size": 6552,
        "traits": [
          {
            "id": "metadata/file/profile/identifier-population::low-identifier-reuse",
            "conf": 0.7,
            "crit": 3,
            "desc": "Low identifier reuse ratio"
          },
          {
            "id": "metadata/import/perl/strict::strict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports strict",
            "spans": [
              [
                4,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/test/exception::test/exception",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Test::Exception",
            "spans": [
              [
                46,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/test/more::test/more",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Test::More",
            "spans": [
              [
                30,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/text/fab::text/fab",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Text::Fab",
            "spans": [
              [
                67,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/warnings::warnings",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports warnings",
            "spans": [
              [
                16,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::sigil-variable-decl",
            "conf": 0.8,
            "crit": 2,
            "desc": "Perl sigil variable declaration",
            "spans": [
              [
                100,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::use-module",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl module import statement",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                4737,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                5055,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                341,
                0
              ]
            ]
          }
        ],
        "type": "perl"
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 865,
              "entropy": 4.63
            },
            "binary": {
              "peak_region_bytes": 865,
              "peak_region_entropy": 4.63
            },
            "registry": {
              "is_deprecated": 0,
              "publisher_verified": 1
            }
          }
        },
        "id": 22,
        "path": "Text-Fab@0.07.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "ebc4bd374cbb6c1d932bf62ee2125bb52a19ca8f5ff64f0e1406a311c3e4146a",
        "size": 865,
        "type": "registry"
      }
    ],
    "rev": "17dc6",
    "v": "8"
  }
}